docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析

docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析

Docker-Composeとは

Compose プロジェクトは、以前の fig プロジェクトから派生したものです。Python で記述されており、docker/swarm との高い互換性があります。 Compose は、Docker コンテナをオーケストレーションするためのツールです。マルチコンテナ アプリケーションを定義および実行します。1 つのコマンドで複数のコンテナを起動できます。Docker Compose を使用すると、コンテナを起動するためにシェル スクリプトを使用する必要がなくなります。 Compose は、構成ファイルを通じて複数の Docker コンテナを管理します。構成ファイルでは、すべてのコンテナがサービスを通じて定義され、その後、docker-compose スクリプトを使用して、アプリケーション、アプリケーション内のサービス、およびすべての依存サービスのコンテナを起動、停止、再起動します。これは、開発のために複数のコンテナを組み合わせるシナリオに非常に適しています。 docker-compose のデフォルトのテンプレート ファイルは docker-compose.yml です。このファイルでは、イメージ命令またはビルド命令 (Dockerfile が必要) を通じてイメージを指定して、定義されている各サービスを自動的にビルドする必要があります。

Compose を使用するには、基本的に次の 3 つの手順を実行します。

1. アプリケーション環境を Dockerfile で定義して、どこにでも複製できるようにします。
2. アプリケーションを構成するサービスを docker-compose.yml で定義し、分離された環境で一緒に実行できるようにします。
3. 最後に、docker-compose up を実行すると、Compose が起動し、アプリケーション全体が実行されます。

docker-compose でデプロイした際に mysql にアクセスできない問題を見てみましょう。

この問題は長い間私を悩ませてきました。docker docker-composeを使用して mysql をデプロイした後、コンテナが構築されると、 mysql -u root -pを使用してアクセスできますが、sql クライアントを使用して接続することはできません。そこで、Google で多くの情報を検索し、最終的にcommand: --default-authentication-plugin=mysql_native_passwordを追加するとこの問題を解決できることを発見しました。これは、パスワードの暗号化方法にまだ関連しています。

バージョン: "3.3"
サービス:
 レディス:
 画像: sameersbn/redis:latest
 ポート:
  - 「6379:6379」
 ボリューム:
  - redis_data:/var/lib/redis
 再起動: 常に
 マイスク:
  画像: mysql:最新
  再起動: 常に
  コマンド: --default-authentication-plugin=mysql_native_password #このコード行は、アクセスできないネットワークの問題を解決します。
   -開発
  ポート:
   - 「3306:3306」
  環境:
   MYSQL_ROOT_パスワード: abc123
   MYSQL_USER: 'テスト'
   MYSQL_PASS: 'テスト'
  ボリューム:
   -mysql_data:/var/lib/mysql
ネットワーク:
 開発者:
  ドライバー: ブリッジ
ボリューム:
 redis_データ:
 mysql_データ:

要約する

上記は、docker-compose を使用してアクセスできない mysql デプロイメントの問題を紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Clickhouse Docker クラスターの展開と構成を例を使って説明します
  • docker-compose デプロイメント PHP プロジェクト例の詳細な説明
  • Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順
  • Docker-compose を使用して GitLab をデプロイする方法
  • docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

<<:  vue-simple-uploader をベースに、ファイルセグメントアップロード、インスタントアップロード、ブレークポイント再開のグローバルアップロードプラグイン機能をカプセル化します。

>>:  MySQLデータベースを誤って削除した後にデータを回復するための手順

推薦する

Vueのログインとログアウトの詳細な説明

目次ログインビジネスプロセスログイン機能の実装要約するまず、エフェクトの実装プロセスを見てみましょう...

HTML の相対パスと絶対パスの違いの分析

HTML 初心者は、ファイルを正しく参照する方法という問題によく遭遇します。たとえば、HTML ペー...

MySQL 最適化のヒント: 重複削除の実装方法の分析 [数百万のデータ]

この記事では、MySQL 最適化のヒントで重複したエントリを削除する方法を例を使って説明します。ご参...

JavaScript の遅延読み込み属性パターンを理解する

従来、開発者はインスタンスで必要になる可能性のあるデータに対して JavaScript クラス内にプ...

Linuxのpasswdコマンドの使用

1. コマンドの紹介passwd コマンドは、ユーザー パスワード、アカウント ロック、パスワードの...

div 要素に終了タグがないため、Web ページを開くことができません

最初は速度の問題だと思ったので、その後、すべての画像リンク リクエストをクロスサイト接続ではなくサイ...

Linux環境でIPV6接続をサポートするようにmysql5.6を設定する方法

導入:この記事では主に、Linux システムで IPV6 接続をサポートするように MySQL を構...

HTML の長いテキストは、タグの幅を超えると自動的に切り捨てられます。

長いテキストを表示する場合、C# 側で文字をインターセプトする必要があることがよくありますが、長いテ...

MySQLサブクエリでorder byが効かない問題の解決方法

偶然にも、SQL ステートメントを異なる MySQL インスタンスで実行すると、異なる結果が生成され...

Centos7.3 に mysql5.7.18 をインストールするための詳細なチュートリアル

1 Linuxディストリビューションのバージョンを確認する[root@typecodes ~]# c...

jsでシンプルなパズルゲームを実現する

この記事では、簡単なパズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な...

Linux でファイルの種類を理解して識別する方法

序文ご存知のとおり、Linux ではハードディスクやグラフィック カードなどすべてがファイルです。 ...

Zabbix の psk 暗号化と zabbix_get 値の組み合わせ

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbix...

UbuntuのVimにNERDTreeプラグインをインストールする詳細な手順

NERDTree は Vim 用のファイル システム ブラウザーです。このプラグインを使用すると、ユ...

HTML コード作成ガイド

共通コンベンションタグ自己終了タグ。閉じる必要はありません (例: img input br hr ...