最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何在腾讯云轻量应用服务器上快速部署MySQL并实现外网直连
时间:2026-07-12 09:51:47 编辑:袖梨 来源:一聚教程网
必须手动放开MySQL用户权限、系统防火墙、腾讯云控制台防火墙三道关卡,且需修改bind-address为0.0.0.0并禁用skip-networking,否则外网无法连接。
能直接外网连上,但必须手动放开三道关卡:MySQL用户权限、系统防火墙、腾讯云控制台防火墙。漏掉任意一个,Connection refused 或 Access denied 就会立刻出现。
MySQL 8.0 默认拒绝远程连接,必须改用户权限
Ubuntu/CentOS 安装后,root 用户默认只允许本地 socket 连接(auth_socket 插件),且绑定在 127.0.0.1。不改这两点,任何外网 IP 都会被拒。
- 先用
sudo mysql -u root -p登录,执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的强密码';
- 再创建或修改远程用户(不建议直接开
root外网):CREATE USER 'remote_user'@'%' IDENTIFIED BY '强密码'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
- 刷新权限:
FLUSH PRIVILEGES;
- 确认生效:
SELECT host, user, plugin FROM mysql.user WHERE user = 'remote_user';
——host必须是%或具体公网 IP,不能是localhost
MySQL 配置文件必须监听所有地址
bind-address 默认是 127.0.0.1,哪怕用户权限全开,也只会收本机请求。不改配置,netstat -tlnp | grep :3306 永远只显示 127.0.0.1:3306。
- 编辑配置文件:
/etc/mysql/mysql.conf.d/mysqld.cnf(Ubuntu)或/etc/my.cnf(CentOS) - 找到
bind-address行,改为:bind-address = 0.0.0.0
- 如果存在
skip-networking,必须删掉或注释掉 - 重启服务:
sudo systemctl restart mysql(Ubuntu)或sudo systemctl restart mysqld(CentOS) - 验证监听状态:
ss -tln | grep :3306应输出*:3306,不是127.0.0.1:3306
腾讯云轻量服务器的防火墙要开两次
本地 ufw 或 firewalld 只管系统层;腾讯云控制台的「防火墙」规则管的是云平台网络层。两者缺一不可,且端口、协议、源 IP 范围必须一致。
- 系统防火墙(以 Ubuntu 为例):
sudo ufw allow 3306
,然后sudo ufw status确认已启用 - 腾讯云控制台操作路径:
轻量应用服务器 → 实例详情 → 防火墙 → 添加规则 - 规则内容必须填:
端口填3306,协议选TCP,源 IP建议填具体客户端 IP(如123.45.67.89/32),不要直接填0.0.0.0/0 - 若用
0.0.0.0/0,务必确保 MySQL 用户权限已限制为最小范围(比如只给某个库的SELECT权),否则等于把门敞开
连接时常见错误和对应检查点
连不上?别急着重装,按顺序查这四点:
-
Can't connect to MySQL server on 'x.x.x.x'→ 先确认ss -tln | grep :3306和腾讯云防火墙规则是否都生效;再telnet x.x.x.x 3306测试端口通不通 -
Access denied for user→ 查mysql.user表里该用户的host和plugin,确认不是localhost,且密码已用mysql_native_password加密 -
Host 'y.y.y.y' is not allowed to connect→ 是权限问题,不是网络问题;执行GRANT ... ON *.* TO 'user'@'y.y.y.y'或改用'%' - Navicat / SQLyog 连接超时 → 检查客户端是否用了错误的端口(比如填了 3307)、是否勾选了 SSL(MySQL 8.0 默认不启用,勾了就失败)
真正麻烦的从来不是安装,而是每层网络和权限模型之间的错位。改完一处,总有人忘了同步改另一处——比如开了云防火墙却没开系统防火墙,或者改了 MySQL 用户但没改 bind-address。盯住这四点,比反复重装快十倍。
相关文章
- 王者荣耀世界零氪玩家如何生存 07-28
- 快手极速版怎么绑定手机号 07-28
- 明日方舟和轻松小熊联动活动内容一览 07-28
- 逆战未来黎明之光 逆战未来黎明之光玩法机制与新手入门指南 07-28
- 植物大战僵尸融合版毁灭土豆地雷介绍 07-28
- 逆战未来飓风之龙 逆战未来飓风之龙武器获取方法详解 07-28