如何解决mysql登录错误'Access denied for user 'root'@'localhost'问题

发布时间:2021-07-28 11:36:58 作者:小新
来源:亿速云 阅读:168

这篇文章将为大家详细讲解有关如何解决mysql登录错误'Access denied for user 'root'@'localhost'问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

首先是不知道怎么忽然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)

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权限:

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登录错误'Access denied for user 'root'@'localhost'问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

推荐阅读:
  1. mysql数据库出现mysql: [ERROR] unknown option '--skip-grant-tables'错误怎么办
  2. Mysql 5.7 CentOS Access denied for user 'root'@'localhost'解决方式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:c++中如何使用构造函数

下一篇:如何使用不同的索引更新解决MySQL死锁

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》