远程 MySQL 连接失败(10060)

远程 MySQL 连接失败(10060)

当我尝试从远程计算机连接到 MySQL 数据库时,收到一条提示:Connection Failed: [HY000] [MySQL][ODBC 5.1 Driver]Can't Connect to MySQL server on 'XXX.XXX.XX.XX' (10060)

我已经在 MySQL 管理员中创建了一个用户帐户并添加了一个主机以启用远程访问,我也对端口上的 Windows 防火墙进行了例外设置,3306但连接仍然失败。

问题是什么?

谢谢!

答案1

我假设你的 mysql 服务器正在 Windows 上运行...因此打开一个 DOS 窗口并输入:

netstat -an

你应该找到这样的一行:

TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING

这告诉您 mysql 服务器正在运行并监听 TCP 端口 3306。

您可以进行的另一项测试是通过 telnet(从另一台电脑)连接到您的 mysql 服务器:

telnet ip_mysql_server 3306

这将打开一个 telnet 会话:

Connected to server_name.
Escape character is '^]'.
5.0.XX-community-nt-log

答案2

错误 10060 意味着你不允许远程访问 Web 服务器。因此

  1. 确保您使用的是 MySQL 服务器的正确 IP 地址。
  2. 您的连接的其余参数是相同的。
  3. 使用%通配符作为用户帐户的主机部分,以允许从任何主机进行连接(请参阅添加用户帐户文章)。

请参见远程连接时出现错误 10060 的解决方案发布以了解详情。

答案3

首先,这是一个非常为数据库服务器设置全球开放端口是个坏主意。尤其是当它位于 MySQL 默认端口上时。您只会引诱他人尝试入侵您的数据库。

您是否尝试过使用端口扫描工具,例如nmap您是否可以从远程计算机扫描数据库服务器?它会告诉您端口是否已打开nmap -PN -p 3306 XXX.XXX.XX.XX

答案4

1)iptables 访问

sudo iptables -I INPUT -p tcp --dport 3306-j ACCEPT 
sudo service iptables save

2)我的.conf

[mysqld]
port = 3306
bind-address = 0.0.0.0

3)mysql

GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%';
FLUSH PRIVILEGES;

4)mysqld

sudo service mysqld restart

相关内容