一、环境准备与系统要求
在CentOS上部署MySQL单机环境前,需确保系统满足基础要求。推荐使用CentOS 7或8版本(本文以CentOS 7为例),因其对MySQL 8.0的兼容性较好。硬件方面,建议至少分配2GB内存(生产环境建议4GB+)、20GB磁盘空间(根据数据量调整),并确保网络连接稳定。
系统初始化步骤包括:
- 关闭SELinux:临时禁用执行
setenforce 0,永久禁用需修改/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled。 - 配置防火墙:开放3306端口(MySQL默认端口),命令为
firewall-cmd --zone=public --add-port=3306/tcp --permanent,随后执行firewall-cmd --reload生效。 - 更新系统包:运行
yum update -y确保所有软件包为最新版本,避免兼容性问题。
二、MySQL安装方式对比与选择
CentOS上安装MySQL主要有三种方式:
- YUM仓库安装:官方推荐,支持自动依赖解决,但版本可能较旧。
- RPM包安装:适合需要特定版本或离线部署的场景。
- 二进制包解压安装:灵活度高,但需手动配置环境变量。
推荐方案:使用MySQL官方YUM仓库安装最新稳定版(如8.0)。步骤如下:
- 下载MySQL YUM仓库配置包:
wget https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
- 安装仓库配置:
rpm -ivh mysql80-community-release-el7-6.noarch.rpm
- 安装MySQL服务器:
yum install mysql-community-server -y
此方式可自动处理依赖关系,并支持后续通过
yum update升级。
三、MySQL服务初始化与配置
安装完成后,需进行初始化配置:
- 启动MySQL服务:
systemctl start mysqldsystemctl enable mysqld # 设置开机自启
- 获取临时密码:MySQL 8.0首次启动会生成临时密码,通过以下命令查看:
grep 'temporary password' /var/log/mysqld.log
- 运行安全脚本:执行
mysql_secure_installation,按提示完成密码修改、移除匿名用户、禁止远程root登录等操作。例如:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; -- 密码需包含大小写字母、数字和特殊字符
配置文件优化:编辑/etc/my.cnf(或/etc/mysql/my.cnf),根据需求调整参数:
[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid# 性能优化参数示例innodb_buffer_pool_size=1G # 内存的50%-70%max_connections=200query_cache_size=64M
修改后重启服务生效:systemctl restart mysqld。
四、数据库操作与基础管理
通过MySQL命令行客户端连接数据库:
mysql -u root -p
常用操作示例:
- 创建用户与授权:
CREATE USER 'app_user'@'localhost' IDENTIFIED BY '用户密码';GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost';FLUSH PRIVILEGES;
- 创建数据库:
CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 备份与恢复:
mysqldump -u root -p app_db > app_db_backup.sql # 备份mysql -u root -p app_db < app_db_backup.sql # 恢复
五、安全加固与运维建议
- 定期更新:通过
yum update mysql-community-server升级至最新版本,修复安全漏洞。 - 日志监控:配置
/var/log/mysqld.log轮转,避免日志文件过大。 - 资源限制:在
/etc/security/limits.conf中设置用户进程数限制,防止资源耗尽。 - 慢查询优化:启用慢查询日志(
slow_query_log=1),分析执行时间超过1秒的SQL语句。
六、故障排查与常见问题
- 服务无法启动:检查日志
/var/log/mysqld.log,常见原因包括端口冲突、数据目录权限错误(需chown -R mysql:mysql /var/lib/mysql)。 - 连接拒绝:确认防火墙规则,检查
bind-address参数(若为127.0.0.1则仅允许本地连接)。 - 性能下降:使用
top、vmstat监控系统资源,通过EXPLAIN分析SQL执行计划。
七、总结与扩展建议
CentOS上部署MySQL单机环境需兼顾安装便捷性与后期维护性。推荐采用官方YUM仓库安装,结合安全脚本和配置优化,可快速构建稳定的数据存储服务。对于高并发场景,可进一步考虑:
- 升级至MySQL 8.0以利用更优的InnoDB引擎;
- 配置
/etc/my.cnf中的innodb_io_capacity参数以适配SSD磁盘; - 使用Percona Toolkit等工具进行数据库监控与维护。
通过规范化的部署流程和持续的优化管理,可确保MySQL在CentOS环境下高效稳定运行。