在CentOS 7.1系统上配置MySQL是一个常见的服务器管理任务,本文将详细介绍从安装到基础配置的完整流程,帮助用户快速搭建稳定可靠的数据库环境。

安装MySQL官方Yum仓库
首先需要添加MySQL官方的Yum仓库,确保能够获取到最新版本的安装包,执行以下命令下载并添加MySQL的官方Yum源:
yum localinstall http://dev.mysql.com/get/mysql-community-release-el7-7.noarch.rpm -y
安装完成后,可以通过以下命令验证仓库是否添加成功:
yum repolist enabled | grep ".*\.\(.*\.\)compatible.*" | sort
如果看到MySQL相关的仓库列表,说明配置正确,这一步是后续安装的基础,务必确保网络连接正常。
安装MySQL服务器
使用Yum包管理器安装MySQL服务器组件,执行以下命令:
yum install mysql-community-server -y
安装过程会自动处理依赖关系,根据系统性能可能需要几分钟时间,安装完成后,启动MySQL服务并设置开机自启:
systemctl start mysqld
systemctl enable mysqld
此时可以通过systemctl status mysqld命令检查服务运行状态,确保显示"active (running)"。
初始化安全配置
MySQL安装完成后会生成一个临时root密码,需要通过以下命令查看:
grep 'temporary password' /var/log/mysqld.log
获取临时密码后,运行安全配置脚本:

mysql_secure_installation
按照提示完成以下步骤:
- 输入当前root密码
- 设置新密码(建议包含大小写字母、数字和特殊字符)
- 移除匿名用户
- 禁止root远程登录
- 移除测试数据库
- 重新加载权限表 这些步骤对于数据库的安全至关重要,建议认真配置。
配置MySQL远程访问
如需允许远程连接,需要修改MySQL配置文件,编辑/etc/my.cnf文件,在[mysqld]部分添加:
bind-address = 0.0.0.0
保存后重启MySQL服务,然后登录MySQL创建远程访问用户:
mysql -u root -p
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意:生产环境中应限制特定IP访问,不建议使用通配符。
优化MySQL性能
根据服务器资源配置适当的参数,编辑/etc/my.cnf文件,调整以下关键参数:
innodb_buffer_pool_size = 2G
max_connections = 200
query_cache_size = 64M
参数值需要根据实际服务器内存和负载情况调整,修改后重启MySQL服务使配置生效,可以使用mysqladmin variables命令查看当前运行参数。
设置防火墙规则
确保防火墙允许MySQL端口(默认3306)的访问,执行以下命令:
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
如果需要限制特定IP访问,可以添加规则:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="mysql" accept'
数据库备份策略
定期备份数据库是保障数据安全的重要措施,创建备份脚本/usr/local/bin/mysql_backup.sh:
#!/bin/bash DATE=$(date +%Y%m%d_%H%M%S) mysqldump -u root -p'YourPassword' --all-databases > /backup/mysql_$DATE.sql find /backup -name "mysql_*.sql" -mtime +7 -delete
添加执行权限并设置定时任务:
chmod +x /usr/local/bin/mysql_backup.sh
echo "0 2 * * * /usr/local/bin/mysql_backup.sh" | crontab -
常见问题诊断
当遇到MySQL无法启动时,检查日志文件/var/log/mysqld.log定位错误原因,如遇到权限问题,可重置权限:
chown -R mysql:mysql /var/lib/mysql
chmod 750 /var/lib/mysql
相关问答FAQs
Q1: 忘记MySQL root密码怎么办?
A1: 可以通过安全模式重置密码,首先停止MySQL服务:systemctl stop mysqld,然后跳过权限表启动:mysqld_safe --skip-grant-tables &,登录后执行:UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root',最后重启服务即可。
Q2: 如何优化MySQL在高并发下的性能?
A2: 主要从三个方面优化:1) 调整innodb_buffer_pool_size为服务器内存的50-70%;2) 增加max_connections值,但需注意文件描述符限制;3) 启用查询缓存(query_cache_type=1)并合理设置query_cache_size,建议使用mysqltuner工具进行性能分析。