1. 下載安裝包
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
下載完成后解壓:
tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
這個鏈接的文件包含MySQL所有組件,而我們安裝需要的組件如下:
(1) mysql-community-common-8.0.11-1.el7.x86_64.rpm
(2) mysql-community-libs-8.0.11-1.el7.x86_64.rpm
(3) mysql-community-client-8.0.11-1.el7.x86_64.rpm
(4) mysql-community-server-8.0.11-1.el7.x86_64.rpm
你也可以按照這個列表逐個下載,本文為了方便,選擇了全集包。
2. 查詢並刪除CentOS自帶的Mariadb
(1) 查詢:
rpm -qa|grep mariadb
得到結果:
(2) 刪除:
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.centos.x86_64
3.按照1中的列表順序逐個安裝MySQL所需組件
yum localinstall -y mysql-community-common-8.0.11-1.el7.x86_64.rpm
yum localinstall -y mysql-community-libs-8.0.11-1.el7.x86_64.rpm
yum localinstall -y mysql-community-client-8.0.11-1.el7.x86_64.rpm
yum localinstall -y mysql-community-server-8.0.11-1.el7.x86_64.rpm
4. 檢查安裝結果
rpm -qa | grep mysql
5. 啟動
systemctl start mysqld
systemctl status mysqld
MySQL在啟動過程中會進行如下操作:
(1) 初始化MySQL;
(2) 在/var/lib/mysql目錄下生成一個SSL證書和密鑰文件;
(3) 安裝validate_password plugin;
(4) 創建一個超級用戶帳號'root'@'localhost,並且為其生成一個隨機密碼存放在/var/log/mysqld.log文件。
6. 修改密碼
安裝完成之后,通過下面的方式找到root默認密碼,然后登錄mysql進行修改:
grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass1!';
密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。
7. 添加賬戶
為了安全起見,強烈建議在遠程連接的時候使用非root賬戶。創建test用戶,密碼為“MyNewPass1!”,為其分配所有權限。
CREATE USER 'test'@'localhost' IDENTIFIED BY 'MyNewPass1!';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' WITH GRANT OPTION;
CREATE USER 'test'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
flush privileges;
注意,每次執行完create user命令,一定要通過以下命令查看創建用戶是否成功:
use mysql; select host, user from user;
對於新創建的賬戶,MySQL 8默認它的密碼插件為caching_sha2_password,而現有的客戶端工具大都只支持mysql_native_password插件,如果你用現有版本的客戶端工具鏈接會報錯“authentication plugin caching_sha2_password cannot be loaded”。
解決方法是改變用戶的密碼插件:
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'MyNewPass1!';
flush privileges;
然后需要修改配置文件:
sudo vi /etc/my.cnf
重啟MySQL:
systemctl restart mysqld
查看用戶和權限是否創建成功:
select user, host, plugin, authentication_string from mysql.user;
SHOW GRANTS FOR 'test'@'%';
8. 設置開機啟動
systemctl enable mysqld
9. 開放端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload sudo firewall-cmd --list-ports