CentOS7安装MySQL8.0版本详细指南

CentOS7安装MySQL8.0版本详细步骤

一、安装前环境准备

在正式安装MySQL8.0之前,需确保CentOS7系统环境满足以下条件:

  1. 系统版本确认
    执行cat /etc/redhat-release命令,确认系统版本为CentOS Linux 7.x。若版本低于7,需先升级系统或更换兼容的MySQL版本。

  2. 依赖库安装
    MySQL8.0依赖libaionumactl库,通过以下命令安装:

    1. sudo yum install -y libaio numactl

    若系统未配置EPEL仓库,需先执行sudo yum install -y epel-release

  3. 防火墙与SELinux配置

    • 防火墙:开放3306端口(默认MySQL端口):
      1. sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
      2. sudo firewall-cmd --reload
    • SELinux:临时设置为宽松模式(测试环境可用,生产环境建议配置策略):
      1. sudo setenforce 0

二、MySQL8.0安装流程

1. 下载MySQL官方YUM仓库

访问MySQL官网下载页(https://dev.mysql.com/downloads/repo/yum/),选择对应CentOS7版本的RPM包。或直接通过命令下载:

  1. wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

2. 安装YUM仓库

执行以下命令安装仓库配置包:

  1. sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm

安装后,系统会自动生成/etc/yum.repos.d/mysql-community.repo文件,包含MySQL各版本的仓库配置。

3. 启用MySQL8.0仓库

编辑仓库配置文件,确保enabled=1

  1. sudo vi /etc/yum.repos.d/mysql-community.repo

[mysql80-community]段中确认以下内容:

  1. [mysql80-community]
  2. name=MySQL 8.0 Community Server
  3. baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
  4. enabled=1
  5. gpgcheck=1
  6. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022

4. 安装MySQL服务器

执行以下命令安装MySQL8.0:

  1. sudo yum install -y mysql-community-server

安装过程中,YUM会自动解决依赖关系,下载并安装MySQL服务器及客户端工具。

5. 启动MySQL服务

安装完成后,启动MySQL服务并设置开机自启:

  1. sudo systemctl start mysqld
  2. sudo systemctl enable mysqld

通过systemctl status mysqld检查服务状态,确认输出中包含active (running)

三、安装后配置

1. 获取临时密码

MySQL8.0首次启动时会生成一个临时密码,存储在日志文件中。执行以下命令查看:

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

输出示例:

  1. 2023-10-01T12:34:56.789012Z 1 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Abc123xyz

记录Abc123xyz作为临时密码。

2. 运行安全脚本

执行mysql_secure_installation脚本进行安全配置:

  1. sudo mysql_secure_installation

按提示完成以下操作:

  • 输入临时密码。
  • 设置新密码(需满足复杂度要求,如包含大小写字母、数字和特殊字符)。
  • 移除匿名用户(Remove anonymous users? [Y/n] Y)。
  • 禁止root远程登录(Disallow root login remotely? [Y/n] Y)。
  • 移除测试数据库(Remove test database and access to it? [Y/n] Y)。
  • 重新加载权限表(Reload privilege tables now? [Y/n] Y)。

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

若需从远程主机连接MySQL,需执行以下步骤:

  1. 修改root用户权限
    登录MySQL后执行:

    1. CREATE USER 'root'@'%' IDENTIFIED BY '新密码';
    2. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    3. FLUSH PRIVILEGES;
  2. 修改配置文件
    编辑/etc/my.cnf,在[mysqld]段中添加:

    1. bind-address = 0.0.0.0

    重启MySQL服务:

    1. sudo systemctl restart mysqld

四、常见问题解决

1. 依赖冲突

若安装过程中报错Error: Package: mysql-community-server-8.0.xx-1.el7.x86_64,可能是由于系统存在旧版MySQL或MariaDB。执行以下命令清理:

  1. sudo yum remove mariadb* mysql*
  2. sudo rm -rf /var/lib/mysql

2. 密码策略问题

MySQL8.0默认启用强密码策略,若需降低复杂度要求,可修改策略:

  1. SET GLOBAL validate_password.policy=LOW;
  2. SET GLOBAL validate_password.length=4;

永久生效需编辑/etc/my.cnf,在[mysqld]段中添加:

  1. validate_password.policy=LOW
  2. validate_password.length=4

3. 端口冲突

若3306端口被占用,可通过以下步骤修改MySQL端口:

  1. 编辑/etc/my.cnf,在[mysqld]段中添加:
    1. port = 3307
  2. 修改防火墙规则:
    1. sudo firewall-cmd --zone=public --remove-port=3306/tcp --permanent
    2. sudo firewall-cmd --zone=public --add-port=3307/tcp --permanent
    3. sudo firewall-cmd --reload
  3. 重启MySQL服务。

五、总结与建议

  1. 备份数据:升级或修改配置前,务必备份数据库(mysqldump -u root -p --all-databases > backup.sql)。
  2. 监控资源:MySQL8.0对内存和CPU要求较高,建议通过tophtop监控资源使用情况。
  3. 定期维护:执行mysqlcheck -u root -p --optimize --all-databases优化数据库性能。

通过以上步骤,您可以在CentOS7系统上成功安装并配置MySQL8.0。如遇问题,可参考MySQL官方文档(https://dev.mysql.com/doc/)或社区论坛获取支持。