Mysqlのインポートとエクスポート時に発生する問題の解決

Mysqlのインポートとエクスポート時に発生する問題の解決

背景

すべての業務を Docker の運用管理に移行してから、一連の落とし穴に遭遇しましたが、今回は MySQL のバックアップの問題でした。

原因は、mysql イメージの起動時に -v が指定されていなかったため、一定期間後に docker が非常に大きくなってしまったことです。元のディスクでは十分ではなく、新しいディスクに移行する必要がありました。

インポートとエクスポートの使用時にいくつか問題が発生し、解決に多くの時間が費やされました。

解決プロセス

mysqlイメージの検索が大きすぎます

コンテナが占めるスペースを表示する

```docker システム df``` 

詳細を表示

ローカルボリュームのスペース使用量:
音量 
名前 リンク サイズ
3e764b0633ea2c3f3dc5b0bf79dc753055d7c09451b477d3015650c66ea4a5fb 0 0B
598a592e1f9d90d2564c7c52f45f6f6a96784ad0426ec60682299fa1a1b93b96 0 0B
5eb12b3b0091810bbe3c94c5801ad2f2ff51d79b69b0ac01eb37cf00d37d89f6 0 0B
管理者ログ 0 0B
f42e3ef90e4c7b3658a0fb4a877e90b298b12cb58cd63f38d9b4ad5c2ab41d73 0 0B
3361b9c615e09708170018dc7d170b8d4b498dd83cbcb155a3d41234d08e8119 1 9.3G

この時点で、上記で返された情報によると、ボリュームを持つコンテナは 2 つだけで、1 つは mysql、もう 1 つは redis です。そのため、docker inspect container_id コマンドを使用して特定のコンテナの特定の情報を表示し、それが確かに 9.3G ボリュームであることを確認します。

コンテナID イメージ コマンド ローカルボリューム サイズ 
cb76bbc211e6 mysql "docker-entrypoint.s…" 1 7B

新しくマウントされたディスクにmysqlをバックアップする

```docker exec -it mysql mysqldump -u ユーザー名 -p パスワード データベース > /mnt/vdb/data/mysql/test_db.sql```
ユーザー名、パスワード、データベースの変更

mysqlをインポートする

1. 以前のデータがまだ残っていることを確認するには、別の mysql コンテナを起動し、-v を使用してホストにマップします。

2. 次に、docker exec -i mysqld mysql -uroot -proot federation < /mnt/vdb/data/mysql/fed_db.sql を実行します。

エラーが発生

1 行目のエラー 1064 (42000): SQL 構文にエラーがあります。
MySQLサーバーのバージョンに対応するマニュアルを確認してください。
'mysqldump: [警告] パスワードの使用
コマンドラインインターフェースは1行目でインセクトできます

いろいろ情報を探したのですが、役に立たなかったので、グラフィカル ツールを使用して直接バックアップすることにしました。Navicat を使用してバックアップし、新しいイメージにインポートしたところ、インポートは成功しました。

  • この行はインポート後に表示されたものと異なります
  • この行はインポート後に表示されたものと異なります
  • この行はインポート後に表示されたものと異なります

  • 何だって?合計数は1688ですが、1480しか表示されません。
  • docker コンテナに入り、コマンド ラインを使用してクエリを実行します。確かに 1688 です。表示される行は確かに間違っています。それで...

要約する

Docker を使用する場合、外部ボリュームを使用する必要があるかどうかを検討する必要があります。一般的に、データベースには外部ボリュームを使用するのが最適であり、これによりバックアップと移行が非常に便利になります。

データベースGUIに頼りすぎないでください。コマンドラインは最も実績があり、信頼性があります。

本当にうまくいかない場合は、ハードドライブを多数追加できます。いずれにしても、それらはすべてサーバー上にあります。ただし、サーバーがクラッシュしないようにする必要があります。そうしないと、データが簡単に失われます。

さて、今回の記事は以上です。この記事の内容が皆さんの勉強や仕事に少しでも参考になれば幸いです。123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL における 8 つの一般的な SQL 使用例
  • MySql クイック挿入数千万の大規模データの例
  • MySQL SQL ステートメントが遅い場合の一般的な原因と解決策

<<:  Vue プロジェクトのパッケージ化と最適化の実装手順

>>:  Linux に Python 3.8.1 をインストールするための詳細なチュートリアル

推薦する

HTML(CSSスタイル仕様)を読む必要があります

CSS スタイル仕様1. クラスセレクター2. タグセレクター3. IDセレクター4. CSSスタイ...

XHTML 入門チュートリアル: リストタグの使用

リストは、類似または関連する一連の項目をリストするために使用されます。順序なしリスト(箇条書きリスト...

MySQL の従来のソート、カスタム ソート、中国語のピンイン文字によるソート

MySQL の通常のソート、カスタム ソート、中国語のピンイン文字によるソート。実際の SQL を記...

nginx proxy_cache バッチキャッシュクリアスクリプトの紹介

前書き: 以前、公式の nginx proxy_cache を CDN 静的キャッシュとして使用して...

Mysql の遅いクエリ操作の概要

MySQL の遅いクエリの説明MySQL スロー クエリ ログは、MySQL が提供するログ レコー...

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

MySQL Strict Modeの知識ポイントの詳細な説明

I. 厳密モードの説明MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES...

Tomcat プロセスの CPU 使用率が高い場合のトラブルシューティング記録を記録する

この記事では主にTomcatプロセスを記録し、TCP接続が多すぎることによるCPU使用率の過剰のトラ...

Vueページの画像が表示されない問題の解決方法

新しいバージョンの設定インターフェースを作る際に、vueフレームワークを使用して実装しました。ページ...

vue+elementui+vuex+sessionStorage を使用して履歴タグ メニューを実装するためのサンプル コード

一般的には、左側にメニューがあった後、ページの上部に履歴タブ メニューを追加する必要があります。他の...

vue-element-admin プロジェクトのインポートとエクスポートの実装

vue-element-admin インポートコンポーネントのカプセル化テンプレートとスタイルまず、...

Tencent Cloudでhive3.1.2を構築する方法を教えます

環境の準備操作を開始する前に、hadoop バージョンがインストールされていることを確認してください...

ウェブデザインにおける階層化インターフェースの設計経験

多くのネットユーザーは、なぜ自分のウェブサイトはいつも色の問題を抱えていて、いつも地味に見え、注目を...

重要なmysqlログファイルの概要

著者: 丁易出典: https://chengxuzhixin.com/blog/post/mysq...

Prometheusコンテナのデプロイメントのための実用的なソリューション

環境ホスト名IPアドレス仕えるプロメテウス192.168.237.137プロメテウス、グラファナノー...