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

推薦する

XHTML CSS ウェブサイトデザインの利点と問題点

XHTML は現在国際的に推奨されている標準的な Web サイト設計言語です。Webjx.com も...

mysql5.6 以前のデータベースで json をクエリする方法

MySQLにデータを保存するとき、乱雑であまり使用されないデータがJSONフィールドに投げ込まれるこ...

nginx での書き換えジャンプの実装

1. 新旧ドメイン名のジャンプ適用シナリオ: ドメイン名ベースのリダイレクト。会社の古いドメイン名は...

CSS のサイズと幅と高さのブラウザ解釈の違いに対する解決策

まずは例を見てみましょうコードをコピーコードは次のとおりです。 <!DOCTYPE html ...

Linux における $ 記号の基本的な使い方のまとめ

Linuxバージョン: CentOS 7 [root@azfdbdfsdf230lqdg1ba91 ...

ランダムな文字を生成する Java サンプルコード

サンプルコード: java.util.Random をインポートします。 java.util.UUI...

スパンの最小高さを定義するソリューションは効果がありません

span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...

スネークゲームを作るための Pygame コード

目次使用されるPygame関数スクリーンの作成ヘビの作成ヘビを動かすゲームオーバーの処理食事を増やす...

MySQL 基本チュートリアル パート 1 MySQL5.7.18 のインストールと接続チュートリアル

この記事から、MySQL を紹介し学習するための新しい一連の記事がスタートします。なぜ MySQL ...

Zabbix で Windows のパフォーマンスを監視する方法

背景情報最近、Windows パフォーマンスに関する本を読み直しています。以前は SCOM 監視を使...

Dockerイメージを完全にアンインストールする手順

1. docker ps -a 実行中のイメージプロセスを表示する [root@mylinux~]#...

CSSラベル表示モードについて1つの記事で学ぶ

タグの種類(表示モード) HTML タグは、一般的にブロック タグとインライン タグの 2 種類に分...

docker で PostgreSQL データベースをインストールして永続化する方法

Dockerのインストール手順をスキップする1. postgresqlイメージを取得する docke...

MySQLクエリのパフォーマンスを分析する方法

目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...

Docker は固定コンテナ IP アドレスを実現するためにカスタム ネットワークを作成します。

デフォルトのブリッジ ネットワークのため、コンテナーを再起動すると IP アドレスが変更されます。シ...