集群需要mysql存储元数据,就在前几天还运行好好的,突然就进不去了......还是太菜,遇到的bug少。

引起这种故障的原因有很多......第一个坑比较多,大部分用户也就用第一个就可以解决问题,我第一次也踩了第一个坑;这次出现这个问题的时候,发现不管用了,各种百度啊.....最后是发现第三个坑

1.第一个坑:密码不对--免密模式改密码;

2第二坑:user表有匿名用户,把匿名用户删除掉即可

3第三坑:localhost不对应

2.第四坑:user表下password_expired对应字段为Y。这个的意思是过期了!!!改密码什么的不管用啊,需要修改权限。

---------------------------------我是华丽的分割线--------------------------------------

-----------------------第一种坑:改密码------------------------------

1.mysql安装完成查看临时密码:

[root@localhost mysql]# cat /root/.mysql_secret
# The random password set for the root user at Thu Sep :: (local time): uZlyTYGkbiE4zsjA

2.临时密码登录报错:

[root@localhost mysql]# mysql -umysql -p
Enter password:
ERROR (): Access denied for user 'mysql'@'localhost' (using password: YES)

3.停止mysql

systemctl stop mysql

4.编辑/usr/my.cnf文件

vi /etc/my.cnf

在my.cnf文件的[mysqld]添加以下内容,用于免密登录

skip-grant-tables

4.启动mysql

systemctl  start mysql

5.无密码登录

mysql -u root

6.修改密码

use mysql ;
update mysql.user set authentication_string=password('') where user='xxx' ;
flush  privileges;
quit

7.编辑/usr/my.cnf文件,注释掉skip-grant-tables。

-----当修改密码时,发现依旧不好使,这时候就要查看user表,判断:是第2种坑?第3种坑?还是第4种坑?-------

select user,host,password,password_expired from user;

1、如果password字段为空,则有匿名用户;

2、如果host字段没有localhost,则localhost不对应;

3、如果root@localhost对应的password_expired有Y字样,则密码过期了!!需要改权限!!

下面的这三篇博客分别讲述了三种情况

-------------------------------------博客1:有匿名用户,单纯改密码不行----------------------------------------

https://www.cnblogs.com/linuxnote/p/3780244.html?utm_source=tuicool&utm_medium=referral

查看user表

mysql> use mysql;
mysql> SELECT User, Host, Password FROM mysql.user;
+------+------------------+-------------------------------------------+
| User | Host | Password |
+------+------------------+-------------------------------------------+
| root | localhost | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
| root | liao.localdomain | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
| root | 127.0.0.1 | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
| GaMe | % | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
| root | % | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
| | localhost | |
| | liao.localdomain | |
+------+------------------+-------------------------------------------+

可以看到,我的数据库中有root用户,GaMe用户和匿名用户,GaMe用户的主机使用%代表所有主机。最下面的2个是匿名用户

解决的方法:删除匿名用户(仅仅为了安全也有这个必要)

 mysql>use mysql;
mysql>delete from user where user='';
mysql>flush privileges; //用来刷新内存,是语句立即生效。

再次修改密码即可!

-------------------------------------博客2:localhost不对应----------------------------------

来源:https://www.linuxidc.com/Linux/2015-04/116492.htm

查看一下user表:

mysql> select user,host from user;
+———–+———+
| user | host |
+———–+———+
| root | 127.0.0.1 |
| night | % |
+———–+———+

localhost没有映射到127.0.0.1?试试#mysql -u root -p xxxx -h 127.0.0.1,果然可以登录。 
没有给’root’@’localhost’和’root’@’ip’授权。 
grant all privileges on . to ‘root’@’localhost’ identified by ‘mypassword’ with grant option; 
grant all privileges on . to ‘root’@’118.192.91.xxx’ identified by ‘mypassword’ with grant option;

再查询一下用户表: 
 
然后#mysql -u root -p xxxx,登录成功!

-----------------博客3:user表下root用户的password_expired对应字段为Y------------

来源:http://equalxx.iteye.com/blog/2394709

1.免密登录

2.查看user表:

mysql> select user,host, password_expired from user;

而且通过查看user表,发现root用户的password_expired是Y,意思也就是过期了,这并不是上面update语句能改变的

最后解决这个问题是要通过

