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网段的远程。