通过VirtualBox访问MySQL服务器


20

我试图让MySQL服务器(位于VM内)响应客户端(位于主机上)。所有方法都返回相同:

Host '10.0.2.2' is not allowed to connect to this MySQL server

我确保正确的端口转发。我还确保以下my.cnf几行:

skip-external-locking
bind-address = 0.0.0.0

这对我没有用。我也尝试扮演以下角色:

bind-address = 10.0.2.2

但这对我也不起作用-服务器无法启动。

有什么想法,我哪里错了?

更新。我没有检查特权,root@%如何更改已创建的MySQL用户的特权?

解决了。


您在MySQL中创建了哪些用户帐户?
Shane Madden

我的帐户是root:root。我怀疑问题出在登录上,否则错误消息会指出某些内容Access denied for root@10.0.2.2或类似内容。
2013年

@ShaneMadden抱歉。你说得很对。事情是为了特权root@%。真是我的错。
2013年

Answers:


37

在绝大多数默认安装中,root帐户仅使用localhost,是否确定已允许该帐户从其他系统登录?从MySQL参考手册中

这意味着用户表中没有与主机主机匹配的主机值的行

因此,该列中根本没有%或。检查您当前的配置:10.0.2.2Host

select user,host from mysql.user where user='root';

您可能想要使用与现在相同的密码创建一个新的根条目。

create user 'root'@'10.0.2.2' identified by 'yourpassword';
grant all privileges on *.* to 'root'@'10.0.2.2' with grant option;
flush privileges;

1
是的 谢谢。正如您在这里所说的,我刚才也解决了。那正是我的问题。
2013年

1
Shane的答案是正确的,可以在单个命令中运行,如果您使用的是Ansible脚本/流浪汉等自动化工具,这将很有帮助:mysql -e "create user 'root'@'10.0.2.2' identified by 'yourpassword'; grant all privileges on *.* to 'root'@'10.0.2.2' with grant option; flush privileges;"
KayakinKoder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.