centos中安装mysql无法登录问题ERROR 1045

前一天安装了centos和mysql,大功告成后,准备第二天开始练习sql,(过程还在整理中,先把今天发现的问题记录上)

第二天,重启虚拟机,输入命令 mysql -u root -p,并输入正确的密码后,发现报错了

ERROR 1045 (28000): Access denied for user 'root'@'localhost'

重新试了好几次,确认密码没输错,就是一直报这个错,深呼吸,经过昨天一天的“”磨练“,本着一定能解决的信念 开始网上寻找解决方法,

输入报错内容,看看其他同学都是怎么解决的。

总结下来有三步:

1.修改mysql配置文件,跳过权限验证

2.用sql修改root密码

3.改回配置文件,重启mysql然后登录

第二步中有两个方案,修改的字段不同,往下看再详说

开始之前说明下我的环境,centos6.7 ,64位 mysql5.7版本

1.修改/etc/my.cnf

输入

 vi /etc/my.cnf 

进入编辑模式

在[mysqld] 下面添加一句:skip-grant-tables,保存并退出。其作用是登陆时跳过权限检查

修改my.cnf


2.重置密码

重启mysql

进入mysql

service mysqld restart

mysql

重启并进入mysql

修改密码:

update mysql.user set authentication_string=password('新密码' ) where user='root' ;

无报错,说明修改成功了

重置密码


备注:有同学的解决方法中是更改password字段,可是我的数据库中没有这个字段,导致报错了

3.改回my.cnf

退出mysql,并将mysql配置文件my.cnf中添加的行注释掉,并重新启动mysql,使用密码登录

exit

vi /etc/my.cnf

service mysqld restart

mysql -u root -p

编辑配置文件


重启mysql


登录mysql


到现在就可以正常使用sql语句了,可以用以下实验下,若有返回的数据,则说明没有问题了,结束

show databases;

最后感谢在网络上分享的同学们,这篇记录也是参考了他们加上自己的实操

你可能感兴趣的:(centos中安装mysql无法登录问题ERROR 1045)