Navicat Premium が MySQL 8.0 に接続してエラー「1251」を報告する問題を解決する方法の分析

Navicat Premium が MySQL 8.0 に接続してエラー「1251」を報告する問題を解決する方法の分析

長い間何もしていなかった人は、努力をすると一生懸命働いていると思うようになります。

1. 問題

Navicat Premium MySQL 8.0接続するときにエラーを報告します:

1251 - クライアントはサーバーが要求した認証プロトコルをサポートしていません。MySQL クライアントのアップグレードを検討してください。

下位バージョンのNavicat Premiumはmsyql8に接続し、エラーを報告します

2. 理由

MySQL 8.0パスワード認証方法が変更されました。

MySQL 8.0のパスワード認証方法は次のとおりです。

mysql_ネイティブパスワード

より安全なパスワード暗号化方法を提供するために、 MySQL 8.0以降では、デフォルトのパスワード認証方法は次のとおりです。

キャッシュ_sha2_パスワード

エラー1251の理由も明らかです。

クライアントはサーバーが要求した認証プロトコルをサポートしていません。

中国語に翻訳すると、「クライアントはサーバーが要求した認証プロトコルをサポートしていません。」という意味になります。

Navicat Premium 11を使用してMySQL 8.0に接続しています。バージョンが低すぎるため、 caching_sha2_passwordのパスワード暗号化方式をサポートしていません。 !

MySQLコマンドライン ターミナルでは、バージョンとデフォルトのパスワード認証方法を表示できます。

root@プログラマーの一日:/#mysql -u root -p   
パスワードを入力してください: 
MySQL モニターへようこそ。 

マイSQL> 
マイSQL> 
# バージョンを確認するmysql> select version();
+-----------+
| バージョン() |
+-----------+
| 8.0.21 |
+-----------+
セット内の 1 行 (0.00 秒)

マイSQL> 
マイSQL> 
# デフォルトの暗号化方式を表示する mysql> 
mysql> mysql を使用します。

データベースが変更されました

マイSQL> 
mysql> ユーザーからホスト、ユーザー、プラグインを選択します。
+-----------+------------------+------------------------+
| ホスト | ユーザー | プラグイン |
+-----------+------------------+------------------------+
| % | ルート | caching_sha2_password |
| ローカルホスト | mysql.infoschema | caching_sha2_password |
| ローカルホスト | mysql.session | caching_sha2_password |
| ローカルホスト | mysql.sys | caching_sha2_password |
| ローカルホスト | ルート | caching_sha2_password |
+-----------+------------------+------------------------+
セット内の行数は 5 です (0.00 秒)

マイSQL>

ご覧のとおり、 MySQL 8.0すべてのユーザーのデフォルトのパスワード暗号化方法はcaching_sha2_passwordです。

3. 解決策

この問題を解決するには2つの方法があります。

  • 方法 1: MySQL 8.0のパスワード認証方法を変更します。
  • 方法 2: Navicat Premium新しいバージョンをインストールします。

どちらの方法も実行可能ですが、問題が起こりやすいため、暗号化ルールをランダムに変更しないことをお勧めします。そのため、 「方法2」を使用することをお勧めします。

3.1. MySQL 8.0パスワード認証方法を変更する

MySQLコマンドラインターミナルはそれぞれ次の操作を実行します。

# ルートユーザーのパスワードを「123456」に更新します。
# 「123456」を自分のパスワードに置き換える必要があることに注意してください。弱いパスワードは使用しないでください。
ALTER USER 'root'@'localhost' を '123456' によって mysql_native_password で識別します。

# パスワードの更新を有効にするために権限を更新します FLUSH PRIVILEGES;

簡単なデモンストレーション:

ステップ 1: mysqlコマンドライン ターミナルに入ります。

ルート@ed2a490912e5:/#mysql -u ルート -p
パスワードを入力してください: 

マイSQL>

ステップ 2: デフォルトのパスワード認証方法を確認します。

mysql> mysql を使用します。
mysql> ユーザーからホスト、ユーザー、プラグインを選択します。
+-----------+------------------+------------------------+
| ホスト | ユーザー | プラグイン |
+-----------+------------------+------------------------+
| % | ルート | caching_sha2_password |
| ローカルホスト | mysql.infoschema | caching_sha2_password |
| ローカルホスト | mysql.session | caching_sha2_password |
| ローカルホスト | mysql.sys | caching_sha2_password |
| ローカルホスト | ルート | caching_sha2_password |
+-----------+------------------+------------------------+
セット内の行数は 5 です (0.00 秒)

マイSQL>

ご覧のとおり、 rootユーザーのパスワード認証方法はcaching_sha2_passwordです。

ステップ 3: rootユーザーのパスワード認証方法を変更します。別のユーザーの場合は、 root別のユーザー名に置き換えます。パスワードを更新するのと同じです!

mysql> ALTER USER 'root'@'localhost' が mysql_native_password によって '123456' で識別されます。
クエリは正常、影響を受けた行は 0 行 (0.05 秒)

mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.04 秒)

ステップ 4: rootユーザーのパスワード認証方法を再度確認します。

