史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 2) (パート 36)

史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 2) (パート 36)

データのバックアップと復元パート2は次のとおりです

基本的な概念:

バックアップ、現在のデータまたはレコードの別のコピーを保存します。

復元: データをバックアップ時の状態に復元します。

なぜデータのバックアップと復元が必要なのでしょうか?

データの損失を防ぎ、データ レコードを保護します。

データのバックアップと復元にはさまざまな方法があり、データ テーブル バックアップ、単一テーブル データ バックアップ、SQL バックアップ、増分バックアップに分けられます。

単一テーブルデータのバックアップ

単一テーブル データのバックアップでは、一度に 1 つのテーブルのみをバックアップでき、テーブル構造ではなくデータのみをバックアップできます。

一般的な使用シナリオは、テーブル内のデータをファイルにエクスポートすることです。

バックアップ方法: テーブルからデータの一部を選択し、外部ファイルに保存します。

select */field list + into outfile + 'ファイル ストレージ パス' + from data source;

ここで、単一テーブル データ バックアップを使用するための前提条件は、エクスポートされた外部ファイルが存在しない、つまり、ファイル ストレージ パスの下のファイルが存在しないことです

テストするには次の SQL ステートメントを実行します。

-- 単一テーブル データのバックアップ select * into outfile 'D:/CoderLife/testMySQL/class.txt' from class;

1

上図に示すように、SQL ステートメントは正常に実行されました。ここで、次のような状況に遭遇した場合:

エラー 1290 (HY000) : MySQL サーバーは –secure-file-priv オプションで実行されているため、このステートメントを実行できません。

このエラーは、「 MySQL データをエクスポートするときに発生する secure-file-priv 問題の詳細」を読むことで解決できます。

クラス テーブル内のデータが実際に指定された場所にエクスポートされているかどうかを確認するには、次のパスで確認できます。

2

上の図に示すように、クラス テーブル内のデータがローカル コンピューターにエクスポートされていることがわかります。ただし、ここで特に注意する必要があることが 1 つあります。それは、データベースからエクスポートされたファイルの場合、文字化けを防ぐために EditPlus などの編集ツールで開く方がよいということです。

さらに、テーブル内のデータをエクスポートするために使用される上記の SQL 構文では、実際には問題なく書き込み順序を逆にすることができます。次に例を示します。

select */field list + from data source + into outfile + 'ファイル保存パス';

テストするには次の SQL ステートメントを実行します。

-- 単一テーブル データのバックアップ select * from class into outfile 'D:/CoderLife/testMySQL/class2.txt';

3

次に、単一テーブル データのバックアップに関する高度な操作、つまり、フィールドと行の処理方法を指定する方法について説明します。

基本構文: select */field list + into outfile + 'ファイル ストレージ パス' + fields + フィールド処理 + 行 + 行処理 + from data source;

フィールド処理:

囲む内容: フィールドを囲む内容を指定します。デフォルトは空の文字列です。

終了: フィールドの終了を指定します。デフォルトは \t (Tab キー) です。

エスケープ方法: 特殊記号の処理方法を指定します。デフォルトは \\ で、これはバックスラッシュ エスケープです。

行処理:

開始: 各行の始まりを指定します。デフォルトは空の文字列です。

終了文字: 各行の終了文字を指定します。デフォルトは改行文字 \r\n です。

テストするには次の SQL ステートメントを実行します。

--単一テーブルデータのバックアップ処理方法を指定します。select * into outfile 'D:/CoderLife/testMySQL/class3.txt'
-- フィールド処理フィールド
'"' で囲まれている
'|' で終了
行
「START:」で始まる
クラスから;

4

上の図に示すように、エクスポートされたファイル class3.txt は指定した形式に従って出力されていることがわかります。これまで、単一テーブル データのバックアップのさまざまな方法をテストしてきました。今度は、データを削除してデータを復元します。つまり、外部データをデータ テーブルに復元します。ただし、単一テーブルデータのバックアップではデータのバックアップしかできないため、テーブル構造が存在しない場合は復元できません。

