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

推薦する

element-uiのアップロードコンポーネントでファイルやその他のパラメータを転送する際の問題を分析する

最近、element-ui を統合したプロジェクトで vuethink を使用しました。以前は bo...

MySQL 最適化戦略 (推奨)

要約すれば: 1. データベースの設計とテーブルの作成時にパフォーマンスを考慮する2. SQLの記述...

Jenkinsはマイクロサービスをパッケージ化してDockerイメージを構築し、実行します。

目次環境の準備始める1. GitLabリモートリポジトリがマイクロサービスプロジェクトを作成する2....

mysql8.0.19 でパスワードを忘れた場合の完璧な解決策

おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...

Centos6.9 インストール Mysql5.7.18 ステップ記録

インストール手順 rpm -ivh mysql-コミュニティ-共通-5.7.18-1.el7.x86...

CSS3 における構造擬似クラスセレクターと擬似要素セレクターの使い方の詳細な説明

構造擬似クラスセレクタの紹介構造擬似クラスセレクターは、いくつかの特殊効果を処理するために使用されま...

JavaScript が Jingdong の虫眼鏡効果を模倣

この記事では、Jingdongの虫眼鏡効果を実現するためのJavaScriptの具体的なコードを紹介...

Vueはツリーテーブルを実装する

この記事では、ツリーテーブルを実装するためのVueの具体的なコードを例として紹介します。具体的な内容...

VMware 仮想マシンのインストール Apple Mac OS の超詳細なチュートリアル

目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...

1 つの記事で Nginx の現在の制限を理解する (簡単な実装)

Nginx は現在、最も人気のあるロード バランサーの 1 つです。インターネット トラフィックの...

MYSQL データベースの基礎 - 結合操作の原理

結合では、ネスト ループ結合アルゴリズムが使用されます。ネスト ループ結合には 3 つの種類がありま...

JavaScript を使って簡単な計算機を書く

効果は以下のとおりです。参考プログラム: <!DOCTYPE html> <htm...

Centos7にGitLabサーバーをインストールして展開する方法

私はここでCentOS 7 64ビットシステムを使用しています。CentOS 64ビットシステムを試...

MySQL のインデックス障害の一般的なシナリオと回避方法

序文これまでにも、一部の SQL ステートメントを不適切に使用すると MySQL インデックスが失敗...