同局域网内无法通过主机IP连接MySQL服务器问题求助
MySQL局域网跨设备无法连接解决方案
- 检查MySQL服务监听配置
MySQL默认仅允许本地回环地址访问,需修改配置文件:
找到MySQL配置文件(Linux系统一般为/etc/mysql/my.cnf、/etc/my.cnf,Windows系统为安装目录下的my.ini),调整如下参数:
修改完成后重启MySQL服务生效:# 注释或者删除以下行,或者将值改为0.0.0.0/服务器局域网IP bind-address = 0.0.0.0 # 如果存在skip-networking参数,必须注释掉 # skip-networking
Linux执行systemctl restart mysqld或systemctl restart mysql,Windows在服务管理器中重启MySQL服务。
重启后可在服务器执行命令验证监听状态:
Linux:netstat -anp | grep 3306
Windows:netstat -ano | findstr 3306
确认返回结果中监听地址为0.0.0.0:3306或192.168.0.122:3306而非127.0.0.1:3306。 - 放行服务器防火墙3306端口
Linux系统若开启firewalld防火墙,执行以下命令:
若开启ufw防火墙,执行firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reloadufw allow 3306/tcp。
Windows系统需在Windows Defender防火墙的入站规则中,新增规则放行3306端口的TCP连接。
验证端口连通性:在局域网其他设备上执行telnet 192.168.0.122 3306,能正常进入交互页说明端口已通。 - 确认数据库账号访问权限
本地登录MySQL后执行以下命令检查账号权限:
若返回的SELECT user, host FROM mysql.user WHERE user='dbuser';host字段值为localhost,说明该账号仅允许本地登录,执行以下命令开放局域网访问权限:GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'%' IDENTIFIED BY 'dbpassword'; FLUSH PRIVILEGES;%代表允许所有主机访问,如需限制仅局域网访问可替换为192.168.0.%,安全性更高。 - 访问地址注意事项
127.0.0.1为本地回环地址,仅指向当前访问设备本身,局域网其他设备访问服务器时必须使用服务器的局域网IP192.168.0.122,不能使用127.0.0.1
内容的提问来源于stack exchange,提问作者Roberto
相关产品推荐
相关产品推荐

