栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

记录Linux下彻底删除MySQL以及启动MySQL之后使用密码登录提示报ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost

记录Linux下彻底删除MySQL以及启动MySQL之后使用密码登录提示报ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost

1. 问题描述:
在安装mysql前需先卸载自带的Mysql-libs,或者安装错误导致mysql不可用等等一系列原因要彻底删除Linux上现存的所有的mysql。

解决方法:

  1. 使用以下命令查询MySQL安装情况:
[xiaobai@hadoop102 mysql]$ rpm -qa|grep -i mysql

  1. 若是启动了MySQL,首先停止:
[xiaobai@hadoop102 mysql]$ service mysql stop
  1. 使用sudo rpm -ev mysql安装包 --nodeps命令彻底删除这些已安装的mysql:
[xiaobai@hadoop102 mysql]$ sudo rpm -ev mysql-community-libs-5.7.16-1.el7.x86_64 --nodeps
  1. 执行完之后再次使用以下命令查询便没有输出了:
[xiaobai@hadoop102 mysql]$ rpm -qa|grep -i mysql
  1. but还需删除域mysq相关的文件/库,如图,先使用以下命令查询这些文件/库所在位置:
[xiaobai@hadoop102 mysql]$ sudo find / -name mysql

  1. 有些文件是可以直接进入目录删除的,但是有些文件不可以直接进入,例如/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
  1. 接下来再用以下命令查询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);
当然我试过手动键入这个临时密码也无济于事!

解决方法:

  1. 停止mysql服务:
[xiaobai@hadoop102 tmp]$ sudo systemctl stop mysqld
  1. 使用sudo vi /etc/my.cnf命令打开mysql配置文件my.cnf:
[xiaobai@hadoop102 mysql]$ sudo vi /etc/my.cnf
  1. 如图,增加以下内容,表示跳过验证环节直接无密登录:
user=mysql
skip-grant-tables

  1. 重新启动mysql服务:
[xiaobai@hadoop102 tmp]$ sudo systemctl start mysqld
  1. 如图,无需密码,直接使用mysql -u root直接登录:
[xiaobai@hadoop102 tmp]$ mysql -u root

  1. 使用use mysql更改用户:

  2. 如图,在使用以下命令修改密码的时候出现mysql> UPDATE user SET password=password("******") WHERe user=‘root’;错误

UPDATE user SET password=password("******") WHERe user='root';

  1. 查了一下发现mysql数据库下的password字段已经替换成了authentication_string字段;所以使用以下命令修改密码:
mysql> update mysql.user set authentication_string=password('******') where user='root';
  1. 如图,使用flush privileges;命令进行刷新:
mysql> flush privileges;

  1. 至此,密码已经修改完毕,但需重新编辑/etc/my.cnf文件,删掉user=mysql skip-grant-tables,避免再次免密登录:

  2. 如图,再次使用mysql -uroot -p即可登录MySQL:

[xiaobai@hadoop102 tmp]$ mysql -uroot -p

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285805.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号