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

在云服务器上部署 MySQL 是后端开发的基础技能。虽然 CentOS 和 Ubuntu 是目前最主流的 Linux 发行版,但需要注意的是,CentOS 8 及更早版本已停止维护(EOL),官方仓库不再提供更新和安全补丁。因此,在实际生产环境中,建议优先使用 Ubuntu 20.04/22.04 LTS 或 Rocky Linux / AlmaLinux(作为 CentOS 的替代品)。

以下分别介绍在 Ubuntu 和 CentOS/Rocky/Alma 上安装 MySQL 8.0 的标准步骤。为了保持环境纯净和安全性,我们采用官方推荐的方式安装。


一、Ubuntu 系统安装 MySQL

Ubuntu 默认的软件源中通常包含 MySQL 8.0,安装过程较为简单。

1. 更新软件包索引

sudo apt update
sudo apt upgrade -y

2. 安装 MySQL Server

sudo apt install mysql-server -y

3. 验证安装状态

systemctl status mysql.service

如果显示 active (running),说明服务已启动。

4. 运行安全脚本(强烈建议)

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

sudo mysql_secure_installation

按提示操作:

  • 设置 root 密码(建议使用强密码)。
  • 删除匿名账户:Y
  • 禁止 root 远程登录:Y
  • 删除测试数据库:Y
  • 刷新权限表:Y

5. 登录 MySQL

sudo mysql -u root -p

输入刚才设置的密码即可进入。


二、CentOS / Rocky Linux / AlmaLinux 系统安装 MySQL

由于 CentOS 8+ 默认仓库可能不包含最新版 MySQL,推荐使用 MySQL 官方 YUM 仓库 进行安装,以确保获取最新稳定版(如 8.0.x)。

1. 添加 MySQL 官方 YUM 仓库

以 MySQL 8.0 为例:

sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

注:如果是 CentOS 7,请使用 yum 命令,并将 URL 中的 el8 改为 el7。

2. 禁用默认 AppStream 中的 MySQL 模块(避免冲突)

sudo dnf module disable mysql -y

3. 安装 MySQL Server

sudo dnf install -y mysql-community-server

4. 启动并启用 MySQL 服务

sudo systemctl start mysqld
sudo systemctl enable mysqld

5. 获取临时 Root 密码并初始化安全设置

MySQL 8.0 首次安装时会自动生成一个临时 root 密码。查看日志获取:

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

复制该密码,然后运行安全脚本:

sudo mysql_secure_installation

按提示操作,包括:

  • 输入临时密码。
  • 修改 root 密码(需符合复杂度要求:大写、小写、数字、特殊字符,长度≥8)。
  • 其余选项均选择 Y。

6. 登录 MySQL

mysql -u root -p

三、基础配置与远程访问设置(通用)

无论哪种系统,若需从外部连接云服务器上的 MySQL,需进行以下配置:

1. 修改 MySQL 监听地址

编辑配置文件:

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

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

# bind-address = 127.0.0.1
bind-address = 0.0.0.0

重启 MySQL 服务使配置生效:

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

2. 创建允许远程访问的用户(推荐方式)

出于安全考虑,不建议直接开放 root 用户远程登录。建议创建一个新用户并授权:

-- 登录 MySQL 后执行

-- 创建用户(替换 'your_password' 为强密码)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_strong_password';

-- 授权所有数据库权限(生产环境建议限制具体库和权限)
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;

3. 配置云安全组(重要!)

仅修改 MySQL 配置是不够的,必须在云平台控制台(如阿里云 ECS、腾讯云 CVM、AWS EC2 等)的安全组中添加规则:

  • 协议:TCP
  • 端口:3306
  • 来源:限制为你的 IP 地址(如 1.2.3.4/32),切勿设置为 0.0.0.0/0,以防被暴力破解。

四、常见问题与最佳实践

1. 忘记密码怎么办?

可通过跳过权限表方式重置:

sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql -u root
-- 在 MySQL 命令行中执行:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
EXIT;
sudo killall mysqld
sudo systemctl start mysql

2. 性能调优建议

  • InnoDB 缓冲池大小:根据服务器内存调整 innodb_buffer_pool_size,通常设为物理内存的 50%-70%。
  • 字符集:确保使用 utf8mb4 以支持完整 Unicode(包括 Emoji):
    [mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci

    并在客户端连接时也指定 charset=utf8mb4。

3. 备份策略

  • 使用 mysqldump 进行逻辑备份:
    mysqldump -u root -p --all-databases > full_backup.sql
  • 生产环境建议结合定时任务(cron)自动备份,并上传至对象存储(如 OSS、COS、S3)。

4. 安全加固

  • 定期更新 MySQL 版本以修复漏洞。
  • 使用防火墙(如 ufw 或 firewalld)限制 3306 端口仅限应用服务器 IP 访问。
  • 启用 MySQL 审计插件(企业版功能)或使用第三方工具监控异常查询。

总结

步骤 Ubuntu CentOS/Rocky/Alma
安装命令 apt install mysql-server dnf install mysql-community-server
服务名 mysql mysqld
配置文件路径 /etc/mysql/mysql.conf.d/mysqld.cnf /etc/my.cnf
安全脚本 mysql_secure_installation mysql_secure_installation
远程访问注意 修改 bind-address + 安全组放行 同上

请根据你的操作系统选择合适的安装流程,并始终遵循最小权限原则和安全规范。如有特定场景需求(如主从复制、集群部署),可进一步探讨。

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