解决mysql登录错误:'Access denied for user 'root'@'localhost'

吾爱主题 阅读:155 2024-04-05 14:23:56 评论:0

首先是不知道怎么忽然mysql用命令行,workbench都登录不了,都提示'Access denied for user 'root'@'localhost'。
数据库卸载重装了几次都不行。好像感觉数据清理不干净。解决的过程遇到的坑,这里记录分享下。

有效的操作记录下:

1、首先是跳过权限登录mysql,查看user表,

停止mysql服务~$ sudo service mysql stop

以安全模式启动MySQL~$ sudo mysqld_safe --skip-grant-tables &

注意:

可能提示mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exist

解决方法:(笔者尝试发现必须加sudo)

?
1 2 sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld

再次执行上面安全模式启动mysql ~$ sudo mysqld_safe --skip-grant-tables &

这次提示语句显示了,mysqld_safe Staring mysqld deamon with database from /var/lib/mysql

这次登录可以不用密码:mysql -u root 回车就登录了

sql语句查询mysql.user表的情况,如下:

加图片(以后补)

还有人提议如下这么做,没尝试

Open & Edit /etc/my.cnf or /etc/mysql/my.cnf, depending on your distro.
Add skip-grant-tables under [mysqld]

2、发现user的plugin为socket_plugin,改为mysql_native_password

修改root的plugin权限:

?
1 2 3 update mysql. user set authentication_string= PASSWORD ( 'newPwd' ), plugin= 'mysql_native_password' where user = 'root' ; flush privileges ; quit;

(注意这里修改一定要正确,免得跟笔者一样,粗心的把plugin修改的内容少些了一个字母,又有下面的折腾)

3、user表还有其他用户,root不能登录,用其他的用户登录也行啊。查询了发现一下有效操作:

在mysql的安装目录,一般在 /etc/mysql里面有个debain.cnf文件,里面有user,password,用这个用了登录,密码最后复制,然后就又可以修改user表root的plugin,操作同上。

重启mysql服务, sudo service mysql restart;

用root用户就可以登录。

参考博客:

MySQL ERROR 1698 (28000) 错误 http://www.tuohang.net/article/90958.html

mysql 查看当前使用的配置文件my.cnf的方法 http://www.tuohang.net/article/88143.html

linux -- Ubuntu查看修改mysql的登录名和密码、安装phpmyadmin http://www.tuohang.net/article/124090.html

总结

以上所述是小编给大家介绍的解决mysql登录错误:''Access denied for user ''root''@''localhost'',希望对大家有所帮助!

原文链接:https://www.cnblogs.com/langxing/archive/2019/11/23/11904737.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容