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データベースを誤って削除した後にデータを回復するための手順

推薦する

HTML 中国語文字エンコード標準の概要

HTML では、Web ページで使用されるエンコーディングを指定する必要があります。一般的な指定方法...

Linux でソフトウェア パッケージのバージョンをアップグレードする方法の詳細な説明

Linux環境で、特定のソフトウェア(パッケージ)がインストールされているかどうかを確認したい。 r...

MySQL インデックスの正しい使い方とインデックスの原理の詳細な説明

1. はじめになぜインデックスが必要なのでしょうか?一般的なアプリケーション システムでは、読み取り...

MySQLは現在の日付と時刻を取得する関数

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...

React 構成 px 変換 rem メソッド

関連する依存関係をインストールするnpm i lib-flexible --save npm i p...

Vue から React への変換入門ガイド

目次デザインコンポーネント通信ライフサイクルイベント処理品格とスタイルクラススタイル条件付きレンダリ...

Linux gzipコマンドの使用

1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...

MySql ストアド プロシージャ パラメータの初歩的な使用法の詳細な説明

パラメータでのストアドプロシージャの使用IN パラメータは、プロシージャに情報を渡すためにのみ使用さ...

スクラッチ宝くじの例を実現する JavaScript キャンバス

この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...

MySQLのバックアップとリカバリの簡単な分析

目次1. はじめに2. バックアップとリカバリの簡単な定義3. 復旧計画で考慮すべきいくつかの要素4...

Navicat がデータベース データ構造をインポートする際に発生するエラー datetime(0) の SQL レポートの問題を解決します。

エラー発生: MySQL 5.7 から SQL にデータベースをエクスポートし、それを MySQL ...

Mysql WorkBench のインストールと設定のグラフィックチュートリアル

この記事では、Mysql WorkBenchのインストールと設定のグラフィックチュートリアルを参考ま...

よく使われるLinuxコマンド「ll」が無効、またはコマンドが見つからないという問題を解決します

質問:よく使用されるコマンド「ll」が無効であるか、コマンドが見つかりません理由: 「ll」コマンド...

Apache の一般的な仮想ホスト設定方法の分析

1. Apacheサーバーのインストールと設定yum インストール httpd -y systemc...

Docker を使用して Go Web アプリケーションをデプロイする方法

目次なぜ Docker が必要なのでしょうか? Docker デプロイメントの例コードの準備Dock...