在CentOS或Ubuntu云服务器上安装MySQL的完整步骤是什么?

在 CentOS 或 Ubuntu 云服务器上安装 MySQL 的完整步骤需根据操作系统版本和官方推荐方式选择(强烈建议使用 MySQL 官方 APT/YUM 仓库或系统默认包管理器安装,避免手动编译或下载二进制包带来的兼容性与安全风险)。以下是 2024 年推荐的生产级安装方案,涵盖两种主流发行版(Ubuntu 22.04/24.04 和 CentOS Stream 8/9 / Rocky Linux 8/9),并强调安全性、初始化配置和云环境注意事项:


✅ 前提检查(所有系统)

# 1. 更新系统
sudo apt update && sudo apt upgrade -y          # Ubuntu/Debian
sudo dnf update -y                               # CentOS/RHEL/Rocky 8+
sudo yum update -y                               # CentOS 7(已 EOL,不推荐)

# 2. 检查是否已安装 MariaDB(云镜像常预装,需卸载冲突项)
sudo systemctl list-unit-files | grep -i mariadb
# 若存在且未使用,建议卸载(避免端口/服务冲突):
sudo apt remove --purge mariadb-server mariadb-client -y    # Ubuntu
sudo dnf remove mariadb-server mariadb -y                   # RHEL/CentOS 8+

🐧 Ubuntu(22.04 LTS / 24.04 LTS)安装 MySQL 8.0+

✅ 官方源默认提供 MySQL 8.0+(Ubuntu 22.04+ 默认为 8.0.33+;24.04 为 8.0.36+)

步骤 1:安装 MySQL 服务

sudo apt update
sudo apt install mysql-server -y

步骤 2:启动并启用开机自启

sudo systemctl start mysql
sudo systemctl enable mysql
sudo systemctl status mysql  # ✅ 验证运行状态(Active: active (running))

步骤 3:运行安全初始化(关键!)

sudo mysql_secure_installation