mysql> ユーザーからホスト、ユーザー、プラグインを選択します。
+-----------+------------------+------------------------+
| ホスト | ユーザー | プラグイン |
+-----------+------------------+------------------------+
| % | ルート | caching_sha2_password |
| ローカルホスト | mysql.infoschema | caching_sha2_password |
| ローカルホスト | mysql.session | caching_sha2_password |
| ローカルホスト | mysql.sys | caching_sha2_password |
| ローカルホスト | ルート | mysql_native_password |
+-----------+------------------+------------------------+
セット内の行数は 5 です (0.00 秒)

rootユーザーのパスワード認証方法がmysql_native_password変更されていることに注意してください。

Navicat Premium 11を使用してMySQL 8.0に再度接続すると、接続は成功します

接続に成功しました

繰り返しになりますが、パスワード認証方法を変更すると問題が発生する可能性が高く、お勧めできません。

3.2. Navicat Premium新バージョンをインストールする

私のテストによると、 Navicat Premium 12以降のバージョンはMySQL 8.0接続をサポートしています。最新バージョンはNavicat Premium 15です。公式ウェブサイトのダウンロードアドレス:

http://www.navicat.com.cn/download/navicat-premium

インストールは非常に簡単です。インストール パッケージを実行し、プロンプトに従って手順ごとにインストールするだけです。残念ながら、 Navicat Premiumは無料ソフトウェアではなく、永久ライセンスの価格はかなり高価です... 公式サイトの価格はRMB 4,449.0で、エンタープライズバージョンは RMB 10,000 を超えます。貧困は私を泣かせる。

非商用価格見積
エンタープライズ版の見積もり

幸いなことに、それは解読可能です! ! !
詳細については、Navicat Premium 15 永久クラックインストールチュートリアルを参照してください。

免責事項: これは技術的な情報交換のみを目的としています。いかなる法的紛争も私とは一切関係ありません。著作権侵害があった場合は削除いたしますのでご連絡ください。

添付はレンダリングです:

接続に成功しました

Navicat Premium で MySQL 8.0 に接続するときに発生するエラー「1251」の分析と解決に関するこの記事はこれで終わりです。 Navicat Premium で MySQL 8.0 に接続するときに発生するエラーに関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。 今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Navicat Premium 12がOracleに接続したときにOracleライブラリがロードされない問題を解決します
  • Navicat Premium 12.0.29 のインストールとアクティベーションの超詳細なチュートリアル
  • Navicat グラフィカル インターフェイス Navicat Premium 12 のインストールと使用方法のチュートリアル

<<:  Javascript デザインパターン プロトタイプ モードの詳細

>>:  Dockerコンテナのデータボリュームの詳細な説明

推薦する

シェル スクリプトを使用してワンクリックで MySQL 5.7.29 をインストールする方法

この記事は51CTOブログの著者wjw555の作品を参照しています。スクリプトの内容: vim イン...

MySQL で MHA アーキテクチャのデプロイメントを構築する手順

目次マハ1. MAHアーキテクチャの概要2. 適用可能なシナリオ3. MHAの動作原理4. MHAの...

MySQL実行計画の詳細な分析

序文前回の面接では、実行計画について質問されたとき、多くの人がそれが何なのか知りませんでした。実行計...

docker を使って sonarqube を構築する方法

目次1. Dockerをインストールする2. ソナーイメージをインストールする3. ソナーを使ってコ...

iframe の src を about:blank に設定した後の詳細

iframe の src を 'about:blank' に設定した後、"...

node.js チュートリアルの Util モジュールの例の詳細な説明

目次タイプ判定から始める厳格な平等エラーファーストと約束デバッグと出力タイプ判定から始めるJavaS...

CSS を使用して複数の方法で等高レイアウトを実装するサンプル コード

この記事で説明する等高レイアウトでは、純粋な CSS を使用して、要素の高さを手動で設定することなく...

TomcatをダウンロードしてLinuxにインストールする詳細な手順

Linux に触れたばかりの方には、この内容が役に立つかもしれません。Linux にしばらく触れてい...

MySQL でコミットされていないトランザクションを見つけるための SQL の例の簡単な分析

以前、「MySQL でコミットされていないトランザクション情報を検索する方法」というタイトルのブログ...

Vue Element フロントエンドアプリケーション開発 従来の Element インターフェースコンポーネント

目次1. リストインターフェースとその他のモジュールの表示処理2. 従来のインターフェースコンポーネ...

モバイルプラットフォーム開発におけるメタタグの適用の詳細な説明

デスクトップ プラットフォームの Web レイアウトのメタ タグは誰もがよく知っています。これは常に...

docker によってプルされたイメージがどこに保存されるかの詳細な説明

docker によってプルされたコマンドは、デフォルトでは /var/lib/docker/ フォル...

Nginx キャッシュ ファイルと動的ファイルの自動バランス設定スクリプト

nginx Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバー...

MySQLのロック構造の詳細な説明

Mysqlは3種類のロック構造をサポートしていますテーブルレベルのロック、低オーバーヘッド、高速ロッ...

JSにおけるデータ型の正しい判定方法の例

目次序文typeof は型を正しく判別できますか? instanceof は型を正しく判別できますか...