Navicat接続MySQL 8.0エラー2059

3369 ワード

mysql8.0の2059-authentication plugin'caching_sha2_password'-navicat接続異常問題
質問説明:navicatリンクmysql 8以降のバージョンでは2059のエラーが発生します.このエラーは、mysql8 のバージョンでは暗号化ルールがmysql_native_passwordであり、mysql8 の暗号化ルールがcaching_sha2_passwordであるためです.
ソリューション:
  • mysql 8.0以降の検証方式は、以前のバージョンで使用されていた検証方式mysql_native_passwordに変更される.mysqlに対応するインストールディレクトリの下にあるmy-default.iniファイルを見つけ、default_authentication_plugin=caching_sha2_passworddefault_authentication_plugin=mysql_native_passwordに変更します.以下は私のmy-default.iniの内容です:
     [mysqld]
     #   3306  
     port=3306
     #   mysql     
     basedir=C:\Program Files\MySQL\MySQL Server 8.0
     #   mysql           
     datadir=C:\Program Files\MySQL\MySQL Server 8.0\data
     #        
     max_connections=200
     #          。                     
     max_connect_errors=10
     #             UTF8
     character-set-server=utf8
     #                
     default-storage-engine=INNODB
     #     “mysql_native_password”    
     default_authentication_plugin=mysql_native_password
     [mysql]
     #   mysql        
     default-character-set=utf8
     [client]
     #   mysql                
     port=3306
     default-character-set=utf8
    
  • でcmdを実行(win 10右ボタン左下隅開始ボタン選択で管理者としてcmdを実行すればよい)
  • 管理者としてcmdを実行mysqlのインストールディレクトリの下のbinフォルダC:\>cd C:\Program Files\MySQL\MySQL Server 8.0\bin
  • に入る.
  • C:Program FilesMySQLMySQLMySQL Server 8.0binディレクトリの下にdataフォルダがない場合は、次のコマンドを実行します.
  • mysqld -installと入力します(管理者IDなしで実行すると、権限が足りないためエラーが発生します:Install/Remove of the Service Denied!)
  • mysqld --initializeを実行すると、既存のdataフォルダが表示されます.

  • データベースコマンドラインにログインmysql -u root -pを実行し、データベースのパスワードを入力すると、Welcome to the MySQL monitorが表示されます.文字はログインに成功しました.
  • 暗号化規則を修正してALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  • を実行する.
  • ユーザのパスワードALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';のうちxxxxは新しく設定されたパスワードである.
  • 権限をリフレッシュしてFLUSH PRIVILEGESを実行する.
  • それからNavicat接続Mysqlを開けて、接続が成功したことを発見して、完璧に問題を解決します.
  • 具体的な操作は以下の通りである:
      C:\>cd C:\Program Files\MySQL\MySQL Server 8.0\bin
    
      C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
      Enter password: ******
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 8
      Server version: 8.0.13 MySQL Community Server - GPL
      
      Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
      
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      
      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
      Query OK, 0 rows affected (0.07 sec)
      
      mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abcd';
      Query OK, 0 rows affected (0.06 sec)
      
      mysql> FLUSH PRIVILEGES;
      Query OK, 0 rows affected (0.00 sec)
      
      mysql>
    
  • 一連の操作を経て最終的に問題を解決し、NavicatはMysqlに順調に接続した.