MySQL远程访问失败首要排查服务是否运行,执行mysql -u root -p确认本地可登录;若失败则启动服务,再修改user表host为%或指定IP、放行3306端口、将bind-address设为0.0.0.0并重启。

确认 MySQL 服务已运行且本地可登录
远程访问失败,往往不是权限问题,而是 MySQL 根本没起来,或者你连本地都登不进去。先用 mysql -u root -p 尝试登录,输入密码后能进命令行才算基础正常。如果报错 Can't connect to local MySQL server,说明服务未启动,需先执行 sudo systemctl start mysqld(CentOS/RHEL)或 sudo service mysql start(Ubuntu/Debian)。
修改 root 用户的 host 值为 % 或指定 IP
MySQL 的用户权限由 user 表中的 host 字段控制,默认安装后 root@localhost 只允许本机连接。远程访问需要新增或更新一条记录,让 root(或其他用户)能从非本地地址登录。
登录 MySQL 后执行:
USE mysql; UPDATE user SET host='%' WHERE user='root' AND host='localhost'; FLUSH PRIVILEGES;
⚠️ 注意:host='%' 表示允许任意 IP 连接,生产环境建议替换为具体 IP,如 '192.168.1.100';如果该记录不存在,应改用 CREATE USER 'root'@'%' IDENTIFIED BY 'your_password'; + GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';。
检查并关闭防火墙或放行 3306 端口
即使 MySQL 允许远程连接,系统防火墙也可能拦截 3306 端口。常见错误是「能 ping 通服务器,但 telnet ip 3306 超时」。
安装说明重要提醒:程序不支持二级目录安装,请使用一级目录或二级目录绑定!第一步,确定你的服务器支持PHP+mysql。第二步,确定你的服务器开启了gd库。第三步,将upload文件内的文件上传到网站的根目录第四步,访问你的域名+ /install/index.html进行安装,linux系统访问你的域名+ /Install/index.html第五步,按照安装程序步骤进行安装配置第六步,安装完毕后
- CentOS 7+/RHEL:运行
sudo firewall-cmd --permanent --add-port=3306/tcp,再sudo firewall-cmd --reload - Ubuntu/Debian(ufw):执行
sudo ufw allow 3306 - 云服务器(如阿里云、腾讯云):还需在安全组中手动添加入方向规则,开放 TCP:3306
验证端口是否监听:运行 sudo netstat -tlnp | grep :3306,输出中应含 0.0.0.0:3306 或 *:3306;若只显示 127.0.0.1:3306,说明 MySQL 绑定到了本地回环,需修改配置文件。
确认 bind-address 配置未限制监听范围
MySQL 默认可能只监听 127.0.0.1,导致即使开了远程权限也无法响应外部请求。检查配置文件(通常为 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf)中的 bind-address 设置:
[mysqld] bind-address = 0.0.0.0
改成 0.0.0.0 表示监听所有 IPv4 接口;设为 :: 则同时监听 IPv6;注释掉该行有时也生效,但显式声明更可靠。改完必须重启服务:sudo systemctl restart mysqld。
实际调试时最容易漏掉这一项——权限、密码、防火墙全对,就卡在 bind-address 没放开。