
1. CentOS 7 下 MySQL 安装方式概述在 CentOS 7 系统上安装 MySQL 数据库主要有三种方式yum 安装、rpm 包安装和 gz 源码包安装。每种方式各有特点适用于不同的场景和用户需求。yum 安装是最简单快捷的方式适合新手用户快速部署 MySQL 环境。它通过 yum 包管理器自动处理依赖关系一键完成安装配置。rpm 包安装需要用户手动下载 rpm 包并解决依赖关系适合对系统管理有一定基础的用户。gz 源码包安装最为灵活但也最复杂需要用户自行编译安装适合需要高度定制化 MySQL 环境的专业用户。提示无论选择哪种安装方式都需要确保系统已安装必要的依赖包如 openssl、libaio 等。建议在安装前先更新系统yum update -y2. 通过 yum 安装 MySQL 8.4.3 LTS2.1 准备工作与环境检查在开始安装前建议先检查系统是否已安装旧版 MySQL 或 MariaDB。如果存在最好先卸载以避免冲突# 检查 MariaDB rpm -qa | grep mariadb # 如果存在则卸载 rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 # 检查 MySQL rpm -qa | grep mysql # 如果存在则卸载 yum remove mysql-*2.2 配置 MySQL yum 仓库首先获取与 CentOS 7 匹配的 yum 源 URLcat /etc/redhat-release访问 MySQL 官方 yum 仓库网站(https://repo.mysql.com/)找到对应的 rpm 包 URL。对于 CentOS 7应选择 el7 版本wget https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm导入 MySQL GPG 密钥rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-20232.3 安装 MySQL 服务器安装 yum 仓库rpm -Uvh mysql84-community-release-el7-1.noarch.rpm安装 MySQL 服务器yum -y install mysql-community-server验证安装whereis mysql2.4 启动与初始化 MySQL启动 MySQL 服务systemctl start mysqld systemctl enable mysqld systemctl status mysqld获取临时 root 密码grep temporary password /var/log/mysqld.log使用临时密码登录并修改密码mysql -u root -p ALTER USER rootlocalhost IDENTIFIED BY 新密码;注意MySQL 8.0 默认要求强密码策略密码需包含大小写字母、数字和特殊字符长度至少8位。3. 通过 rpm 包安装 MySQL 8.4.3 LTS3.1 环境准备与清理在安装前需要彻底清理系统中可能存在的旧版 MySQL# 停止 MySQL 服务 systemctl stop mysqld # 卸载现有 MySQL rpm -qa | grep mysql | xargs yum -y remove # 删除残留文件 find / -name mysql | xargs rm -rf rm -rf /etc/my.cnf /etc/init.d/mysql /etc/init.d/mysqld # 删除 mysql 用户和组 userdel mysql groupdel mysql3.2 下载与安装 rpm 包从 MySQL 官网(https://dev.mysql.com/downloads/mysql/)下载对应版本的 rpm 包集合wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.3-1.el7.x86_64.rpm-bundle.tar解压 rpm 包mkdir -p /export/server/mysql tar -xvf mysql-8.4.3-1.el7.x86_64.rpm-bundle.tar -C /export/server/mysql安装依赖yum -y install openssl openssl-devel libaio libncurses*按顺序安装 rpm 包cd /export/server/mysql rpm -ivh mysql-community-common-8.4.3-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.4.3-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.4.3-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.4.3-1.el7.x86_64.rpm rpm -ivh mysql-community-icu-data-files-8.4.3-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.4.3-1.el7.x86_64.rpm3.3 配置与启动 MySQL修改配置文件 /etc/my.cnf[mysqld] port3306 character-set-serverutf8mb4 bind-address0.0.0.0 datadir/var/lib/mysql lower_case_table_names1设置目录权限chown -R mysql:mysql /var/lib/mysql/启动 MySQL 服务systemctl start mysqld systemctl enable mysqld4. 通过 gz 源码包安装 MySQL 5.7.444.1 环境准备与清理与 rpm 安装类似需要先清理环境# 停止并卸载现有 MySQL systemctl stop mysqld rpm -qa | grep mysql | xargs yum -y remove # 删除残留文件和配置 find / -name mysql | xargs rm -rf rm -rf /etc/my.cnf /etc/init.d/mysql # 删除 mysql 用户和组 userdel mysql groupdel mysql4.2 下载与解压源码包从 MySQL 官网下载 5.7.44 版本的源码包wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-el7-x86_64.tar.gz解压到指定目录mkdir -p /export/server tar -zxvf mysql-5.7.44-el7-x86_64.tar.gz -C /export/server mv /export/server/mysql-5.7.44-el7-x86_64 /export/server/mysql4.3 安装依赖与配置安装必要依赖yum -y install gcc gcc-c openssl openssl-devel libaio libncurses*创建 mysql 用户和组groupadd mysql useradd -r -g mysql mysql创建数据目录并设置权限mkdir /export/server/mysql/data mkdir /var/lib/mysql chown -R mysql:mysql /export/server/mysql chown -R mysql:mysql /var/lib/mysql创建配置文件 /etc/my.cnf[mysqld] port3306 basedir/export/server/mysql datadir/export/server/mysql/data socket/var/lib/mysql/mysql.sock character-set-serverutf84.4 初始化与启动 MySQL初始化 MySQL/export/server/mysql/bin/mysqld --initialize --usermysql --basedir/export/server/mysql --datadir/export/server/mysql/data设置启动脚本cp /export/server/mysql/support-files/mysql.server /etc/init.d/mysqld chmod x /etc/init.d/mysqld启动 MySQLsystemctl start mysqld5. MySQL 基本配置与优化5.1 安全设置修改 root 密码ALTER USER rootlocalhost IDENTIFIED BY 新密码;删除匿名用户DELETE FROM mysql.user WHERE User;禁止 root 远程登录DELETE FROM mysql.user WHERE Userroot AND Host NOT IN (localhost, 127.0.0.1, ::1);5.2 性能优化配置在 /etc/my.cnf 中添加以下优化参数[mysqld] # 缓冲池大小建议为物理内存的50-70% innodb_buffer_pool_size2G # 日志文件大小 innodb_log_file_size256M # 连接数设置 max_connections500 thread_cache_size50 # 查询缓存 query_cache_size64M query_cache_type1 # 其他优化 innodb_flush_log_at_trx_commit1 sync_binlog15.3 远程访问配置创建远程访问用户CREATE USER remote% IDENTIFIED BY 密码; GRANT ALL PRIVILEGES ON *.* TO remote%; FLUSH PRIVILEGES;开放防火墙端口firewall-cmd --zonepublic --add-port3306/tcp --permanent firewall-cmd --reload6. 常见问题与解决方案6.1 安装问题依赖冲突如果遇到依赖冲突可以尝试yum remove mariadb-libs初始化失败检查错误日志 /var/log/mysqld.log常见原因是目录权限问题。6.2 连接问题无法远程连接检查用户权限SELECT host,user FROM mysql.user;检查防火墙设置确认 MySQL 配置中bind-address0.0.0.0忘记 root 密码systemctl stop mysqld mysqld_safe --skip-grant-tables mysql -u root # 然后执行密码修改6.3 性能问题查询慢检查索引EXPLAIN SELECT...优化查询语句调整缓冲池大小连接数不足增加max_connections使用连接池7. 维护与管理技巧7.1 备份与恢复使用 mysqldump 备份mysqldump -u root -p --all-databases backup.sql恢复备份mysql -u root -p backup.sql7.2 监控与日志查看慢查询日志SHOW VARIABLES LIKE slow_query_log%;查看运行状态SHOW STATUS; SHOW ENGINE INNODB STATUS;7.3 升级与迁移小版本升级yum update mysql-community-server大版本迁移使用 mysqldump 导出数据安装新版本 MySQL导入数据8. 三种安装方式的比较与选择建议8.1 特性对比特性yum 安装rpm 包安装gz 源码包安装安装难度简单中等复杂依赖管理自动手动手动定制程度低中高适用场景快速部署特定版本需求高度定制维护难度低中高升级便利性高中低8.2 选择建议新手用户推荐使用 yum 安装简单快捷易于维护生产环境推荐 rpm 包安装便于版本控制和统一管理特殊需求如需特定编译选项或高度定制选择源码包安装8.3 性能考虑源码安装理论上可以提供最佳性能因为可以针对特定硬件进行优化编译。但在大多数场景下yum 和 rpm 安装的性能差异不大。更重要的性能优化应该集中在配置参数和数据库设计上。9. 实际应用中的经验分享9.1 安全实践最小权限原则为每个应用创建单独的用户仅授予必要的权限定期更换密码特别是远程访问用户的密码启用 SSL对于生产环境建议配置 SSL 加密连接9.2 性能调优缓冲池大小这是最重要的参数应设为可用内存的50-70%监控工具使用如 MySQLTuner 定期检查配置索引优化合理设计索引可以极大提升查询性能9.3 高可用方案对于关键业务系统考虑以下高可用方案主从复制MySQL Group Replication使用中间件如 ProxySQL 实现读写分离10. 总结与后续学习建议本文详细介绍了在 CentOS 7 系统上安装 MySQL 的三种主要方式每种方式都有其适用场景。yum 安装适合快速部署rpm 安装提供了更多控制而源码安装则适合需要高度定制的环境。对于希望深入学习 MySQL 的读者建议阅读官方文档了解更详细的配置选项学习 SQL 优化和索引设计实践备份恢复和高可用方案关注 MySQL 8.0 的新特性如窗口函数、CTE 等MySQL 是一个功能强大且灵活的关系型数据库掌握其安装和配置是数据库管理的基础。通过不断实践和学习可以逐步提升数据库管理和优化的能力。