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

在云服务器上部署 MySQL,核心在于版本选择源配置以及安全加固。CentOS 和 Ubuntu 的包管理器不同(yum/dnf vs apt),但逻辑一致。

以下分系统给出最稳定、标准的安装流程。默认安装 MySQL 8.0(当前主流 LTS 版本)。


一、Ubuntu 20.04/22.04/24.04 安装步骤

Ubuntu 官方源直接提供 MySQL,无需额外添加第三方源。

1. 更新软件包索引

sudo apt update
sudo apt upgrade -y

2. 安装 MySQL Server

sudo apt install mysql-server -y

注意:Ubuntu 的 mysql-server 包会自动处理依赖并启动服务。

3. 验证服务状态

sudo systemctl status mysql

如果显示 active (running),则安装成功。若未运行,执行:

sudo systemctl start mysql
sudo systemctl enable mysql

4. 运行安全脚本(关键)

MySQL 安装后自带一个安全配置脚本,用于设置 root 密码、移除匿名用户、禁止远程 root 登录等。

sudo mysql_secure_installation

按提示操作:

  • VALIDATE PASSWORD COMPONENT:建议选 Y,并选择强度等级(推荐 Level 1 或 2)。
  • Change the root password?:选 Y,设置强密码。
  • Remove anonymous users?:选 Y
  • Disallow root login remotely?:选 Y(生产环境强烈建议禁止 root 远程登录,后续创建专用账号)。
  • Remove test database and access to it?:选 Y
  • Reload privilege tables now?:选 Y

5. 测试连接

sudo mysql -u root -p

输入刚才设置的密码,若能进入 mysql> 交互界面,则安装完成。


二、CentOS 7/8/9 Stream 安装步骤

CentOS 7 使用 yum,CentOS 8+ 使用 dnf。MySQL 官方源需手动添加。

1. 添加 MySQL Yum 仓库

CentOS 8/9 Stream:

# 下载 MySQL 8.0 仓库配置
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-6.noarch.rpm

CentOS 7:

# 下载 MySQL 8.0 仓库配置
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm

2. 安装 MySQL Server

# CentOS 8/9
sudo dnf install mysql-server -y

# CentOS 7
sudo yum install mysql-server -y

3. 启动并启用服务

sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld

4. 获取临时 Root 密码(CentOS 特有步骤)

CentOS 安装 MySQL 后,root 用户会生成一个临时密码,记录在日志中。

sudo grep 'temporary password' /var/log/mysqld.log

复制输出的临时密码(如 A&Bz...xyz)。

5. 运行安全脚本

sudo mysql_secure_installation

按提示操作:

  • 输入上一步获取的临时密码。
  • 系统会要求修改 root 密码(必须满足复杂度要求:大写、小写、数字、特殊字符,至少8位)。
  • 后续选项与 Ubuntu 相同:移除匿名用户、禁止远程 root 登录、删除测试库、重载权限表。全部选 Y

6. 测试连接

mysql -u root -p

输入新设置的密码,进入交互式界面即成功。


三、通用后续配置(可选但推荐)

1. 创建专用数据库用户(最佳实践)

不要直接用 root 连接应用。

-- 登录 MySQL
mysql -u root -p

-- 创建新用户
CREATE USER 'app_user'@'%' IDENTIFIED BY 'YourStrongPassword123!';

-- 授予权限(示例:授予所有库的所有权限,生产环境请最小化授权)
GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%';

-- 刷新权限
FLUSH PRIVILEGES;

-- 退出
EXIT;

2. 配置远程访问(如需外部连接)

MySQL 默认只监听本地 127.0.0.1

编辑配置文件:

  • Ubuntu: /etc/mysql/mysql.conf.d/mysqld.cnf
  • CentOS: /etc/my.cnf/etc/mysql/my.cnf

找到 [mysqld] 部分,注释掉或修改:

# bind-address = 127.0.0.1
bind-address = 0.0.0.0

重启服务:

sudo systemctl restart mysql   # Ubuntu
sudo systemctl restart mysqld  # CentOS

⚠️ 安全警告:开放 0.0.0.0 后,务必确保:

  1. 云服务器的安全组/防火墙已放行 3306 端口。
  2. 仅允许特定 IP 访问(通过防火墙规则限制,而非 MySQL 用户主机 %)。
  3. 使用强密码,并考虑启用 SSL 连接。

3. 防火墙配置

Ubuntu (UFW):

sudo ufw allow 3306/tcp
sudo ufw reload

CentOS (firewalld):

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

四、常见问题排查

问题 可能原因 解决方案
Access denied for user 'root'@'localhost' 密码错误或认证插件不匹配 使用 sudo mysql 无密码登录,然后重置密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
服务无法启动 端口冲突或数据目录权限错误 检查 /var/log/mysql/error.log/var/log/mysqld.log 查看详细错误
远程连接超时 云服务器安全组未放行 登录云控制台,检查入站规则是否允许 TCP 3306 端口
plugin caching_sha2_password 报错 旧版客户端不支持 MySQL 8 默认认证插件 将用户认证方式改回 mysql_native_passwordALTER USER 'user'@'host' IDENTIFIED WITH mysql_native_password BY 'password';

总结

  • Ubuntuapt install mysql-servermysql_secure_installation,简单直接。
  • CentOS:添加官方 Yum 源 → dnf/yum install mysql-server → 获取临时密码 → mysql_secure_installation,步骤稍多但更可控。
  • 生产环境核心原则:禁用 root 远程登录、使用强密码、最小化用户权限、通过云防火墙控制访问 IP。
未经允许不得转载:云知道CLOUD » 在CentOS或Ubuntu云服务器上安装MySQL的完整步骤是什么?