遷移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'@'%'; |