我在CentOS 7.1上安装了Mysql5.7和docker服务。将mysql与命令mysql -u root
本地连接是可以的。但是当我尝试使用mysql -u root -h 172.17.0.1
172.17.0.1
是本地docker0 ip地址时,它无法连接。
[root@test1 workspace]# mysql -u root -h 172.17.0.1
ERROR 1130 (HY000): Host 'test1.novalocal' is not allowed to connect to this MySQL server
我已经搜索了原因并尝试授予test1.novalocal
访问权限,但没有幸运。
mysql> grant all on *.* to root@'test1.novalocal' with grant option;
ERROR 1133 (42000): Can't find any matching row in the user table
还有其他线索吗?
答案 0 :(得分:1)
尝试:
grant all on *.* to 'root'@'test1.novalocal' identified by 'somepassword' with grant option;
MySQL最新版本附带NO_AUTO_CREATE_USER
防止GRANT语句自动创建新用户if 除非认证信息是,否则它会这样做 指定。该语句必须使用指定非空密码 IDENTIFIED BY或使用IDENTIFIED WITH的身份验证插件。
如果需要使用空白密码,您可以disable此模式!
MySQL Workbench甚至警告
0行受影响,1警告:1287使用GRANT创建新的 user已弃用,将在以后的版本中删除。
在将来的版本中,您可能需要CREATE a user before GRANT。
答案 1 :(得分:0)
172.17.0.1是docker0 ip,而不是你的容器ip。
您可以通过docker inspect yourcontainerid