MySQL 不允许用户登录 : Error 1524

标签 mysql sql

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 与 mangos 的 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

最佳答案

您的用户表似乎已损坏。您提到的重新启动可能会触发 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 语法尚未正式弃用,但现在这是设置密码的首选方法。

关于MySQL 不允许用户登录 : Error 1524,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38339646/

相关文章:

mysql - SQL查询返回重复行

php - 在多对多关系的情况下如何插入数据透视表? (拉拉维尔 5.3)

php - 您的 SQL 语法有误;查看手册

php - 自动增加员工ID

c# - SCOPE_IDENTITY() 总是返回 0

mysql - 在vb.net中使用关键字搜索数据库

php - sql注入(inject)改变返回值

sql - 别名在 sql server 2008 r2 上不起作用

sql - sqlite 的 list 类型什么时候有用?

mysql - asp.net插入多行