场景引入:
凌晨两点,你正窝在沙发里调试公司新上线的项目,突然发现本地代码无法直连测试数据库——原来MySQL默认只允许本地访问,此时若没有远程连接权限,要么连夜赶回公司,要么干等到天亮…其实只需5分钟配置授权,就能优雅解决问题,下面手把手教你操作。
sudo systemctl status mysql
)。 ping 服务器IP
测试)。 sudo ufw allow 3306/tcp # Ubuntu示例
mysql -u root -p # 使用管理员账户登录
安全提示:避免直接修改root账户权限
-- 创建新用户并设置密码 CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123!'; -- 授予所有数据库权限(根据实际需求调整) GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; -- 刷新权限生效 FLUSH PRIVILEGES;
关键参数说明:
'192.168.1.100'
) ALL PRIVILEGES
:可降级为SELECT, INSERT
等具体权限 编辑/etc/mysql/mysql.conf.d/mysqld.cnf
(路径可能不同):
[mysqld] bind-address = 0.0.0.0 # 修改原127.0.0.1为0.0.0.0
保存后重启服务:
sudo systemctl restart mysql
mysql -h 服务器IP -u remote_user -p
现象 | 可能原因 | 解决方案 |
---|---|---|
连接超时 | 防火墙拦截 | 检查服务器/云平台安全组规则 |
拒绝访问 | 用户权限不足 | 重新执行GRANT语句 |
无法找到socket | 配置文件未生效 | 确认修改了正确的my.cnf文件 |
'192.168.1.%'
ALTER USER 'remote_user'@'%' IDENTIFIED BY 'NewPassword456!';
最后提醒:生产环境建议通过SSH隧道或VPN访问数据库,远程连接仅作为临时方案,现在你可以安心躺回沙发,继续你的深夜调试了!
(注:本文操作基于MySQL 8.0+版本,部分语法在5.7及以下版本可能需要调整)
本文由 洪恨真 于2025-07-31发表在【云服务器提供商】,文中图片由(洪恨真)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/494828.html
发表评论