163

我在 linux 机器 IP = 192.168.1.100 上安装了 mysql 服务器,但是当我尝试连接到这个 IP 时它总是错误(111)。但使用 localhost 和 127.0.0.1 就可以了。

啤酒@啤酒笔记本电脑# ifconfig | grep "inet 地址"
          inet 地址:127.0.0.1 掩码:255.0.0.0
          inet 地址:192.168.1.100 广播:192.168.1.255 掩码:255.255.255.0

beer@beer-laptop# mysql -ubeer -pbeer -h192.168.1.100
错误 2003 (HY000): 无法连接到“192.168.1.100”上的 MySQL 服务器 (111)

beer@beer-laptop# mysql -ubeer -pbeer -hlocalhost
欢迎使用 MySQL 监视器。命令以 ; 结尾 或\g。
你的 MySQL 连接 ID 是 160
服务器版本:5.1.31-1ubuntu2(Ubuntu)

输入“帮助”;或 '\h' 寻求帮助。键入 '\c' 以清除缓冲区。

mysql>

beer@beer-laptop# mysql -ubeer -pbeer -h127.0.0.1
欢迎使用 MySQL 监视器。命令以 ; 结尾 或\g。
您的 MySQL 连接 ID 是 161
服务器版本:5.1.31-1ubuntu2(Ubuntu)

输入“帮助”;或 '\h' 寻求帮助。键入 '\c' 以清除缓冲区。

mysql>

从另一台机器连接它也是错误 111。

another@another-laptop# mysql -ubeer -pbeer -h192.168.1.100
错误 2003 (HY000): 无法连接到“192.168.1.100”上的 MySQL 服务器 (111)

在这种情况下使用 localhost/127.0.0.1 和 192.168.1.100 有什么区别。我不知道如何从另一台机器连接到这个数据库。

请帮忙。谢谢。

4

4 回答 4

272

这可能意味着您的 MySQL 服务器仅在侦听 localhost 接口。

如果你有这样的行:

bind-address = 127.0.0.1

在您的my.cnf配置文件中,您应该对它们进行注释(在行首添加 #),然后重新启动 MySQL。

sudo service mysql restart

当然,要做到这一点,您必须是服务器的管理员。

于 2009-09-14T10:53:41.033 回答
40

111 表示连接被拒绝,这反过来意味着你的 mysqld 只监听localhost接口。

要更改它,您可能需要查看文件部分中的bind-address值。mysqldmy.cnf

于 2009-09-14T10:50:26.967 回答
11

如果之前的所有答案都没有给出任何解决方案,您应该检查您的用户权限。

如果您可以登录root到 mysql,那么您应该添加以下内容:

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY  '***';
GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.100' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

然后尝试使用 再次连接mysql -ubeer -pbeer -h192.168.1.100。它应该工作。

于 2011-09-12T21:55:43.660 回答
7

如果您正在运行 cPanel/WHM,请确保 IP 已在防火墙中列入白名单。您还需要将该 IP 添加到您尝试连接的 cPanel 帐户中的远程 SQL IP 列表中。

于 2012-04-30T18:34:32.500 回答