对我来说,这个问题是由mysql 5.7.2的一个新特性引起的:
user
条目是
忽略
如果他们
plugin
字段为空。
设置为例如
mysql_native_password
要重新启用它们:
UPDATE user SET plugin='mysql_native_password' WHERE user='foo';
FLUSH PRIVILEGES;
见
the release notes for MySQL 5.7.2
,在身份验证说明下。
出于某种原因(可能是因为我4.1之前的密码散列被删除了),在
mysql_upgrade
脚本未设置默认插件值。
我注意到下面的警告信息
/var/log/mysql/error.log
以下内容:
[警告]用户项“foo”@“%”的插件值为空。用户将被忽略,任何人都不能再使用此用户登录。
我把这个答案贴在这里也许是为了避免有人像我一样在这个问题上花费同样荒谬的时间。