自按建议运行以来:https://stackoverflow.com/a/50131831/3310334
alter user 'root'@'localhost' identified with mysql_native_password by 'Gzbz1H!fZ@#LyF33IqP$rAS8H#0iNc4lK8l2Md@EHxJyFK2YgfQwiKxz*0#lykWvKdWzhxh6EYKu&6ZPp1#9$%YMPb6EfDPYf2h';我不能再访问mysql了:
% 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')包工作。
如何在不丢失所有数据库的情况下恢复对根帐户的访问?
我只是把问题弄得更糟了--因为跑
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
% 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。
% 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)也不起作用。
发布于 2021-01-22 00:09:52
前面的部分提供了专门针对Windows和Unix以及类Unix系统的密码重置指令.或者,在任何平台上,您都可以使用mysql客户端重置密码(但这种方法不太安全):
使用MySQL客户端连接到
shell> mysql //or sudo mysql
在mysql客户端中,告诉服务器重新加载授予表,以便帐户管理语句工作:
然后,
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
https://stackoverflow.com/questions/65837402
复制相似问题