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 エントリポイントファイルの詳細な説明

Dockerfile を作成するときは、コンテナが起動する前に初期化構成やカスタム構成を実行するため...

vue-cli でレスポンシブ レイアウトを実装する方法

フロントエンド開発を行うと、PCとモバイル端末の適応に必然的に直面することになります。このような問題...

JavaScript キャンバスはマウスの動きに合わせてボールを動かすことを実装します

この記事の例では、マウスに従ってボールを動かすjsの具体的なコードを参考までに共有しています。具体的...

CentOS 6.x のインストール時に発生するエラー「ディスク sda に BIOS RAID メタデータが含まれています」の解決方法

今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...

Vueでルーティング権限を動的に設定する主なアイデア

以前、インターネット上で動的ルーティング設定をいくつか見たことがありましたが、現在のプロジェクトとは...

Centos7 に Nginx 統合 Lua サンプル コードをインストール

序文私が使用しているパソコンはMacで、OSはmacOS Mojaveです。コンピュータに仮想マシン...

MySQLクエリの基本的なクエリ操作の学習

序文MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーショ...

Vue のフィルターの適用シナリオの詳細な説明

filterは通常、特定の値をフィルターするために使用されます。たとえば、フィールドが空だが、フロン...

HTTPプロトコルにおけるステータスコードの意味

暫定的な応答を示し、要求者に操作の続行を要求するステータス コード。コードの説明100 (続行) リ...

NavicatがMySQLに接続すると、10060、1045エラーとmy.iniの場所が報告されます。

Navicat は、データベースに接続するときにエラー 10060 および 1045 を報告します...

Navicat は CSV データを MySQL にインポートします

この記事では、Navicatを使用してcsvデータをmysqlにインポートする方法を参考までに紹介し...

CentOS 7.x に ZSH ターミナルをインストールする方法

1. 基本コンポーネントをインストールするまず、 yumコマンドを実行して、コードpullために必要...

Mac 向け MySQL のインストールと設定のチュートリアル

この記事では、MacでのMySQLインストールチュートリアルを参考までに紹介します。具体的な内容は次...

入力のsize属性とmaxlength属性の違い

最近、プロジェクトで input size 属性と maxlength 属性を使用しました。以前は、...

ウェブページ制作TDは隠し表示もオーバーフロー可能

おそらく、この記事にこのようなタイトルを付けると、誰かがこう尋ねるでしょう。「なぜまだテーブルに注目...