在腾讯云 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?
欢迎继续提问!
PHPWP博客