dockerシリーズMySQL 5.6ミラー使用&ローカルデータベースファイルのマウント
7865 ワード
元のMySQL 5.6ミラーをダウンロードします.
ミラーの表示:
MySQLミラーを起動するインスタンス
導入例:
MySQLの起動:
MySQLの使用:
MySQLパスワードの設定:
それからあなたのMySQLに対していくつかのインポートテーブルとデータなどの初期化操作をします.
自分のMySQLミラーを作成:
作成したミラーを使用してコンテナを作成すると、コンテナにはデータベースに関する操作がまったくなく、データベースは最初の空のライブラリであることがわかります.理由は次のリンクを参照してください.https://www.jianshu.com/p/530d00f97cbf
ローカルデータファイルのマウント
原因:mysqlミラー作成したコンテナでミラーを再作成すると、データベース内のデータが失われ、データや構成が失われないようにデータを固化する必要があります.
データベース・ファイルの準備
0、データベースに入り、データベースのリモートログイン権限を開く
1.コンテナの初期データベース(空の)ファイルをホストマシンにエクスポートする
2、ファイルの共有権限の変更
ローカル・データベース・ファイルの使用
1、新しいコンテナを再起動する時、データベースファイルをローカルファイルにマウントする:
2、コンテナに入り、検証免除モードでmysqlを起動し、権限の問題を防止する
docker pull mysql:5.6
ミラーの表示:
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.6 9e4a20b3bbbc 7 days ago 302MB
MySQLミラーを起動するインスタンス
docker run -itd --name my_sql_test mysql:5.6 /bin/bash
導入例:
[root@VM_1_202_centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e92cd8ad1356 mysql:5.6 "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 3306/tcp my_sql_test
[root@VM_1_202_centos ~]#
[root@VM_1_202_centos ~]# docker attach e92cd8ad1356
MySQLの起動:
root@e92cd8ad1356:/# service mysql status
[info] MySQL Community Server 5.6.48 is not running.
root@e92cd8ad1356:/# service mysql start
......
2020-05-28 07:38:54 144 [Note] InnoDB: 128 rollback segment(s) are active.
2020-05-28 07:38:54 144 [Note] InnoDB: Waiting for purge to start
2020-05-28 07:38:54 144 [Note] InnoDB: 5.6.48 started; log sequence number 1625977
2020-05-28 07:38:54 144 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.
2020-05-28 07:38:54 144 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.
2020-05-28 07:38:54 144 [Note] Binlog end
2020-05-28 07:38:54 144 [Note] InnoDB: FTS optimize thread exiting.
2020-05-28 07:38:54 144 [Note] InnoDB: Starting shutdown...
2020-05-28 07:38:56 144 [Note] InnoDB: Shutdown completed; log sequence number 1625987
No directory, logging in with HOME=/
..
[info] MySQL Community Server 5.6.48 is started.
MySQLの使用:
root@e92cd8ad1356:/# mysql -uroot -p
Enter password: 【 , 】
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.48 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
MySQLパスワードの設定:
set password for root@localhost = password('123456');
:123456 。
それからあなたのMySQLに対していくつかのインポートテーブルとデータなどの初期化操作をします.
自分のMySQLミラーを作成:
root@e92cd8ad1356:/# apt-get update
root@e92cd8ad1356:/# exit
[root@VM_1_202_centos ~]# docker commit -m=" " -a=" " e92cd8ad1356【 id】 image_name:tag
作成したミラーを使用してコンテナを作成すると、コンテナにはデータベースに関する操作がまったくなく、データベースは最初の空のライブラリであることがわかります.理由は次のリンクを参照してください.https://www.jianshu.com/p/530d00f97cbf
ローカルデータファイルのマウント
原因:mysqlミラー作成したコンテナでミラーを再作成すると、データベース内のデータが失われ、データや構成が失われないようにデータを固化する必要があります.
データベース・ファイルの準備
0、データベースに入り、データベースのリモートログイン権限を開く
use mysql;
update user set host = '%' where user = 'root'; # ,
FLUSH PRIVILEGES;
1.コンテナの初期データベース(空の)ファイルをホストマシンにエクスポートする
docker cp container_name:/var/lib/mysql /var/own/mysqldata
2、ファイルの共有権限の変更
chmod 777 -R /var/own/mysqldata
ローカル・データベース・ファイルの使用
1、新しいコンテナを再起動する時、データベースファイルをローカルファイルにマウントする:
docker run -itd -v /var/own/mysqldata:/var/lib/mysql --name mysqlnew mysql:5.6 /bin/bash
2、コンテナに入り、検証免除モードでmysqlを起動し、権限の問題を防止する
mysqld_safe --skip-grant-tables &