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 'lylong'@'%' IDENTIFIED BY '901109';

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

set global validate_password.policy=0;

set global validate_password.length=1;

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

ALTER USER 'lylong'@'%' IDENTIFIED WITH mysql_native_password BY '901109';

修改后可以執行select host,user,plugin from user;語句,查看新增用戶的plugin是否是"mysql_native_password"

6 設置該賬戶可以遠程登陸

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

7 刷新權限

flush privileges;

8 用navicat連接看是否可以遠程登陸,默認端口為3306,如果不能,則查看防火牆是否開啟了該端口。

查看防火牆開放端口:iptables-save

我這里已經開了.如果沒開,則執行以下命令:

添加端口: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:GRANT ALL PRIVILEGES ON *.* TO 'lylong'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

8.0   GRANT ALL PRIVILEGES ON *.* TO 'lylong'@'%'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM