一,环境准备
yum -y install mysql
1.先确认操作系统是centos 7
cat /etc/redhat-release
输出 CentOS Linux release 7.x.x (Core)
2.centos 7默认装 mariadb (与 MySQL 冲突),得卸载,否则会导致 mysql安装失败
(1)查询已安装的mariadb 相关的包2
rpm -qa | grep mariadb
输出内容为mariadb-libs-5.5.68-1.el7.x86_64
(2)卸载冲突包,使用 --nodeps 忽略依赖关系
sudo rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 # 替换为实际包名
(3)清理残留的文件
sudo rm -rf /var/lib/mysql # 若存在旧数据目录,强制删除
sudo rm -rf /etc/my.cnf # 若存在旧配置文件,强制删除
3.安装依赖
MySQL安装需要依赖wget下载工具和perl脚本解析器,系统没有安装,先执行
sudo yum install -y wget perl
二、配置 MySQL 8.0 官方 YUM 仓库
1.下载仓库配置包
(1)在官网找一个centos 7 的rpm包
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
(2)如果下载的太慢,试试阿里云镜像
sudo wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql80-community-release-el7-7.noarch.rpm
2.安装仓库配置
sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm
3.验证仓库有没有生效
看是否包含MySQL8.0
yum repolist enabled | grep mysql
输出包含 mysql80-community,说明仓库配置成功。
三、安装 MySQL 8.0 服务
1.安装MySQL社区版的服务器
sudo yum install -y mysql-community-server
若出现类似 warning: ...: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY 的错误,说明缺少GPG 密钥,执行以下命令导入:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
若提示 Error: Package: ... 依赖错误,先更新系统基础依赖:
sudo yum update -y
如果还是不行
查看现有 MySQL GPG 密钥状态:
执行命令 rpm -qa gpg-pubkey* | grep mysql
清除 Yum/Dnf 缓存:
执行 yum clean all
yum install mysql-community-server
再重新安装 MySQL
2.确认安装成功
mysql --version
输出内容为ysql Ver 8.0.x for Linux on x86_64 (MySQL Community Server - GPL) 的内容,说明版本正确
没有出来就执行mysql GPG密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
![]()
然后清理yum缓存重新安装
yum clean all

然后重新执行MySQL安装命令
yum install mysql-community-server
输入Y
然后执行下面这条命令
mysql --version
![]()
输出mysql Ver 8.0.x for Linux on x86_64 (MySQL Community Server - GPL) 的内容,说明版本正确
四、初始化 MySQL 服务
1.启动MySQL服务器设置开机自启
sudo systemctl start mysqld
避免服务器重启后 MySQL 无法自动运行
sudo systemctl enable mysqld
查看服务状态
sudo systemctl status mysqld
![]()
出现这个就好了
2.获取初始临时密码
MySQL 8.0 安装后会自动为 root 用户生成临时密码,存储在日志文件中,必须使用该密码登录并修改
sudo grep 'temporary password' /var/log/mysqld.log

输出为字符串就是临时密码
若日志中无临时密码(极少情况):可能是数据目录初始化失败,删除数据目录并重新初始化:
sudo systemctl stop mysqld # 先停止服务
sudo rm -rf /var/lib/mysql # 删除旧数据
sudo mysqld --initialize --user=mysql # 重新初始化(自动生成新密码)
sudo systemctl start mysqld # 重启服务
sudo grep 'temporary password' /var/log/mysqld.log # 再次获取密码
五、首次登录与密码配置
1.用临时密码登录MySQL
通过 mysql 命令行工具登录,输入临时密码
mysql -uroot -p
输入密码
2.修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Wyq@2025';
输出Query OK, 0 rows affected (0.00 sec)修改成功
3.可选放宽密码策略
(1) 查看当前密码策略
SHOW VARIABLES LIKE 'validate_password%';
(2) 修改策略(仅测试环境用)
set global validate_password.policy=0; # 0=低(仅检查长度)
set global validate_password.length=6; # 最小长度6位
六、配置远程访问
1.授权远程登陆权限
(1)允许root从任何IP访问
创建允许远程访问的 root 用户(% 表示任意 IP)
CREATE USER 'root'@'%' IDENTIFIED BY 'Wyq@2025';
授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
刷新权限使配置生效
FLUSH PRIVILEGES;
(2)限制特定IP访问
CREATE USER 'root'@'192.168.10.11' IDENTIFIED BY 'Wyq@2025';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.11' WITH GRANT OPTION;
FLUSH PRIVILEGES;
2.解决远程连接失败
修改 root@% 的认证插件
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Wyq@2025';
FLUSH PRIVILEGES;
七、开放防火墙与 SELinux 配置
1.开放防火墙3306端口
(1)临时开放
记得先退出来
sudo firewall-cmd --zone=public --add-port=3306/tcp
输出为下图就对了

![]()
如果输出为running就执行下面的命令
启动 FirewallD 服务
sudo systemctl start firewalld
设置 FirewallD 开机自启
sudo systemctl enable firewalld
(2) 永久开放
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
#出现success就对了
(3) 重新加载防火墙规则
sudo firewall-cmd --reload
#出现success就对了
(4) 验证端口是否开放
sudo firewall-cmd --zone=public --query-port=3306/tcp
输出为yes对了
#永久关闭SELinux不推荐
#编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled,保存后重启服务器
八、验证 MySQL 功能
1.本地验证(登录MySQL,执行基本命令测试)
(1)查看数据库列表
SHOW DATABASES;
(2) 创建测试数据库
CREATE DATABASE test_db;
(3) 使用测试数据库
USE test_db;
(4) 创建测试表
CREATE TABLE test_table (id INT, name VARCHAR(20));
(5) 插入数据
INSERT INTO test_table VALUES (1, 'mysql_test');
(6) 查询数据
SELECT * FROM test_table;
2.远程验证
(1)打开第二胎centos7 只装MySQL
yum -y install mysqld
(2)登录第一台
mysql -uroot -pWyq@2025 -h 192.168.10.11
九、MySQL 核心配置
MySQL 配置文件路径为 /etc/my.cnf修改后需重启服务 sudo systemctl restart mysqld
在第一台上面做
[mysqld]
字符集(支持 emoji 需 utf8mb4)
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
最大连接数(默认 151,根据需求调整)
max_connections = 500
数据存储路径(默认 /var/lib/mysql,若需修改需同步权限)
datadir = /var/lib/mysql
端口(默认 3306,可自定义)
port = 3306
十、常见问题与解决
1.MySQL 启动失败
查看日志排查原因:
sudo tail -n 100 /var/log/mysqld.log
常见原因:数据目录权限错误(需确保 /var/lib/mysql 属主为 mysql 用户),执行修复:
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl restart mysqld
2.忘记 root 密码重置步骤:
sudo systemctl stop mysqld # 停止服务
sudo mysqld_safe --skip-grant-tables & # 跳过权限验证启动
mysql -u root # 无密码登录
登录后修改密码
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@2025';
exit # 退出
sudo systemctl restart mysqld # 重启服务
777

被折叠的 条评论
为什么被折叠?



