安裝rpm包方便但是不好修改配置文件,一般修改了啓動有問題,所以採用安裝tar.gz的方式。
1.查看以前的mysql
# rpm -qa|grep -i mysql
2.如果有先刪除
# rpm -ev mysql-community-libs-5.7.26-1.el6.x86_64 --nodeps
# rpm -ev mysql-community-server-5.7.26-1.el6.x86_64 --nodeps
# rpm -ev mysql-community-client-5.7.26-1.el6.x86_64 --nodeps
# rpm -ev mysql-community-common-5.7.26-1.el6.x86_64 --nodeps
3.可能還有其他的殘留,找出來刪除
# find / -name mysql
# rm -rf 對應的mysql*
4.官網下載,如果是內網機器需要事先下載下來。同時下載一個命令行工具(可以直接下載rpm安裝)
# wget https://dev.mysql.com/downloads/mysql/5.7.html#downloads
5.解壓並移動位置,假設我想把它安裝到/home/software/mysql_5.7.29
# tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.29-linux-glibc2.12-x86_64 /home/software/mysql_5.7.29
6.創建文件夾及用戶並給數據目錄賦予權限
# groupadd mysql
# useradd -r -g mysql mysql
# cd /home/software/mysql_5.7.29
# mkdir mysql_data
# mkdir mysql_log
# mkdir mysql_pid
# chown mysql:mysql -R /home/software/mysql_5.7.29
7.配置my.cnf參數,根據自己的需要修改此配置
# vim /etc/my.cnf
參見 https://blog.csdn.net/mshxuyi/article/details/93881939
8.初始化MYSQL
# cd /home/software/mysql_5.7.29/bin
# ./mysqld --defaults-file=/etc/my.cnf --basedir=/home/software/mysql_5.7.29/ --datadir=/home/software/mysql_5.7.29/mysql_data --user=mysql --initialize
9.複製support-files的mysqld.server 到 /etc/init.d/mysqld,並且設置開啓啓動和service
設置開機自啓動服務控制腳本:(將{basedir}/ support-files/mysql.server 拷貝爲/etc/init.d/mysqld並設置運行權限)
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --list mysqld
# systemctl start mysqld //開啓 MySQL Server
# systemctl status mysqld //查看 MySQL Server 狀態
# systemctl stop mysqld //關閉 MySQL Server
10.修改/etc/my.cnf,/etc/init.d/mysqld,配置basedir和datadir
11.查看臨時密碼,並登陸進去重置密碼,否則外界無法訪問
# grep 'temporary password' /home/software/mysql_5.7.29/mysql_log/error.log
mysql>set password=password('Qwer123!@#$');
mysql>grant all privileges on *.* to root@'%' identified by 'Qwer123!@#$';
mysql>flush privileges;
12.創建其他用戶
mysql>CREATE USER 'ea'@'%' IDENTIFIED BY 'Qwer123!@#$';
mysql>grant all privileges on *.* to ea@'%' identified by 'Qwer123!@#$';
mysql>flush privileges;