如何设置MySql服务器以接受远程连接?


16

我正在Ubuntu桌面上安装MySql服务器。当指定Server Hostnameas时localhost,我可以将MySql Query Browser连接到它,但是当我用机器的IP替换它时,它将停止工作(即使MySql Query Browser在同一台机器上运行)。

到目前为止,我所做的只是删除iptables,但似乎与它无关。

这是错误消息

无法连接到主机“ 192.168.0.2”。

MySQL错误Nr。2003年

无法连接到“ 192.168.0.2”上的MySQL服务器(111)

单击“ Ping”按钮以查看是否存在网络问题。

ping可以,但是

Answers:


22

您必须将mysqld绑定到不同于127.0.0.1的IP。

打开您的my.cnf(通常为/etc/mysql/my.cnf)并更改显示以下内容的行

bind = 127.0.0.1

到您的计算机用来连接外部世界的任何IP。0.0.0.0绑定到所有IP地址。更改后不要忘记重新启动mysqld。


现在出现了另一个错误:无法连接到主机“ 192.168.0.2”。MySQL错误Nr。1130主机“ whatever-vubuntu.local”不允许连接到该MySQL服务器
Jader Dias

user @ localhost和user @ <主机名>是不同的。您必须添加用户才能从远程主机进行连接。
詹姆斯

这不是问题。我已经做到了,但仍然出现错误。
Cerin 2013年

应该这样bind-address吗?
Thomas Weller


2

这里还解释了一些其他潜在问题:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html http://dev.mysql.com/doc/refman/5.1/en /access-denied.html

如果要授予所有数据库所有特权,请尝试

grant all on *.* to 'joe'@'%';

但是,在执行此操作之前,请确保在“ mysql”数据库中有一个用户,该用户的“主机”设置为您的IP地址-在我的情况下,这是我在家里的IP。因此,用户“ joe”可能有多个记录,而他可能从中调用的每个IP都有一个记录。要查看您已经拥有的内容:

use mysql;
select Host, User, Password from user where user='joe';`

以我为例,原来我的用户现在具有正确的IP,但密码也丢失了。我剪切了密码(它是散列的或类似的东西),这解决了我特殊的远程连接问题:

update user set Password='5493845039485' where user='joe';

还有一件事,在my.cnf中,您可能想要设置“ port = 3306”或您打算使用的任何端口。

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.