连接到局域网上其他机器上的 MySql

连接到局域网上其他机器上的 MySql

我在连接同一网络上的另一台机器上的 MySql 数据库时遇到问题。

无法连接到指定实例。MySql 错误编号 1130 主机“abc”不允许连接到此 MySql 服务器(Pinging 成功时间 1-3 毫秒 ttl =128)

我已检查以下内容:

在 hlocal 机器下启用 Tcp/IP RegEdit....参数..maxUserpORT 和时间延迟..将所有.授予'root'@'Myipaddress',请尽早提供帮助..

答案1

您收到的错误消息表明您已正确连接到远程服务器上的端口 3306。因此您的网络设置没有问题。

您遇到的是 ACL 问题 - “主机‘abc’不允许连接到此 MySql 服务器”。

我对 MySQL ACL 有点生疏,但不要授予'root'@访问权限'my.ip.address',而是尝试授予'root'@'abc'

答案2

首先,为用户帐户创建 ACL 以测试连接性。

GRANT SELECT ON test.* TO testuser@'%' IDENTIFIED BY 'abc123';

接下来,尝试以 testuser 身份连接。

> mysql -u testuser -p -h mysqlhost_or_ip

如果可以连接,那太好了,问题出在 ACL 上。如果无法连接,那么你可能需要添加跳过名称解析我的cnf并调试 DNS 不会阻止连接。

答案3

您已经尝试了一些不错的建议,但我想补充一点,默认情况下不允许远程 root 访问是有充分理由的。

如果您尝试了建议的方法但仍然有问题,您可以尝试使用 Wireshark(或类似程序)监控网络流量,并准确查看发送和接收的内容,因为这应该可以清楚地显示正在发生和未发生的情况。这有时比错误消息更能说明问题。

答案4

我不知道如何在 Windows 上运行 MySQL,但在 *nix 机器上,您必须打开 MySQLs 配置文件 (my.cnf) 并告诉 MySQL 守护进程监听您机器上的所有 IP 地址,而不仅仅是本地主机。

在 MySQL 5.0.51 中,您有:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1

相关内容