然后就可以通过mysql -uroot -p123456顺利登录了

密码正确 mysql无法登陆 red7.3 上安装mysql5.6后登录报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passswd :yes)的更多相关文章

  1. centos7 上安装mysql5.7后登录报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Yes 或者No)

    原文转载自以下链接:https://blog.csdn.net/keepd/article/details/77151006 安装完mysql后会有个临时密码去日志查看,但是查看登录修改密后还是不行 ...

  2. 解决mysql登录报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)问题

    问题描述: 在ubuntu14.04上安装完MYSQL后,MYSQL默认给分配了一个默认密码,但当自己在终端上使用默认密码登录的时候,总会提示一个授权失败的错误. 报错信息:Access denied ...

  3. mysql安装在centos7报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    原文链接:http://blog.csdn.net/kuluzs/article/details/51924086 [问题]:mysql版本:5.7.13 首次在centos下安装MySQL,客户端连 ...

  4. CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)错误解决方法

    1.停用mysql服务:# /etc/rc.d/init.d/mysqld stop 2.输入命令:# mysqld_safe --user=mysql --skip-grant-tables --s ...

  5. Linux下登陆MySQL时遇到报错"RROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) "

    前言 作者在2021-07-21时遇到 linux下登陆MySQL时遇到报错"RROR 1045 (28000): Access denied for user 'root'@'localh ...

  6. Win7下mysql root账户登录提示:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)解决方案

    ERROR 1045 (28000): Ac-- password: YES)这个意思是密码不正确,那就修改密码: 如果你是服务器是 windows xp/2000/2003/nt 都可以使用这个方法 ...

  7. mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    错误情况 解决办法: 首先查看mysql的命令 其次修改root用户的密码 set password for 'root'@'localhost' = password('123456'); 最后退出 ...

  8. mac mysql连接报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    找了半天 又是kill进程,又是改设置文件,又是重启电脑,都不管用 翻到stackoverflow上的解决方案,实施成功: 原文链接:https://stackoverflow.com/questio ...

  9. Ubuntu下MySQL报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    在Ubuntu下 想要登录mysql数据库 root@JD:~# mysql -uroot -p 报错 ERROR 1045 (28000): Access denied for user 'root ...

随机推荐

  1. php与java通用AES加密解密算法

    AES指高级加密标准(Advanced Encryption Standard),是当前最流行的一种密码算法,在web应用开发,特别是对外提供接口时经常会用到,下面是我整理的一套php与java通用的 ...

  2. SQL Server2012远程访问第二个实列

    现在有一台A电脑和一台B电脑,A是公司的服务器,安装了两个数据库实例(Sql Server 2012 和Sql Server2008 R2),B电脑在家,安装了Sql Server数据库两台电脑不在一 ...

  3. 代码管理工具:使用github和git工具管理自己的代码

    一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...

  4. Intelij IDEA 内置 sql gui

    IDEA 内置 自带 SQL GUI  最大意义 会自动识别 domain 对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等等. 第一步 打开数据库视图 Vie ...

  5. java-solr solrj的使用

    新建一个maven项目,引入依赖: <dependencies> <dependency> <groupId>org.apache.solr</groupId ...

  6. Microsoft Windows .Reg File Dialog Box Message Spoofing 0day

    Microsoft Windows .Reg文件对话框消息欺骗 0day 概述 扩展名为.reg的文件是Windows注册表中使用的注册文件.这些文件可以包含hives.密钥和值..reg文件可以在文 ...

  7. js开发模式

    js中的开发模式进化史: js中有最初的只能由基本数据类型描述——>单例模式-->工厂模式-->构造函数模式-->原型模式-->各个模式相结合的混合模式,下面我会给大家逐 ...

  8. Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;

    运行tomat  报错: Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Lj ...

  9. python,获取用户输入,并且将输入的内容写到.txt

    该功能缺点是必须保证该文件不存在的情况才会成功 f=open('E:/mywork/保存文件.txt','x') def userwrite(code): if code=='w': f.close( ...

  10. 2016521-Java-第八周学习总结

    课本知识点 start() run()定义线程线程对象被调度之后所执行的操作 -sleep(int millsecond),必须在try-catch语句块中调用sleep方法 sAlive() 线程同 ...