MySQL8.0在CentOS7上通过命令行输入密码无法登录解决方法
MySQL版本8.0.24 Linux版本CentOS7.0.4
摆置了老长时间,终于弄好了。由于想到本人记性不好,害怕下一次遇到这种问题无法及时解决,所以给这回的解决办法记录下来,以便避坑。如果有网友也遇到这种情况,你也可以按照这个方法试一试,说不定能处理好。
步骤:咱先给 skip-grant-tables 加到my.cnf文件的 [mysqld] 标签下面,加完后重启MySQL:systemctl restart mysql
加入的这行是用来跳过登录验证的,加完保存,就可以到命令行中进行登录了,咱输入mysql -uroot -p进行登录
登录完成后,重置密码(重点!一定要改个密码!)SET PASSWORD FOR root@localhost = '123456';
修改密码如果报错,输入flush privileges;
再次输入SET PASSWORD FOR root@localhost = '123456';(如果没有报错则不用进行这一步)
设置远程访问:
create user 'root'@'%'identified by 'admin';
grant all privileges on *.* to 'root'@'%' with grant option;
完成上面这一步后同时也将此数据库设置为了主库(方便主从复制)
输入exit退出
到my.cnf文件中注释掉或者删除掉[mysqld]标签下面的skip-grant-tables
重启MySQL数据库
注:如果不知道my.cnf文件在哪里,用find / -name my.cnf 命令可以找到,在/etc目录下的那个my.cnf就是咱要找的
完成了!可以在命令行输入密码登录了,同时也可以远程访问~
感谢大佬的文章:https://blog.csdn.net/m0_70556273/article/details/126490767