docker-compose を使用して MySQL を実行する方法

docker-compose を使用して MySQL を実行する方法

ディレクトリ構造

。
│ .env
│ docker-compose.yml
│
└─mysql
 ├─設定
 │ my.cnf
 │
 └─データ

mysql ディレクトリの下のデータ ディレクトリはデータ ディレクトリであり、ここに mysql データ テーブルとバイナリ ログ ファイルが配置されます。 .env ファイルには${variable_name}を使用してdocker-compose.ymlファイルで参照できるいくつかの変数が含まれています。

もちろん、mysql ディレクトリを別の場所に置くこともできますが、ここでは便宜上、yml ファイルと同じディレクトリに直接置きます。

.env ファイル

MYSQL_ROOT_PASSWORD=ルート
MYSQL_ROOT_HOST=%
MYSQL_DIR=./mysql

MySQL 設定ファイル my.cnf

[mysqld]
文字セットサーバー=utf8mb4
デフォルトのタイムゾーン='+8:00'
innodb_rollback_on_timeout='オン'
最大接続数=500
innodb_lock_wait_timeout=500

デフォルト設定を使用する場合、このファイルは省略できます。

ドッカーの作成

バージョン: '3'

サービス:

 mysql-db:
 container_name: mysql-docker # コンテナイメージの名前を指定します: mysql:8.0 # イメージとバージョンポートを指定します:
 - 「3306:3306」
 環境:
 MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
 MYSQL_ROOT_HOST: ${MYSQL_ROOT_HOST}
 ボリューム:
 - "${MYSQL_DIR}/data:/var/lib/mysql" #データディレクトリをマウント - "${MYSQL_DIR}/config:/etc/mysql/conf.d" #設定ファイルディレクトリをマウント

環境変数

  • MYSQL_ROOT_PASSWORD: これは、その名の通り、ルート ユーザーのパスワードです。
  • MYSQL_USER、MYSQL_PASSWORD: これら 2 つの変数はオプションであり、MYSQL_DATABASE 変数で指定されたデータベースに対してスーパーユーザー権限を持つ新しいユーザーを作成します。
  • MYSQL_DATABASE : コンテナの起動時に作成されるデータベースを指定します。
  • MYSQL_ALLOW_EMPTY_PASSWORD : ルート ユーザーが空のパスワードを持つことを許可するには、 yes に設定します。 (非推奨)
  • MYSQL_RANDOM_ROOT_PASSWORD: yes に設定すると、コンテナの起動時に root ユーザーのランダム パスワードが生成され、そのパスワードが標準出力ストリームに表示されます (GENERATED ROOT PASSWORD:......)。
  • MYSQL_ONETIME_PASSWORD: 文字通り、ルート ユーザー用に設定されたワンタイム パスワードを意味し、最初のログイン後にパスワードを変更する必要があります (バージョン 5.6 以降でのみサポートされます)。

コンテナの実行

docker-compose.yml ディレクトリで実行します。

> docker-compose up

バックグラウンドで実行するには、 docker-compose up -d使用します。

コンテナを停止します。

> docker-compose down

フォアグラウンドで実行されている場合は、Ctrl + C を押して停止します。どちらの方法でも、停止後にコンテナは削除され、次回起動するには up コマンドを使用する必要があります。

コンテナを停止しますが、削除しません:

> docker-compose stop

stop コマンドで停止した後、start コマンドで再起動します。

要約する

以上が編集者が紹介したdocker-composeを使ったMySQLの実行方法です。皆様のお役に立てれば幸いです。ご質問があればメッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Docker Compose は MySQL に接続するために SpringBoot プロジェクトをデプロイしますが、そこで遭遇する落とし穴があります。
  • MySQL8 ベースの docker-compose デプロイメント プロジェクトの実装
  • dockercompose を使用して springboot-mysql-nginx アプリケーションをビルドする
  • docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析
  • docker compose を使用して elk システムを構築する方法
  • docker-compose を使用して mongodb と mysql を構築する詳細なプロセス

<<:  Dockerは1行のコマンドでFTPサービス構築の実装を完了します

>>:  MySQLでデータベースデータ保存ディレクトリを変更する方法

推薦する

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

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

CSSのoutline-offsetプロパティを使用してプラス記号を実装する

次のような初期コードがあると仮定します。 <!DOCTYPE html> <htm...

Docker プライベート サーバー イメージを定期的にクリーンアップする方法

CI を利用してリリース用の Docker イメージをビルドすることで、全員のバージョンリリース効率...

Dockerイメージをインポートおよびエクスポートする方法

この記事では、移行、バックアップ、アップグレードなどのシナリオで使用される Docker イメージの...

CentOS 8で自動更新を設定するための手順を完了する

データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...

MySQL トリガーの使用シナリオとメソッドの例

トリガー:トリガーの使用シナリオと対応するバージョン:トリガーは次の MySQL バージョンで使用で...

Tomcat9 Windows サービスのインストールに関する詳細なチュートリアル

1. 準備1.1 service.bat を含む tomcat 圧縮パッケージをダウンロードします。...

HTML と埋め込み Flash の両方におけるスクロールバーの分析と処理

開発を行う際に、次のような状況に遭遇することがよくあります。 a.swf が Web ページに追加さ...

パーティショニングを使用して数十億のデータに対する MySQL データ処理を最適化する方法

MySQL が数千万のデータをクエリする場合、ほとんどのクエリ最適化の問題はインデックスを通じて解決...

Alibaba Cloud Server Tomcatにアクセスできません

目次1. はじめに2. 解決策2.1 ファイアウォールを設定してポートを開く2.3 ポートを確認し、...

MySQL の準同期レプリケーションについての簡単な説明

導入MySQL はレプリケーションを通じてストレージ システムの高可用性を実現します。現在、MySQ...

Vue2.0は適応解像度を実装する

この記事では、適応解像度を実現するためのVue2.0の具体的なコードを参考までに紹介します。具体的な...

MySql 8.0.11 のインストールと設定のチュートリアル

公式ウェブサイトアドレス: https://dev.mysql.com/downloads/mysq...

MySQL ストアド プロシージャの使用例の分析

この記事では、MySQL ストアド プロシージャの使用方法について説明します。ご参考までに、詳細は以...

Reactはルーティングを使用してログインインターフェースにリダイレクトします

前回の記事では、webpack と react 環境を設定した後、ログイン インターフェースとその後...