CentOS 7/8 安装MySQL最新版教程

CentOS 7/8 安装 MySQL 最新版超详细教程

在 CentOS 系统上安装 MySQL 是许多服务器管理员和开发人员的常见任务。本教程将详细指导您在 CentOS 7 和 CentOS 8 上安装最新版本的 MySQL。我们将涵盖从添加 MySQL 官方 YUM 仓库到配置安全设置的所有步骤,并提供故障排除提示,确保您能顺利完成安装。

为什么选择官方 YUM 仓库?

虽然 CentOS 的默认软件仓库中也包含 MySQL,但版本通常较旧。为了获得最新的功能、安全补丁和性能改进,强烈建议使用 MySQL 官方提供的 YUM 仓库进行安装。

本教程涵盖内容:

  1. 准备工作: 更新系统、安装必要工具。
  2. 添加 MySQL YUM 仓库: 获取并安装 MySQL 官方仓库配置。
  3. 安装 MySQL 服务器: 使用 YUM 安装 MySQL Server、Client 和相关组件。
  4. 启动 MySQL 服务: 启动 MySQL 服务并设置为开机自启。
  5. 安全配置: 运行安全配置脚本,设置 root 密码、删除匿名用户等。
  6. 连接 MySQL: 使用 MySQL 客户端连接到服务器。
  7. 基本 MySQL 操作: 创建数据库、用户、授权等。
  8. 防火墙设置(可选): 配置防火墙以允许 MySQL 连接。
  9. 故障排除: 常见问题及解决方法。
  10. CentOS 7 与 CentOS 8 的差异(如有): 针对两个版本系统的特别说明。

1. 准备工作

在开始安装之前,确保您的 CentOS 系统是最新的,并安装了一些必要的工具。

  • 更新系统:

    bash
    sudo yum update -y

    这条命令将升级所有已安装的软件包到最新版本。-y 选项表示自动回答所有提示为“yes”。

  • 安装常用工具(可选):

    bash
    sudo yum install -y wget nano

    wget 用于下载文件,nano 是一个简单易用的文本编辑器(您也可以使用您喜欢的编辑器,如 vim)。

2. 添加 MySQL YUM 仓库

MySQL 官方提供了一个 YUM 仓库,其中包含最新版本的 MySQL 软件包。我们需要下载并安装这个仓库的配置文件。

  • 访问 MySQL 官方下载页面:

    在浏览器中打开 MySQL YUM 仓库下载页面:https://dev.mysql.com/downloads/repo/yum/

  • 选择适合您系统的版本:

    根据您的 CentOS 版本(7 或 8),选择相应的 RPM 包。通常,页面上会直接提供最新版本的下载链接。

  • 下载 RPM 包:

    使用 wget 命令下载 RPM 包(请替换为实际的下载链接):

    bash
    wget https://dev.mysql.com/get/mysql80-community-release-el7-x.noarch.rpm # CentOS 7 示例
    wget https://dev.mysql.com/get/mysql80-community-release-el8-x.noarch.rpm # CentOS 8 示例

    注意,这个包的版本号可能会变,一定要去官网下载页面确认最新的版本号

  • 安装仓库配置:

    使用 yum localinstall 命令安装下载的 RPM 包:

    bash
    sudo yum localinstall mysql80-community-release-el7-x.noarch.rpm # CentOS 7 示例
    sudo yum localinstall mysql80-community-release-el8-x.noarch.rpm # CentOS 8 示例

  • 验证仓库是否添加成功:

    bash
    yum repolist enabled | grep "mysql.*-community.*"

    如果看到类似 mysql80-communitymysql-connectors-communitymysql-tools-community 等仓库列表,则表示添加成功。

3. 安装 MySQL 服务器

现在可以开始安装 MySQL 服务器了。

  • 安装 MySQL:

    bash
    sudo yum install -y mysql-community-server

    这条命令将安装 MySQL 服务器、客户端以及一些必要的依赖项。

    CentOS 8 特别说明: 在 CentOS 8 上,可能需要先禁用默认的 MySQL 模块:

    bash
    sudo yum module disable mysql -y

    然后再执行安装命令。

  • 安装过程中的提示:

    安装过程中可能会提示您导入 GPG 密钥。这是 MySQL 官方用于验证软件包完整性的密钥。通常情况下,您可以选择接受(输入 y)。

4. 启动 MySQL 服务

安装完成后,我们需要启动 MySQL 服务,并将其设置为开机自启动。

  • 启动 MySQL 服务:

    bash
    sudo systemctl start mysqld

  • 设置开机自启动:

    bash
    sudo systemctl enable mysqld

  • 检查 MySQL 服务状态:

    bash
    sudo systemctl status mysqld

    如果看到 active (running) 字样,表示 MySQL 服务正在运行。

5. 安全配置

