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

时间:2014-12-14 14:45:03

标签: mysql

我知道这看起来像是一个重复的问题,但我尝试了几件事,但仍然没有用。

我想从另一台机器10.9.244.43连接到机器10.102.5.83上的mysql。但是当我尝试mysql -h10.9.244.43 -uroot -p时,我收到以下错误:

ERROR 2003 (HY000): Can't connect to MySQL server on '10.9.244.43' (111)

我在/etc/mysql/my.cnf中检查并评论了bind-address。但它仍然无法连接。

当我在10.9.244.43上尝试以下命令时:

SELECT USER(),CURRENT_USER();

我得到了:

+----------------+----------------+
| USER()         | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+

当我尝试时:

SHOW GRANTS;

我得到了以下内容:

+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*E7C06D40357612837106427CD0F2B2058' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------------+

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果你想从另一台机器(根本想法)以root身份连接,你想要将权限授予'root'@'%'而不是'root'@'localhost'。

'root'@'localhost'只允许root用户从本地机器连接。 'root'@'%'允许任何主机上的root连接,请注意这些是不同的用户,只是因为在两台服务器上调用root帐户并不会使它们成为同一个帐户,这就是您需要允许从任何计算机访问的原因。

如果您总是从特定机器连接,您也可以将权限分配给'root'@'10.102.5.83',但这有时会很棘手,具体取决于主机名的定义方式和公共IP地址等...

要测试的其他内容是防火墙和绑定地址。

如果您使用'root'@'%'打开世界访问权限,则应在设置完成后限制防火墙访问。

最后,请记住这些是两个独立的权限,因此您实际上可以分配'root'@'%'不同的权限,而不是'root'@'localhost',例如删除删除表,更改表的能力,等...