You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下IP连接MySQL失败(错误113),如何解决?

解决MySQL无法通过IP地址连接的问题(错误113)

问题场景

Python程序通过localhost连接MySQL正常,但替换为Ubuntu系统的IP地址时,报错:'Can't connect to MySQL server on (IP):3306' (113)。

解决步骤

1. 修改MySQL绑定地址

MySQL默认仅监听localhost,需调整配置让其对外IP开放:

  • 打开MySQL配置文件:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  • 找到bind-address配置项,将其修改为0.0.0.0(监听所有IP)或你的具体IP地址
  • 重启MySQL服务生效:sudo systemctl restart mysql

2. 授权用户从指定IP访问

默认数据库用户可能仅允许localhost登录,需更新权限:

  • 登录MySQL控制台:mysql -u root -p
  • 执行授权命令(二选一):
    • 允许用户从任意IP访问:
      GRANT ALL PRIVILEGES ON `你的数据库名`.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码';
      
    • 允许用户从指定IP访问:
      GRANT ALL PRIVILEGES ON `你的数据库名`.* TO '你的用户名'@'你的IP地址' IDENTIFIED BY '你的密码';
      
  • 刷新权限:FLUSH PRIVILEGES;

3. 开放Ubuntu防火墙3306端口

Ubuntu的ufw防火墙可能拦截了MySQL端口的外部连接:

  • 查看防火墙状态:sudo ufw status
  • 若3306端口未开放,添加规则:sudo ufw allow 3306/tcp
  • 重新加载防火墙:sudo ufw reload

4. 确认IP地址正确性

  • 用ip addr命令查看系统正确的对外IP(通常在eth0或wlan0网卡的inet字段下)
  • 确保Python代码中DB_HOST填写的是该真实IP,而非127.0.0.1或localhost

测试连接

用以下命令测试IP端口是否可达:

nc -zv 你的IP地址 3306

若输出succeeded!,说明网络层面已打通,可重新运行Python程序测试。

内容的提问来源于stack exchange,提问作者Merd Ceferzade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:57:43