MySQL 安装后,强烈建议运行安全配置脚本来提高安全性。

  • 运行安全配置脚本:

    bash
    sudo mysql_secure_installation

  • 脚本交互过程:

    1. VALIDATE PASSWORD PLUGIN: 是否启用密码验证插件?建议选择 y,这将强制执行更强的密码策略。
    2. 设置 root 密码: 为 MySQL 的 root 用户设置一个强密码。请务必记住这个密码!
    3. 移除匿名用户: 建议选择 y,删除默认存在的匿名用户。
    4. 禁止 root 远程登录: 建议选择 y,只允许 root 用户从本地(localhost)登录。
    5. 移除 test 数据库: 建议选择 y,删除默认的 test 数据库。
    6. 重新加载权限表: 选择 y,使更改生效。

6. 连接 MySQL

现在可以使用 MySQL 客户端连接到服务器了。

  • 使用 root 用户连接:

    bash
    mysql -u root -p

    输入您在安全配置过程中设置的 root 密码。

  • 成功连接:

    如果一切顺利,您将看到 MySQL 的命令行提示符:

    mysql>

7. 基本 MySQL 操作

现在您已经连接到 MySQL 服务器,可以执行一些基本的操作了。

  • 查看现有数据库:

    sql
    SHOW DATABASES;

  • 创建新数据库:

    sql
    CREATE DATABASE mydatabase;

    这将创建一个名为 mydatabase 的新数据库。

  • 选择数据库:

    sql
    USE mydatabase;

  • 创建新用户并授权:

    sql
    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
    FLUSH PRIVILEGES;

    解释:
    * CREATE USER: 创建新用户,myuser是用户名,localhost表示只允许本地连接,mypassword是密码。
    * GRANT ALL PRIVILEGES: 授予用户对 mydatabase 数据库的所有权限。
    * FLUSH PRIVILEGES: 刷新权限表,使更改生效。
    * 如果要允许用户从其他主机连接,可以将localhost改为%,但务必确保密码足够复杂,并且尽量减少远程连接的权限。

  • 退出 MySQL 客户端:

    sql
    exit;

8. 防火墙设置(可选)

如果您的 CentOS 系统启用了防火墙(如 firewalld),则需要配置防火墙以允许 MySQL 连接。

  • 允许 MySQL 默认端口(3306):

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

  • 更安全的做法(推荐):

    只允许特定 IP 地址或 IP 地址段访问 MySQL 端口:

    bash
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'
    sudo firewall-cmd --reload

    192.168.1.0/24 替换为您允许连接的 IP 地址或 IP 地址段。

9. 故障排除

如果在安装或配置过程中遇到问题,以下是一些常见的故障排除方法:

  • MySQL 服务无法启动:

    • 检查错误日志:

      bash
      sudo journalctl -xe | grep mysqld

      或查看 MySQL 错误日志文件(通常位于 /var/log/mysqld.log/var/log/mysql/error.log)。

    • 检查端口是否被占用:

      bash
      sudo netstat -tulnp | grep 3306

    • 确保有足够的内存和磁盘空间。

  • 无法连接到 MySQL:

    • 检查 MySQL 服务是否正在运行。
    • 检查用户名和密码是否正确。
    • 检查防火墙设置是否允许连接。
    • 检查 MySQL 配置文件(/etc/my.cnf/etc/mysql/my.cnf)中的 bind-address 设置。如果设置为 127.0.0.1,则只允许本地连接。
  • 忘记 root 密码:

    1. 停止 MySQL 服务:

      bash
      sudo systemctl stop mysqld

    2. 以安全模式启动 MySQL(跳过权限检查):

      bash
      sudo mysqld_safe --skip-grant-tables &

    3. 连接到 MySQL:

      bash
      mysql -u root

    4. 更改 root 密码:

      sql
      USE mysql;
      UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
      FLUSH PRIVILEGES;

      MySQL 8:
      sql
      USE mysql;
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
      FLUSH PRIVILEGES;

    5. 退出 MySQL 客户端,停止安全模式下的 MySQL 进程,然后正常启动 MySQL 服务:

      bash
      exit;
      sudo pkill mysqld
      sudo systemctl start mysqld

      10. CentOS 7 与 CentOS 8 的差异

  • 默认 MySQL 模块(CentOS 8): CentOS 8 默认包含一个 MySQL 模块,可能需要先禁用它才能安装官方版本。

  • 软件包名称: 理论上,CentOS7 和 CentOS8 安装时的软件包名称没有区别。

总结

本教程详细介绍了在 CentOS 7 和 CentOS 8 上安装最新版本 MySQL 的步骤。通过使用 MySQL 官方 YUM 仓库,您可以轻松获得最新功能和安全更新。请务必按照安全配置步骤操作,以保护您的数据库服务器。如果在安装过程中遇到任何问题,请参考故障排除部分或查阅 MySQL 官方文档。希望本教程对您有所帮助!

THE END