1. 问题描述:
在安装mysql前需先卸载自带的Mysql-libs,或者安装错误导致mysql不可用等等一系列原因要彻底删除Linux上现存的所有的mysql。
解决方法:
- 使用以下命令查询MySQL安装情况:
[xiaobai@hadoop102 mysql]$ rpm -qa|grep -i mysql
- 若是启动了MySQL,首先停止:
[xiaobai@hadoop102 mysql]$ service mysql stop
- 使用sudo rpm -ev mysql安装包 --nodeps命令彻底删除这些已安装的mysql:
[xiaobai@hadoop102 mysql]$ sudo rpm -ev mysql-community-libs-5.7.16-1.el7.x86_64 --nodeps
- 执行完之后再次使用以下命令查询便没有输出了:
[xiaobai@hadoop102 mysql]$ rpm -qa|grep -i mysql
- but还需删除域mysq相关的文件/库,如图,先使用以下命令查询这些文件/库所在位置:
[xiaobai@hadoop102 mysql]$ sudo find / -name mysql
- 有些文件是可以直接进入目录删除的,但是有些文件不可以直接进入,例如/etc/selinux/targeted/active/modules/100/mysql这个目录,走到active这一步就进不去了,sudo也进不去,那怎么办呢?
直接使用sudo rm -rf 对应的文件目录(注意:最后一层目录一定是要删除的mysql目录,不要少加一层导致删错!)
[xiaobai@hadoop102 ~]$ sudo rm -rf /etc/selinux/targeted/active/modules/100/mysql
- 接下来再用以下命令查询mysq相关的文件/库便没有此文件了:
[xiaobai@hadoop102 ~]$ sudo find / -name mysql /opt/software/mysql
使用以下命令查询mysql安装情况也无,便表示mysql已经删除掉了:
rpm -qa|grep -i mysql
另外切记删除/etc下面的这两个文件:
[xiaobai@hadoop102 etc]$ sudo rm -rf my.cnf [xiaobai@hadoop102 etc]$ sudo rm -rf my.cnf.d/
2. 问题描述:如图,使用sudo cat /var/log/mysqld.log | grep password命令获取的临时密码登录时提示以下错误:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO);
当然我试过手动键入这个临时密码也无济于事!
解决方法:
- 停止mysql服务:
[xiaobai@hadoop102 tmp]$ sudo systemctl stop mysqld
- 使用sudo vi /etc/my.cnf命令打开mysql配置文件my.cnf:
[xiaobai@hadoop102 mysql]$ sudo vi /etc/my.cnf
- 如图,增加以下内容,表示跳过验证环节直接无密登录:
user=mysql skip-grant-tables
- 重新启动mysql服务:
[xiaobai@hadoop102 tmp]$ sudo systemctl start mysqld
- 如图,无需密码,直接使用mysql -u root直接登录:
[xiaobai@hadoop102 tmp]$ mysql -u root
-
使用use mysql更改用户:
-
如图,在使用以下命令修改密码的时候出现mysql> UPDATE user SET password=password("******") WHERe user=‘root’;错误
UPDATE user SET password=password("******") WHERe user='root';
- 查了一下发现mysql数据库下的password字段已经替换成了authentication_string字段;所以使用以下命令修改密码:
mysql> update mysql.user set authentication_string=password('******') where user='root';
- 如图,使用flush privileges;命令进行刷新:
mysql> flush privileges;
-
至此,密码已经修改完毕,但需重新编辑/etc/my.cnf文件,删掉user=mysql skip-grant-tables,避免再次免密登录:
-
如图,再次使用mysql -uroot -p即可登录MySQL:
[xiaobai@hadoop102 tmp]$ mysql -uroot -p



