CentOS7上MySQL8.0安装全攻略:从零到实战
CentOS7安装MySQL8.0版本详细步骤
一、环境准备与依赖检查
在CentOS7上安装MySQL8.0前,需确保系统环境满足以下条件:
- 系统版本:确认系统为CentOS7(64位),通过
cat /etc/redhat-release命令查看版本信息。 - 依赖库检查:MySQL8.0依赖
libaio和numactl库,执行以下命令安装:sudo yum install -y libaio numactl
- 防火墙与SELinux:临时关闭防火墙(测试环境)或开放3306端口:
对于SELinux,可设置为宽松模式(sudo systemctl stop firewalld # 临时关闭sudo systemctl disable firewalld # 永久禁用(生产环境建议配置规则)
setenforce 0)或配置策略允许MySQL访问。
二、下载MySQL8.0官方RPM包
MySQL官方提供针对不同Linux发行版的RPM包,推荐从官方仓库或镜像站下载:
- 访问MySQL YUM仓库:
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
- 安装YUM仓库配置包:
此操作会添加MySQL官方YUM源到系统,后续可通过sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm
yum repolist查看包含的仓库。
三、安装MySQL8.0服务器
通过YUM直接安装可自动处理依赖关系:
- 清理YUM缓存并安装:
sudo yum clean allsudo yum install -y mysql-community-server
- 验证安装版本:
输出应显示rpm -qi mysql-community-server | grep Version
8.0.x版本号。
四、启动MySQL服务与初始配置
- 启动MySQL服务:
sudo systemctl start mysqldsudo systemctl enable mysqld # 设置开机自启
获取临时密码:
MySQL8.0首次启动会生成临时密码,存储在日志文件中:sudo grep 'temporary password' /var/log/mysqld.log
输出类似:
A temporary password is generated for root@localhost: abc123xyz。运行安全配置向导:
使用临时密码登录并运行mysql_secure_installation:mysql -u root -p# 输入临时密码后,按提示完成以下操作:- 修改root密码(需满足强度要求,如包含大小写字母、数字和特殊字符)- 移除匿名用户- 禁止root远程登录- 移除测试数据库- 重新加载权限表
五、配置MySQL8.0远程访问(可选)
生产环境中常需远程管理数据库:
- 创建远程管理用户:
CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;
- 修改配置文件允许远程连接:
编辑/etc/my.cnf,在[mysqld]段添加:bind-address = 0.0.0.0 # 允许所有IP连接(生产环境建议指定IP)
- 开放防火墙端口:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanentsudo firewall-cmd --reload
六、验证安装与性能优化
- 连接测试:
mysql -u admin -p -h 127.0.0.1
- 基础性能调优:
- 调整
innodb_buffer_pool_size(建议为物理内存的50%-70%):[mysqld]innodb_buffer_pool_size = 2G
- 启用慢查询日志:
slow_query_log = 1slow_query_log_file = /var/log/mysql/mysql-slow.loglong_query_time = 2
- 调整
七、常见问题解决方案
- 依赖冲突:
若安装时报依赖错误,可尝试:sudo yum install -y epel-releasesudo yum update -y
- 密码策略问题:
MySQL8.0默认启用validate_password插件,可通过以下命令降低策略:SET GLOBAL validate_password.policy=LOW;SET GLOBAL validate_password.length=4;
- 服务启动失败:
检查日志定位问题:sudo journalctl -xe -u mysqld
八、最佳实践建议
- 定期备份:使用
mysqldump或配置物理备份工具(如Percona XtraBackup)。 - 监控告警:通过Prometheus+Grafana监控关键指标(如连接数、QPS、慢查询)。
- 版本升级:关注MySQL官方安全公告,及时通过
yum update升级。
通过以上步骤,您可在CentOS7上完成MySQL8.0的完整部署。实际生产环境中,建议结合企业安全策略进一步加固配置(如启用SSL连接、审计日志等)。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!