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網段的遠程。