CentOs7 中mysql8 設定遠端連線

antor發表於2024-08-07

遷移csdn
CentOs7中Mysql8.0設定遠端連線
1 登陸Mysql

mysql -uroot -p

輸入密碼

2 選擇 mysql 資料庫

use mysql;

在mysql資料庫中儲存了使用者資訊的user表

3 在 mysql 資料庫的 user 表中檢視當前 root 使用者的相關資訊

select host, user, authentication_string, plugin from user;

可以看到root使用者的host預設為localhost,只允許本地訪問,不允許遠端連線…

為了安全(網上有人是這麼說的,作為菜雞,我也不知道安全這方面的知識),新建立一個使用者用於遠端連線

4 新建使用者

#CREATE USER '使用者名稱'@'主機' IDENTIFIED BY '密碼';

CREATE USER 'root'@'%' IDENTIFIED BY 'NewPassword@123';

這一步提示密碼過於簡單,先執行一下兩條命令,再次執行建立使用者的命令就行 .

set global validate_password.policy=0;

set global validate_password.length=1;

5 mysql8.0預設的加密方式是“caching_sha2_password”,而navicat只支援以前的"mysql_native_password",所以接下來修改密碼加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'NewPassword@123';

修改後可以執行select host,user,plugin from user;語句,檢視新增使用者的plugin是否是"mysql_native_password"

6 設定該賬戶可以遠端登陸

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

7 重新整理許可權

flush privileges;

8 用navicat連線看是否可以遠端登陸,預設埠為3306,如果不能,則檢視防火牆是否開啟了該埠。

如果沒開,則執行以下命令:

新增埠:firewall-cmd --zone=public --add-port=3306/tcp --permanent

過載防火牆:firewall-cmd --reload

以上,是折騰了一整天弄好的.

mysql8.0和5.7比,改動了挺多的地方:

1 修改密碼驗證

5.7 8.0
set global validate_password_policy=0; set global validate_password.policy=0;
set global validate_password_length=1; set global validate_password.length=1;

2 設定賬號遠端登陸

5.7 8.0
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON . TO 'root'@'%';

相關文章