복붙노트

[SQL] MySQL은 사용자 로그인을 못하게 : 오류 1524

SQL

MySQL은 사용자 로그인을 못하게 : 오류 1524

Server version: 5.7.10 MySQL Community Server (GPL)

MySQL을, 나는 사용자 망고 있습니다. 나는 그것을 만들 때 사용자는 완벽했다. 내 컴퓨터를 재부팅 한 후,하지만 망고에 로그인을 시도하면이 출력을 산출 :

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

그것은 종류의 암호 해시를 생각 나게 그래서 mysql 데이터베이스에서 user를 조사 후, 나는 망고 암호를 없었다는 것을 발견! 나는 암호를 업데이트 :

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

지금, 나는 얻을 :

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

3FBBDB84EA2B2A0EA599948396AD622B7FF68183는 망고위한 mysql 데이터의 암호 란에 도시 된 동일한 수이며, 원래는 상이한 수이다. 나는 아직도 로그인 할 수 없습니다.

어떻게 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

해결법

  1. ==============================

    1.당신의 사용자 테이블이 손상되어 나타납니다. 가능성이 재부팅 당신은 MySQL로 업그레이드를 트리거 언급하고으로 mysql_fix_privilege_tables 스크립트가 실행되지 않았습니다. 이 상황을 해결해야한다 :

    당신의 사용자 테이블이 손상되어 나타납니다. 가능성이 재부팅 당신은 MySQL로 업그레이드를 트리거 언급하고으로 mysql_fix_privilege_tables 스크립트가 실행되지 않았습니다. 이 상황을 해결해야한다 :

    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_fix_privilege_tables에 --force 옵션을 제공하는 것은 업그레이드가 이미 수행 된 경우에도 업그레이드 스크립트를 다시 적용됩니다. 이는 백업에서 부분 복원의 경우에 필요할 수있다.

    또한 언급 할만큼 가치, 사용자 암호를 변경하는 명령이 MySQL은 5.7.6에서 변경 / MariaDB 10.2.0 앞으로 :

    ALTER USER mangos IDENTIFIED BY 'mangos';
    

    이제이 이전 암호 설정 구문을 공식적으로 사용되지 않는 것은 아니지만, 암호를 설정하기위한 선호되는 방법입니다.

  2. ==============================

    2.나는이 서비스를 종료하고 mysqld_safe를 사용하여, 그것은 어려운 방법을해야했다, 그래서으로 mysql_fix_privilege_tables (@ miken32에 의해 제안이)로 여기에서 설명하는, 나를 위해 작동하지 않았다.

    나는이 서비스를 종료하고 mysqld_safe를 사용하여, 그것은 어려운 방법을해야했다, 그래서으로 mysql_fix_privilege_tables (@ miken32에 의해 제안이)로 여기에서 설명하는, 나를 위해 작동하지 않았다.

    업데이트 : 사실, 난 하드 하드 하드 방법해야했다, 그래서 하나가 작동하지 않았다 (주의, 이것은 모든 데이터베이스를 삭제) :

  3. ==============================

    3.여기에서 해결 된 문제를 얻었다. 이 문제를 해결하기 위해으로 mysql_fix_privilege_tables -u 루트 -p를 실행하거나 조회에서 "함께"대신 "에 의해"을 사용하여 시도보다 사용자를 생성하는 동안이 오류에 직면하는 경우.

    여기에서 해결 된 문제를 얻었다. 이 문제를 해결하기 위해으로 mysql_fix_privilege_tables -u 루트 -p를 실행하거나 조회에서 "함께"대신 "에 의해"을 사용하여 시도보다 사용자를 생성하는 동안이 오류에 직면하는 경우.

    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'xyz';
    
  4. ==============================

    4.나는의 my.ini 파일에 다음 라인을 추가하고 그것을 완벽하게 일 :

    나는의 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
    

    희망이 도움이,

    건배

  5. ==============================

    5.나는 5.6 상자에서 복제 된 5.7.12 상자에서이 문제를 건너 왔어요. 5.6 박스는 사전 자극 테스트 환경의 그것의 일환으로 5.7에서 다운 그레이드되었다.

    나는 5.6 상자에서 복제 된 5.7.12 상자에서이 문제를 건너 왔어요. 5.6 박스는 사전 자극 테스트 환경의 그것의 일환으로 5.7에서 다운 그레이드되었다.

    다운 그레이드 과정의 일부로서, 5.6 상자 (이것은 다운 그레이드 해결할 수있는 문제 후 5.6으로 mysql_fix_privilege_tables --force 실행) 그것의 권한을 망쳐 가지고 있지만, 그 과정에서 5.6 서버에서 실행 변경됩니다 권한 중 일부는 5.7에 푸시 된 것으로 보인다 섬기는 사람.

    궁극적으로, authentication_string 암호 해시는 루트에 대한 플러그인 열에서 끝났다 @ localhost를.

    정확한 열로 해시 이동 문제를 경화 해당 사용자의 '플러그'항목에 삽입 고정 mysql_native_password.

    나는 지금은 버그 리포트를 제출 할 수 있도록 문제를 복제하고 있어요,하지만 복제하기 어려운 입증 그래서 관련 요인이 있었다.

  6. from https://stackoverflow.com/questions/34935619/mysql-wont-let-user-login-error-1524 by cc-by-sa and MIT license