问题:
我在 mysql 中设置用户时遇到登录问题。老用户可以按预期登录,对于新创建的用户,我无法登录并收到错误消息。
执行的SQL:
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON somedb.* TO 'monty'@'%';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
预期: 我现在希望能够从我的客户端代码中以用户 monty 身份登录(适用于现有用户)。
错误:登录失败,我的客户端代码中出现以下错误消息:
SQLSTATE[HY000] [1524] Plugin '*937217B9DD8E6E458FC3F434BB7292891****' is not loaded'
Run Code Online (Sandbox Code Playgroud)
更多细节
当我检查 mysql.user 表时,我看到插件列包含用户的哈希密码,即 937217B9DD8E6E458FC3F434BB7292891****。
因此,我假设 auth 插件存在错误,并遵循迁移指南(https://dev.mysql.com/doc/refman/5.6/en/account-upgrades.html)。
改变用户
ALTER USER 'monty'@'%' IDENTIFIED WITH mysql_native_password BY 'some_pass';
Run Code Online (Sandbox Code Playgroud)
有帮助。但是,一旦我执行flush privileges此操作,登录就会再次失败。
涉及的系统是一个从 mysql/mysql-server 构建的 docker 容器。
mysql Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using EditLine wrapper
Run Code Online (Sandbox Code Playgroud)
名称-a:
Linux 1046ac1aaeee 4.2.0-27-generic
#32~14.04.1-Ubuntu SMP Fri …Run Code Online (Sandbox Code Playgroud)