在 CentOS 或 Ubuntu 云服务器上安装 MySQL 的完整步骤需根据发行版版本和MySQL 官方推荐方式进行区分。⚠️ 注意:自 MySQL 8.0 起,Oracle 官方不再默认提供 mysql-server 包到主流 Linux 发行版的默认仓库中(尤其是较新版本的 Ubuntu/Debian 和 CentOS/RHEL),推荐使用 MySQL APT/YUM 官方仓库以获取最新稳定版(如 8.0.x 或 8.4.x)并确保安全更新。
以下为 2024 年推荐的生产级安装方案,涵盖两种主流系统,强调安全性、版本可控性与最佳实践:
✅ 前提检查(所有系统通用)
# 1. 更新系统
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
# 或
sudo yum update -y # CentOS 7(已 EOL,不推荐)
sudo dnf update -y # CentOS 8/9 / Rocky/AlmaLinux
# 2. 检查是否已安装 MariaDB(常见于 CentOS/RHEL 默认安装)
mysql --version
rpm -qa | grep mariadb # CentOS/RHEL
dpkg -l | grep mysql # Ubuntu/Debian
# ⚠️ 若已安装 MariaDB(如 CentOS 8+ 默认),建议卸载后再装 MySQL(避免端口/服务冲突):
# sudo systemctl stop mariadb && sudo systemctl disable mariadb
# sudo yum remove mariadb-* -y # CentOS/RHEL
# sudo apt remove --purge mariadb-* -y && sudo apt autoremove -y # Ubuntu
🟢 方案一:Ubuntu 22.04 / 24.04(推荐使用 MySQL APT 仓库)
步骤 1:下载并安装 MySQL APT 配置包
# 下载最新 MySQL APT 配置包(以 8.4 为例;访问 https://dev.mysql.com/downloads/repo/apt/ 获取最新链接)
cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_8.4.0-1ubuntu22.04_all.deb
# 安装配置包(会自动添加官方源并提示选择版本)
sudo dpkg -i mysql-apt-config_*.deb
# ➤ 在交互界面中:按 Tab 选中 OK → 回车;默认选择 MySQL Server 8.4(或按需调整)→ OK
# ➤ 如跳过交互,可强制重配置:sudo dpkg-reconfigure mysql-apt-config
# 更新包索引
sudo apt update
步骤 2:安装 MySQL Server
# 安装 MySQL 服务器(含客户端、常用工具)
sudo apt install mysql-server -y
# ✅ 自动启动并启用开机自启
sudo systemctl status mysql # 应显示 active (running)
步骤 3:运行安全加固脚本(必做!)
sudo mysql_secure_installation
# 交互式引导(强烈建议):
# • 切换密码验证策略?→ 选 2(STRONG)或 1(MEDIUM)
# • 设置 root 密码(务必记住!)
# • 移除匿名用户?→ Y
# • 禁止 root 远程登录?→ Y(生产环境必须)
# • 删除 test 数据库?→ Y
# • 重新加载权限表?→ Y
步骤 4:(可选)配置远程访问(仅限必要场景)
# 编辑 MySQL 配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 找到 bind-address = 127.0.0.1 → 改为:
bind-address = 0.0.0.0 # 或指定内网 IP(如 10.0.0.5)
# 创建远程用户(替代 root 远程登录)
sudo mysql -u root -p
-- 在 MySQL 内执行:
CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
# 重启服务 & 开放防火墙(Ubuntu UFW)
sudo systemctl restart mysql
sudo ufw allow 3306
🟢 方案二:CentOS 8 / Rocky Linux 8+ / AlmaLinux 8+(使用 MySQL YUM 仓库)
✅ CentOS 7 已于 2024-06-30 终止支持,强烈建议升级至 RHEL 兼容发行版(Rocky/Alma)
步骤 1:安装 MySQL YUM 仓库
cd /tmp
# 下载 MySQL YUM repo(以 8.4 为例)
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
# 安装 repo 包(自动启用 mysql80-community 源)
sudo rpm -Uvh mysql80-community-release-el8-1.noarch.rpm
# ✅ 可选:禁用其他 MySQL 版本源(如需锁定 8.4)
sudo yum-config-manager --disable mysql57-community
sudo yum-config-manager --enable mysql80-community
步骤 2:安装 MySQL Server
sudo dnf install mysql-community-server -y
# 或(CentOS 8 旧版用 yum):
# sudo yum install mysql-community-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld # 确认 active
步骤 3:获取临时 root 密码 & 安全初始化
# 查看初始密码(首次启动生成)
sudo grep 'temporary password' /var/log/mysqld.log
# 运行安全脚本(类似 Ubuntu)
sudo mysql_secure_installation
# ➤ 输入临时密码 → 设置新 root 密码 → 同样选择 Y/N 完成加固
步骤 4:配置远程访问(同 Ubuntu 步骤 4)
sudo nano /etc/my.cnf.d/mysql-server.cnf
# 在 [mysqld] 下添加/修改:
bind-address = 0.0.0.0
# 创建远程用户(同上)
sudo mysql -u root -p
CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
sudo systemctl restart mysqld
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
🔐 关键安全与运维建议(生产环境必读)
| 项目 | 推荐操作 |
|---|---|
| 密码策略 | SET GLOBAL validate_password.policy = STRONG;(MySQL 8.0+) |
| SSL 强制 | 启用 TLS:require_secure_transport = ON(/etc/my.cnf 中配置) |
| 备份策略 | 使用 mysqldump + cron 或 mysqlbackup(企业版)定期备份 |
| 日志审计 | 启用通用日志/慢查询日志(general_log=ON, slow_query_log=ON) |
| 资源限制 | 在 [mysqld] 中设置 max_connections=200, innodb_buffer_pool_size=1G(根据内存调整) |
| 云平台注意 | ✅ 关闭公网暴露!通过 SSH 隧道 / VPC 内网 / 云数据库X_X(如 AWS RDS Proxy)访问 |
❌ 不推荐的方式(避免踩坑)
sudo apt install mysql-server(Ubuntu 22.04+ 默认安装 MariaDB,非 Oracle MySQL)sudo yum install mysql(CentOS 7/8 默认是 MariaDB 或过时 MySQL 5.1)- 直接编译安装(维护成本高,无包管理更新)
- 使用 Docker 临时运行(非生产部署首选,数据持久化与备份复杂)
✅ 验证安装成功
# 登录测试
mysql -u root -p
# 查看版本与状态
SELECT VERSION(), @@hostname, @@port;
SHOW VARIABLES LIKE 'validate_password%';
SHOW DATABASES;
# 退出
EXIT;
✅ 总结一句话:
始终通过 MySQL 官方 APT/YUM 仓库安装(而非系统默认源),执行
mysql_secure_installation,禁用 root 远程登录,最小权限创建应用用户,并通过内网/VPC 访问——这才是云服务器上安全、可维护的 MySQL 部署实践。
如需我为你生成:
- 自动化安装脚本(Bash)
- Docker Compose 部署方案(带持久化)
- 主从复制配置指南
- 备份恢复 SOP 文档
欢迎随时提出 👇
需要哪一项?我可以立即为你定制。
CLOUD云计算