MySQL (8 および 5.7) の Docker インストール

MySQL (8 および 5.7) の Docker インストール

この記事では、Dockerを使用してMySQLデータベースとリモートアクセス構成をデプロイする方法を紹介します。

MySQLをインストールする

画像をプルする

MySQL データベース イメージをプルするには、次のコマンドを使用します。

$ sudo docker pull mysql # イメージの最新バージョンをプルします。現在は MySQL 8、タグは最新です

$ sudo docker pull mysql:5.7 # MySQLバージョン5.7をプルするように指定します

検索コマンドを使用して、人気度を表す星の数でマークされた他の MySQL 関連のミラーを見つけることもできます。

$ sudo docker 検索 mysql

MySQLの実行

$ sudo docker run -p 3306:3306 \
  --name mysql \
  -v $PWD/conf:/etc/mysql/conf.d \
  -v $PWD/ログ:/ログ\
  -v $PWD/データ:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=パスワード \
  -d MySQL の

コマンドの説明:

  • -p 3306:3306 : コンテナのポート 3306 をホストのポート 3306 にマップします。
  • -v $PWD/conf:/etc/mysql/conf.d : ホストの現在のディレクトリにある conf/my.cnf をコンテナ内の /etc/mysql/my.cnf にマウントします。
  • -v $PWD/logs:/logs: ホストの現在のディレクトリの下の logs ディレクトリをコンテナの /logs にマウントします。
  • -v $PWD/data:/var/lib/mysql : ホストの現在のディレクトリの下のデータ ディレクトリをコンテナの /var/lib/mysql にマウントします。
  • -e MYSQL_ROOT_PASSWORD=your-password: ルート ユーザーのパスワードを初期化します。非常に複雑なパスワードを使用することをお勧めします。
  • -d mysql: デプロイするイメージ名。バージョン5.7の場合は、mysql:5.7になります。

リモート アクセスの構成

MySQL へのリモート アクセスは基本的な構成ですが、構成時にセキュリティの問題に注意する必要があります。そうしないと、特にエンタープライズ サーバーの場合、セキュリティ上のリスクが発生します。

また、ポート 3306 はサーバーのファイアウォールとサーバー プロバイダーのセキュリティ グループで有効にする必要があります。有効にしないと、アクセスできなくなります。

リモート アクセスを構成するには、まず MySQL 制御ターミナルを開き、次のコマンドを使用して開きます。

$ sudo docker exec -it mysql bash # MySQLコンテナに入る $ mysql -uroot -p # 実行後にMySQLにログインしてパスワードを入力する

$ use mysql; # mysqlデータベースの使用を選択

MySQL 8 の設定

'username'@'%' というユーザーを作成し、'password' で識別します。
# リモート アクセス用のアカウントを作成します。
# {usernama} はリモートアクセスログインのユーザー名です。root の使用は推奨されません。
# {password} はリモートアクセス用のログインパスワードです。
# '%' はすべての IP を表します。可能であれば、特定の IP または IP セグメントを設定してみてください。GRANT ALL ON *.* TO 'username'@'%';
# 以前に作成したアカウントにすべての権限を付与します ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
# このアカウントにログインするためにここでパスワードを使用することを確認します FLUSH PRIVILEGES;
# 権限の更新

完全なコマンドは次のとおりです。

'123456asd' によって識別されるユーザー 'james'@'%' を作成します。
# リモート アクセス用のアカウント (James) を作成します。

*.* のすべての権限を 'james'@'%' に付与します。
# 以前に作成したアカウント james にすべての権限を付与します

ALTER USER 'james'@'%' は '123456asd' によって mysql_native_password で識別されます。
# このアカウント {james} にログインするにはパスワード {123456asd} を使用することを確認します
# セキュリティを高めるために、パスワードはできるだけ複雑にしてください。

権限のフラッシュ;
# 権限の更新

設定後、Navicat またはその他のツールを使用して接続をテストします。

MySQL 5.7 の設定

