
1. 环境准备与基础检查在CentOS系统上安装MySQL前需要做好以下准备工作。我通常会先检查系统版本和架构这直接影响后续的安装方式选择cat /etc/redhat-release # 查看CentOS版本 uname -m # 查看系统架构(x86_64/aarch64)对于CentOS 7/8和不同架构的设备MySQL的安装包和依赖会有差异。特别提醒如果系统是全新安装的建议先更新基础组件yum update -y yum install -y epel-release重要提示生产环境中建议在非高峰时段执行更新操作避免影响线上服务。我曾遇到过因未更新基础依赖导致MySQL安装失败的案例浪费了两小时排查时间。2. YUM源配置最佳实践2.1 国内源加速方案由于网络原因直接使用默认源可能速度较慢。我习惯替换为阿里云镜像源以CentOS 7为例# 备份原有源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 下载阿里云源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清理并重建缓存 yum clean all yum makecache对于CentOS 8或Rocky Linux用户需要注意源格式的变化。最近在给某企业部署时就因版本匹配问题导致软件包冲突。2.2 添加MySQL专用源官方推荐通过MySQL YUM Repository安装最新稳定版# 安装RPM配置工具 yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm # 验证源是否添加成功 yum repolist enabled | grep mysql.*-community.*如果只需要特定版本如5.7可以这样修改# 禁用8.0版本源 yum-config-manager --disable mysql80-community # 启用5.7版本源 yum-config-manager --enable mysql57-community3. MySQL安装核心步骤3.1 通过YUM安装服务端执行以下命令安装MySQL服务器yum install -y mysql-community-server安装过程中常见问题处理出现Public key for mysql-community-server-8.0.36-1.el7.x86_64.rpm is not installed错误时rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022依赖冲突时可尝试yum install -y mysql-community-server --nogpgcheck3.2 关键目录结构说明安装完成后需要了解的重要路径配置文件/etc/my.cnf数据目录/var/lib/mysql日志文件/var/log/mysqld.log套接字文件/var/run/mysqld/mysqld.sock4. 服务初始化与安全配置4.1 启动服务与状态检查systemctl start mysqld systemctl enable mysqld systemctl status mysqld首次启动时会自动初始化在日志中查找临时密码grep temporary password /var/log/mysqld.log4.2 运行安全脚本执行安全加固向导mysql_secure_installation根据提示完成以下操作修改root密码需满足复杂度要求移除匿名用户禁止root远程登录移除测试数据库重新加载权限表经验之谈建议在此阶段创建专用管理账号而非直接使用root我通常会给团队每个成员创建独立账号并限制权限。5. 基础性能调优5.1 配置文件优化编辑/etc/my.cnf添加基础优化参数[mysqld] # 内存配置根据服务器实际内存调整 innodb_buffer_pool_size 1G key_buffer_size 256M query_cache_size 64M # 连接配置 max_connections 200 thread_cache_size 10 # 日志配置 slow_query_log 1 long_query_time 2 log_queries_not_using_indexes 15.2 防火墙配置开放3306端口firewall-cmd --zonepublic --add-port3306/tcp --permanent firewall-cmd --reload对于云服务器还需要在安全组规则中添加相应条目。6. 日常运维关键命令6.1 服务管理命令集# 服务控制 systemctl restart mysqld # 重启服务 systemctl stop mysqld # 停止服务 systemctl status mysqld # 查看状态 # 查看运行进程 ps -ef | grep mysql # 查看监听端口 netstat -tulnp | grep mysql6.2 数据库维护命令# 备份所有数据库 mysqldump -u root -p --all-databases full_backup.sql # 修复表 mysqlcheck -u root -p --auto-repair --optimize --all-databases7. 常见问题解决方案7.1 安装失败排查流程检查错误日志journalctl -xe tail -n 100 /var/log/mysqld.log验证依赖是否完整yum deplist mysql-community-server检查SELinux状态sestatus # 临时禁用 setenforce 07.2 连接问题处理典型错误ERROR 1130 (HY000): Host xxx.xxx.xxx.xxx is not allowed to connect解决方法-- 登录MySQL后执行 CREATE USER username% IDENTIFIED BY complex_password; GRANT ALL PRIVILEGES ON *.* TO username%; FLUSH PRIVILEGES;8. 版本升级注意事项当需要升级MySQL版本时建议操作流程完整备份所有数据库停止MySQL服务移除旧版本yum remove mysql-community-server清理残留文件rm -rf /var/lib/mysql安装新版本后需要重新初始化数据目录血泪教训去年有次升级未完整备份导致业务数据部分丢失。现在我的团队严格执行备份-验证-操作的流程。9. 监控与性能分析9.1 基础监控命令-- 查看运行状态 SHOW STATUS; -- 查看变量配置 SHOW VARIABLES; -- 查看进程列表 SHOW PROCESSLIST;9.2 慢查询分析# 安装分析工具 yum install -y pt-query-digest # 分析慢查询日志 pt-query-digest /var/log/mysql-slow.log10. 高可用方案选型建议根据业务需求可选择不同方案主从复制Master-Slave配置简单适合读多写少场景MySQL Group Replication原生集群方案支持多主写入Galera Cluster同步复制强一致性保证具体实施时需要根据业务特点和数据一致性要求进行选择。我们金融项目最终采用了Group Replication方案虽然配置复杂些但数据安全性更高。