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 のインストールと設定のチュートリアル

推薦する

CSS3を使用してフォントカラーグラデーションを実装する

Animation.css を使うと公式サイトのフォントがだんだんと変わっていくのが分かりました。c...

MySQL シリーズ 9 MySQL クエリ キャッシュとインデックス

目次チュートリアルシリーズ1. MySQL アーキテクチャクエリキャッシュキャッシュされないクエリ:...

MySQL ダーティ ページ フラッシュとテーブル スペースの縮小の原理の分析

mysql ダーティページWAL メカニズムにより、InnoDB はステートメントを更新するときに、...

Linuxで同一ファイルを見つける方法

コンピュータを使用すると、システム内に大量のゴミが生成されます。最も一般的なケースは、同じファイルが...

Alibaba Cloud ServerにMySQLデータベースをインストールする方法の詳細な説明

序文学習中に Zookeeper をインストールする必要があったため、仮想マシンに常に問題が発生した...

HTML テーブルタグチュートリアル (44): テーブルヘッダータグ

<br />ソース コード内で表の構造を明確に区別するために、HTML 言語では、表のヘ...

HTML を使用して IE8 および IE9 の互換表示モードを無効にするヒント

IE 8 以降では互換モードが追加され、これを有効にすると IE の下位バージョンでレンダリングされ...

JavaScript 状態コンテナ Redux の詳細な説明

目次1. Reduxを選ぶ理由2. Reduxデータフロー3つの原則4. Reduxソースコード分析...

HTML テーブル マークアップ チュートリアル (28): セルの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...

Windows10システムにMySQL 5.7.17をインストールする

オペレーティング システム win10 MySQL は、公式 Web サイトからダウンロードした 6...

Reactの3つの主要属性におけるpropsの使用の詳細な説明

目次クラスコンポーネント機能コンポーネントプロパティは読み取り専用ですコンポーネント間通信前回は状態...

HTML テーブル タグ チュートリアル (31): セルの幅と高さの属性 WIDTH、HEIGHT

デフォルトでは、セルの幅と高さはコンテンツに応じて自動的に調整されますが、セルの幅と高さを手動で設定...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...

Vueフォームで画像を処理する方法

質問: Vue にブログ投稿をアップロードするためのフォームがあり、タイトル、本文、説明、スニペット...