一、环境准备与前置条件
在开始MySQL单机部署之前,首先需要确保CentOS系统环境满足以下条件:
-
系统版本:推荐使用CentOS 7或CentOS 8,这两个版本对MySQL的支持较为完善,且社区活跃度高,遇到问题容易找到解决方案。
-
硬件配置:根据MySQL的使用场景,硬件配置需求各异。对于开发测试环境,4GB内存、双核CPU、50GB硬盘空间通常足够;生产环境则需根据数据量、并发量等因素进行评估,建议至少8GB内存、四核CPU、100GB以上硬盘空间,并考虑使用SSD提升I/O性能。
-
网络连接:确保服务器有稳定的网络连接,以便下载MySQL安装包及后续维护。
-
防火墙设置:如果启用了防火墙(如firewalld或iptables),需开放MySQL默认端口3306,或根据实际配置调整。
二、MySQL安装
1. 添加MySQL YUM仓库
CentOS官方仓库中的MySQL版本可能较旧,建议从MySQL官方获取最新的YUM仓库配置:
# 下载MySQL YUM仓库安装包wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm # CentOS 7示例# 或对于CentOS 8# wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm# 安装YUM仓库sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
2. 安装MySQL服务器
安装仓库后,使用YUM命令安装MySQL服务器:
sudo yum install mysql-community-server
安装过程中,YUM会自动解决依赖关系,并提示确认安装,按y继续。
3. 启动MySQL服务
安装完成后,启动MySQL服务并设置开机自启:
sudo systemctl start mysqldsudo systemctl enable mysqld
三、MySQL配置
1. 初始安全设置
MySQL安装后,会生成一个临时密码,用于首次登录。查找临时密码并执行安全脚本:
# 查找临时密码(通常在/var/log/mysqld.log中)sudo grep 'temporary password' /var/log/mysqld.log# 使用临时密码登录MySQLmysql -u root -p# 执行安全设置脚本(在MySQL命令行中)ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; # 修改密码FLUSH PRIVILEGES;# 退出MySQL后,可运行mysql_secure_installation脚本进行进一步安全设置mysql_secure_installation
mysql_secure_installation脚本会引导你完成密码强度检查、移除匿名用户、禁止root远程登录等安全操作。
2. 配置文件调整
MySQL的主要配置文件位于/etc/my.cnf或/etc/mysql/my.cnf,根据实际需求调整参数,如:
innodb_buffer_pool_size:InnoDB存储引擎的缓冲区大小,通常设为物理内存的50%-70%。max_connections:最大连接数,根据并发需求调整。log-bin:启用二进制日志,用于数据复制和恢复。
修改后,重启MySQL服务使配置生效:
sudo systemctl restart mysqld
四、安全加固与性能优化
1. 安全加固
- 限制访问:通过防火墙规则限制MySQL端口(3306)的访问,仅允许必要的IP地址访问。
- 使用强密码:确保所有数据库用户使用复杂密码,并定期更换。
- 最小权限原则:为应用创建专用用户,仅授予必要的数据库权限。
2. 性能优化
- 索引优化:合理设计索引,避免过度索引导致的写入性能下降。
- 查询优化:使用EXPLAIN分析查询执行计划,优化慢查询。
- 定期维护:执行
ANALYZE TABLE、OPTIMIZE TABLE等命令维护表结构,减少碎片。
五、备份与恢复策略
1. 定期备份
使用mysqldump工具定期备份数据库:
mysqldump -u 用户名 -p --all-databases > /path/to/backup/all_databases_$(date +%Y%m%d).sql
2. 恢复测试
定期测试备份文件的恢复过程,确保在数据丢失时能快速恢复。
六、监控与日志分析
1. 监控工具
使用如Prometheus+Grafana、Percona Monitoring and Management (PMM)等工具监控MySQL性能指标。
2. 日志分析
定期检查MySQL错误日志(/var/log/mysqld.log)和慢查询日志,及时发现并解决问题。
通过以上步骤,你可以在CentOS系统上成功部署并管理一个MySQL单机实例。记住,数据库的稳定运行离不开持续的监控、优化和备份策略。