阿里云服务器 CentOS 7 安装 MySQL 8.4 超详细指南
一、准备工作
- 系统要求:
- CentOS 7.9 64位
- 2 核(vCPU)2 GiB
- root 用户权限
- 服务器连接工具:
- FinalShell
- 下载安装包:
- 访问 MySQL 官网
- 选择版本:MySQL 8.4.0
- 下载 RPM Bundle 包
二、安装步骤
连接CentOS 7,依次执行以下步骤。
步骤 1:更新系统
yum -y update
步骤 2:安装依赖
yum install libaio -y
步骤 3:上传安装包
cd /root
等待上传完毕后,进行下一步骤。
步骤 3:解压安装包
tar -xvf mysql-8.4.0-1.el7.x86_64.rpm-bundle.tar
步骤 4:移除冲突的 MariaDB
# 检查已安装的 MariaDB
rpm -qa | grep mariadb
# 强制移除(如果有)
rpm -e --nodeps mariadb-libs
# 再次确认是否移除成功
rpm -qa | grep mariadb
步骤 5:按顺序安装 RPM 包
rpm -ivh mysql-community-common-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.4.0-1.el7.x86_64.rpm
步骤 6:初始化 MySQL
mysqld --initialize --console
步骤 7:修改数据目录权限
chown -R mysql:mysql /var/lib/mysql
步骤 8:启动 MySQL 服务
systemctl start mysqld
systemctl enable mysqld # 设置开机自启
步骤 9:获取并修改 root 密码
# 查看临时密码
cat /var/log/mysqld.log | grep "temporary password"
(从网上找了一个,忘记截图了)
# 登录 MySQL
mysql -uroot -p
# 输入临时密码
# 查看当前的密码策略
SHOW VARIABLES LIKE 'validate_password%';
这是 MySQL 密码策略的配置参数,含义如下:
参数 | 值 | 说明 |
---|---|---|
validate_password.changed_characters_percentage |
0 | 密码修改时需变更字符的比例要求(0 为无强制) |
validate_password.check_user_name |
ON | 密码不能与用户名相同 |
validate_password.dictionary_file |
密码字典文件路径(未配置) | |
validate_password.length |
8 | 密码最小长度 |
validate_password.mixed_case_count |
1 | 密码需包含至少 1 个大小写字母 |
validate_password.number_count |
1 | 密码需包含至少 1 个数字 |
validate_password.policy |
MEDIUM | 密码策略等级(MEDIUM 中等) |
validate_password.special_char_count |
1 | 密码需包含至少 1 个特殊字符 |
如果要修改策略,使用set命令,例如:
# 指定密码中至少包含的大小写字母组合个数为0
SET GLOBAL validate_password.mixed_case_count = 0;
# 修改密码(需满足复杂度要求)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass@123';
# 允许远程登录(可选)
CREATE USER 'root'@'%' IDENTIFIED BY 'MyNewPass@123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
三、安全加固
运行安全脚本:
mysql_secure_installation
- 移除匿名用户
- 禁止 root 远程登录
- 删除测试数据库
配置防火墙:
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
也可以在阿里云 云服务器管理控制台的网络与安全/安全组/管理规则/入方向/快速添加 里进行端口开放。
四、常用管理命令
功能 | 命令 |
---|---|
启动服务 | systemctl start mysqld |
停止服务 | systemctl stop mysqld |
查看状态 | systemctl status mysqld |
查看版本 | mysql -V |
连接数据库 | mysql -u root -p |
查看错误日志 | tail -f /var/log/mysqld.log |
五、常见问题解决
问题 1:安装时提示依赖冲突
- 解决:
yum remove mariadb* # 彻底移除 MariaDB rpm -e --nodeps [冲突包名]
问题 2:忘记 root 密码
# 1. 修改配置文件
echo "skip-grant-tables" >> /etc/my.cnf
# 2. 重启服务
systemctl restart mysqld
# 3. 无密码登录修改
mysql -uroot
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123';
# 4. 移除跳过密码配置
sed -i '/skip-grant-tables/d' /etc/my.cnf
systemctl restart mysqld
问题 3:客户端连接报 “caching_sha2_password” 错误
-- 登录 MySQL 执行
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'MyNewPass@123';
六、验证安装
检查运行状态:
systemctl status mysqld
✅ 输出应显示
active (running)
测试数据库操作:
CREATE DATABASE testdb; USE testdb; CREATE TABLE users (id INT, name VARCHAR(20)); INSERT INTO users VALUES (1, 'CentOS7'); SELECT * FROM users;