1.配置MySQL 8.0的安裝源:

2.安裝MySQL 8.0
sudo yum --enablerepo=mysql80-community install mysql-community-server
接下來選擇 y

下載完繼續 y

3.啟動MySQL服務
啟動命令:
sudo service mysqld start


ps:如果不確定是否啟動了服務就運行如下命令
service mysqld status

4.查看MySQL的root臨時密碼
安裝完MySQL之后,都會生成一個臨時的密碼讓root用戶登錄,那么應該怎么獲取臨時密碼呢?
運行如下命令:
grep "A temporary password" /var/log/mysqld.log

5.把臨時密碼修改為一個自己能記得住的密碼
1).先用臨時的密碼登錄MySQL
運行命令:
mysql -uroot -p


登錄成功后

2).登錄成成功后運行如下命令修改密碼
修改密碼命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
ps:注意語句結尾必須以分號結束

如果出現這種情況,那么就是你的密碼復雜度不符合MySQL所要求的
解決這種情況有兩種方式:
①把密碼改復雜點,讓它符合密碼驗證策略,這個當然是最好的,符合國際慣例;
②把密碼驗證策略改簡單點,讓它適用簡單的密碼,這個符合懶人的做法。
查看密碼驗證策略方法,運行如下命令:(前提是重置密碼之前是不讓看的)
SHOW VARIABLES LIKE 'validate_password.%';

官方文檔提供的文檔
validate_password.length 是密碼的最小長度,默認是8
validate_password.policy 驗證密碼的復雜程度
validate_password.check_user_name 用戶名檢查,用戶名和密碼不能相同
密碼長度修改為4:
set global validate_password.length=4;


密碼復雜度修改為0:
set global validate_password.policy=0;


去掉不允許用戶名和密碼相同的要求:
set global validate_password.check_user_name=off;


然后運行修改密碼的命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

6.配置遠程訪問
發現客戶端無法連接MySQL,那時因為我們沒有開通遠程訪問權限
開啟遠程訪問權限步驟:
1).
use mysql;

2).
select host, user, authentication_string, plugin from user;

如上圖,發現root的host是localhost,不是%, 那我們就加個host是%的root賬號:
命令:
CREATE USER 'root'@'%' IDENTIFIED BY 'root';


再重新查一下用戶
命令:
select host, user, authentication_string, plugin from user;

上面步驟成功后運行如下代碼:
GRANT ALL ON *.* TO 'root'@'%';


這樣就成功了
用navicat連接mysql還是會報錯:
原因是mysql8的加密方式規則不一樣,是caching_sha2_password

把加密方式改成mysql_native_password就行了:
ALTER USER '[用戶名]'@'%' IDENTIFIED WITH mysql_native_password BY '[密碼]';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';


加密方式已經修改完成 mysql_native_password:

如果還不成功,可能Linux沒有開放3306端口
操作步驟:
1、登陸到linux系統
2、輸入防火牆開放端口命令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
3、刷新防火牆:
firewall-cmd --reload
* 注意:--add-port=后面接需要開放的端口



