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

下面以 CentOS 8/9 和 Ubuntu 20.04/22.04 为例,给出在云服务器上安装 MySQL(官方社区版)的完整步骤。你可以根据自己使用的发行版选择对应部分。


一、通用准备

  1. 确认系统版本与架构

    cat /etc/os-release
    uname -m
  2. 更新软件包列表

    • CentOS:
      sudo dnf update -y
      # 或旧版 yum
      sudo yum update -y
    • Ubuntu:
      sudo apt update && sudo apt upgrade -y
  3. 开放必要端口(云安全组)

    • MySQL 默认端口:3306
    • 在云控制台的安全组/防火墙中放行 TCP 3306(仅允许可信 IP,生产环境建议限制来源)。

二、CentOS 安装 MySQL

方式 A:使用官方 YUM 仓库(推荐)

1. 下载并安装 MySQL YUM 仓库

访问:https://dev.mysql.com/downloads/repo/yum/
根据系统版本选择对应的 .rpm,例如 CentOS 8/9 可能用 mysql80-community-release-el9.x86_64.rpm。

# 示例(请替换为实际 URL)
sudo dnf install -y https://repo.mysql.com/mysql80-community-release-el9.x86_64.rpm

如果不确定版本,可以查看 /etc/os-release 中的 ID 和 VERSION_ID,再在官网选择对应发行版。

2. 安装 MySQL Server

sudo dnf install -y mysql-server

若只想装客户端,可安装 mysql 包;服务器需要 mysql-server。

3. 启动并设置开机自启

sudo systemctl enable --now mysqld

4. 获取临时 root 密码

MySQL 首次安装会生成一个临时密码,记录在日志中:

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

输出类似:

[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Abcdefghijklmnop123!

记下该密码,后面用于登录。

5. 初始化安全配置

sudo mysql_secure_installation

按提示操作:

  • 输入临时密码
  • 设置新 root 密码(满足复杂度要求)
  • 删除匿名用户
  • 禁止 root 远程登录(可选,但生产建议)
  • 删除测试数据库
  • 重载权限表

6. 验证安装

mysql -u root -p

输入刚设置的密码,进入 MySQL 后执行:

SHOW DATABASES;
EXIT;

7. 配置远程访问(可选)

如需从外部连接,需:

  1. 修改 my.cnf 配置文件(通常在 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf):
    [mysqld]
    bind-address = 0.0.0.0
  2. 创建允许远程登录的用户(注意不要直接用 root 远程):
    CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassword123!';
    GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%';
    FLUSH PRIVILEGES;
  3. 重启 MySQL:
    sudo systemctl restart mysqld
  4. 确保云安全组已放行 3306,且源 IP 可信。

三、Ubuntu 安装 MySQL

方式 A:使用官方 APT 仓库(推荐)

1. 下载并添加 MySQL APT 仓库

访问:https://dev.mysql.com/downloads/repo/apt/
选择对应 Ubuntu 版本(如 ubuntu22),下载 .deb 文件。

wget https://repo.mysql.com/mysql-apt-config_0.8.x-1_all.deb
# 版本号 x 根据你的页面显示调整
sudo dpkg -i mysql-apt-config_0.8.x-1_all.deb

在安装过程中会弹出交互式界面,让你选择 MySQL 版本(通常选默认即可)。

2. 更新 APT 缓存

sudo apt update

3. 安装 MySQL Server

sudo apt install -y mysql-server

4. 启动并设置开机自启

sudo systemctl enable --now mysql

5. 获取初始 root 密码

Ubuntu 默认使用 Unix socket 认证,root 可以通过 sudo mysql 直接登录,无需密码:

sudo mysql

进入后:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewStrongPassword123!';
FLUSH PRIVILEGES;
EXIT;

如果你希望使用 mysql -u root -p 方式登录,就需要上面这一步将插件改为 mysql_native_password。

6. 运行安全脚本(可选但推荐)

sudo mysql_secure_installation

按提示设置:

  • 设置 root 密码(如果之前没改过)
  • 删除匿名用户
  • 禁止 root 远程登录
  • 删除测试库
  • 重载权限表

7. 验证安装

mysql -u root -p

输入密码后执行:

SHOW DATABASES;
EXIT;

8. 配置远程访问(可选)

  1. 编辑配置文件(不同路径视版本而定):

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

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

    bind-address = 0.0.0.0
  2. 创建远程用户(避免直接用 root):

    CREATE USER 'app_user'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongPassword123!';
    GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%';
    FLUSH PRIVILEGES;
    EXIT;
  3. 重启 MySQL:

    sudo systemctl restart mysql
  4. 确保云安全组已放行 3306。


四、常见问题排查

  1. 无法连接 3306

    • 检查云安全组是否放行 TCP 3306
    • 检查 bind-address 是否为 0.0.0.0 或你的公网 IP
    • 检查防火墙:
      • CentOS:firewall-cmd --list-all
      • Ubuntu:ufw status 或 iptables -L
  2. 忘记 root 密码

    • 停止 MySQL
    • 以 --skip-grant-tables 模式启动
    • 修改密码后正常重启
    • 具体步骤可搜索 “MySQL 忘记密码重置”。
  3. 中文乱码 / 字符集问题

    • 在配置文件中设置:

      [client]
      default-character-set = utf8mb4
      
      [mysql]
      default-character-set = utf8mb4
      
      [mysqld]
      character-set-server = utf8mb4
      collation-server = utf8mb4_unicode_ci
    • 然后重启 MySQL。


如果你告诉我:

  • 具体操作系统及版本(如 Ubuntu 22.04 LTS)
  • 是否需要远程访问
  • 是否有特殊字符集需求

我可以给出一份针对你环境的精简命令清单(可直接复制粘贴执行)。

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