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

推薦する

HTML タグ tbody の使い方と説明

tbody 要素は、thead 要素および tfoot 要素と組み合わせて使用​​する必要があります...

HTML要素にフォーカスを設定する方法

コードをコピーコードは次のとおりです。 <本文<フォームアクション="&quo...

mysqlサーバーは--skip-grant-tablesオプションで実行されています

MySQLサーバーは--skip-grant-tablesオプションで実行されているため、このステー...

Vueはドラッグアンドドロップを使用して構造ツリーを作成します

この記事の例では、ドラッグアンドドロップを使用して構造ツリーを作成するVueの具体的なコードを共有し...

Vueモバイル端末は左スライド編集と削除の全プロセスを実現します

序文プロジェクトのニーズに応じて、Vue-touch を使用して、vue モバイル端末の左スワイプ編...

Dockerはコンテナ外のコンテナ内でコマンドを実行します

コンテナ内でコマンドを実行したいが、コンテナに入りたくない場合があります。ではどうすればいいでしょう...

HTML に埋め込まれた MP4 形式のビデオが再生できないのはなぜですか?

次のコードは、私の test.html にあります。ビデオは、c:\test.html などの絶対パ...

vsCodeはワンクリックでvueテンプレートを生成します

1. ショートカットCtrl + Shift + Pを使用してコンソールを呼び出します 2、「スニペ...

VUEの基本を理解するのに役立つ記事

目次VUEとはVueのコアプラグインVueルーターヴュークスアクシオス要素UI Vue フロントエン...

Tomcat で JNDI データ ソースを構成する 3 つの方法

これまでの仕事では、開発サーバーは一般的にTomcatでした。データソースは、多くの場合、appli...

Docker Compose で環境変数を参照する方法の例

プロジェクトでは、さまざまな条件や使用シナリオを制御するために、docker-compose.yml...

VM VirtualBox 仮想マシンのマウント共有フォルダ

一つの環境CentOS 7にVMware Toolsをインストールしてホストの共有フォルダへのアクセ...

C++ TpeScriptシリーズのジェネリックについて

目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...

IE、Firefox、Chromeブラウザではスペースの表示が異なります

&nbsp;&nbsp;IE、Firefox、Chrome ブラウザでの表示効果は、...