docker で mysql に接続できない場合の解決策

docker で mysql に接続できない場合の解決策

シナリオ: 仮想マシンの Docker コンテナに最新バージョンの MySQL をインストールした後、Navicat を使用してホスト マシン上の仮想マシンの MySQL に接続すると、次のエラーが表示されます。

2059 : 認証プラグイン 'caching_sha2_password' を読み込めません:

解決:

1. まず、docker ps コマンドを使用して実行中のコンテナをチェックし、接続したい mysql が起動していることを確認します。起動していない場合は、docker start コマンドを使用して起動します (下の図の結果は、mysql が起動していることを示しています)

2. 次にdocker exec -it b30062adc08c /bin/bashを実行してmysqlコンテナに入ります。

3. 次に、mysql -u root -p コマンドを入力し、パスワードを入力して、最後にパスワード更新ステートメントを入力します。

ALTER USER 'root'@'%' は '123456' によって mysql_native_password で識別されます。

4. 最後に、MySQL を再起動し、Navicat を使用して正常に接続します。

補足知識: Docker での MySQL へのローカルリモート接続エラーの解決方法 (1251)

エラーは次のとおりです:

理由: MySQL 8.0 はデフォルトで caching_sha2_password 認証メカニズムを使用します。クライアントは新しい暗号化方式をサポートしていません。

解決策: ユーザー(root)の暗号化方法を変更する

1. MySQLコンテナに入り、Dockerに入ります

docker exec -it mysql02 bash

2. MySQLにログインする

mysql -u ルート -p

図に示すように、123456 と入力して Enter キーを押します。

3. ユーザー設定項目を設定する

(1)ユーザー情報を見る

mysql.user からホスト、ユーザー、プラグイン、認証文字列を選択します。

(2)暗号化方式を変更する

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; //123456はmysqlのログインパスワードです

(3)ユーザー情報を再度確認する

mysql.user からホスト、ユーザー、プラグイン、認証文字列を選択します。

(4)Navicateまたは他のデータベースソフトウェアを使用して再度接続すると成功します

(5)補足:コンテナを閉じずに通常通り終了したい場合は、Ctrl+P+Qを押してコンテナを終了できます。

mysqlコンテナを終了する: Ctrl+Dを2回押す

docker で mysql に接続できない問題の解決方法は以上です。エディターが皆さんに共有する内容は以上です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴
  • Docker で MySQL データベースを使用する方法の詳細説明 (LAN でのアクセス)
  • DockerにMySQL 8.0をインストールする方法
  • DockerコンテナでのMySQLデータのインポート/エクスポートの詳細な説明
  • Docker に MySQL インスタンスをインストールして実行する
  • dockerログインmysqlエラー問題の実践記録

<<:  JavaScript 日付ツールの概要

>>:  MySQL最適化ツール(推奨)

推薦する

MySQL に外部キー制約を追加する具体的な方法

このチュートリアルの動作環境: Windows 7 システム、MySQL 8 バージョン、Dell ...

MySQL移行計画と落とし穴の実践記録

目次背景解決策1: 古いデータをバックアップするオプション2: テーブルを分割する解決策3: tid...

Tomcatでcatalina.batがUTF-8に設定されている場合、コンソールに文字化けした文字が表示されます

1. catalina.bat は UTF-8 に設定する必要があります。UTF-8 に設定しないと...

ネイティブ JS カプセル化 vue タブ切り替え効果

この記事の例では、ネイティブJSカプセル化vueタブ切り替えの具体的なコードを参考までに共有していま...

JS を使用して Web ページのウォーターフォール レイアウトを実装する方法

目次序文:ウォーターフォールレイアウトとは何ですか?達成方法: 1. 画像を取得する2. 画像の帯域...

Vue は携帯電話の認証コードによるログインを実装します

この記事では、携帯電話認証コードログインを実装するためのVueの具体的なコードを参考までに共有します...

ボタンの 4 つのクリック応答方法の概要

ボタンは頻繁に使用されます。ここでは、イベント処理メソッドを整理し、実装方法が多数あることを発見しま...

VirtualBox+Ubuntu16でKubernetesクラスタを構築する実装

目次Kubernetesについて基本的な環境の準備VirtualBoxをインストールするUbuntu...

HTMLウェブページの基本概念の簡単な分析

ウェブページとは何ですか? HTML ドキュメントがブラウザカーネルによってレンダリングされた後に表...

K8Sの高度な機能を理解するための記事

目次K8Sの高度な機能高度な機能要約するkubectl サービスの問題のトラブルシューティングK8S...

Vueで配列の変更を監視する方法

目次序文ソースコード学習の第一歩はどこから始めればよいでしょうか?写真から始めましょうソースコードを...

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...

Nginx リバース プロキシはポート 80 のリクエストを 8080 に転送します

まず、一連の概念を理解しましょう。nginx リバース プロキシとは何でしょうか?リバース プロキシ...

HTML コメント HTML 内のテキストコメントをマークするための記号

HTML コメント。コードの横に HTML コメントを付ける必要があることがよくあります。そうするこ...

CSSでプロセスナビゲーション効果を実現する(3つの方法)

CSS によりプロセスナビゲーション効果を実現します。具体的な内容は以下のとおりです。 ::tip...