centos mysql最佳实践分享
以下是CentOS下MySQL的最佳实践分享,涵盖安装、配置、优化及维护关键环节:
一、安装与安全配置
- 系统准备
- 更新系统并安装开发工具:
sudo yum update -y && sudo yum groupinstall -y 'Development Tools'
。
- 更新系统并安装开发工具:
- 安装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
。
- 添加官方仓库并安装:
- 安全加固
- 运行安全脚本:
sudo mysql_secure_installation
(删除匿名用户、禁用root远程登录、删除测试库)。 - 配置防火墙开放3306端口:
sudo firewall-cmd --add-port=3306/tcp --permanent && sudo firewall-cmd --reload
。
- 运行安全脚本:
二、性能优化
- 配置参数优化
- 编辑
/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)。
- 编辑
- 索引优化
- 为高频查询字段创建索引,避免低基数列索引,使用覆盖索引减少回表。
- 通过
SHOW STATUS LIKE 'Handler_read%'
判断索引使用效率,优化低效查询。
- 查询优化
- 避免
SELECT *
,只查询必要字段;使用LIMIT
分页;简化多表JOIN逻辑。 - 用
EXPLAIN
分析慢查询,优化执行计划。
- 避免
三、系统级优化
- 硬件与内核参数
- 使用SSD存储,避免swap分区(可通过
vm.swappiness=1
降低交换倾向)。 - 调整内核参数(
/etc/sysctl.conf
):
net.ipv4.tcp_tw_reuse=1
(复用TIME_WAIT连接)。
- 使用SSD存储,避免swap分区(可通过
- 定期维护
- 每周执行
ANALYZE TABLE
更新统计信息,每月执行OPTIMIZE TABLE
清理碎片。 - 监控工具:使用
MySQLTuner
或Percona Toolkit
分析性能瓶颈。
- 每周执行
四、高可用与备份
- 主从复制
- 配置主从同步,实现读写分离,提升可用性。
- 备份策略
- 每日全量备份+增量备份,使用
mysqldump
或xtrabackup
工具。 - 备份文件异地存储,定期验证恢复流程。
- 每日全量备份+增量备份,使用
五、注意事项
- 生产环境避免使用
query_cache
(MySQL 8.0已默认禁用,可依赖应用层缓存如Redis)。 - 重大配置修改前备份数据,优先在测试环境验证。
参考来源:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!