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 をインストールするための詳細なチュートリアル

推薦する

MySql はデータを正常に挿入しますが、[Err] 1055 エラーが報告されます。解決策

1. 質問:最近、挿入操作を行っています。MySQLのバージョンは5.7です。挿入は成功しますが、エ...

nginx設定ファイルの場所を見つける方法の詳細な説明

よく知らないサーバーの場合や、かなり前にインストールした場所を忘れてしまった場合、構成ファイルの場所...

MySqlのインストールとログインの詳細な説明

LinuxにMySQLがすでにインストールされているかどうかを確認する sudo service m...

Vueのフロントエンドとバックエンドのデータのやり取りと表示を理解する方法

目次1. 技術概要2. 技術的な詳細1. インターフェースからバックエンドデータを取得する2. フロ...

Portainer を使用して Docker のビジュアル インターフェースを構築する方法

ポーテナーの紹介Portainer は、ステータス表示パネル、アプリケーション テンプレートの迅速な...

Linux におけるゼロコピー技術の使用に関する簡単な分析

この記事では、Linux におけるいくつかの主要なゼロコピー テクノロジと、ゼロコピー テクノロジを...

TypeScript 列挙の基本と例

目次序文TypeScript の列挙型とは何ですか? TypeScriptで列挙型を使用する際に注意...

CSS 背景と境界タグの例の詳細な説明

1. CSS背景タグ1.背景色を設定するbackground-ground-color プロパティは...

マウスで画像を動かすJavaScript

この記事では、マウスの動きに追従する画像を実現するためのJavaScriptの具体的なコードを参考ま...

mysql 解凍パッケージの基本インストールチュートリアル

新しいコンピューターに変更したので、すべての環境を新しいコンピューター上で設定する必要があります。ふ...

CSSのtranslate(-50%,-50%)は水平および垂直の中央揃え効果を実現します。

translate(-50%,-50%) 属性:中央に配置するには、長さと幅の 50% だけ上と左...

HTMLページでよく使われるいくつかの小さなメソッド

<Head>タグに追加する<meta http-equiv="pragm...

Vue ルーティング this.route.push ジャンプ ページが更新されない場合の解決策

Vue ルーティング this.route.push ジャンプ ページが更新されない1. 背景概要:...

ウェブサイト構築経験概要

<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...

sql_mode を変更する際の MySQL エラーの解決方法

目次ERR 1067による殺人事件2番目の問題の原因はsql_modeです3. sql_modeを設...