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ストアドプロシージャを変更する詳細な手順

序文実際の開発では、ビジネス要件が変更されることが多いため、ストアド プロシージャの特性を変更するこ...

MySQL/MariaDB ルートパスワードリセットチュートリアル

序文パスワードを忘れることは、よく遭遇する問題です。MySQL または MariaDB データベース...

koa2 サービスに SSL を設定する方法

I. はじめに1: SSL証明書私のドメイン名は Tencent Cloud にあります。第 3 レ...

Vueはvueメタ情報を使用して各ページのタイトルとメタ情報を設定します。

title: vue は vue-meta-info を使用して各ページのタイトルとメタ情報を設定...

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...

MySQL遅延スレーブを導入するメリットのまとめ

序文MySQL のマスター/スレーブ レプリケーション関係は、厳密には「同期」または「マスター/スレ...

MySQL 5.7.20\5.7.21 無料インストール版のインストールと設定のチュートリアル

参考までに、mysql 5.7.20 / 5.7.21 をダウンロード、インストール、構成します。具...

Virtualbox で Ubuntu 16.04 の起動時に共有ディレクトリを自動的にマウントする最良の方法

仮想マシンを使用する人は通常、操作と使用を容易にするために仮想マシン用の共有ディレクトリを設定します...

MySQL ビューの原則分析

目次更新可能なビュービューのパフォーマンスビューの制限ビューは MySQL 5.0 以降で導入されま...

mysql-8.0.16 winx64 最新インストール チュートリアル (画像とテキスト付き)

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

Docker での RocketMQ の詳細なインストールと使用

RocketMQ イメージを検索するには、Docker の hub.docker.com で検索する...

条件付きコメント形式の書き方とサンプルコード

フロントエンドエンジニアとして、IE は私たちにとって馴染み深いものであるはずです。設計案を実装する...

CocosCreator の新しいリソース管理システムの分析

目次1. 資源と建設1.1 クリエイターリソースファイルの基本1.2 リソースの構築2. アセットバ...

独自の YUM リポジトリを作成する手順

簡単に言うと、ウェアハウスとして使用される仮想マシンの IP は 192.168.149.129 で...

Vue ルーティング遅延読み込みの詳細

目次1. ルートの遅延読み込みとは何ですか? 2. ルートの遅延読み込みの使用1. ルートの遅延読み...