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

远程无法连接MariaDB问题求助(含端口绑定错误日志)

MariaDB远程连接失败的修复步骤

问题背景

服务器(IP:1.2.3.4)安装MariaDB后,已为远程IP(a.b.c.d)创建专属用户,但从a.b.c.d连接时触发错误:

ERROR 2003 (HY000): Can't connect to MySQL server on '1.2.3.4' (111 "Connection refused")

本地排查结果:

  • 从a.b.c.d telnet 1.2.3.4的3306端口失败
  • 在1.2.3.4服务器上用自身IP连接MariaDB同样报2003错误
  • 本地用mysql -h localhost -u root -p可正常连接
  • 防火墙已关闭,用户权限配置完成,但MariaDB日志显示绑定错误(已翻译为中文):
221215 17:10:12 [错误] 无法启动服务器:绑定TCP/IP端口时出错。错误:99:无法分配请求的地址
221215 17:10:12 [错误] 是否已有另一个mysqld服务器在端口3306上运行?
221215 17:10:12 [错误] 终止

核心问题

MariaDB服务启动时无法绑定到指定的TCP/IP地址,导致仅能通过localhost(Unix套接字或127.0.0.1)连接,无法通过服务器的1.2.3.4 IP对外提供服务。

修复步骤

1. 修改MariaDB配置文件

服务器的有效配置文件为/etc/my.cnf,执行编辑操作:

vi /etc/my.cnf

找到[mysqld]段落,处理bind-address配置项:

  • 若该配置已存在:
    • 如果值为127.0.0.1:说明服务仅允许本地连接,需修改为允许外部访问的地址
    • 如果值为1.2.3.4:检查服务器网卡是否实际配置了该IP,若未配置则改为0.0.0.0
  • 若该配置不存在:直接添加
[mysqld]
bind-address = 0.0.0.0

0.0.0.0表示允许所有IP访问,若需限制仅指定IP访问,可替换为对应IP(如1.2.3.4或a.b.c.d,多IP用逗号分隔)。

2. 重启服务并验证本地连接

保存配置后重启MariaDB服务:

systemctl restart mariadb

检查服务状态确认启动成功:

systemctl status mariadb

在服务器本地用自身IP测试连接:

mysql -h 1.2.3.4 -u root -p

能成功连接则说明绑定配置生效。

3. 测试远程连接

从a.b.c.d服务器执行连接命令:

mysql -h 1.2.3.4 -u 你的远程用户名 -p

额外排查点

若重启后仍出现绑定错误:

  • 检查服务器网卡是否存在1.2.3.4 IP:
    ip addr show
    
  • 检查3306端口是否被其他进程占用:
    netstat -tulpn | grep 3306
    
    若有占用,停止对应进程或修改MariaDB监听端口(在/etc/my.cnf中添加port = 新端口号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:15:27