Ubuntu の Docker で mysql5.6 をインストールする方法

Ubuntu の Docker で mysql5.6 をインストールする方法

1. mysql5.6をインストールする

docker 実行 mysql:5.6

すべてのアイテムのダウンロードが完了し、インストールされるまでお待ちください

5.6: library/mysql からのプル
10a267c67f42: プル完了 
c2dcc7bb2a88: プルが完了しました 
17e7a0445698: プル完了 
9a61839a176f: プル完了 
d4657fda01d9: プル完了 
c5278a445e5d: プル完了 
197c0b76f238: プル完了 
f54c5432bac4: プル完了 
c26b15abee8a: プル完了 
80dbe6022c18: プル完了 
435678c09612: プル完了 
ダイジェスト: sha256:84372107beb1de34bd4673049ea61bc35f374a2b4f19fd5a3abd4d0a2a50b715
ステータス: mysql:5.6 の新しいイメージをダウンロードしました
エラー: データベースが初期化されておらず、パスワード オプションが指定されていません 
 MYSQL_ROOT_PASSWORD、MYSQL_ALLOW_EMPTY_PASSWORD、MYSQL_RANDOM_ROOT_PASSWORDのいずれかを指定する必要があります。

2. ローカルアカウントを使用して、docker で MySQL 構成ファイルをマップするフォルダーを作成します。

conf、data、logsの3つのフォルダを作成します。

私の設定は次のとおりです

val@val-linux:~/docker/mysql1$ パスワード
/home/val/docker/mysql1
val@val-linux:~/docker/mysql1$ ls
conf データログ

3. MySQLコンテナを作成する

ルートアカウントに切り替えて、作成したmysql1フォルダに入ります。

root@val-linux:/home/val# cd /home/val/docker/mysql1/
ルート@val-linux:/home/val/docker/mysql1#

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

docker run -p 33061:3306 --name mysql1 -v $PWD/conf:/etc/mysql -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.61
ローカルの33061ポートを使用してdockerの3306ポートをマップし、コンテナにmysql1という名前を付けます。 
ローカルの /home/val/docker/mysql1/conf を使用して、mysql conf をマップします。 
ローカルの /home/val/docker/mysql1/logs を使用して、mysql ログをマップします。 
ローカルの /home/val/docker/mysql1/data を使用して、mysql の mysql_data をマップします。

ルートパスワードを123456に設定する

4. MySQLコンテナを起動する

docker で mysql11 を起動します

5. mysql bashを入力

docker exec -it mysql1 env LANG=C.UTF-8 bash

その中で、env LANG=C.UTF-8 bashはdockerコマンドラインで中国語をサポートできるようにします。

6. 設定ファイルをコピーする

cp /usr/my.cnf /etc/mysql/my.cnf

7. mysqlにログインする

mysql -u ルート -p

パスワードを入力して入場

8. MySQLのエンコーディングを確認する

mysql> '%character%' のような変数を表示します。
+--------------------------+----------------------------+
| 変数名 | 値 |
+--------------------------+----------------------------+
| 文字セットクライアント | latin1 |
| 文字セット接続 | latin1 |
| 文字セットデータベース | latin1 |
| 文字セットファイルシステム | バイナリ |
| 文字セット結果 | latin1 |
| 文字セットサーバー | latin1 |
| 文字セットシステム | utf8 |
| 文字セットディレクトリ | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
セット内の行数は 8 行 (0.01 秒)

UTF-8エンコードではないことが判明

9. MySQLのエンコーディングを変更する

mysqlを終了し、dockerを終了します

mysql>終了
さよなら
root@8b83a30acbf8:/# 終了
出口
ルート@val-linux:/home/val/docker/mysql1#

my.cnf設定ファイルを変更する

root@val-linux:/home/val/docker/mysql1# vim conf/my.cnf

i を押すと編集モードに入ります

参加する

[クライアント] デフォルトの文字セット=utf8 
[mysql] デフォルトの文字セット=utf8 
[mysqld] 文字セットサーバー=utf8 1
esc :wq! 保存して終了

10. dockerでmysqlを再起動してコードを再度確認する

