我在我的iMac(OS X 10.11.1)上本地运行MySQL,通过Homebrew安装(目前它是mysql版本5.7.9)。我也通过Homebrew安装了Phpmyadmin(目前版本4.5.1,因为4.5.2尚未通过Homebrew提供)。这是问题所在:
当我使用以下语法创建新用户(无论是通过命令行还是phpmyadmin)时:
CREATE USER 'test'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass';
或使用默认的phpmyadmin语法:
CREATE USER 'test1'@'%' IDENTIFIED WITH mysql_native_password AS '***';
创建的用户确实在phpmyadmin中显示没有密码。在检查mysql.user表后,我可以看到以下内容:
Host | User | Password | (...) | x509_subject | (...) | plugin | (...)
% | test1 | (empty) | (...) | [BLOB-1 B] | (...) | (Pass Hash) | (...)
这显然是错误的,但我无法弄清楚为什么以及如何解决这个问题。这只是最近刚刚发生的所有用户都已正确添加到表中,其中插件列按预期读取mysql_native_password
,密码哈希位于密码列中,而不是插件列中。
我发现这篇文章提出了类似的问题:"Plugin '0' is not loaded"
然而,由于我仍然能够毫无问题地登录所有以前创建的用户,我认为这只是一个类似的问题,但不完全相同。
更奇怪的是:我的同事在她的iMac上有完全相同的设置和同样的问题,而我在MacBook Air上也有相同的设置但行为正确但是...在它上面我可以创建用户没有问题,所有内容都被写入正确的列。
答案 0 :(得分:2)
由于您的mysql.user表对于MySQL 5.7来说是非标准的,您可能想要更新它。推荐的方法是mysql_upgrade实用程序,请参阅http://dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html。