求助:Webmin部署的MySQL服务器无法远程连接,仅本地可连
解决MySQL仅能本地连接的远程访问问题
1. 修改MySQL绑定地址
MySQL默认仅监听localhost,需调整配置允许外部访问:
- 编辑Ubuntu系统的MySQL配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf - 找到
bind-address配置项,将其修改为bind-address = 0.0.0.0(或直接注释掉该行) - 重启MySQL服务生效:
sudo systemctl restart mysql
2. 授权用户远程访问权限
phpMyAdmin通过localhost连接不受限制,但远程用户需要明确授权:
- 本地登录MySQL终端:
mysql -u root -p - 执行授权命令(替换
user和你的密码为实际信息):
若需限制特定IP访问,将GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY '你的密码';%替换为具体IP(如'192.168.1.100') - 刷新权限:
FLUSH PRIVILEGES; - 可通过以下命令验证用户权限配置:
确保目标用户的SELECT user, host FROM mysql.user;host字段不是仅localhost或127.0.0.1
3. 确认网络与防火墙配置
- 检查系统UFW防火墙规则:
sudo ufw status,确认3306/tcp规则为ALLOW状态 - 测试端口连通性:在本地终端执行
nc -zv xxxxxxxx 3306(替换为你的VPS IP),若返回succeeded说明端口可访问;若失败,需检查VPS服务商的安全组规则(多数云服务商需额外在控制台开放端口)
4. 验证MySQL监听状态
执行以下命令确认MySQL是否监听所有IP:
netstat -tulpn | grep mysql
输出需包含0.0.0.0:3306或:::3306(IPv6),若仅显示127.0.0.1:3306,说明配置未生效,需检查是否有其他MySQL配置文件覆盖了设置。
5. 检查Webmin/Virtualmin配置
Virtualmin可能存在额外限制:
- 登录Webmin,进入
Servers > MySQL Database Server - 在
MySQL Server Configuration中找到Bind address,设置为All addresses (0.0.0.0) - 检查Virtualmin的服务器模板,确认未限制MySQL远程访问
内容的提问来源于stack exchange,提问作者Tovs
相关产品推荐
相关产品推荐

