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

我正在Ubuntu桌面上安装MySql服务器。 当将Server Hostname指定为localhost Server Hostname时,我可以将MySql查询浏览器连接到它,但是当我将其replace为机器IP时,它停止工作(即使MySql查询浏览器在同一台机器上运行)。

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

这是错误信息

无法连接到主机“192.168.0.2”。

MySQL错误号 2003

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

点击“Ping”button查看是否有networking问题。

虽然ping是好的

你必须把你的mysqld绑定到一个不同于127.0.0.1的IP地址。

打开你的my.cnf(通常是/etc/mysql/my.cnf),并改变这个行

 bind = 127.0.0.1 

到你的机器用来连接外部世界的任何IP。 0.0.0.0绑定到所有IP地址。 改变之后不要忘记重启你的mysqld。

除了halfdan答案,我不得不执行以下的mysql命令:

 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON databasename.* TO 'username'@'clientipaddress' IDENTIFIED BY 'password' 

据我所知

http://forums.mysql.com/read.php?86,23619,41248#msg-41248

这里解释了更多的潜在问题:

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”数据库中有一个“Host”设置为你的IP地址的用户 – 在我的情况下,我的IP在家里。 因此,用户“乔”可能有多个logging,每个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”或你计划使用的任何端口。