努力
加油

腾讯云轻量服务器Ubuntu系统怎么安装MySQL?

在腾讯云轻量应用服务器(Lighthouse)上部署 Ubuntu 系统的 MySQL,步骤其实非常标准,但因为轻量服务器通常面向个人开发者或中小企业,资源有限且安全策略相对严格,有几个“坑”需要注意。

下面我以 Ubuntu 20.04/22.04 LTS 为例,梳理一套最稳妥、生产环境可用的安装流程。

1. 系统更新与基础准备

不要直接装,先更新源,确保软件包列表是最新的。这一步能避免很多因为版本过旧导致的依赖冲突。

sudo apt update
sudo apt upgrade -y

注意:upgrade 可能会升级内核或其他核心组件,如果是在生产环境且业务繁忙,建议先在控制台快照备份后再操作。

2. 安装 MySQL Server

Ubuntu 默认仓库里就有 MySQL,直接用 apt 安装即可。目前主流版本是 MySQL 8.0。

sudo apt install mysql-server -y

安装完成后,MySQL 服务通常会自动启动。你可以通过以下命令检查状态:

sudo systemctl status mysql

如果看到 active (running),说明服务已就绪。如果没有启动,手动执行:

sudo systemctl start mysql
sudo systemctl enable mysql

3. 安全加固(关键步骤)

刚装好的 MySQL 安全性很低,必须运行安全脚本。这是很多人忽略但至关重要的一步。

sudo mysql_secure_installation

执行过程中会提示一系列选项,建议按以下逻辑选择:

  1. Validate Password Component:验证密码强度插件。
    • 选 Y 启用。
    • 级别选择 2(STRONG),要求密码包含大小写、数字、特殊字符,长度至少 8 位。
  2. Remove anonymous users:移除匿名用户。
    • 选 Y。
  3. Disallow root login remotely:禁止 root 远程登录。
    • 选 Y。这步非常重要,防止暴力破解。
  4. Remove test database:移除测试数据库。
    • 选 Y。
  5. Reload privilege tables now:重新加载权限表。
    • 选 Y。

4. 配置远程访问(腾讯云特有注意事项)

轻量服务器默认只监听本地(127.0.0.1),外部无法连接。你需要修改配置文件并开放端口。

A. 修改 MySQL 配置文件

Ubuntu 的 MySQL 8.0 默认使用 auth_socket 插件进行本地认证,远程连接需要配置用户权限。

编辑配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address 这一行:

# bind-address = 127.0.0.1

将其注释掉,或者改为 0.0.0.0:

bind-address = 0.0.0.0

保存退出(Ctrl+O, Enter, Ctrl+X)。

B. 创建允许远程访问的用户(推荐做法)

不要直接给 root 开远程权限,而是创建一个专用的远程用户。

进入 MySQL 命令行:

sudo mysql

执行以下 SQL 语句(以创建用户 myuser,密码 mypassword 为例,请替换为你自己的强密码):

-- 创建用户,允许从任何主机连接 (% 表示任意 IP)
CREATE USER 'myuser'@'%' IDENTIFIED WITH mysql_native_password BY 'mypassword';

-- 授予所有数据库的所有权限(根据实际需求调整,生产环境建议最小权限原则)
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%';

-- 刷新权限
FLUSH PRIVILEGES;

-- 退出
EXIT;

技术细节:MySQL 8.0 默认认证插件是 caching_sha2_password,很多老版本的客户端(如 Navicat 旧版、某些语言驱动)不支持。所以这里显式指定了 mysql_native_password 以保证兼容性。如果你的客户端较新,也可以不用指定,但上述写法最稳妥。

C. 重启 MySQL 服务

sudo systemctl restart mysql

D. 腾讯云控制台防火墙设置

这是最容易忘的一步!Linux 内部放行了,云厂商的防火墙没放行也没用。

  1. 登录 腾讯云轻量应用服务器控制台。
  2. 进入你的服务器详情页。
  3. 找到 “防火墙” 标签页。
  4. 点击 “添加规则”。
  5. 设置如下:
    • 方向:入方向
    • 类型:自定义 TCP
    • 端口范围:3306
    • 授权对象:0.0.0.0/0 (如果是生产环境,建议限制为你的固定公网 IP,更安全)
    • 策略:允许

保存后,等待几秒生效。

5. 验证连接

在你的本地电脑上,使用 MySQL 客户端(如 DBeaver、Navicat、或命令行)尝试连接:

  • Host: 你的轻量服务器公网 IP
  • Port: 3306
  • User: myuser
  • Password: mypassword

如果能连上,说明一切正常。

常见问题排查

  1. 连接超时:
    • 90% 的情况是腾讯云防火墙没开 3306 端口,或者云服务器内部防火墙(ufw)拦截了。
    • 检查 UFW:sudo ufw status。如果显示 active,需执行 sudo ufw allow 3306/tcp。
  2. Access denied for user ‘root’@’…’:
    • 因为你禁用了 root 远程登录,请用之前创建的专用用户登录。
  3. 时区问题:
    • 如果应用报错时区不正确,可以在 MySQL 配置文件中添加 default-time-zone = '+8:00',然后重启服务。

总结

在腾讯云轻量服务器上装 MySQL,核心就三点:

  1. 安全脚本要跑完,关掉匿名账户和远程 root。
  2. 配置文件改 bind-address 为 0.0.0.0。
  3. 腾讯云控制台防火墙必须手动开通 3306 端口。

这套流程走下来,基本能保证一个干净、可远程访问的 MySQL 环境。对于轻量服务器这种低配机器,日常开发和小流量项目完全够用。