MySQL の Docker インストールと設定手順

MySQL の Docker インストールと設定手順

序文

MySQL は、世界で最も人気のあるオープンソース データベースです。そこで、この記事では、Docker に MySQL をインストールして構成する方法を説明します。

ここに画像の説明を挿入

環境

  • セントOS7
  • ドッカー 20.10.10

インストール

画像をプルする

docker プル mysql

バージョンを指定する場合は、mysql の後に: +版本號を追加します。例:

docker pull mysql:8.0.16

最新バージョンのMySQLをここから直接取得する

ここに画像の説明を挿入

ミラーを見る

Docker イメージ

ここに画像の説明を挿入

MySQLコンテナを作成して起動する

データディレクトリと設定ファイルを作成する

事前にホスト上に MySQL 構成ファイルとデータ ディレクトリ用のディレクトリを作成し、外部構成とデータをマウントするときに起動の失敗を回避するための権限を付与します。

ここに画像の説明を挿入

MySQLの設定ファイルとデータディレクトリを配置するためのディレクトリを作成します。

mkdir -p /mydata/mysql/

フォルダの権限を設定する

chmod -R 755 /mydata/mysql

最初の数字はファイル所有者の権限を示し、2 番目の数字はファイル所有者と同じユーザー グループに属する他のユーザーの権限を示し、3 番目の数字は他のユーザー グループの権限を示します。
権限には、読み取り (r=4)、書き込み (w=2)、実行 (x=1) の 3 種類があります。
要約すると、読み取りおよび実行可能 (rx=5=4+1)、読み取りおよび書き込み可能 (rw=6=4+2)、読み取り、書き込み、および実行可能 (rwx=7=4+2+1) があります。 つまり、chmod
755 はユーザーの権限を次のように設定します:
1. ファイル所有者は読み取り、書き込み、実行が可能です --7
2. ファイル所有者と同じユーザーグループに属する他のユーザーは、読み取りと実行が可能です --5
3. 他のユーザーグループは読み取りと実行が可能

my.cnf 設定ファイルを作成する

mkdir -p /mydata/mysql/conf
/mydata/mysql/conf/my.cnf をタッチします。

my.cnf設定ファイルを編集する

vi /mydata/mysql/conf/my.cnf

次の設定内容を追加します

[クライアント]
デフォルトの文字セット=utf8
[mysql]
デフォルトの文字セット=utf8
[mysqld]
init_connect = '照合接続を utf8_unicode_ci に設定'
init_connect='名前をutf8に設定'
文字セットサーバー=utf8
照合サーバー=utf8_unicode_ci
文字セットクライアントハンドシェイクをスキップする
名前解決をスキップ
secure_file_priv = /var/lib/mysql

思い出させる

私の設定を使用するかどうかに関係なく、MySQL の新しいバージョンをインストールする場合は、必ず次の文をコピーしてください。

secure_file_priv = /var/lib/mysql

MySQL コンテナを初めて作成して起動すると、MySQL は/var/lib/mysqlフォルダにアクセスします。権限がない場合、起動に失敗します。docker ps を使用した後、MySQL コンテナが実行中であることは確認できません。/var/lib/mysql ディレクトリに正常にアクセスして読み書きできるように、 secure_file_privの値を/var/lib/mysqlに設定する必要があります。

--secure-file-priv のディレクトリにアクセスできませんでした。ディレクトリが存在し、MySQL サーバーからアクセスできることを確認してください。指定された値: /var/lib/mysql-files
翻訳: --secure-file-priv を使用してディレクトリにアクセスできません。ディレクトリが存在し、MySQL サーバーからアクセスできることを確認してください。指定された値: /var/lib/mysql ファイル

  • secure_file_priv の値は null です。これは、mysqld がインポートまたはエクスポートを制限されていることを意味します。
  • secure_file_priv の値は /tmp/ です。つまり、mysqld のインポートとエクスポートは /tmp/ ディレクトリ内でのみ実行できます。
  • secure_file_privの値は空で、mysqldのインポートとエクスポートに制限がないことを示しています。

MySQLコンテナコマンドを作成して起動する

sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=ルート \
-d mysql:最新

