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

推薦する

言及すべき8つのMySQLの落とし穴を共有する

MySQL はインストールが簡単で、高速で、豊富な機能を備えています。これはオープンソース運動のベン...

JQuery を放棄すべきでしょうか?

目次序文jQuery 以外の場合は何を使うのでしょうか? DOMとイベントAJAX リクエスト要約す...

LinuxシステムにおけるMySQLの一般的な操作コマンド

仕える: # chkconfig --list すべてのシステムサービスを一覧表示する# chkco...

Webpack-cliが正常にインストールされたら、詳細についてはwebpack -vエラーケースを確認してください。

目次質問1. webpack webpack-cliをインストールする2. webpackのバージョ...

JavaScript スクリプトが実行されるタイミングの詳細な説明

JavaScript スクリプトは HTML 内のどこにでも埋め込むことができますが、いつ呼び出され...

HTML+CSS で div タグの右上隅に削除アイコンを追加するサンプルコード

1. 要件の説明Divタグの右上隅に削除アイコンを表示します2. 実装html、CSS 3. 参照コ...

Ubuntu 18.04 で apt ソースを Alibaba Cloud ソースに変更する詳細なプロセス

目次序文: Ubuntu 18.04 は apt ソースを Alibaba Cloud ソースに変更...

Docker に Zookeeper を素早くインストールする方法の詳細なチュートリアル

Docker で Zookeeper を素早くインストール会社を変わってから長らくZookeeper...

React Hook の使用例 (一般的なフック 6 つ)

1. useState: 関数コンポーネントに状態を持たせる使用例: // カウンター impor...

Docker Composeのデプロイと基本的な使い方の詳しい説明

1. Docker Composeの概要Compose は、マルチコンテナ Docker アプリケー...

docker-compose を使用して MySQL を実行する方法

ディレクトリ構造 。 │ .env │ docker-compose.yml │ └─mysql ├...

JS でオブジェクトを作成する 4 つの方法

目次1. リテラル値でオブジェクトを作成する2. 新しいキャラクターを使ってオブジェクトを作成する3...

JavaScript デザインパターンの学習 アダプタパターン

目次概要コードの実装要約する概要アダプタ パターンは、デザイン パターンの動作パターンのパターンです...

MySQLはランダムに一定数のレコードを抽出します

以前は、このような使用シナリオを処理するために rand() で直接 order していましたが、効...

JavaScript における async と await の使い方とメソッド

JS の async 関数と await キーワード 関数ヘルワールド() { 「こんにちは!美しい...