温馨提示×

centos mysql最佳实践分享

小樊
41
2025-08-22 14:53:59
栏目: 云计算

以下是CentOS下MySQL的最佳实践分享,涵盖安装、配置、优化及维护关键环节:

一、安装与安全配置

  1. 系统准备
    • 更新系统并安装开发工具:
      sudo yum update -y && sudo yum groupinstall -y 'Development Tools'
  2. 安装MySQL
    • 添加官方仓库并安装:
      sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
      sudo yum install -y mysql-community-server
    • 启动服务并设置开机自启:
      sudo systemctl start mysqld && sudo systemctl enable mysqld
  3. 安全加固
    • 运行安全脚本:
      sudo mysql_secure_installation(删除匿名用户、禁用root远程登录、删除测试库)。
    • 配置防火墙开放3306端口:
      sudo firewall-cmd --add-port=3306/tcp --permanent && sudo firewall-cmd --reload

二、性能优化

  1. 配置参数优化
    • 编辑/etc/my.cnf,关键参数:
      • innodb_buffer_pool_size:设置为系统内存的50%-80%。
      • innodb_log_file_size:128M-512M,innodb_flush_log_at_trx_commit=2(平衡性能与安全)。
      • max_connections:根据并发量调整(建议不超过500)。
  2. 索引优化
    • 为高频查询字段创建索引,避免低基数列索引,使用覆盖索引减少回表。
    • 通过SHOW STATUS LIKE 'Handler_read%'判断索引使用效率,优化低效查询。
  3. 查询优化
    • 避免SELECT *,只查询必要字段;使用LIMIT分页;简化多表JOIN逻辑。
    • EXPLAIN分析慢查询,优化执行计划。

三、系统级优化

  1. 硬件与内核参数
    • 使用SSD存储,避免swap分区(可通过vm.swappiness=1降低交换倾向)。
    • 调整内核参数(/etc/sysctl.conf):
      net.ipv4.tcp_tw_reuse=1(复用TIME_WAIT连接)。
  2. 定期维护
    • 每周执行ANALYZE TABLE更新统计信息,每月执行OPTIMIZE TABLE清理碎片。
    • 监控工具:使用MySQLTunerPercona Toolkit分析性能瓶颈。

四、高可用与备份

  1. 主从复制
    • 配置主从同步,实现读写分离,提升可用性。
  2. 备份策略
    • 每日全量备份+增量备份,使用mysqldumpxtrabackup工具。
    • 备份文件异地存储,定期验证恢复流程。

五、注意事项

  • 生产环境避免使用query_cache(MySQL 8.0已默认禁用,可依赖应用层缓存如Redis)。
  • 重大配置修改前备份数据,优先在测试环境验证。

参考来源:

0