GRANT OPTION を使用して、'password' で識別される 'username'@'%' に *.* のすべての権限を付与します。
# {usernama} はリモートアクセスログインのユーザー名です。root の使用は推奨されません。
# {password} はリモートアクセス用のログインパスワードです。
# '%' はすべての IP を表します。可能であれば、特定の IP または IP セグメントの FLUSH PRIVILEGES を設定してみてください。
# 権限の更新

設定後、Navicat またはその他のツールを使用して接続をテストします。

注意: アクセスできない場合は、ファイアウォールのポート 3306 が開いているかどうか、およびサーバー プロバイダーのセキュリティ グループ内のポートが開いているかどうかを確認してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker に MySQL と Redis をインストールする方法
  • Docker で Tomcat、MySQL、Redis をインストールするための詳細な手順
  • DockerにMySQLをインストールする方法
  • Docker で MySQL をインストールし、リモート接続を実装するチュートリアル
  • DockerにMySQL 8.0をインストールする方法
  • Docker に MySQL と MariaDB をインストールする方法
  • Docker に共通コンポーネント (mysql、redis) をインストールする方法
  • DockerにMySQL8をインストールする方法
  • MySQL の Docker インストールと設定手順

<<:  JavaScript+html はフロントエンドページでランダム QR コード検証を実装します

>>:  MySQL 8.0.13 で日付を 0000-00-00 00:00:00 に設定すると発生する問題を解決する

推薦する

MySQL のインデックスとデータ テーブルを管理する方法

目次テーブルの競合を見つけて修正するインデックス統計の更新テーブルの競合を見つけて修正するデータ テ...

HTML ウェブページでのアンカー(名前付きアンカー)の使用の概要

以下の情報はインターネットから収集したものです1. アンカーは、Web ページ作成におけるハイパーリ...

...

Linux CentOS MySQL データベースのインストールと設定のチュートリアル

MySQLデータベースのインストールに関するメモ、みんなで共有a) MySQL ソースインストールパ...

Linux rpm および yum コマンドとその使用法の詳細な説明

RPM パッケージ管理インターネット ダウンロード パッケージのパッケージ化およびインストール ツー...

docker compose を使用して fastDFS ファイル サーバーを構築する方法

前回の記事では、docker compose を使用して FastDfs ファイル サーバーをインス...

インターネット接続なしでLinux Centos7にアプリケーションをインストールする方法の詳細な説明

1. 前の章では、プログラムを yum リポジトリに直接インストールできることを学びましたが、そのた...

MySQL SQL ステートメントが遅い場合の一般的な原因と解決策

1. インデックス不足または無効なインデックスによるクエリの遅延数千万件のデータを含むテーブルで、イ...

jsプロジェクトでの双方向データバインディングの簡単な実装方法

目次序文パブリッシュ・サブスクライバ・パターン結果電話要約する序文双方向データ バインディングとは、...

Mysql general_log をクリーンアップする方法の概要

方法1: グローバル general_log を 'OFF' に設定します。 テーブ...

MYSQL メタデータ ロック (MDL ロック) の理論とロック タイプ テスト

目次MYSQL メタデータ ロック (MDL ロック) 学習理論とロック タイプ テスト1. 予備的...

Vue がルート変更を監視するときに watch メソッドが複数回実行される理由と解決策

目次要件の説明:要件分析:ニーズの解決問題解決私はフロントエンドの新人ですが、バックエンドのバグの中...

MySQLデータベースのスケジュールバックアップを実装する方法

1. シェルスクリプトを作成する vim バックアップdb.sh 次のようにスクリプトを作成します。...

CSS3 を使用して楕円軌道の回転を実装するサンプルコード

最近、次のような効果を達成する必要がある最初は、CSS3D回転を使用して記述すると、次の効果しか得ら...

Docker で nginx のログレベルを調整する方法

目次はじめにNginx Dockerファイル新しい会議もっと参考文献はじめに最近、アプリケーションの...