MySQL 不允许用户登录:错误 1524

新手上路,请多包涵
Server version: 5.7.10 MySQL Community Server (GPL)

在 MySQL 中,我有一个用户 mangos。当我创建它时,用户工作得很好。但是,重新启动计算机后,尝试登录 mangos 会产生以下输出:

 $ mysql -u mangos -p
Enter password:
ERROR 1524 (HY000): Plugin '*some_random_long_hash_I_cannot_remember' is not loaded
$

这让我想起了密码哈希,所以在调查了 mysql.user 之后,我发现 mangos 没有密码!我更新了密码:

 SET PASSWORD FOR 'mangos'@'127.0.0.1' = PASSWORD('mangos');
FLUSH PRIVILEGES;

现在,我得到:

 ERROR 1524 (HY000): Plugin '*3FBBDB84EA2B2A0EA599948396AD622B7FF68183' is not loaded

3FBBDB84EA2B2A0EA599948396AD622B7FF68183 与芒果的mysql.user 的密码栏中显示的数字相同,并且与原来的数字不同。我仍然无法登录。

如何让 MySQL 正确识别密码? 这甚至是这里的问题吗?

编辑:

 mysql> SELECT * FROM mysql.user WHERE user = 'mangos' \G
*************************** 1. row ***************************
Host: localhost
              User: mangos
          Password: *3FBBDB84EA2B2A0EA599948396AD622B7FF68183
       Select_priv: N
       Insert_priv: N
       Update_priv: N
       Delete_priv: N
       Create_priv: N
         Drop_priv: N
       Reload_priv: N
     Shutdown_priv: N
      Process_priv: N
         File_priv: N
        Grant_priv: N
   References_priv: N
        Index_priv: N
        Alter_priv: N
      Show_db_priv: N
        Super_priv: N
Create_tmp_table_priv: N
      Lock_tables_priv: N
          Execute_priv: N
       Repl_slave_priv: N
      Repl_client_priv: N
      Create_view_priv: N
        Show_view_priv: N
   Create_routine_priv: N
    Alter_routine_priv: N
      Create_user_priv: N
            Event_priv: N
          Trigger_priv: N
Create_tablespace_priv: N
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: *3FBBDB84EA2B2A0EA599948396AD622B7FF68183
 authentication_string: NULL
      password_expired: N

原文由 MikeJava 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 838
2 个回答

您的用户表似乎已损坏。您提到的重启可能触发了对 MySQL 的升级,并且 mysql_upgrade 脚本没有运行。这应该可以解决这种情况:

 mysql_upgrade -u root -ppassword --skip-grant-tables
mysql -u root -ppassword -e "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'mangos'; FLUSH PRIVILEGES"

来源:http: //kb.odin.com/en/126676

向 --- 提供 --- mysql_upgrade --force 选项将重新应用升级脚本,即使升级已经完成。如果从备份进行部分恢复,则可能需要这样做。

另外值得一提的是,在 MySQL 5.7.6 / MariaDB 10.2.0 及以后版本中更改用户密码的命令已更改:

 ALTER USER mangos IDENTIFIED BY 'mangos';

这是现在设置密码的首选方法,尽管旧的 SET PASSWORD 语法并未正式弃用。

原文由 miken32 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在 my.ini 文件中添加了以下行,它运行良好:

 [mysqld]
#Path to installation directory. All paths are usually resolved relative to this.
basedir = "C:/Program Files (x86)/EasyPHP-Devserver-17/eds-binaries/dbserver/mysql5717x86x191205223118/"

skip-grant-tables <=== added this line

希望能帮助到你,

干杯

原文由 Lahcene AISSA 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题