root@val-linux:/home/val/docker/mysql1# docker stop mysql1
マイSQL1
root@val-linux:/home/val/docker/mysql1# docker start mysql1
マイSQL1
root@val-linux:/home/val/docker/mysql1# docker exec -it mysql1 env LANG=C.UTF-8 bash
ルート@8b83a30acbf8:/#mysql -u ルート -p
パスワードを入力してください: 
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは1です
サーバーバージョン: 5.6.36 MySQL コミュニティサーバー (GPL)
Copyright (c) 2000, 2017, Oracle およびその関連会社。無断複写・転載を禁じます。
OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
mysql> '%character%' のような変数を表示します。
+--------------------------+----------------------------+
| 変数名 | 値 |
+--------------------------+----------------------------+
| 文字セットクライアント | utf8 |
| 文字セット接続 | utf8 |
| 文字セットデータベース | latin1 |
| 文字セットファイルシステム | バイナリ |
| 文字セット結果 | utf8 |
| 文字セットサーバー | latin1 |
| 文字セットシステム | utf8 |
| 文字セットディレクトリ | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
セット内の行数は 8 です (0.00 秒)

11. データベースを作成する

mysql> データベース rise を作成します。
クエリは正常、1 行が影響を受けました (0.00 秒) 
mysql> rise を使用します。
データベースが変更されました

12. ユーザーを作成して承認する

mysql> rise.* のすべての権限を '123456' で識別される val@'%' に付与します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)
mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

% は任意の IP (IP は指定可能)、val はユーザー名、123456 はパスワードです。

上記は、Ubuntu の Docker に mysql5.6 をインストールするために私が紹介した方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。

以下もご興味があるかもしれません:
  • Docker に MySQL インスタンスをインストールして実行する
  • DockerにMySQL8をインストールする方法
  • DockerにMySQL 8.0をインストールする方法
  • Dockerにmysqlイメージをインストールして使用する
  • MySQL (8 および 5.7) の Docker インストール
  • Dockerにmysqlをインストールする詳細な説明
  • Docker での MySQL 8.0.20 のインストールと設定のチュートリアル
  • Docker に共通コンポーネント (mysql、redis) をインストールする方法
  • Docker に MySQL と MariaDB をインストールする方法
  • Linux で Docker を使用して MySQL をインストールする手順

<<:  alpineをベースにdockerfileで作成したtomcatイメージの実装

>>:  キャンバス操作プラグイン fabric.js の使い方を詳しく解説

推薦する

Matlab による JavaScript プログラミング、重心アルゴリズムによる位置決め学習

目次Matlab セントロイドアルゴリズムMatlab はクローズドな商用ソフトウェアであり、米国政...

Node.js を使用してパスワード ジェネレータを作成するための完全な手順

目次1. 準備2. コマンドラインの記述2.1 バージョンと説明を追加する2.2 パスワードの長さを...

データ URI スキームを使用して Web ページに画像を埋め込む方法の紹介

データ URI スキームを使用すると、HTML、CSS、Javascript などで使用できるインラ...

Bツリーの削除プロセスの紹介

前回の記事 https://www.jb51.net/article/154157.htm では、B...

JavaScript フレームワーク デザイン パターンの詳細な説明

目次動画最優秀選手ムヴヴムVueのソーススパ mpa要素を作成するクラス要約する動画 Model(模...

WeChatアプレットの下部にあるタブバーがコンテンツをブロックする問題に対処する簡単な方法

WeChatアプレットでタブバーを設定すると、重要なコンテンツがブロックされ、iPhoneXなどの異...

MYSQL 左結合の最適化 (10 秒から 20 ミリ秒)

目次【機能背景】 [生のSQL] 【独自SQL解析】 【分析手順】 [最適化されたSQL] 【最適化...

Linux CentOS 6.5 ifconfig が IP を照会できない問題の解決方法

最近、何人かの友人から、仮想マシンに CentOS をインストールした後、ifconfig コマンド...

時間範囲効果を実現するためのJavaScript

この記事では、時間範囲効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...

CentOS7にNginxを素早くインストールする方法を教えます

目次1. 概要2. Nginxインストールパッケージをダウンロードする3. 依存パッケージをインスト...

MySQLインデックスの詳細

1. インデックスの原則インデックスは、列内の特定の値を持つ行をすばやく見つけるために使用されます。...

MySQL でデータを削除してもテーブル ファイルのサイズが変更されないのはなぜですか?

長期間稼働しているデータベースの場合、テーブルがストレージ領域を占有しすぎるという問題がよく発生しま...

アクセス速度を上げるためにウェブサイトを最適化する方法の更新

最近、同社はitpubを皮切りに、コーポレートウェブサイト傘下の全サイトの評価を開始した。そのために...

Windows での MySQL 8.0.15 の詳細なインストールと使用のチュートリアル

この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...

テーブルを開く際のMySQLスレッドの問題の解決方法

問題の説明最近、MySQL5.6.21サーバーがありました。アプリケーションがリリースされた後、同時...