mysql無法遠程連接問題(ERROR 1045 (28000): Access denied for user ‘root’)

mysql版本 : 8.0.21 

使用mysql 作為nextcloud的資料庫。之前使用挺正常的,因為被黑客勒索過一次,重新啟動了一個mysql的docker鏡像。

結果資料庫配置老是失敗,nextcloud提示無法訪問mysql。

  進入docker 鏡像查看,使用mysql -p 命令,可以正常登陸,密碼也是正確的。

但是使用mysql -h 172.17.0.7 -p 命令,則會提示無法訪問。

 

 於是,查看root許可權,提示報錯。似乎沒有配置遠程訪問的許可權。

ERROR 1141 (42000): There is no such grant defined for user ‘root’ on host ‘%’

嘗試配置遠程訪問許可權,報錯。

grant all privileges on *.* to ‘root’@’172.17.0.%’ identified by ‘123456’;

 

 上網查了,才知道,mysql 8以後的版本,不支援這種語法,可以分兩步進行。

1,create user ‘root’@’172.17.0.%’ identified by ‘123456’;

2,grant all privileges on *.* to ‘root’@’172.17.0.%’ with grant option;

  配置成功後,使用mysql -h xxx -p 嘗試訪問,成功。

到一步,mysql資料庫就可以支援遠程訪問了,而且root帳號僅支援172.17.0.x網段的遠程。

Tags: