linux环境下mysql卸载与安装详细教程

Linux下彻底卸载mysql详解

一、使用以下命令查看当前安装mysql情况,查找以前是否装有mysql

rpm -qa|grep -i mysql

可以看到安装如下图的所示:


linux环境下mysql卸载与安装详细教程_第1张图片
image.png

2、停止mysql服务、删除之前安装的mysql

删除命令:rpm -e –nodeps 包名

rpm -ev MySQL-client-5.5.25a-1.rhel5

rpm -ev MySQL-server-5.5.25a-1.rhel5

如果提示依赖包错误,则使用以下命令尝试

rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps

如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1

则用以下命令尝试:
rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5

3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

find / -name mysql

查找结果如下:
/var/lib/mysql

/var/lib/mysql/mysql

/usr/lib64/mysql

删除对应的mysql目录

rm -rf /var/lib/mysql

rm -rf /var/lib/mysql

rm -rf /usr/lib64/mysql

具体的步骤如图:查找目录并删除

linux环境下mysql卸载与安装详细教程_第2张图片
image.png

注意:卸载后/etc/my.cnf不会删除,需要进行手工删除

rm -rf /etc/my.cnf

4、再次查找机器是否安装mysql

rpm -qa|grep -i mysql

无结果,说明已经卸载彻底,接下来直接安装mysql即可。

mysql安装

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

1 下载并安装MySQL官方的 Yum Repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

之后就开始安装MySQL服务器。

[root@localhost ~]# yum -y install mysql-community-server

这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

linux环境下mysql卸载与安装详细教程_第3张图片
image.png

至此MySQL就安装完成了,然后是对MySQL的一些设置。

2 MySQL数据库设置

首先启动MySQL

[root@localhost ~]# systemctl start  mysqld.service

查看MySQL运行状态,

[root@localhost ~]# systemctl status mysqld.service

运行状态如图:


linux环境下mysql卸载与安装详细教程_第4张图片
image.png

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

[root@localhost ~]# grep "password" /var/log/mysqld.log
image.png

如下命令进入数据库:

[root@localhost ~]# mysql -uroot -p

输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

这里有个问题,新密码设置的时候如果设置的过于简单会报错:

image.png

原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:

linux环境下mysql卸载与安装详细教程_第5张图片
image

MySQL完整的初始密码规则可以通过如下命令查看:

mysql> SHOW VARIABLES LIKE 'validate_password%';
linux环境下mysql卸载与安装详细教程_第6张图片
image.png

密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

我的是已经修改过的,初始情况下第一个的值是ON,validate_password_length是8。可以通过如下命令修改:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如1234之类的。到此数据库的密码设置就完成了。

但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch
navicat for mysql 链接时报错:1251-Client does not support authentication protocol requested by server
linux环境下mysql卸载与安装详细教程_第7张图片
image.png

主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。
解决方法:

我不希望更新本地的客户端版本,想直接使用原来的环境来链接。

解决方法是将root的plugin改成mysql_native_password。相当于降了一级。

mysql官方网站提供了从mysql_old_password升级到mysql_native_password,我们可以仿照这个。官方原文如下:


image.png

这里改成:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

网上大部分是('root'@'localhost' )这样会导致本地docker虚拟机安装的mysql依旧登录不上,把localhost改成%就解决了,最好两个都执行一下,不然可能Navicat能连接上,服务器本地反而连接不上,贼坑!
这行代码有两层含义,第一:修改root的密码为'123456',摒弃原来的旧密码。第二:使用mysql_native_password对新密码进行编码。

大功告成!

你可能感兴趣的:(linux环境下mysql卸载与安装详细教程)