要让MySQL支持远程访问,需修改bind-address为0.0.0.0以监听所有IP,重启MySQL服务;再通过GRANT命令授权用户从%或指定IP远程登录,并执行FLUSH PRIVILEGES刷新权限;最后确保防火墙或云安全组开放3306端口,方可成功远程连接。

要让MySQL支持远程访问,不能只靠开启网络连接,还需要正确配置用户权限和服务器设置。默认情况下,MySQL只允许本地访问(localhost),需要手动调整配置才能让外部主机连接。
修改MySQL绑定地址
MySQL默认只监听本地回环地址(127.0.0.1),需改为监听所有IP或指定公网IP:
bind-address = 0.0.0.0
这表示监听所有网络接口。若只想允许特定IP访问,可填写该IP地址。
重启MySQL服务
修改配置后必须重启服务使更改生效:
- Linux系统执行:sudo systemctl restart mysql 或 sudo service mysql restart
- Windows系统可在服务管理器中重启MySQL服务
创建或修改用户远程访问权限
登录MySQL(使用root或其他有权限账户):
mysql -u root -p
进入后执行以下命令授权远程访问:
- 允许特定用户从任意主机访问:
- 允许用户从指定IP访问(更安全):
- 刷新权限使变更立即生效:
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'192.168.1.100' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;
注意:如果用户已存在但只能本地登录,需检查是否已有'用户名'@'localhost'记录,必要时删除或更新对应权限。
防火墙与网络设置
确保服务器防火墙放行MySQL端口(默认3306):
- Linux使用ufw:sudo ufw allow 3306
- 使用iptables:sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
- 云服务器(如阿里云、AWS)还需配置安全组规则,开放3306端口入站流量
测试远程连接可用客户端工具(如Navicat、MySQL Workbench)或命令行:
mysql -h 服务器IP -u 用户名 -p
基本上就这些。只要配置文件改了绑定地址,用户权限开了远程主机访问,防火墙也放行了端口,远程连接就能通。关键是每一步都不能漏,尤其是权限和防火墙,最容易出问题。










