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


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

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

这是错误消息

无法连接到主机'192.168.0.2'。

MySQL错误Nr。 2003

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

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

但ping是可以的


16
2017-12-06 16:47






答案:


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

打开你的my.cnf(通常是/etc/mysql/my.cnf)并更改所说的行

bind = 127.0.0.1

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


22
2017-12-06 16:53



现在有一个不同的错误:无法连接到主机'192.168.0.2'。 MySQL错误Nr。 1130主机'whatever-vubuntu.local'不允许连接到此MySQL服务器 - Jader Dias
user @ localhost和user @ <hostname>不同。您必须添加用户才能从远程主机进行连接。 - James
这不是问题。我做到了这一点,我仍然得到错误。 - Cerin
应该是这样的 bind-address? - Thomas Weller


除了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


5
2017-12-06 17:06





这里解释了几个潜在的问题:

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”或你计划使用的任何端口。


2
2018-03-21 23:40