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

推薦する

HTML で自動ページジャンプを実現する 5 つの方法

前回の記事では、HTML ページが 3 秒後に自動的にジャンプする一般的な 3 つの方法を紹介しまし...

vue-nuxt ログイン認証の実装

目次導入リンク始めるコードを読み進めてくださいプロキシ設定傍受を要求する異なるプレフィックスを持つイ...

MySQL5.7.21 解凍版インストール詳細チュートリアル図

私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...

WangEditor リッチ テキスト コンポーネントを Angular でカプセル化する方法

リッチ テキスト コンポーネントは、Web プログラムで、特にブログやフォーラムなどの Web サイ...

任意の長さの配列を作成または埋めるための JS のヒントの要約

目次序文直接充填方式for ループの push() メソッド配列コンストラクタメソッド配列コンストラ...

React で setInterval 関数を使用する例

この記事はWindows 10のシステム環境をベースに、Reactの学習と使用について説明しています...

Web デザイン: Web ミュージックの実装テクニック

<br />Web ページに音楽を挿入する場合、サフィックスに応じて異なるコードを記述す...

行の高さと垂直方向の配置に関する包括的な理解

前の単語line-height、font-size、vertical-align は、インライン要素...

HTML でカスタム画像を使用してチェックボックスを表示する方法

チェックボックスの使用を実装するために画像を使用する必要がある場合は、それを使用して実装できます。実...

MySQL の主キーがクエリを高速化するために数値を使用するか UUID を使用するかについての簡単な分析

実際の開発では、MySQL の主キーは重複できず、主キーが自動的にインクリメントされることがあります...

MySQL で最大接続数を設定するためのヒントのまとめ

方法1: コマンドラインの変更次の図に示すように、MySQL コンソールを開いて「set GLOBA...

Docker を使用した Redis マスタースレーブレプリケーションの実践の詳細説明

目次1. 背景2. 操作手順3. Dockerをインストールする4. 主なサービス構成5. サービス...

XHTML の一般的なタグ

XHTML タグとは何ですか? XHTML タグ要素は、XHTML ドキュメントの基本的なコンポーネ...

CSSフロートの特性についての簡単な説明

この記事では、CSS フロートの特徴を紹介します。皆さんと共有し、自分用のメモとして残したいと思いま...

Vueはドラッグ可能なツリー構造図を実装します

目次Vue 再帰コンポーネントドラッグイベント最近、Vue を使用して、ドラッグ可能なツリー構造図と...