腾讯云CentOS服务器如何通过yum安装MySQL并初始化?

在腾讯云 CentOS 服务器上,不建议直接通过 yum install mysql 安装 Oracle MySQL(旧版),原因如下:

  • CentOS 8+ 默认仓库中 mysql 包实际是 MariaDB(MySQL 的兼容分支),并非 Oracle 官方 MySQL;
  • CentOS 7 的默认 mysql 也是 MariaDB(如 mariadb-server);
  • 若需安装 Oracle 官方 MySQL(如 8.0/5.7),必须添加官方 YUM 源(mysql-community-release)。

✅ 正确做法(推荐 MySQL 8.0,安全、长期支持、功能新):


✅ 一、确认系统版本(重要!)

cat /etc/redhat-release
# 或
uname -r && cat /etc/os-release | grep -E "(VERSION_ID|PRETTY_NAME)"

⚠️ 注意:

  • CentOS 7:支持 MySQL 8.0(需启用 EPEL + MySQL 官方源)
  • CentOS 8/Stream:已弃用 mysql 包,原生仅支持 MariaDB;但可通过 MySQL 官方源安装(需注意 dnf 替代 yum
  • CentOS 9/AlmaLinux/Rocky 9:同理,推荐用 MySQL 8.0 官方源或考虑容器化(Docker)

以下以 CentOS 7 为例(最常见于腾讯云 CVM)详细说明:


✅ 二、安装 Oracle MySQL 8.0(官方推荐方式)

1️⃣ 下载并安装 MySQL 官方 YUM 仓库(关键步骤!)

# 下载 MySQL 8.0 的 repo 包(适用于 CentOS 7)
sudo yum install -y wget
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-7.noarch.rpm

🔍 验证是否启用:yum repolist enabled | grep mysql
✅ 应看到 mysql80-community 已启用(若需 5.7,可禁用 8.0 并启用 mysql57-community

2️⃣ 安装 MySQL 服务端与客户端

sudo yum install -y mysql-community-server mysql-community-client

3️⃣ 启动并设置开机自启

sudo systemctl start mysqld
sudo systemctl enable mysqld

4️⃣ 获取初始 root 密码(MySQL 8.0+ 自动生成)

sudo grep 'temporary password' /var/log/mysqld.log
# 输出类似:A temporary password is generated for root@localhost: xxxxxxxxxx

5️⃣ 运行安全初始化(强制修改密码 + 清理不安全配置)

sudo mysql_secure_installation

按提示操作:

  • Enter password for user root: ✅ 输入上一步查到的临时密码
  • New password: ✅ 设置强密码(至少 8 位,含大小写字母+数字+特殊符号)
  • Confirm password: ✅ 确认
  • 其余全部输入 Y(删除匿名用户、禁止远程 root 登录、删除 test 数据库、重载权限表)

✅ 初始化完成!


✅ 三、验证安装 & 基础连接

# 登录 MySQL(使用新密码)
mysql -u root -p

# 在 MySQL 内执行:
SELECT VERSION();  -- 查看版本(应为 8.0.x)
SHOW DATABASES;
EXIT;

✅ 四、(可选)允许远程访问(仅限必要场景,务必加强安全!)

⚠️ 腾讯云需同时配置:云服务器安全组(放行 3306 端口)+ MySQL 用户授权

# 登录 MySQL
mysql -u root -p

# 创建远程用户(示例:允许从任意IP用 strong_password 登录)
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongPass!2024';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# 修改绑定地址(编辑配置文件)
sudo sed -i 's/^bind-address.*/bind-address = 0.0.0.0/' /etc/my.cnf
sudo systemctl restart mysqld

🔒 安全提醒:

  • 生产环境禁止 root 远程登录
  • 使用最小权限原则创建业务用户;
  • 腾讯云控制台 → 安全组 → 添加入站规则:端口 3306,来源 0.0.0.0/0(或限定 IP 段)。

❌ 不推荐的方式(常见误区)

方式 问题
yum install mysql 实际安装的是 MariaDB(非 Oracle MySQL),版本、特性、语法细节有差异
yum install mysql-server CentOS 7 中该包属于 MariaDB(mariadb-server
直接下载二进制包手动部署 易出错、无 systemd 集成、升级维护困难

✅ 补充:快速检查 & 故障排查

# 检查服务状态
systemctl status mysqld

# 查看错误日志
sudo tail -50 /var/log/mysqld.log

# 检查端口监听
sudo netstat -tuln | grep :3306
# 或
sudo ss -tuln | grep :3306

# 重置 root 密码(忘记时)
sudo systemctl stop mysqld
sudo mysqld_safe --skip-grant-tables &
mysql -u root
# 执行:FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass!123'; EXIT;
sudo systemctl restart mysqld

✅ 总结流程(一句话)

加官方源 → 装 mysql-community-server → 启动服务 → 提取临时密码 → mysql_secure_installation 初始化 → (可选)配置远程访问 + 安全组放行

如需安装 MySQL 5.7,替换第 1 步为:

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
sudo yum install mysql-community-server

需要我为你生成 完整可执行脚本 或提供 Docker 方式部署 MySQL(更轻量安全),欢迎随时告知 👍

是否需要我帮你:

  • ✅ 生成一键安装初始化脚本?
  • ✅ 配置主从复制?
  • ✅ 迁移数据到腾讯云 MySQL(CDB)?
  • ✅ 或适配 CentOS 8/9?

欢迎继续提问!