CentOS 7安装MySQL数据库详细过程 解决数据库配置报错【全攻略】

梦墨酱_8972

梦墨酱_8972

2026-04-11

1039人浏览

原创

centos 7 安装 mysql 报错需先彻底卸载 mariadb 及残留文件,再配置 el7 兼容的官方 yum 源、导入 gpg 密钥,最后安装服务、获取临时密码并重置符合策略的新密码。

centos 7安装mysql数据库详细过程 解决数据库配置报错【全攻略】

如果您在 CentOS 7 系统中安装 MySQL 数据库时遇到配置报错,例如服务无法启动、初始化失败、密码获取异常或 GPG 密钥验证错误,则很可能是由于残留组件冲突、YUM 源配置不当、依赖缺失或权限/路径异常所致。以下是针对各类典型配置报错的系统性解决步骤:

一、彻底卸载 MariaDB 与旧版 MySQL 冲突组件

CentOS 7 默认预装 MariaDB,其服务名(mariadb)、端口(3306)、配置文件(/etc/my.cnf)及数据目录(/var/lib/mysql)均与官方 MySQL 冲突,必须完全清除,否则会导致 mysqld 启动失败或配置覆盖失效。

1、停止正在运行的数据库服务:
执行 systemctl stop mysqld mariadb,并确认无残留进程:
ps aux | grep -E "(mysqld|mariadb)",若输出为空则表示已停止。

2、卸载所有相关 RPM 包:
执行 rpm -qa | grep -E "mysql|mariadb" | xargs yum remove -y,强制移除全部匹配包。

3、删除残留配置与数据目录:
执行 rm -rf /etc/my.cnf /etc/my.cnf.d /var/lib/mysql /var/log/mysqld.log,确保无历史配置干扰新安装流程。

二、配置兼容的 MySQL 官方 YUM 源

CentOS 7 自带 YUM 源不含 MySQL 官方软件包,直接 yum install mysql-community-server 会报“no package available”。必须手动添加与系统版本(el7)严格匹配的官方源,否则将触发元数据解析失败或仓库不可用错误。

1、确认系统版本:
执行 cat /etc/redhat-release,输出应为类似 CentOS Linux release 7.x.x (Core) 的格式。

2、下载对应 el7 版本的 MySQL YUM 发行包:
访问 https://dev.mysql.com/downloads/repo/yum/,右键查看页面源码,定位到 mysql80-community-release-el7-*.noarch.rpm 或 mysql57-community-release-el7-*.noarch.rpm(根据目标版本选择),使用 wget 下载:
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm。

3、安装 YUM 源包并验证:
执行 rpm -ivh mysql80-community-release-el7-3.noarch.rpm;
再执行 yum repolist enabled | grep "mysql",若返回包含 mysql80-community 的条目,则源已生效。

三、处理 GPG 密钥验证失败报错

执行 yum install 时若出现 “GPG key retrieval failed” 或 “Failing package is: mysql-community-client-*” 提示,说明本地未导入 MySQL 官方 GPG 公钥,导致 RPM 包签名校验失败,安装中断。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载

1、手动导入最新 GPG 密钥:
执行 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022(适用于 2022 年后发布的 MySQL 8.0/5.7 包)。

2、若仍报错,可临时禁用密钥检查(仅限测试环境):
执行 yum install -y mysql-community-server --nogpgcheck,但不推荐用于生产环境。

四、安装并初始化 MySQL 服务

YUM 源配置正确且密钥就绪后,方可执行安装。若此前跳过卸载或源配置步骤,此处极易触发依赖缺失(如 libaio.so.1)或服务单元文件缺失等错误。

1、安装 MySQL 服务端主程序:
执行 yum install -y mysql-community-server,该命令自动拉取并安装 server、client、common、libs 等必需组件。

2、启动 mysqld 服务并设为开机自启:
执行 systemctl start mysqld;
执行 systemctl enable mysqld。

3、获取 root 用户初始密码:
执行 grep 'temporary password' /var/log/mysqld.log,输出形如 A temporary password is generated for root@localhost: xxxxxxxx,其中冒号后字符串即为临时密码。

五、修复登录失败与密码策略报错

使用临时密码登录后若提示 “ERROR 1820 (HY000): You must reset your password”,或执行 SET PASSWORD 报错 “Your password does not satisfy the current policy requirements”,说明 MySQL 5.7+ 默认启用了 validate_password 插件,对密码复杂度有强制要求。

1、临时关闭密码策略插件(便于快速验证):
编辑配置文件:vi /etc/my.cnf;
在 [mysqld] 段落下新增一行:validate_password=off;
保存后执行 systemctl restart mysqld。

2、重置 root 密码:
执行 mysql -uroot -p,输入临时密码进入;
执行 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';(密码需含大小写字母、数字、特殊字符且长度 ≥8);
执行 FLUSH PRIVILEGES;。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

2133

6

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.21

1319

5

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

775

5

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.19

2912

5

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.25

4868

4

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.08

1119

3

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.11

5131

4

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

2023.08.14

4542

7

mysql事务隔离级别
mysql事务隔离级别

mysql规范中定义了四种事务隔离级别,不同的隔离级别对事务的处理有所不同。本专题为大家提供mysql事务隔离级别相关的文章内容,大家可以免费体验。

2023.08.16

5954

11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 182人学习