在 CentOS 7 上安装 MySQL 8 的过程分为几个步骤,主要包括安装 MySQL 的官方仓库、安装 MySQL 8、配置 MySQL 服务以及验证安装。以下是详细步骤:

步骤 1:准备工作

  1. 更新系统:首先,确保你的系统是最新的,以便避免安装过程中出现版本问题。 sudo yum update -y
  2. 安装 wget:如果系统上没有 wget,你需要安装它。 sudo yum install wget -y

步骤 2:安装 MySQL 官方仓库

  1. 下载 MySQL 8 的官方 YUM 仓库:MySQL 提供了官方的 YUM 仓库文件,安装该仓库可以让你方便地从官方源获取 MySQL 8。 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  2. 安装 MySQL 仓库sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
  3. 确认仓库已经启用:安装后,MySQL 官方的 YUM 仓库应该会被自动启用。你可以检查启用的仓库: sudo yum repolist enabled | grep "mysql.*-community"

步骤 3:安装 MySQL 8

  1. 禁用默认的 MySQL 5.7 仓库(如果已启用): sudo yum-config-manager --disable mysql57-community
  2. 启用 MySQL 8 仓库sudo yum-config-manager --enable mysql80-community
  3. 安装 MySQL 8sudo yum install mysql-community-server -y
  4. 安装完成后,检查 MySQL 是否正确安装mysql --version 如果安装成功,命令行会返回 MySQL 版本信息。

步骤 4:启动 MySQL 服务

  1. 启动 MySQL 服务sudo systemctl start mysqld
  2. 设置开机自启sudo systemctl enable mysqld
  3. 检查 MySQL 服务状态sudo systemctl status mysqld 如果服务启动成功,状态会显示为 active (running)

步骤 5:配置 MySQL

  1. 查找 MySQL 临时的 root 密码
    在 MySQL 安装完成后,MySQL 会生成一个临时的 root 密码,并存储在日志文件中。你可以通过以下命令找到这个密码: sudo grep 'temporary password' /var/log/mysqld.log 输出类似于: 2022-02-23T00:35:17.844918Z 1 [Note] A temporary password is generated for root@localhost: aBc123!xyz 记下临时密码 aBc123!xyz
  2. 使用临时密码登录 MySQLmysql -u root -p 输入上面找到的临时密码。
  3. 修改 root 密码
    登录 MySQL 后,你会看到 MySQL 提示修改临时密码。你需要按要求设置一个强密码。 在 MySQL 提示符下输入以下命令: ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
  4. 执行 MySQL 安全性配置脚本:MySQL 提供了一个安全性配置脚本,可以帮助你设置更强的安全策略(如删除匿名用户、禁用远程 root 登录等)。 sudo mysql_secure_installation 按照提示进行操作:
    • 输入当前的 root 密码(即你刚才修改的密码)。
    • 设置 root 密码强度。
    • 删除匿名用户。
    • 禁止 root 远程登录。
    • 删除测试数据库并重新加载权限表。

步骤 6:验证 MySQL 安装

  1. 登录 MySQLmysql -u root -p
  2. 检查 MySQL 版本
    登录 MySQL 后,你可以运行以下命令来确认 MySQL 版本: SELECT VERSION(); 输出应该是类似于: +-----------+ | VERSION() | +-----------+ | 8.0.25 | +-----------+
  3. 检查 MySQL 服务:你可以通过以下命令检查 MySQL 服务状态: sudo systemctl status mysqld

步骤 7:配置防火墙(可选)

如果你需要通过外部访问 MySQL(例如,远程客户端连接),你需要确保防火墙允许 MySQL 端口(默认是 3306)。

  1. 打开 3306 端口sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload

完成!

至此,你已经成功在 CentOS 7 上安装并配置了 MySQL 8。如果你还需要设置其他配置(如数据库用户权限、连接设置等),可以参考官方文档进一步操作。