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

推薦する

MySQL 5.7 JSON 型の使用の詳細

JSON は、言語に依存しないテキスト形式を使用する軽量のデータ交換形式で、XML に似ていますが、...

JS 4つの楽しいハッカー背景効果コードを共有する

目次例1例2例3例4例1 <html> <ヘッド> <title>...

src 属性と href 属性の違い

src と href には違いがあり、混同される可能性があります。 src は現在の要素を置き換える...

Linux FTP匿名アップロードとダウンロードが自動的に開始される問題を解決する

勉強や仕事で FTP サーバーを頻繁に使用する場合は、起動時に自動的に起動するように設定できます。設...

MySQL COUNT関数の使用と最適化

目次COUNT 関数は何をするのですか? MyISAMの「魔法」シンプルなCOUNT最適化近似値を使...

ハッシュテーブルのJavaScript実装の詳細な説明

目次1. ハッシュテーブルの原理2. ハッシュテーブルの概念3. ハッシュ競合問題1. チェーンアド...

インターフェーステストプラットフォームを構築するためのDjango+Vue+Dockerの詳細な説明

1. 冒頭の2つの単語みなさんこんにちは。私の名前はLin Zonglinです。私はテストエンジニア...

docker での psql データベースのバックアップとリカバリの詳細な説明

1. DockerでのPostgresデータベースのバックアップ注文: docker exec it...

アイデアを使用して Springboot 初期化サーバーを構築する際の問題分析

問題の説明最近、Springbootプロジェクトを構築していたところ、会社のネットワークケーブルに接...

ハイパーリンクAタグを学ぶ

聞く: CSS を使用してハイパーリンクのスタイルを設定しましたが、ホバーしても機能しません。なぜこ...

JSを使用して画像を効果的に圧縮する方法

目次序文変換関係具体的な実装file2DataUrl(ファイル、コールバック) file2Image...

MySQL 5.7.25 のインストールと設定方法のグラフィックチュートリアル

MySQL インストール ファイルには、msi 形式と zip 形式の 2 種類があります。クリック...

AngularJSループオブジェクトプロパティで動的列を実装するアイデアの詳細な説明

動的な列を実現するための Angularjs ループ オブジェクト プロパティ利点: オブジェクトを...

Tomcat が非同期サーブレットを実装する方法の詳細な説明

序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...

CSS3 のフィルタプロパティの使用に関する詳細な説明

最近、イントラネットポータルを修正していたときに、フィルターを使用する必要がある箇所に遭遇しました。...