文章目录
-
- 问题
- 解决
-
- [1. 卸载已安装的不匹配版本](#1. 卸载已安装的不匹配版本)
- [2. 重安装](#2. 重安装)
- 想要进一步使用MySQL
-
- 问题一:如何绕过安全检查设置简单密码?
- [问题二:在使用 CREATE USER 之前,必须先使用 ALTER USER 修改 root localhost 的密码吗?](#问题二:在使用 CREATE USER 之前,必须先使用 ALTER USER 修改 root localhost 的密码吗?)
- **以上答案请看下一篇**
问题
解决centos7与MySQL版本不匹配问题
-
核心问题:下载并安装了错误的MySQL版本包

-
从截图中,我们可以看出系统版本是centos7而下载的MySQL是针对centos6的。
在 CentOS 7 系统上强制安装 CentOS 6 的二进制包,会导致核心库(glibc等)不兼容,从而导致 mysqld 守护进程无法启动,报 exit-code 错误。
解决
1. 卸载已安装的不匹配版本
-
确保该服务停止
systemctl stop mysqld检查状态
systemctl status mysqld

-
写在所有相关的安装包|卸载所有 mysql-community 相关的 el6 包
·
yum remove mysql-community-server mysql-community-client mysql-community-common mysql-community-libs mysql-community-devel·



-
清理残留的数据目录
rm -rf /var/lib/mysql rm -rf /etc/my.cnf
需要注意的是,如果你里面有重要数据,请先备份 /var/lib/mysql,如果是新安装则直接删

-
检查是否卸载完成。检查 Yum 源(防止再次装错)'

-
检查 Yum 源(防止再次装错)' ,清理可能存在的旧 MySQL 源配置
# 删除 /etc/yum.repos.d/ 目录下所有 mysql 开头的源配置文件
rm -rf /etc/yum.repos.d/mysql-*.repo
# 清理 yum 缓存
yum clean all
- 重新安装合适版本包
2. 重安装
总结】
正确的"三部曲"逻辑
- 安装源(wget ... rpm): 作用:"买一张地图"。 结果:系统知道去哪里找 MySQL 了(但是默认路线是指向美国的)。
- 【可选】配置镜像(修改 repo 文件): 作用:"修改地图上的路线"。 结果:把指向美国的路线涂掉,改画一条指向阿里云/清华大学的近路。
- 安装软件(yum install mysql...): 作用:"出发去拉货"。 结果:顺着近路(镜像),飞快地把 MySQL 下载并安装好。
下载安装MySQL5...7
-
【可选】MySQL国外资源,一般国内下载的较慢,可选择配置镜像源。
官方下载地址 https://dev.mysql.com/get/
安装官方源,买地图 -
安装官方源!
# 下载 5.7 版本的源配置(注意看链接里是 mysql57)它本身并不是 MySQL 数据库软件,而是一个"配置向导包"。
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
这个命令的核心作用:解决"找不到"的问题。。CentOS 7 的官方默认软件库(Repository)里,根本就没有 MySQL!

-
【可选】配置国内镜像源!
sed -i 's/repo.mysql.com/mirrors.aliyun.com\/mysql/g' /etc/yum.repos.d/mysql-community.repo
sed -i 's/http:/https:/g' /etc/yum.repos.d/mysql-community.repo -
安装MySQL(拉货)
开始真正下载并安装数据库软件。
注意:加上
--nogpgcheck是为了绕过 MySQL 近期 GPG 密钥过期导致的验证错误,能保证一次安装成功。·
yum install mysql-community-server --nogpgcheck -y·
再次看来,很有必要使用镜像
初次检查rpm -qa | grep -i mysql
- 启动服务并设置开机自启(
安装完只是把软件放进硬盘了,需要启动它才能用。
systemctl start mysqld `` systemctl enable mysqld
【迷惑性】需要解决的中间性问题
Failed to get properties: Access denied
> Linux 的系统服务管理器(systemd)出了故障.
你的系统可能在刚才卸载/安装大量软件的过程中,某些核心库(如 dbus 或 systemd 库)更新了,导致当前的 systemctl 命令无法跟后台的系统守护进程"对话"。
使用reboot
-
检查MySQL状态
执行
systemctl status mysqld应该能看到绿色的active (running)。 -
。获取初始密码并修改

-
·
systemctl enable mysqld 的核心作用·
systemctl enable mysqld 的核心作用设置开机自启。 -
找初始密码,并修改密码。
MySQL 5.7 首次启动会生成随机密码,必须先找到它并修改才能正常使用。··
grep 'temporary password' /var/log/mysqld.log·.


-
修改密码、

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';FLUSH PRIVILEGES;
- 对此,就基本完成了,
想要进一步使用MySQL
我们需要使用初始密码进入,并使用alert user 修改初始密码,才能进行下面的操作, 
以及 我们在修改密码时,系统默认是需要我们设置强密码的,MySQL 为了安全,默认开启了密码复杂度检查组件(validate_password)。
- Error 1820:系统强迫你必须先改密码,否则不让你执行其他命令。
- Error 1819:你想改简单密码,但系统嫌密码太简单,不让你改。
问题一:如何绕过安全检查设置简单密码?
问题二:在使用 CREATE USER 之前,必须先使用 ALTER USER 修改 root localhost 的密码吗?
以上答案请看下一篇
link: mysql修改密码以及创建用户





> Linux 的系统服务管理器(systemd)出了故障.