Linux环境下安装部署MySQL(二进制安装包)

系统环境:CentOS Linux release 7.3.1611
软件版本:MySQL5.7.17
一、下载MySQL二进制安装包


wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

 

二、创建一个MySQL用户组以及账户


[root@192 ~]# groupadd mysql
[root@192 ~]# useradd -r -g mysql mysql

 

三、将MySQL安装包解压到指定目录


[root@192 ~]#tar xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

 

四、配置MySQL环境


1.注册服务

[root@192 mysql]#cd /usr/local/mysql/support-files

[root@192 support-files]cp mysql.server /etc/rc.d/init.d/mysqld

 

2.设置开机启动

[root@192 support-files]chkconfig mysql on

 

3.编辑my.cnf配置文件

[root@192 support-files]vim /etc/my.cnf

[mysqld]
socket = /tmp/mysql.sock

basedir = /usr/local/mysql
datadir = /data/mysql
pid-file = /data/mysql/mysql.pid
user = mysql
#The server ID must be modified
server-id = 100

log_bin = mysql-bin
relay-log = mysql-relay-bin
log-slave-updates

sync_binlog=1
#setting offset
auto_increment_offset=1
auto_increment_increment=1

#setting log path

log_error = /data/mysql/mysql-error.log
slow_query_log_file = /data/mysql/mysql-slow.log

 

五、初始化数据库


[root@192 mysql]ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

[root@192 mysql]ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin

[root@192 mysql]/usr/local/mysql/bin/mysqld --initialize

 

六、设置root相关权限以及新建账号


1.查看root临时密码

[root@192 mysql]cat /data/mysql/mysrql-error.log

 

2.登陆数据库

[root@192 mysql]mysql -uroot -p

 

3.设置root密码

mysql> SET PASSWORD = PASSWORD('7SlN*2AtWRzR%0mZ');

 

此时,使用二进制包的安装就完成了,使用二进制包安装MySQL的优点,无需编译过程,直接初始化使用用,安装速度快,效率高

附:


一键安装脚本:

#!/bin/bash
#copyright
#
#wang_chongsheng@163.com
#
#2017-07-05
#
#MySQL Automatic deployment of script files
echo "==========================================="
echo "            MySQL installation             "
echo "==========================================="

base_dir="/opt/sygamer/src/"
data_dir="/data/mysql/"
tar_dir="${base_dir}mysql-5.7.20-linux-glibc2.12-x86_64/"
ins_dir="${base_dir}mysql/"
mysqld="/etc/rc.d/init.d/mysqld"
db_user="admin"
db_pwd="7SlN*2AtWRzR%0mZ"
srv_id=$(ip -4 a show dev eth0|grep -i inet|sed 's/\/.*//' |awk '{print $2}'|awk -F '.' '{print$4}')

#Add user and group
grep mysql /etc/passwd
if [ $? == 1 ];then
        groupadd mysql
else
        echo "The group already exists."
fi

grep mysql /etc/shadow
if [ $? == 1 ];then
        useradd -r -g mysql mysql -s /sbin/nologin
else
        echo "The user already exists."
fi

#create data catalog
#mkdir -p $data_dir

#Installation dependency package
yum install -y ncurses-devel bison gcc gcc-c++ libaio


#download files
dl_file="${base_dir}mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz"
if [  ! -f $dl_file  ] ;then
        wget -P ${base_dir} https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
else
        echo "File already exists."
fi

#unzip mysql

if [ -d "$ins_dir" ] && [ ! -d "$tar_dir" ] ;then
        echo mysql directory already exist !
elif [ ! -d "$ins_dir" ] && [ -d "$tar_dir" ];then
        mv $tar_dir $ins_dir
        echo Change catalog name to mysql.
elif [ ! -d "$ins_dir" ] && [ ! -d "$tar_dir" ];then
        cd ${base_dir};tar xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
        mv $tar_dir $ins_dir
        echo The file name is changed to MySQL.
fi


#Modify the catalog
cd $ins_dir
chown -R mysql.mysql $ins_dir
chown -R mysql.mysql $data_dir
#cd ${ins_dir}support-files

#Soft link file

rm -rf /usr/bin/mysql*
ln -s /opt/sygamer/src/mysql/bin/mysql /usr/bin/mysql
ln -s /opt/sygamer/src/mysql/bin/mysqladmin /usr/bin/mysqladmin
ln -s /opt/sygamer/src/mysql/bin/mysqldump /usr/bin/mysqldump

#Modify my.cnf file
cat > /etc/my.cnf <<EOF
[mysqld]
port = 3306
socket = /tmp/mysql.sock
 
basedir = ${ins_dir}
datadir = ${data_dir}
pid-file = ${data_dir}mysql.pid
user = mysql
#The server ID must be modified
server-id = ${srv_id}
 
log_bin = mysql-bin
relay-log = mysql-relay-bin
log-slave-updates
 
sync_binlog=1
#setting offset
auto_increment_offset=1
auto_increment_increment=2
 
#setting log path
 
log_error = ${data_dir}mysql-error.log
slow_query_log_file = ${data_dir}mysql-slow.log
EOF

#register mysql service
rm -rf ${data_dir}
killall mysqld
${ins_dir}bin/mysqld --initialize --user=mysql --basedir=${ins_dir} --datadir=${data_dir}

yes|cp ${ins_dir}support-files/mysql.server /etc/rc.d/init.d/mysqld

chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

#create user file
tmp_pwd=$(grep "A temporary password is generated for root@localhost" /data/mysql/mysql-error.log |awk -F "t: " '{print$2}')
cat > /tmp/mysqluser << EOF
[client]

user=root

password="${tmp_pwd}"

port=3306
EOF

#
service mysqld start

#setting  user info
mysql --defaults-file=/tmp/mysqluser --connect-expired-password <<EOF
set password = password('${db_pwd}');
grant all privileges on *.* to '${db_user}'@'%' identified by '${db_pwd}';
flush privileges;
EOF

echo "username:root   password:$db_pwd"
echo "username:$db_user  password:$db_pwd"
rm -rf /tmp/mysqluser

 

 

发表回复

Your email address will not be published.

名字 *
电子邮件 *
站点