真是血泪教训啊!!!!!!!!
密码设置过于简单!!!
快放弃的时候,试了一下终于可以了!
先说我的mysql版本是mysql Ver 14.14 Distrib 5.7.30, for linux-glibc2.12 (x86_64) using EditLine wrapper。
安装完修改密码后,登录提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),后面根据网上说的,修改/etc/my.cnf文件,在mysqld后加上skip-grant-tables,跳过验证登录,
之后将密码改为123456、1234567,重新登录都是那个错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
试了很多次,每次都是一样的错误。在网上找了好久的资料,看到有几篇说的是关于8.0版密码的要求的文章,快要放弃的时候心想,最后一次,不成功就算了。密码要求:https://blog.csdn.net/AprilCos/article/details/87990824
密码直接改为复杂的
改为后,将/etc/my.cnf文件skip-grant-tables注释掉,然后重启mysql
最终成功!!!啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!!!喜极而泣啊!
最后:
user mysql
desc user--查看表结构,可以看到user表没有password字段,密码保存在authentication_string自段
update mysql.user set authentication_string=password('1234qwer!A') where user='root';--修改密码
flush privileges;--重新加载权限表
/etc/init.d/mysqld restart--重启mysql
mysql -u root -p--登录
plugin加密方式一定要设置为:plugin=mysql_native_password
2020-08-10记:
今天特意删了重装一遍,按上面的方法修改了密码后,能登录,但是引用数据库的时候提示要修改密码。按上面的操作做了几次,都是一样的提示
无语……………………
后面按这个修改了密码后就可以了:alter user 'root'@'localhost' identified by '123456';
搞不懂什么原因
2020-08-17 再预坑
跳过密码验证登录mysql后,修改密码提示
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
改了还几次都是这样,网上解决办法:先刷新权限,再修改密码
修改密码后,修改配置文件,取消跳过安全验证,重启mysql,成功