我在Ubuntu桌面上安装MySql服务器。我可以在指定时将MySql查询浏览器连接到它 Server Hostname
如 localhost
,但当我用机器的IP替换它时它会停止工作(即使MySql查询浏览器在同一台机器上运行)。
到目前为止我所做的就是删除iptables,但它似乎与它无关。
这是错误消息
无法连接到主机'192.168.0.2'。
MySQL错误Nr。 2003
无法连接到'192.168.0.2'上的MySQL服务器(111)
单击“Ping”按钮以查看是否存在网络问题。
但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”数据库中有一个用户将“主机”设置为您的IP地址 - 在我的情况下,我的IP在家中。因此,用户“joe”可能有多条记录,每条记录可能会调用一条记录。要看看你在那里有什么:
use mysql;
select Host, User, Password from user where user='joe';`
在我的情况下,结果我的用户现在有正确的IP但密码也丢失了。我剪切了密码(它是哈希或其他东西),这解决了我特定的远程连接问题:
update user set Password='5493845039485' where user='joe';
还有一件事,在my.cnf中你可能想要设置“port = 3306”或你计划使用的任何端口。