首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从终端登录mysql上的任何帐户。

无法从终端登录mysql上的任何帐户。
EN

Stack Overflow用户
提问于 2021-01-21 23:44:57
回答 1查看 123关注 0票数 0

自按建议运行以来:https://stackoverflow.com/a/50131831/3310334

代码语言:javascript
复制
alter user 'root'@'localhost' identified with mysql_native_password by 'Gzbz1H!fZ@#LyF33IqP$rAS8H#0iNc4lK8l2Md@EHxJyFK2YgfQwiKxz*0#lykWvKdWzhxh6EYKu&6ZPp1#9$%YMPb6EfDPYf2h';

我不能再访问mysql了:

代码语言:javascript
复制
% mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
% sudo mysql
Password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
% mysql
ERROR 1045 (28000): Access denied for user 'theonlygusti'@'localhost' (using password: NO)
% sudo mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我复制/粘贴我的密码,就像我以前一样(而且密码以前是一样的)。

事实上,我已经注意到,我“更改”的任何帐户,我不能再通过终端登录,但它们在Node.js内部使用require('mysql')包工作。

如何在不丢失所有数据库的情况下恢复对根帐户的访问?

我只是把问题弄得更糟了--因为跑

代码语言:javascript
复制
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Gzbz1H!fZ@#LyF33IqP$rAS8H#0iNc4lK8l2Md@EHxJyFK2YgfQwiKxz*0#lykWvKdWzhxh6EYKu&6ZPp1#9$%YMPb6EfDPYf2h';

从内部javascript (连接后作为根)。

成功了。

现在我无法使用root或终端连接到JavaScript。

我只是尝试了以下建议:https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

代码语言:javascript
复制
% cat init.sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Gzbz1H!fZ@#LyF33IqP$rAS8H#0iNc4lK8l2Md@EHxJyFK2YgfQwiKxz*0#lykWvKdWzhxh6EYKu&6ZPp1#9$%YMPb6EfDPYf2h';
% brew services stop mysql
% mysqld --init-file="$PWD/init.sql"

但是,我仍然无法通过复制/粘贴完全相同的密码连接到密码提示符中。

我还尝试了该链接中详细介绍的另一种重置方法,使用--skip-grant-tables

代码语言:javascript
复制
% kill `cat /usr/local/var/mysql/theonlygustis-MacBook-Pro.pid`
% mysqld --skip-grant-tables
% mysql
> flush privileges;
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'alter user 'root'@'localhost' identified with mysql_native_password by 'Gzbz1H!fZ@#LyF33IqP$rAS8H#0iNc4lK8l2Md@EHxJyFK2YgfQwiKxz*0#lykWvKdWzhxh6EYKu&6ZPp1#9$%YMPb6EfDPYf2h';
> flush privileges;
> exit
% kill `cat /usr/local/var/mysql/theonlygustis-MacBook-Pro.pid`
% mysqld
% mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

也不起作用。

EN

回答 1

Stack Overflow用户

发布于 2021-01-22 00:09:52

前面的部分提供了专门针对Windows和Unix以及类Unix系统的密码重置指令.或者,在任何平台上,您都可以使用mysql客户端重置密码(但这种方法不太安全):

  1. 在必要时停止MySQL服务器,然后使用这使任何人都可以在没有密码和所有特权的情况下进行连接,并禁用帐户管理语句,如ALTER USER和SET PASSWORD。由于这是不安全的,如果服务器是使用

使用MySQL客户端连接到

  1. 服务器;不需要密码,因为服务器是使用--跳过-授予-表启动的:

shell> mysql //or sudo mysql

在mysql客户端中,告诉服务器重新加载授予表,以便帐户管理语句工作:

然后,

  1. mysql> FLUSH PRIVILEGES;更改'root'@'localhost‘帐户密码。用要使用的密码替换密码。若要更改具有不同主机名部分的根帐户的密码,请修改使用该主机名的说明。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

现在,您应该能够使用新密码以根用户身份连接到MySQL服务器。停止服务器并正常重新启动它(没有跳过授予表选项,也不启用skip_networking系统变量)。

如果没有帮助的话。可以查看官方页面https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65837402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档