DockerコンテナでのMySQLデータのインポート/エクスポートの詳細な説明

DockerコンテナでのMySQLデータのインポート/エクスポートの詳細な説明

序文

MySQL データのインポートとエクスポートは mysqldump コマンドで解決できることは誰もが知っていますが、MySQL が docker 環境で実行されている場合はどうなるでしょうか?

解決策は、mysqldump コマンドを使用することですが、それを実行するには docker の mysql コンテナに入り、エクスポートされたデータ ファイルをホスト マシンのディスクにコピーできるようにボリュームを構成する必要があります。

したがって、操作手順は次のように分けられます。

  • Dockerボリュームの設定
  • dockerのmysqlコンテナに入り、データファイルをエクスポートします

データのインポートに関しては、説明するのが簡単すぎます。

まず、mysqldump コマンドの一般的なオプションを見てみましょう。

  • --all-databases, -A: すべてのデータベースをバックアップする
  • --databases, -B: 複数のデータベースをバックアップするために使用されます。このオプションが存在しない場合、mysqldump は最初の名前パラメータをデータベース名として使用し、残りをテーブル名として使用します。このオプションを使用すると、mysqldum は各名前をデータベース名として扱います。
  • --force, -f: SQLエラーが見つかった場合でもバックアップを続行します
  • --host=host_name, -h host_name: バックアップホスト名、デフォルトは localhost
  • --no-data, -d: テーブル構造のみをエクスポートする
  • --password[=パスワード], -p[パスワード]: パスワード
  • --port=port_num, -P port_num: TCP/IP接続のポート番号を指定します
  • --quick, -q: クイックエクスポート
  • --tables: --databases または -B オプションを上書きし、次のパラメータはテーブル名として扱われます
  • --user=user_name, -u user_name: ユーザー名
  • --xml, -X: xml ファイルとしてエクスポート

ボリュームの設定

まず、docker-compose を使用して docker コンテナを配置します。完全な構成コードについては、このプロジェクトを参照してください: liumapp/rabbitmq-mysql-redis-in-docker

このプロジェクトの docker-compose.yml 構成ファイル内の次の行に注意してください。

 マイスク:
 コンテナ名: mysql
 イメージ:mysql:5.5.60
 再起動: 常に
 ボリューム:
  - ./mysql/データ:/var/lib/mysql
  - ./mysql/conf/mysqld.conf:/etc/mysql/mysql.conf.d/mysqld.cnf

mysql コンテナ用に構成したボリュームは、プロジェクトの mysql/data ディレクトリを docker コンテナ内の /var/lib/mysql にマップするためのものです。

したがって、docker の mysql コンテナに入り、エクスポート コマンドを実行すると、/var/lib/mysql/ ディレクトリ内のデータをエクスポートするだけで、ホスト マシンの ./mysql/data/ ディレクトリ内に対応するデータ ファイルを見つけることができます。

データをエクスポートするコンテナを入力します

まず実行

ドッカーps

mysqlコンテナの名前を見つける

次に実行する

docker exec -it mysql /bin/bash

コンテナに入る

コマンドを実行

MySQLはどこにある?

mysqlの実行パスを見つけます。/usr/local/mysql/binです。cdで入力します。

cd /usr/local/mysql/bin

ここでのパスは Docker コンテナ内のパスを指し、ホスト パスとは関係がないことに注意してください。

エクスポートコマンドを実行する

mysqldump -u ユーザー名 -p データベース名> ファイル .sql を保存

パスワードを入力すると、基本的にエクスポートは成功します。ファイルを保存するパスはボリュームの下、つまり/var/lib/mysql/に設定する必要があることに注意してください。

次に入力してください

出口

コンテナを終了してホストマシンに戻ると、エクスポートされたデータファイルが見つかります。

csv 形式でエクスポートする場合は、mysqldump コマンドを次のように変更します。

mysql -u ユーザー名 --password=パスワード --database=データベース名 --execute='SELECT `FIELD`, `FIELD` FROM `TABLE` LIMIT 0, 10000 ' -X > ファイル.sql を保存します

あなたはできる

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴
  • Docker で MySQL データベースを使用する方法の詳細説明 (LAN でのアクセス)
  • docker で mysql に接続できない場合の解決策
  • DockerにMySQL 8.0をインストールする方法
  • Docker に MySQL インスタンスをインストールして実行する
  • dockerログインmysqlエラー問題の実践記録

<<:  jQueryはシャトルボックス効果を実現します

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

推薦する

CSS クロスブラウザ スタイルのバグのデバッグについて

まず最初に、適切なブラウザを選択します。私が Chrome を選択したのは、その強力なデバッグ ツー...

ファイアウォールルールの設定とコマンド(ホワイトリスト設定)の詳しい説明

1. ファイアウォールルールを設定する例1: ポート8080を外部に公開する ファイアウォールコマン...

URL 書き換えモジュール 2.1 URL 書き換えモジュールのルール記述

目次前提条件テストページの設定書き換えルールの作成命名規則モードの定義アクションの定義設定ファイル内...

JavaScript を使用してカルーセル効果を実装する

この記事では、カルーセルマップの特殊効果を実現するためのJavaScriptの具体的なコードを参考ま...

Centos7 Zabbix3.4 メールアラーム設定(メール内容がxx.bin添付ファイルになる問題の解決)

目次1. 監視Linuxホストを追加する2. メールボックスを設定する1. 監視Linuxホストを追...

Vue 開発ツリー構造コンポーネント (コンポーネント再帰)

この記事では、Vue開発ツリー構造コンポーネントの具体的なコードを例として紹介します。具体的な内容は...

未来志向の総合的なウェブデザイン:プログレッシブエンハンスメント

<br />原文: プログレッシブエンハンスメントを理解するアーロン・ガスタフソン翻訳:...

MySQL で not in を使用して null 値を含める問題を解決する

知らせ! ! ! uid が (a,b,c,null) に含まれないユーザーから * を選択します。...

面接で聞かれる可能性のあるCSSに関する質問

この記事は、100 回書かれ、質問された CSS の質問を記念するためのものです。聞く: CSS セ...

mysql data_dirの変更によって発生するエラー問題を解決する

今日は、新しく購入した Alibaba Cloud ECS 環境 (Ubuntu 16.04 LTS...

Vueの計算プロパティの詳細な説明

1. 計算属性とは何ですか? 簡単に言えば、計算された結果が属性に保存されるもので、キャッシュとして...

Linux での JDK のインストール (OpenJDK のアンインストールを含む) の概要

1. openjdkを表示する rpm -qa|grep jdk 2. openjdk を削除します...

HTML チュートリアル、簡単に学べる HTML 言語 (2)

*******************HTML言語入門(パート2)*****************...

CentOS6.7 mysql5.6.33 でデータファイルの場所を変更する方法

問題: MySQL がデータ ファイルを保存するパーティションの容量が小さく、現在いっぱいになってい...