ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

CentOS下RPM方式安装MySQL的完整指南

CentOS下RPM方式安装MySQL的完整指南

1. 为什么选择RPM方式安装MySQL

在CentOS环境下安装MySQL主要有三种主流方式:源码编译安装、YUM仓库安装和RPM包直接安装。对于大多数生产环境而言,RPM安装方式具有明显优势:

  • 版本控制精确:可以直接获取特定版本的MySQL安装包,避免YUM仓库版本滞后问题
  • 依赖自动处理:RPM会自动解决依赖关系,比源码编译更省心
  • 安装路径规范:所有文件按Linux标准目录结构存放,便于后续管理
  • 服务集成完善:自动生成systemd服务单元文件,开箱即用

提示:虽然YUM安装更简单,但企业环境通常需要特定MySQL版本,这时RPM方式就是最佳选择。Oracle官方提供的RPM包经过充分测试,稳定性有保障。

2. 准备工作与环境检查

2.1 系统兼容性确认

首先确认您的CentOS版本与MySQL的兼容性:

cat /etc/redhat-release

主流MySQL版本对CentOS的支持情况:

  • MySQL 8.0:建议CentOS 7.9+/8+
  • MySQL 5.7:支持CentOS 7.x全系列

2.2 清理旧版MySQL

如果系统存在旧版MySQL,必须先彻底卸载:

# 检查已安装的MySQL组件 rpm -qa | grep mysql # 卸载现有包(以实际查询结果为准) sudo yum remove mysql-community-server mysql-common

2.3 安装依赖库

确保系统已安装必要依赖:

sudo yum install libaio numactl openssl-devel

3. 获取官方RPM安装包

3.1 访问MySQL官方仓库

推荐从MySQL官方YUM仓库获取最新稳定版:

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm

3.2 选择具体版本

默认启用的是最新GA版本,如需指定版本:

# 查看可用版本 sudo yum repolist all | grep mysql # 启用指定版本仓库(例如选择5.7版本) sudo yum-config-manager --disable mysql80-community sudo yum-config-manager --enable mysql57-community

4. 完整安装步骤

4.1 安装MySQL服务端

执行以下命令安装核心组件:

sudo yum install mysql-community-server

安装过程会自动处理这些依赖:

  • mysql-community-client
  • mysql-community-common
  • mysql-community-libs

4.2 初始化数据库

首次启动前必须进行初始化:

sudo mysqld --initialize --user=mysql

此操作会:

  1. 创建数据目录/var/lib/mysql
  2. 生成临时root密码(注意保存)
  3. 建立系统表结构

4.3 启动MySQL服务

使用systemd管理服务:

sudo systemctl start mysqld sudo systemctl enable mysqld

验证服务状态:

systemctl status mysqld

5. 安全配置与优化

5.1 修改root密码

获取临时密码后立即修改:

sudo grep 'temporary password' /var/log/mysqld.log mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

5.2 运行安全向导

MySQL提供配置向导:

mysql_secure_installation

该脚本会引导您完成:

  • 移除匿名用户
  • 禁止root远程登录
  • 删除测试数据库
  • 重载权限表

5.3 基础性能优化

编辑/etc/my.cnf添加基础配置:

[mysqld] default-storage-engine=INNODB character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci innodb_buffer_pool_size=1G # 根据内存调整

6. 常见问题排查

6.1 安装失败:依赖冲突

典型报错:"Error: Package conflicts with..." 解决方案:

# 查看冲突包 rpm -qa | grep -i mariadb # 移除冲突包 sudo yum remove mariadb-libs

6.2 启动失败:权限问题

错误日志位置:/var/log/mysqld.log 常见修复命令:

sudo chown -R mysql:mysql /var/lib/mysql sudo semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?" sudo restorecon -Rv /var/lib/mysql

6.3 连接失败:防火墙设置

开放3306端口:

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

7. 生产环境建议

  1. 定期备份策略:

    • 设置cron任务执行mysqldump
    • 考虑使用Percona XtraBackup
  2. 监控配置:

    sudo yum install mysql-community-utilities mysqladmin -uroot -p ext
  3. 用户权限管理:

    • 遵循最小权限原则
    • 为每个应用创建独立用户
  4. 日志轮转: 配置logrotate管理MySQL日志:

    sudo vi /etc/logrotate.d/mysql

我在实际运维中发现,很多连接问题其实源于字符集配置不当。建议所有新建数据库都显式指定utf8mb4字符集,避免后期迁移麻烦。另外,MySQL 8.0默认使用caching_sha2_password认证插件,如果老程序无法连接,可以在my.cnf中添加:

default_authentication_plugin=mysql_native_password
返回列表