我在Ubuntu 12.04上运行了MySQL Server 5.5.32。 Ubuntu正在VM上运行。主机平台是Windows 7. 如何从Windows连接Ubuntu的MySQL?
到目前为止,我已完成以下操作:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
运行show grant for root;
会显示:
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
但是当我尝试从Windows上运行的SQLYog连接到此服务器时,出现错误Error 2003 Cannot connect to mysql server on '192.168.xxx.xxx'
。
正在向SQLYog提供IP,我是从ifconfig
获得的。提供了inet addr。
inet addr:192.168.226.xxx Bcast:192.168.226.yyy
使用的地址是不正确还是这些授权问题?请指教。
答案 0 :(得分:15)
你的问题是(可能)你的mysql绑定到127.0.0.1
而不是0.0.0.0
。
您应该将/etc/mysql/my.cnf
中的绑定更改为0.0.0.0
bind-address = 0.0.0.0
然后重新启动mysql。
答案 1 :(得分:2)
在较新版本的MySQL中,默认情况下,默认情况下只能在localhost上侦听,而不是跳过网络 bind-address = 127.0.0.1
因此,您需要将机器IP添加到此处,或者只是在不担心安全问题时将其注释掉。
答案 2 :(得分:1)
错误消息Error No. 2003: Can't connect to MySQL server on 'localhost' (or some other host)
只是意味着以下(或类似)原因之一无法建立连接:
指定主机上没有运行MySQL服务器
使用TCP-IP不允许连接MySQL服务器。检查MySQL配置文件中的“skip-networking”设置(Windows上的my.ini,Unix / Linux上的my.cnf)。它应该被注释为'#skip-networking'。如果未注释掉,则执行此操作并重新启动MySQL服务器以使更改生效。 SQLyog需要使用TCP-IP进行连接。
某些网络问题会阻止连接。它可能是网络配置错误或防火墙问题。我们有时经历过一些防火墙阻止TCP-IP连接,即使它声称被禁用。最常见的是卸载并重新安装防火墙。
尝试连接到ISP的MySQL服务器时,此错误消息通常表示已阻止与MySQL的直接连接。然后,您必须使用HTTP隧道或SSH隧道连接。
答案 3 :(得分:1)
我认为问题在于您的虚拟机设置中的网络适配器设置
在虚拟机设置中这样做。
虚拟机设置 - >网络适配器设置 - >选择Bridged
当网络连接处于桥接模式时,VM将连接到物理网络。
将网络连接更改为桥接后,尝试ping Windows计算机中的VM主机。
如果虚拟机正在你的Windows机器上ping,那么它就能正常工作。
答案 4 :(得分:0)
错误编号2003:无法连接到'192.168.x.x'上的MySQL服务器
只是意味着以下(或类似)原因之一无法建立连接:
指定主机上没有运行MySQL服务器
使用TCP-IP不允许连接MySQL服务器。检查MySQL配置文件中的“skip-networking”设置(Windows上的my.ini,Unix / Linux上的my.cnf)。它应该被注释为'#skip-networking'。如果未注释掉,则执行此操作并重新启动MySQL服务器以使更改生效。 SQLyog需要使用TCP-IP进行连接。
确保您可以使用telnet连接到MySQL端口
C:\ telnet hostname / IP_address port