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でデータベースデータ保存ディレクトリを変更する方法

推薦する

MySQL バージョン 5.7.24 のデータベース インストール プロセスの詳細なグラフィック説明

MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーションに...

Linux スケジュールタスクの関連操作の概要

皆様の参考と操作を容易にするために、様々な主要ウェブサイトを検索し、関連するスケジュールされたタスク...

Linuxの簡単な分析でファイアウォールの状態と外部に開いているポートの状態を確認する

1. ファイアウォールの状態を確認するファイアウォールのステータスを確認する systemctl s...

レスポンシブ Web をデザインするにはどうすればいいですか?レスポンシブウェブデザインのメリットとデメリット

最近レスポンシブ デザインについて学んでいて、これについていくつか整理してみました。写真の一部はイン...

CSS で平均レイアウトを実現するために負のマージンを使用する例

均等に分散されたレイアウトの場合、通常はネガティブ マージン方式を使用します。次の図は平均的なレイア...

HTML における li タグの水平配置の例

ほとんどのナビゲーション バーは、下の図に示すように水平に配置されていますが、これはどのように実現さ...

Vue で CSS カスタム変数を使用する方法

目次CSS カスタム変数機能は古くから存在していますが、実際の開発ではあまり使用されていません。その...

ウェブデザイナーが持つべき資質と能力

Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...

HTML シンボルからエンティティへのアルゴリズムのチャレンジ

チャレンジ:文字列内の文字 &、<、>、" (二重引用符)、および &...

タイプファイルの入力ボタン機能の研究

<br />一部のWebサイトでアップロードする場合、「参照」ボタンをクリックすると[フ...

MySQL で最大接続数を正しく変更する 3 つの方法

MySQL データベースをインストールすると、デフォルトの MySQL データベースの最大接続数が ...

mysqlは、現在の時刻が開始時刻と終了時刻の間にあるかどうかを判断し、開始時刻と終了時刻が空であることが許可されます。

目次要件: 進行中のアクティビティ データを照会する次のSQLクエリは、上記の4つの要件を満たし、タ...

Linuxの一般的なコマンドでLinuxのmoreコマンドを使用する方法

more は、最もよく使用されるツールの 1 つです。最も一般的な使用方法は、出力コンテンツを表示し...

MYSQL スロークエリとログの例の説明

1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...

require loaderの実装原理の深い理解

序文Node は新しいプログラミング言語ではなく、JavaScript のランタイムに過ぎないとよく...