在局域网中部署 MySQL,核心是让同一内网下的其他设备能访问这台 MySQL 服务器,而不是仅限于本机(localhost)。关键在于配置 MySQL 的绑定地址、用户权限和防火墙规则。
修改 MySQL 绑定地址,允许局域网连接
MySQL 默认只监听 127.0.0.1(即仅本地),需改为监听局域网 IP 或所有接口:
编辑 MySQL 配置文件:Linux 通常是/etc/mysql/mysql.conf.d/mysqld.cnf,Windows 是
my.ini或
my.cnf(位于 MySQL 安装目录) 找到
bind-address行,将其改为:
bind-address = 0.0.0.0(监听所有 IPv4 地址)
或更安全地指定为本机局域网 IP,例如:
bind-address = 192.168.1.100保存后重启 MySQL 服务:
Linux:`sudo systemctl restart mysql`
Windows:在服务管理器中重启 “MySQL” 服务
创建或授权支持远程登录的数据库用户
root 用户默认通常不允许从非本地主机登录,需显式授权:
用 root 登录 MySQL:mysql -u root -p执行授权命令(以允许从任意局域网 IP 登录为例):
CREATE USER 'myuser'@'192.168.1.%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.%';
FLUSH PRIVILEGES;说明:
192.168.1.%表示允许该网段(如 192.168.1.2–192.168.1.254)所有设备连接;若只允许某一台(如 192.168.1.50),可写成
'myuser'@'192.168.1.50'
检查并开放系统防火墙端口
MySQL 默认使用 3306 端口,若防火墙拦截,外部设备将无法建立 TCP 连接:
Linux(ufw):sudo ufw allow 3306Linux(firewalld):
sudo firewall-cmd --permanent --add-port=3306/tcp,然后
sudo firewall-cmd --reloadWindows:在“高级安全 Windows 防火墙”中新建入站规则,允许 TCP 3306 端口 验证是否生效:在另一台局域网电脑上运行
telnet 192.168.1.100 3306(Windows)或
nc -zv 192.168.1.100 3306(Linux/macOS),能连通表示端口已开放
客户端连接测试与常见问题
在其他局域网设备上,用标准 MySQL 客户端工具连接:
命令行示例:mysql -h 192.168.1.100 -u myuser -p图形工具(如 MySQL Workbench、DBeaver)填写主机 IP、端口、用户名、密码即可 常见报错及排查:
•
Host 'x.x.x.x' is not allowed to connect→ 检查用户 host 是否匹配,权限是否刷新
•
Can't connect to MySQL server→ 检查 bind-address、防火墙、网络连通性(ping + telnet)
• 连接成功但查不到库 → 用户未被授予对应数据库权限,需用
GRANT ... ON database_name.*显式授权
