【问题标题】:Error connecting to MySQL database remotely远程连接 MySQL 数据库时出错
【发布时间】:2026-02-07 02:10:01
【问题描述】:

我有一个 MySQL 数据库,我想从远程计算机连接到该数据库。我在 /etc/mysql/my.cnf 中注释掉了 bind-address 以允许远程连接。我现在可以在本地机器上登录 MySQL

mysql --host=[SERVER_IP] --user=[USER] --password=[PASSWORD] [DATABASE]

效果很好。但是,我无法从笔记本电脑登录。在这里我得到一个错误

ERROR 2003 (HY000): Can't connect to MySQL server on [SERVER_IP] (110)

当我运行与上面相同的命令时。我可以ping通服务器

64 bytes from [SERVER_IP]: icmp_seq=1 ttl=64 time=0.367 ms

没有任何错误。我也可以traceroute

1  * * *

没有任何错误。最后,我运行 nmap 得到以下结果:

3306/tcp open mysql

这表明这不是防火墙问题。

有人知道发生了什么吗?任何帮助将不胜感激!

编辑: 我忘了说我也给了用户访问权限:

 GRANT ALL ON [DB_NAME].* to '[USER]'@'%' IDENTIFIED BY '[PASSWORD]'

对不起!

【问题讨论】:

  • 您正在连接的用户是否有权从任何主机连接,还是仅限于本地主机?
  • 你能ping通,但你能telnet YOUR_SERVER_IP_OR_HOSTNAME 3306吗?
  • 我已经在 [DB_NAME].* 上运行 GRANT ALL 到 '[USER]'@'%' IDENTIFIED BY '[PASSWORD]';实际上,我忘了在帖子中提到这一点。很抱歉!
  • @Thomas 检查您的电脑是否可以通过互联网连接
  • 我无法远程登录。至少我没有得到服务器的响应。您认为这是防火墙问题吗?

标签: mysql networking mysql-error-2003


【解决方案1】:

这里有一些可能性:

  • 您无权使用来自不同计算机的文件
  • 文件不可访问
  • 您无法连接到主机
  • 用户/密码在另一台计算机上没有权限
  • 如果您说服务器没有响应,那就是您的问题,您的服务器没有响应。也就是不在线

【讨论】:

  • 但是用户/密码应该是mysql特定的,对吧?它们与底层操作系统的用户/通行证没有任何关系。
  • @Thomas 是的,但是要访问计算机,您需要用户/通行证吗?无论如何,正如你所说,你没有得到服务器的响应,这意味着你的服务器没有响应..你能给我你的代码吗?
  • 查看我的其他答案。