パラメータの説明:

  • -p 3306:3306 : コンテナのポート 3306 をホストのポート 3306 にマップします
  • --name mysql : コンテナ名をmysqlとして定義します
  • -v /mydata/mysql/log:/var/log/mysql : MySQLログフォルダをホストにマウントします
  • -v /mydata/mysql/data:/var/lib/mysql : MySQLデータフォルダをホストにマウントします
  • -v /mydata/mysql/conf:/etc/mysql : MySQL設定フォルダをホストにマウントします
  • -e MYSQL_ROOT_PASSWORD=root : ルートユーザーのパスワードを初期化する
  • -d mysql:latest : コンテナを構築するために最新のMySQLバージョンを選択します

ここに画像の説明を挿入

実行中のコンテナを表示する

ドッカーps

ここに画像の説明を挿入

設定用のMySQLコンテナを入力します

コマンドを入力

docker exec -it コンテナID ./bin/bash

ここに画像の説明を挿入

MySQLへの接続

ここでは、 MySQLのデフォルトのパスワードをrootに設定しているので、 pの後のパスワードはrootです。

mysql -uroot -proot

ここに画像の説明を挿入

MySQLパスワードの変更

mysqlライブラリの使用

MySQLを使用する

アクセスホストやパスワードなどを変更し、すべてのホストからアクセス可能に設定する

 ALTER USER 'root'@'%' は 'root' によって mysql_native_password で識別されます。

注意:mysql_native_password,mysql8.x版本必須使用這種模式,否則navicate無法正確連接

接続をテストする

テストする前にファイアウォールがオフになっていることを確認してください。クラウドサーバーの場合は、3306ルールを開くことを忘れないでください。

Linuxでファイアウォールを無効にする

# systemctl stop firewalld を閉じる
# ファイアウォールの起動を無効にする systemctl enable firewalld

クラウドサービスがポート3306を開放

ここに画像の説明を挿入

Navicatを使用して接続をテストする

ここに画像の説明を挿入

SQLyogを使用して接続をテストする

ここに画像の説明を挿入

Docker のインストールと MySQL の設定のチュートリアルは終了です。

上記は、Docker で MySQL をインストールして構成するための実装手順の詳細です。Docker で MySQL をインストールする方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

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

<<:  HTMLページが3秒後に自動的にジャンプする3つの一般的な方法

>>:  MySQL UPDATE ステートメントの「典型的な」落とし穴

推薦する

MyCat を使用して Linux で MySQL マスター/スレーブの読み取り/書き込み分離を実装する方法

目次Linux - MyCat を使用して MySQL マスター スレーブの読み取り書き込み分離を実...

jsはタイトルと説明のキーワードを検出し、見つかった場合は置換するか他のページにジャンプします。

キーワード 一般タイトルには、クラック、キー、シリアル番号、キージェネレータなどの単語を含めることは...

Typescript+React でモバイルと PC でシンプルなドラッグ アンド ドロップ効果を実現

この記事では、モバイルとPCで簡単なドラッグアンドドロップ効果を実現するためのTypescript ...

mysqldump でデータベースをバックアップするときに特定のライブラリを除外する例

例: mysqldump –all-databases を使用すると、すべてのライブラリがエクスポー...

URL 内の特殊記号の意味を知っていますか?

1.# # は Web ページ内の場所を表します。右側の文字はその位置の識別子です。たとえば、ht...

Nginx で Http、Https、WS、WSS を設定する方法

前面に書かれた今日のインターネット分野では、Nginx は最も広く使用されているプロキシ サーバーの...

JavaScriptはフォームデータの非同期取得を実装します

この記事では、フォームデータの非同期取得を実現するためのJavaScriptの具体的なコードを例とし...

awk でのループの使用

同じコマンドを複数回実行するさまざまな種類のループについて学習しましょう。 awk スクリプトには、...

CSSを使用して炎の効果を作成する方法

本文は以下から始まります。 123WORDPRESS.COM ダウンロード:純粋な CSS3 で超リ...

JavaScript コンソールのその他の機能

目次概要コンソールログコンソール.infoコンソール.警告コンソールエラーコンソールテーブルコンソー...

ウェブのさまざまなフロントエンド印刷方法: CSS はウェブページの印刷スタイルを制御します

CSS は Web ページの印刷スタイルを制御します。 CSS を使用して印刷スタイルを制御します。...

MySQL マスタースレーブレプリケーションの役割と動作原理の詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスタースレーブレプリケーションは、スレーブデー...

コピー&ペーストはパッケージングの敵です

OO、デザイン パターン、および多くのオブジェクト指向の原則について話す前に、まず 1 つのことを習...

Javascript Echarts 空気質マップ効果の詳細な説明

まず、空気質データと地図データを組み合わせる必要があります。マップデータには属性名があるさまざまな都...