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 に設定すると発生する問題を解決する

推薦する

Docker swarm の簡単なチュートリアル

3つの仮想マシン132、133、134を群がらせる1. クラスターを初期化し、自分自身をクラスターに...

TypeScript デコレータ定義

目次1. コンセプト1.1 定義1.2 デコレータファクトリー1.3 デコレータの組み合わせ1.4 ...

docker ベースで Prometheus+Grafana を構築する手順の詳細説明

1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...

...

docker を使用して Redis マスター/スレーブを構築する方法

1. Docker環境を構築する1. Dockerfileを作成する Centos:latest か...

Docker プライマリ ネットワーク ポート マッピング構成

ポートマッピングDocker コンテナを起動する前にポート マッピングを行わないと、コンテナ外部のネ...

WeChatアプレットが9マスグリッド効果を実現

この記事では、WeChatアプレットの9マスグリッド効果を実現するための具体的なコードを参考までに紹...

Linuxでスクリーンショットを撮って編集するための最高のツール

メインのオペレーティング システムを Windows から Ubuntu に切り替えたとき、最初に考...

Vue+nodeはオーディオ録音・再生機能を実現

結果: コードロジックを実装するのが主な部分であり、具体的なページ構造を一つ一つ紹介することはありま...

SQL Server データベース エラー 5123 の解決方法

なぜなら、SQL Server 2005 に基づくデータベース チュートリアルがあり、そこで使用され...

マージンのマージの問題を解決する

1. 兄弟要素の余白を結合する効果は次のようになります: (2 つの間の間隔は 150 ピクセルでは...

Dockerコンテナ間のホスト間通信 - オーバーレイベースの実装方法

オーバーレイネットワーク分析組み込みのホスト間ネットワーク通信は、常に Docker の待望の機能で...

MySQL 8.0.16 winx64 のインストールと設定方法のグラフィックチュートリアル

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

JavaScript と CSS を最適化してウェブサイトのパフォーマンスを向上させる

<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...

Linuxでのaliasコマンドの使い方の詳細な説明

1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...