【避坑】centos7不要再用yum安装Mysql5.7了,换个方式避避坑

314 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 16 天,点击查看活动详情

你还在用yum安装吗?真的不要图省事,有大坑的!!!

centos安装Mysql最方便的方法虽为yum安装,只需要通过几条yum命令即可安装,但当安装完之后去启动mysql服务systemctl start mysqld,总会报下面这样的错误

image.png

然后到网上查阅这样的错误如何解决,阅览了大量的博客,实验后发现很多行不通,也有很多非常麻烦。所以弃坑吧,咱jym不用yum装了。

centos7安装mysql正式开始

卸载残余

首先是将电脑上已安装的或安装失败的残余卸载掉。该命令查询已经安装的mysql信息。

rpm -qa | grep -i mysql

卸载查询出来的mysql信息,使用下面的命令:

rpm -e --nodeps mysql-community-common-8.0.31-1.el7.x86_64
rpm -e --nodeps mysql-community-client-plugins-8.0.31-1.el7.x86_64
rpm -e --nodeps ...

就是将查询出来的mysql信息通过rpm -e --nodeps命令卸载完即可。

正式安装mysql

下载rpm包

那接着就开始安装了,先进入Mysql官网RPM包下载处:downloads.mysql.com/archives/co…
以5.7为例,我们做如下选择:

image.png

Red Hat Enterprise Linux/Oracle 这个Linux版本与centos是差不多的,接着选择7版本。

找到server、client、configuration、libraies几个rpm包进行下载即可。

image.png

上传rpm包到centos机器上

下载完成后,打开你的finalshell(win用户打开shell),将四个已经下载好的文件上传到你的centos系统的机器上,当然有centos7图形界面的jym直接在自己的centos机器上下载即可。完成后如下图:

image.png

image.png

安装已上传的rpm包

接着使用rpm安装我们的刚刚的四个包,安装顺序最好是common → libs → client → server。 rpm安装命令:

rpm -ivh mysql-community-common-5.7.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.33-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-5.7.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.33-1.el7.x86_64.rpm

安装完成后查询安装版本:

mysql --version

image.png 最后是自启动状态设置与查询;

 # 查询MySQL在系统的状态
    systemctl status mysqld
# 启动MySQL数据库
    systemctl start mysqld
# 关闭MySQL数据库
    systemctl stop mysqld
# 重启MySQL数据库
    systemctl restart mysqld
# 查看MySQL进程
    ps -ef | grep mysqld

# 查询MySQL服务是否是自启动
    systemctl list-unit-files | grep mysqld.service
        enabled:当前为开机自启动
        disable:开机后不会自启动
# 设置自启动
    systemctl enable mysqld.service
# 设置不自启动
    systemctl disable mysqld.service

余坑

首次登陆的坑

安装完成后首次登录mysql可以通过下面的命令查询密码

grep 'temporary password' /var/log/mysqld.log

若该命令查询不到密码的话,则采用下面的命令修改一下配置文件:

cp /usr/share/mysql/my-large.cnf /etc/my.cnf  
vi /etc/my.cnf

给my.cnf添加下图蓝框里这句,跳过密码检查

image.png

然后登录到mysql更新密码即可,语句如下;

update mysql.user set authentication_string=PASSWORD('123456') where User='root';

navicat远程连接的坑

上图红框部分主要针对navicat连接本地MySQL时出现Table ‘performance_schema.session_variables’ doesn’t exist报错。