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最適化ツール(推奨)

推薦する

ドラッグ位置プレビューを実装するネイティブJS

この記事では、要素をドラッグするときにプレビューを追加する小さなデモを紹介します。効果は次のとおりで...

Vueプロジェクトのパッケージ化の詳細な説明

目次1. 関連構成ケース1(使用ツールはvue-cil)ケース2(使用するツールはwebpack) ...

JS での Reduce Fold Unfold の使用法の詳細な説明

目次折りたたむ(減らす) for...of の使用whileループの使用折り畳み実装に近い展開する配...

MySQL シリーズ 4 SQL 構文

目次チュートリアルシリーズ1. SQL言語の紹介と仕様2. データベース操作1. ライブラリを作成す...

Vueは右上隅の時間表示のリアルタイム更新を実装します

この記事の例では、右上隅の時間表示のリアルタイム更新を実現するためのVueの具体的なコードを紹介しま...

HTMLにビデオを挿入してすべてのブラウザと互換性を持たせる方法

HTML にビデオを挿入するために最もよく使用される方法は 2 つあります。1 つは古い <o...

MySQL と接続関連のタイムアウトの詳細な概要

MySQL と接続関連のタイムアウト序文:今日、同僚から、データ量が多いときに MySQL データベ...

Spring Boot 2.4 の新機能、ワンクリックビルド、Docker イメージプロセスの詳細説明

背景開発プロセス中に Docker コンテナ化をサポートするために、通常は Maven を使用してコ...

MySQL データベース テーブルとデータベース パーティショニング戦略

まず、テーブルを分割する必要がある理由について説明します。データシートが数百万に達すると、1 回のク...

Nginx 500 内部サーバーエラーの解決方法

今日、Nginxを使っていたら500エラーが発生しました。エラーコードを検索してみんなに共有しました...

MySQL マスタースレーブレプリケーションの遅延の原因と解決策

目次レプリケーション ロジックの簡単な概要:遅延の原因と解決策〇メインデータベースへの頻繁なDMLリ...

KVM 仮想化のインストール、展開、管理のチュートリアル

目次1.kvmの展開1.1 kvmのインストール1.2 kvm Web管理インターフェースのインスト...

水平スクロールバーを実装する2つの方法の例

序文:プロジェクトの開発中に、1 行にナビゲーション バーが多すぎる場合に水平スクロール バーを実装...

MySQL の効率的なクエリの左結合とグループ化 (プラス インデックス)

mysql 効率的なクエリMySQL は、左結合の速度を上げるために group by を犠牲にし...

vue-router 4 の使用例の詳しい説明

目次1. インスタンスをインストールして作成する2. vue-router4の新機能2.1 動的ルー...