基本構文: データのロード infile + 'ファイル ストレージ パス' + into table + テーブル名 + [フィールド リスト] + フィールド + フィールド処理 + 行 + 行処理;

テストするには次の SQL ステートメントを実行します。

-- クラス テーブルのデータを削除します。delete from class;

-- クラス テーブルのデータを表示します。select * from class;

-- クラス テーブル内のデータを復元します。load data infile 'D:/CoderLife/testMySQL/class3.txt'
テーブルクラスに
-- フィールド処理フィールド
'"' で囲まれている
'|' で終了
行
'START:' で始まります。

-- クラス テーブルのデータを表示します。select * from class;

5

上の図に示すように、テーブルクラスのデータを削除した後、データが正常に復元されたことがわかります。

ヒント: 記号 [] で囲まれた内容はオプション項目を示し、記号 + は接続を意味します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 1) (パート 35)
  • 史上最も簡単な MySQL データのバックアップと復元のチュートリアル (パート 2) (パート 37)
  • MySQLデータのバックアップとmysqldumpの使い方の詳細な説明
  • Linux で MySQL データをバックアップおよび復元するためのコマンドの使用に関する完全なガイド
  • 例を通してMySQLパーティションテーブルの原理と一般的な操作を学びます

<<:  Docker を使用して MySQL 5.7 および 8.0 マスター スレーブ クラスターをデプロイする方法

>>:  Vue2.0/3.0双方向データバインディングの実装原理の詳細説明

推薦する

MySQL は、現在のデータ テーブル内のすべての時間に対して指定された時間間隔を増加または減少させます (推奨)

DATE_ADD() 関数は、指定された時間間隔を日付に追加します。現在のテーブル内のすべてのデー...

dig/nslookup コマンドを使用して DNS 解決手順を表示する方法

dig - DNS ルックアップ ユーティリティドメイン名のアクセス障害が発生した場合、ドメイン名の...

MySQLはbinlogを通じてデータを復元する

目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...

実行中のDockerコンテナのポートマッピングを変更する方法

序文docker run がコンテナを作成して実行するときに、-p を使用してポート マッピング ル...

Vueフロントエンドの効率的な開発のためのレンダリング手順をリストします

v-for ディレクティブリストといえば、ループについても触れなければなりません。v-for 命令は...

Vue2.x の応答性の簡単な説明と例

1. Vue レスポンシブの使用法を確認する​ Vue の応答性は、私たち全員がよく知っています。 ...

mysql バックアップ戦略の実装 (フルバックアップ + 増分バックアップ)

目次設計シナリオ技術的なポイントサーバー情報準備フルバックアップスクリプト(Mysql-FullyB...

Docker環境でJenkinsを設定すると、タスクをビルドするときにコンソールログに文字化けした中国語の文字が表示されます

目次1. 問題の説明: 2. Jenkins設定のトラブルシューティング3. コードログのエンコード...

Zabbixで電子メールアラートを実装する方法

オンラインチュートリアルに従って実装しました。 zabbix3.4、スクリプトとsendEmailを...

Linux ソースコードからのソケット (TCP) バインドの詳細な説明

目次1. 最も単純なサーバー側の例2. バインドシステムコール2.1、inet_bind 2.2、i...

Vue パッケージ化後の空白ページの解決策

1. vue-cli がプロジェクト パッケージを作成した後にページが空白になる問題の解決方法コマン...

MySQL マスタースレーブレプリケーションスレッドの状態遷移に関する詳細な理解

序文MySQL マスター スレーブ レプリケーションの基本原理は、スレーブ データベースがマスター ...

クエリでのMySQLのユニークキーの使用と関連する問題

1. テーブルステートメントを作成します。 テーブル「従業員」を作成します( `emp_no` in...

Ubuntu 20.04 ベスト設定ガイド (初心者向け)

1. システム構成1. sudoパスワードをオフにするsudo コマンドを使用するたびにパスワード...

favico.ico---ウェブサイトicoアイコン設定手順

1. 正常に生成されたアイコン ファイルをダウンロードし、名前を favico.ico に変更して、...