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 の使い方を詳しく解説

推薦する

MySQL ジョイントテーブル更新デー​​タの詳細な例

1.MySQL UPDATE JOIN構文MySQL では、UPDATE ステートメントでJOIN句...

XHTML と CSS によるオブジェクト指向プログラミング

<br />XHTML と CSS がオブジェクト指向だったらよかったのに。 。太陽は北...

MySQL 8.0.23 のレプリケーション アーキテクチャにおけるスレーブ ノードの自動フェイルオーバー

私はしばらく MGR と連絡を取り合ってきました。MySQL 8.0.23 の登場により、MySQL...

一般的な nginx コマンドをシェル スクリプトに組み込む方法の詳細な説明

1. nginxシェルスクリプトを保存するフォルダを作成する /usr/local/タスク/ngin...

Dockerコンテナとローカルマシン間でファイルを転送する方法

ホストとコンテナ間でファイルを転送するには、コンテナの完全な ID が必要です。取得方法は以下の通り...

あなたをエキスパートに見せるための 13 個の JavaScript ワンライナー

目次1. ランダムなブール値( true / false )を取得する2. 指定された日付が営業日で...

フォーム要素の簡単な実装コードでは登録を例に挙げています

コード実装:コードをコピーコードは次のとおりです。 <!DOCTYPE html> &l...

Linuxの運用と保守、基本的なプロセス管理、リアルタイム監視と制御

目次1. バックグラウンドで実行されるジョブ2. 信号を使用してプロセスを制御する基本的なプロセス管...

スクラッチ宝くじの例を実現する JavaScript キャンバス

この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...

MySQLデータベースホスト127.0.0.1とlocalhostの違い

私の友人の多くは、127.0.0.1 と localhost の違いがわからず、問題に遭遇するかもし...

CSS3 オーバーフロープロパティの説明

1. オーバーフローOverflow はオーバーフロー(コンテナ)です。コンテンツがコンテナを越える...

Vue+echart で 2 列チャートを実現

この記事では、vue+echart を使って二重列チャートを実現するための具体的なコードを参考までに...

Vueは動的クエリルール生成コンポーネントを実装します

1. 動的クエリルール動的クエリルールは、おおよそ次の図のようになります。ユーザのカスタマイズに応じ...

http:// の代わりに // を使用する利点は何ですか (アダプティブ https)

//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...