前一天安装了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,保存并退出。其作用是登陆时跳过权限检查
2.重置密码
重启mysql
进入mysql
service mysqld restart
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
到现在就可以正常使用sql语句了,可以用以下实验下,若有返回的数据,则说明没有问题了,结束
show databases;
最后感谢在网络上分享的同学们,这篇记录也是参考了他们加上自己的实操