当前位置: 首页 > 知识库问答 >
问题:

MySql错误1045(28000):拒绝访问用户“root”@"localhost“(使用密码:NO)

孟和玉
2023-03-14

我尝试了StackOverflow的多种解决方案,但没有任何成功。我正在Mac OSX(Sierra 10.12.3)上尝试创建一个新的数据库和用户。我从终点站进入:

mysql -u root

输出此错误:

错误1045(28000):拒绝用户“root”@"localhost“的访问(使用密码:NO)

sudo mysqld_safe —skip-grant-tables
mysql -u root
update mysql.user set password_expired = 'N', authentication_string=PASSWORD('newpassword') where user = 'root';

flush privileges;

我可以通过mysql客户端和非root用户访问mysql。

感谢任何帮助。

共有1个答案

欧阳向文
2023-03-14

确认一下:您确定您运行的是MySQL5.7,而不是MySQL5.6或更早版本。plugin列包含“mysql_native_password”。(在MySQL 5.7之前,密码哈希存储在名为password的列中。从MySQL 5.7开始,password列被删除,密码has存储在authentication_string列中。)并且您还验证了身份验证字符串的内容与从密码('mysecret')返回的内容匹配。另外,我们对mysql.user表使用DML而不是使用设置的密码来进行语法,这有什么原因吗?-斯宾塞7593

所以基本上只需确保Plugin列包含“mysql_native_password”。

不是我的工作,但我读了评论,并注意到这是作为答案,但没有张贴作为一个可能的答案。

 类似资料: