CentOS7安装MySQL8.0版本详细步骤
一、安装前环境准备
在正式安装MySQL8.0之前,需确保CentOS7系统环境满足以下条件:
-
系统版本确认
执行cat /etc/redhat-release命令,确认系统版本为CentOS Linux 7.x。若版本低于7,需先升级系统或更换兼容的MySQL版本。 -
依赖库安装
MySQL8.0依赖libaio和numactl库,通过以下命令安装:sudo yum install -y libaio numactl
若系统未配置EPEL仓库,需先执行
sudo yum install -y epel-release。 -
防火墙与SELinux配置
- 防火墙:开放3306端口(默认MySQL端口):
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanentsudo firewall-cmd --reload
- SELinux:临时设置为宽松模式(测试环境可用,生产环境建议配置策略):
sudo setenforce 0
- 防火墙:开放3306端口(默认MySQL端口):
二、MySQL8.0安装流程
1. 下载MySQL官方YUM仓库
访问MySQL官网下载页(https://dev.mysql.com/downloads/repo/yum/),选择对应CentOS7版本的RPM包。或直接通过命令下载:
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
2. 安装YUM仓库
执行以下命令安装仓库配置包:
sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm
安装后,系统会自动生成/etc/yum.repos.d/mysql-community.repo文件,包含MySQL各版本的仓库配置。
3. 启用MySQL8.0仓库
编辑仓库配置文件,确保enabled=1:
sudo vi /etc/yum.repos.d/mysql-community.repo
在[mysql80-community]段中确认以下内容:
[mysql80-community]name=MySQL 8.0 Community Serverbaseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
4. 安装MySQL服务器
执行以下命令安装MySQL8.0:
sudo yum install -y mysql-community-server
安装过程中,YUM会自动解决依赖关系,下载并安装MySQL服务器及客户端工具。
5. 启动MySQL服务
安装完成后,启动MySQL服务并设置开机自启:
sudo systemctl start mysqldsudo systemctl enable mysqld
通过systemctl status mysqld检查服务状态,确认输出中包含active (running)。
三、安装后配置
1. 获取临时密码
MySQL8.0首次启动时会生成一个临时密码,存储在日志文件中。执行以下命令查看:
sudo grep 'temporary password' /var/log/mysqld.log
输出示例:
2023-10-01T12:34:56.789012Z 1 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Abc123xyz
记录Abc123xyz作为临时密码。
2. 运行安全脚本
执行mysql_secure_installation脚本进行安全配置:
sudo mysql_secure_installation
按提示完成以下操作:
- 输入临时密码。
- 设置新密码(需满足复杂度要求,如包含大小写字母、数字和特殊字符)。
- 移除匿名用户(
Remove anonymous users? [Y/n] Y)。 - 禁止root远程登录(
Disallow root login remotely? [Y/n] Y)。 - 移除测试数据库(
Remove test database and access to it? [Y/n] Y)。 - 重新加载权限表(
Reload privilege tables now? [Y/n] Y)。
3. 配置远程访问(可选)
若需从远程主机连接MySQL,需执行以下步骤:
-
修改root用户权限
登录MySQL后执行:CREATE USER 'root'@'%' IDENTIFIED BY '新密码';GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;
-
修改配置文件
编辑/etc/my.cnf,在[mysqld]段中添加:bind-address = 0.0.0.0
重启MySQL服务:
sudo systemctl restart mysqld
四、常见问题解决
1. 依赖冲突
若安装过程中报错Error: Package: mysql-community-server-8.0.xx-1.el7.x86_64,可能是由于系统存在旧版MySQL或MariaDB。执行以下命令清理:
sudo yum remove mariadb* mysql*sudo rm -rf /var/lib/mysql
2. 密码策略问题
MySQL8.0默认启用强密码策略,若需降低复杂度要求,可修改策略:
SET GLOBAL validate_password.policy=LOW;SET GLOBAL validate_password.length=4;
永久生效需编辑/etc/my.cnf,在[mysqld]段中添加:
validate_password.policy=LOWvalidate_password.length=4
3. 端口冲突
若3306端口被占用,可通过以下步骤修改MySQL端口:
- 编辑
/etc/my.cnf,在[mysqld]段中添加:port = 3307
- 修改防火墙规则:
sudo firewall-cmd --zone=public --remove-port=3306/tcp --permanentsudo firewall-cmd --zone=public --add-port=3307/tcp --permanentsudo firewall-cmd --reload
- 重启MySQL服务。
五、总结与建议
- 备份数据:升级或修改配置前,务必备份数据库(
mysqldump -u root -p --all-databases > backup.sql)。 - 监控资源:MySQL8.0对内存和CPU要求较高,建议通过
top或htop监控资源使用情况。 - 定期维护:执行
mysqlcheck -u root -p --optimize --all-databases优化数据库性能。
通过以上步骤,您可以在CentOS7系统上成功安装并配置MySQL8.0。如遇问题,可参考MySQL官方文档(https://dev.mysql.com/doc/)或社区论坛获取支持。