系统环境: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