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: