在腾讯云轻量应用服务器(Lighthouse)上部署 Ubuntu 系统的 MySQL 8.0,其实并没有太多“黑科技”,核心难点在于版本源的选择和权限配置。很多新手直接 apt install mysql-server 装完发现连不上或者版本不对,通常是因为默认源的问题。
下面是一套经过验证的、干净且标准的安装流程。我会避开那些虚头巴脑的理论,直接给命令和关键避坑点。
第一步:确认系统环境
首先,登录你的腾讯云轻量服务器终端。建议先更新一下软件包索引,确保获取的是最新元数据。
sudo apt update
sudo apt upgrade -y
注意:轻量服务器内存通常较小(如 2G/4G),如果执行 upgrade 时提示磁盘空间不足或内存溢出,可以跳过这一步,直接进行后续操作。
第二步:安装 MySQL 8.0
这里有一个关键点:Ubuntu 的官方默认源中,MySQL 的版本取决于你的 Ubuntu 发行版代号。
- Ubuntu 20.04 (Focal): 默认源通常包含 MySQL 8.0。
- Ubuntu 22.04 (Jammy): 默认源也包含 MySQL 8.0。
- Ubuntu 18.04: 默认源可能是 MySQL 5.7,需要额外添加源。
假设你使用的是主流的 20.04 或 22.04,可以直接通过 APT 安装。腾讯云镜像站同步了 Debian/Ubuntu 官方源,速度很快。
sudo apt install mysql-server -y
安装过程中,屏幕可能会短暂黑屏或滚动日志,这是正常的。安装完成后,MySQL 服务应该会自动启动。
验证安装是否成功:
systemctl status mysql
如果看到绿色的 active (running),说明服务已就绪。
第三步:安全初始化(重要)
MySQL 8.0 引入了更严格的安全机制。刚安装完时,root 用户默认使用 auth_socket 插件认证,这意味着只有本地 root 系统用户才能通过 socket 连接,无法从外部远程连接,也不适合常规开发调试。
我们需要运行安全脚本进行调整:
sudo mysql_secure_installation
执行此命令后,你会被问到一系列问题,以下是推荐选项:
- VALIDATE PASSWORD COMPONENT: 询问是否启用密码强度验证插件。
- 选
Y(开启)。这能防止弱密码,对于云服务器来说更安全。
- 选
- Set root password?: 设置 root 用户的密码。
- 选
Y,并输入一个强密码(大小写字母+数字+符号,至少8位)。
- 选
- Remove anonymous users?: 删除匿名用户?
- 选
Y。
- 选
- Disallow root login remotely?: 禁止 root 远程登录?
- 选
N(即允许远程登录)。 - 解释:虽然生产环境建议禁止 root 远程,但作为开发者或初期搭建,为了方便管理(尤其是如果你打算用 Navicat/DBeaver 等工具连接),建议暂时允许。如果你非常注重安全,可以选 Y,然后手动创建一个有远程权限的非 root 用户。
- 选
- Remove test database and access to it?: 删除测试数据库?
- 选
Y。
- 选
- Reload privilege tables now?: 重新加载权限表?
- 选
Y。
- 选
第四步:配置远程访问(腾讯云轻量服务器特有)
很多用户在这里卡住:本地能连,网络连不上。这是因为 Ubuntu 默认绑定了 127.0.0.1,只监听本地回环地址。
-
修改 MySQL 配置文件
编辑
/etc/mysql/mysql.conf.d/mysqld.cnf文件:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf找到
bind-address这一行:bind-address = 127.0.0.1将其修改为:
bind-address = 0.0.0.0保存并退出(Ctrl+O, Enter, Ctrl+X)。
-
重启 MySQL 服务
sudo systemctl restart mysql -
配置腾讯云防火墙(轻量应用服务器控制台)
仅仅修改 MySQL 配置是不够的,腾讯云轻量服务器的“防火墙”规则会拦截端口。
- 登录 腾讯云轻量应用服务器控制台。
- 点击左侧菜单的 防火墙。
- 检查是否有规则放行 3306 端口。
- 如果没有,点击 新建规则:
- 方向:入方向
- 协议:TCP
- 端口范围:3306
- 授权对象:0.0.0.0/0(或者指定你的 IP 段,更安全)
- 策略:允许
- 保存规则。
-
配置 MySQL 用户权限(可选但推荐)
刚才我们在
mysql_secure_installation中允许了 root 远程登录,但为了更规范的操作,你可以创建一个专门用于远程连接的普通用户:sudo mysql进入 MySQL 命令行后,执行以下 SQL(请将
your_password替换为你的密码):-- 创建新用户 CREATE USER 'dev_user'@'%' IDENTIFIED BY 'your_strong_password'; -- 授予所有数据库的远程访问权限(根据实际需求调整库名) GRANT ALL PRIVILEGES ON *.* TO 'dev_user'@'%'; -- 刷新权限 FLUSH PRIVILEGES; -- 退出 EXIT;
第五步:验证连接
现在,尝试在你的本地电脑上使用数据库客户端(如 DBeaver, Navicat, 或命令行)连接。
- 主机 IP: 腾讯云轻量服务器的公网 IP
- 端口: 3306
- 用户名: root 或 dev_user
- 密码: 你设置的密码
如果能连上,恭喜你,安装完成。
常见问题与避坑指南
-
内存不足导致 MySQL 启动失败
腾讯云轻量服务器如果配置较低(如 1核 1G),MySQL 8.0 默认配置可能占用过多内存导致 OOM(Out of Memory)。如果发现服务启动失败,查看日志:sudo journalctl -xeu mysql如果是内存问题,你需要限制 MySQL 的缓冲池大小。编辑
/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]下添加:innodb_buffer_pool_size = 128M然后重启服务。
-
Navicat 连接报错 "Authentication plugin ‘caching_sha2_password’ cannot be loaded"
这是 MySQL 8.0 的新特性,旧版客户端不支持。解决方法是将用户认证方式改回传统的mysql_native_password:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; -
忘记 root 密码怎么办?
不要慌,可以通过免密码模式重置:sudo systemctl stop mysql sudo mysqld_safe --skip-grant-tables & # 等待几秒后,无密码登录 sudo mysql # 执行上述 ALTER USER 语句重置密码 # 最后 kill 掉 mysqld_safe 进程,正常启动 mysql sudo systemctl start mysql
总结
在腾讯云轻量服务器上装 MySQL 8.0,核心就三步:APT 安装 -> 安全脚本初始化 -> 开放防火墙端口。只要注意 Ubuntu 版本对应的默认源,以及轻量服务器特有的防火墙规则,基本不会遇到大坑。对于生产环境,强烈建议使用云数据库 MySQL 版(TencentDB for MySQL),省心省力;但对于学习、测试或小项目,轻量服务器自建完全足够,成本极低。
云技术博客