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 ステートメントの「典型的な」落とし穴

推薦する

Docker Compose マルチコンテナデプロイメントの実装

目次1. WordPressの導入1. 環境を整える(II) イメージを実行するDocker の作成...

トピックページデザインの 5 つの基本スキル (Alibaba UED Shanmu)

このトピックは、2012 年後半の社内共有です。まだ記事にはなっていませんが、春節が近づいているので...

Vueプロジェクトでlessを使用するためのヒント

目次序文1. スタイルの浸透1. パターン浸透とは何ですか? 2. 使い方は? 2. ミキシング1....

Linuxコマンドに基づいてフォルダー内の特定のファイルパスを抽出します

最近では、特定のフォルダ内の特定のファイルを自動的に検索する必要があり、ファイルパスとファイル名を別...

ふるい抽選を実施するミニプログラム

この記事の例では、ふるい抽選を実装するためのミニプログラムの具体的なコードを参考までに共有しています...

HTML ページをスクロールするときに一部のコンテンツを固定位置に固定する方法

この記事では主に、レイアウトに役立つ、HTML ページ内の一部のコンテンツを固定してスクロール時にス...

HTML 特殊文字エンコーディング CSS3 コンテンツに関する簡単な説明:「私は特別なシンボルです」

プロジェクトで使用されている特殊文字とアイコンHTMLコードXML/HTML コードコンテンツをクリ...

React useEffect の理解と使用

目次繰り返しレンダリングループを避ける副作用の除去についてReact16.8 の新しい useEff...

トップ 10 Js 画像処理ライブラリ

目次導入1. 異食症2. レナ3. コンプレッサー4. ファブリック5. ぼかす6. 画像を結合する...

CSSを使用してファイルアップロードパターンを描画する

以下に示すように、あなたならどのようにそれを達成しますか: 通常、フォントアイコンを使用して中央にプ...

DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する

Jenkins をインストールした後、プラグインの初期ダウンロードが常に失敗し、インストールが失敗し...

Vue echarts は棒グラフの動的な表示を実現します

この記事では、棒グラフの動的な表示を実現するためのvue echartsの具体的なコードを参考までに...

MySQL最新バージョン8.0.17解凍版インストールチュートリアル

個人的にはインストール版よりも解凍版の方がインストールしやすいと思います。早速、解凍版のインストール...

Vueのインストールと使用

目次1. Vueのインストール方法1: CDNの導入方法2: 直接ダウンロードしてインポートする方法...

Reactの基本のまとめ

目次序文始めるReactライフサイクルリアクトファイバーリアクトセットステートReactイベントメカ...