CentOS7上MySQL8.0安装全攻略:从零到实战

作者:很酷cat2025.11.06 14:08浏览量:0

简介:本文详细介绍了在CentOS7系统上安装MySQL8.0版本的完整步骤,涵盖环境准备、依赖安装、MySQL下载与安装、配置与安全设置等关键环节,适合数据库管理员和开发者参考。

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

一、环境准备与依赖检查

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

  1. 系统版本:确认系统为CentOS7(64位),通过cat /etc/redhat-release命令查看版本信息。
  2. 依赖库检查:MySQL8.0依赖libaionumactl库,执行以下命令安装:
    1. sudo yum install -y libaio numactl
  3. 防火墙与SELinux:临时关闭防火墙(测试环境)或开放3306端口:
    1. sudo systemctl stop firewalld # 临时关闭
    2. sudo systemctl disable firewalld # 永久禁用(生产环境建议配置规则)
    对于SELinux,可设置为宽松模式(setenforce 0)或配置策略允许MySQL访问。

二、下载MySQL8.0官方RPM包

MySQL官方提供针对不同Linux发行版的RPM包,推荐从官方仓库或镜像站下载:

  1. 访问MySQL YUM仓库
    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
    此操作会添加MySQL官方YUM源到系统,后续可通过yum repolist查看包含的仓库。

三、安装MySQL8.0服务器

通过YUM直接安装可自动处理依赖关系:

  1. 清理YUM缓存并安装
    1. sudo yum clean all
    2. sudo yum install -y mysql-community-server
  2. 验证安装版本
    1. rpm -qi mysql-community-server | grep Version
    输出应显示8.0.x版本号。

四、启动MySQL服务与初始配置

  1. 启动MySQL服务
    1. sudo systemctl start mysqld
    2. sudo systemctl enable mysqld # 设置开机自启
  2. 获取临时密码
    MySQL8.0首次启动会生成临时密码,存储日志文件中:

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

    输出类似:A temporary password is generated for root@localhost: abc123xyz

  3. 运行安全配置向导
    使用临时密码登录并运行mysql_secure_installation

    1. mysql -u root -p
    2. # 输入临时密码后,按提示完成以下操作:
    3. - 修改root密码(需满足强度要求,如包含大小写字母、数字和特殊字符)
    4. - 移除匿名用户
    5. - 禁止root远程登录
    6. - 移除测试数据库
    7. - 重新加载权限表

五、配置MySQL8.0远程访问(可选)

生产环境中常需远程管理数据库:

  1. 创建远程管理用户
    1. CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPassword123!';
    2. GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
    3. FLUSH PRIVILEGES;
  2. 修改配置文件允许远程连接
    编辑/etc/my.cnf,在[mysqld]段添加:
    1. bind-address = 0.0.0.0 # 允许所有IP连接(生产环境建议指定IP)
  3. 开放防火墙端口
    1. sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
    2. sudo firewall-cmd --reload

六、验证安装与性能优化

  1. 连接测试
    1. mysql -u admin -p -h 127.0.0.1
  2. 基础性能调优
    • 调整innodb_buffer_pool_size(建议为物理内存的50%-70%):
      1. [mysqld]
      2. innodb_buffer_pool_size = 2G
    • 启用慢查询日志:
      1. slow_query_log = 1
      2. slow_query_log_file = /var/log/mysql/mysql-slow.log
      3. long_query_time = 2

七、常见问题解决方案

  1. 依赖冲突
    若安装时报依赖错误,可尝试:
    1. sudo yum install -y epel-release
    2. sudo yum update -y
  2. 密码策略问题
    MySQL8.0默认启用validate_password插件,可通过以下命令降低策略:
    1. SET GLOBAL validate_password.policy=LOW;
    2. SET GLOBAL validate_password.length=4;
  3. 服务启动失败
    检查日志定位问题:
    1. sudo journalctl -xe -u mysqld

八、最佳实践建议

  1. 定期备份:使用mysqldump或配置物理备份工具(如Percona XtraBackup)。
  2. 监控告警:通过Prometheus+Grafana监控关键指标(如连接数、QPS、慢查询)。
  3. 版本升级:关注MySQL官方安全公告,及时通过yum update升级。

通过以上步骤,您可在CentOS7上完成MySQL8.0的完整部署。实际生产环境中,建议结合企业安全策略进一步加固配置(如启用SSL连接、审计日志等)。