按提示操作(推荐选项):

  • Press y|Y for Yes, any other key for No:Y(设置密码强度策略)
  • New password: → 🔑 设置强 root 密码(如 MyPass@2024!
  • Re-enter new password: → 再次输入
  • 后续全部选 Y(删除匿名用户、禁止远程 root 登录、移除 test 数据库、重载权限表)

⚠️ 注意:Ubuntu 默认使用 auth_socket 插件认证 root,mysql_secure_installation 会自动切换为 caching_sha2_password 并要求设密码。

步骤 4:验证登录

sudo mysql -u root -p  # 输入刚设的密码
# 成功后执行:
SELECT USER(), CURRENT_USER();
EXIT;

✅ 可选:允许远程访问(仅限云服务器需网络连接时)

sudo mysql -u root -p
-- 1. 创建专用管理用户(替代直接开放 root 远程)
CREATE USER 'admin'@'%' IDENTIFIED WITH caching_sha2_password BY 'StrongPass@2024!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

-- 2. 修改绑定地址(Ubuntu 默认 bind-address = 127.0.0.1)
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 找到行:bind-address = 127.0.0.1 → 改为:
bind-address = 0.0.0.0   # 或指定云服务器内网IP(更安全)

-- 3. 重启服务
sudo systemctl restart mysql

-- 4. 配置云防火墙(必须!)
# Ubuntu UFW 示例:
sudo ufw allow from 203.0.113.10 to any port 3306  # 仅允许可信IP
# 或(不推荐)开放全部:sudo ufw allow 3306

🐘 CentOS / Rocky Linux / AlmaLinux(8 或 9)

✅ 推荐使用 MySQL 官方 YUM 仓库(比系统自带 mariadb 更可控,且提供最新稳定版 MySQL 8.0+)

步骤 1:添加 MySQL 官方 YUM 仓库

# 下载并安装 MySQL YUM repo(以 MySQL 8.0 为例)
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el$(rpm -E '%{rhel}')-1.noarch.rpm -y
# 验证仓库启用状态
sudo dnf repolist enabled | grep mysql

步骤 2:安装 MySQL 社区服务器

# 确保启用 mysql80-community(禁用 mysql57-community 等旧版本)
sudo dnf config-manager --disable mysql57-community
sudo dnf config-manager --enable mysql80-community

sudo dnf install mysql-community-server -y

步骤 3:启动并启用服务

sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld  # ✅ 应显示 active (running)

步骤 4:获取临时 root 密码 & 初始化安全配置

# 查看初始密码(首次启动自动生成)
sudo grep 'temporary password' /var/log/mysqld.log

# 登录 MySQL(使用临时密码)
sudo mysql -u root -p

# 在 MySQL 中立即修改 root 密码(MySQL 8.0+ 强制要求):
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YourStrongPass@2024!';
FLUSH PRIVILEGES;
EXIT;

步骤 5:运行安全脚本(可选但推荐)

sudo mysql_secure_installation
# 同样按提示设密码、删匿名用户、禁远程 root 等(Y/Y/Y/Y/Y)

✅ 可选:配置远程访问(CentOS/Rocky)

sudo mysql -u root -p
-- 创建远程管理用户
CREATE USER 'admin'@'%' IDENTIFIED WITH caching_sha2_password BY 'StrongPass@2024!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 修改配置文件
sudo nano /etc/my.cnf
# 在 [mysqld] 段下添加:
bind-address = 0.0.0.0
# 或更安全:bind-address = 192.168.1.100  (云服务器内网IP)

sudo systemctl restart mysqld

🔥 配置防火墙(CentOS/Rocky 必须!)

# Rocky Linux 8+/CentOS 8+ 使用 firewalld
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --permanent --add-source=203.0.113.10/32  # 仅允许可信IP
sudo firewall-cmd --reload

# 或(不推荐)放行所有:
# sudo firewall-cmd --permanent --add-service=mysql
# sudo firewall-cmd --reload

🛡️ 云服务器通用安全加固(强烈建议)

项目 操作
1. 修改默认端口 编辑 /etc/my.cnfport = 3307(需同步调整防火墙规则)
2. 禁用符号链接(防文件读取漏洞) secure-file-priv = /var/lib/mysql-files/(在 [mysqld] 下)
3. 启用错误日志审计 log_error = /var/log/mysql/error.log + log_warnings = 2
4. 定期备份 使用 mysqldump + cronmysqlbackup
5. 监控连接数 SHOW STATUS LIKE 'Threads_connected';

✅ 验证安装成功

# 本地连接测试
mysql -u admin -p -h 127.0.0.1 -P 3306 -e "SELECT VERSION();"

# 远程连接测试(从本地电脑):
mysql -u admin -p -h your-server-ip -P 3306

❌ 常见问题速查

现象 解决方案
Can't connect to local MySQL server 检查 systemctl status mysqld;确认 socket=/var/lib/mysql/mysql.sock 路径正确
Access denied for user 'root'@'localhost' Ubuntu 用 sudo mysql;CentOS 检查临时密码或重置:sudo mysqld --skip-grant-tables &(仅应急)
Authentication plugin 'caching_sha2_password' cannot be loaded 客户端太旧 → 升级 MySQL client 或创建兼容用户:
CREATE USER 'oldapp'@'%' IDENTIFIED WITH mysql_native_password BY 'pwd';
云服务器无法远程连接 ✅ 检查:① bind-address;② 云平台安全组(阿里云/腾讯云/AWS 控制台开放 3306);③ 系统防火墙(ufw/firewalld);④ MySQL 用户 host 是否为 %

📌 总结推荐(2024 生产环境)

系统 推荐方式 版本 备注
Ubuntu 22.04/24.04 apt install mysql-server 8.0.x 最简、最稳定,社区支持好
Rocky Linux 8/9 / CentOS Stream 8/9 MySQL 官方 YUM 仓库 8.0.x 避免 mariadb,获取官方更新与补丁
旧 CentOS 7 ❌ 已 EOL,请升级系统;若必须用,仅限内网且禁用远程访问

💡 最后提醒

  • 生产环境绝不使用 root 远程登录,务必创建最小权限专用用户;
  • 所有密码使用 12位以上、大小写字母+数字+符号
  • 每次安装后立即执行 mysql_secure_installation
  • 定期 sudo apt update && sudo apt upgradesudo dnf update

如需我为你生成 一键安装脚本(含安全配置、防火墙、备份任务)、或配置 主从复制/SSL加密连接/Percona Toolkit 优化,欢迎随时告知! 🚀

未经允许不得转载:云知识CLOUD » 在CentOS或Ubuntu云服务器上安装MySQL的完整步骤是什么?