MySqlデータベースをバックアップするいくつかの方法

MySqlデータベースをバックアップするいくつかの方法

mysqldump ツールのバックアップ

データベース全体をバックアップする

$> mysqldump -u ルート -h ホスト -p データベース名 > backdb.sql

データベース内のテーブルをバックアップする

$> mysqldump -u root -h ホスト -p dbname tbname1, tbname2 > backdb.sql

複数のデータベースのバックアップ

$> mysqldump -u root -h host -p --databases dbname1, dbname2 > backdb.sql

システム内のすべてのデータベースをバックアップする

$> mysqldump -u ルート -h ホスト -p --すべてのデータベース > backdb.sql

データベースディレクトリ全体を直接コピーしてバックアップします(InnoDBストレージエンジンには適用されません)。

windowsns: インストールパス/mysql/data

Linux: /var/lib/mysql

コピーする前に、次のコマンドを実行する必要があります。

MYSQL> テーブルをロックします。
# コピー処理中にクライアントがテーブルをクエリし続けることを許可します。
MYSQL> テーブルをフラッシュします。
# アクティブ化されたインデックス ページをディスクに書き込みます。

mysqlhotcopy ツールのバックアップ

データベースまたはテーブルをバックアップする最も速い方法は、データベース ディレクトリが配置されているマシン上でのみ実行でき、MyISAM タイプのテーブルのみをバックアップできます。

このバックアップ方法を使用するには、バックアップするテーブル ファイルにアクセスできる必要があります。

$> mysqlhotcopy -u root -p dbname /path/to/new_directory;
#データベースをnew_directoryディレクトリにコピーします。

mysql コマンド インポート sql ファイル 復元

$> mysql -u root -p [dbname] < バックアップ.sql
# 実行する前に dbname データベースを作成する必要があります。backup.sql が mysqldump によって作成されたバックアップ ファイルである場合、実行に dbname は必要ありません。
MYSQL> ソースbackup.sql;
# ソース コマンドを実行する前にデータベースを選択する必要があります。

データベースディレクトリを直接コピーして復元する

注意: この方法では、元のデータベースと復元するデータベースのメジャー バージョン番号が一貫していることを確認する必要があり、MyISAM エンジンを持つテーブルにのみ適用されます。

  1. mysql サービスをシャットダウンします。
  2. バックアップしたファイルまたはディレクトリで mysql データ ディレクトリを上書きします。
  3. mysql サービスを開始します。
  4. Linux システムの場合、ファイルをコピーした後、ファイルのユーザーとグループを MySQL を実行しているユーザーとグループに変更する必要があります。

mysqlhotcopy 高速リカバリ

MySQL サービスを停止し、バックアップ データベース ファイルをデータが保存されている場所 (mysql のデータ フォルダー) にコピーし、MySQL サービスを再起動します (データベース ファイルの所有者を指定する必要がある場合があります)。

$> cp -R /usr/backup/test /usr/local/mysql/data
# 復元されたデータベースがすでに存在する場合、DROP ステートメントを使用して既存のデータベースを削除した後にのみ、復元を成功させることができます。データベース バージョンの互換性も確保する必要があります。

同じバージョンのデータベース間で移行する

$> mysqldump -h www.abc.com -uroot -p パスワード dbname | 
$>mysqldump -h www.bcd.com -uroot -p パスワード
# サーバー www.abc.com 上のデータベース dbname を、サーバー www.bcd.com 上の同じバージョンのデータベースに移行します。

異なるバージョンの MySQL データベース間の移行

元のデータベースをバックアップします。

元のデータベースをアンインストールします。

新しいデータベースをインストールします。

バックアップしたデータベース データを新しいデータベースに復元します。

データベース ユーザー アクセス情報には、mysql データベースのバックアップが必要です。

デフォルトの文字セットの問題。MySQL4.x はデフォルトの文字セットとして latin1 を使用し、mysql5.x はデフォルトの文字セットとして utf8 を使用します。中国語のデータがある場合は、デフォルトの文字セットを変更する必要があります。

異なるデータベース間の移行

MyODBC ツールは、MySQL と SQL Server 間の移行を実現します。

MySQL 移行ツールキット。

テーブルのエクスポートとインポート

SELECT ...... INTO OUTFILE はテキスト ファイルをエクスポートします。このメソッドはデータベース サーバーにのみエクスポートでき、エクスポート ファイルが既に存在していることはできません。

MYSQL> SELECT ...... INTO OUTFILE ファイル名 [オプション]
MYSQL> SELECT * FROM test.person INTO OUTFILE "C:\person0.txt";
# person テーブルのデータをテキスト ファイル person0.txt にインポートします。

mysqldump ファイルはテキスト ファイルをエクスポートします (INTO OUTFILE とは異なり、このメソッドのすべてのオプションを引用符で囲む必要はありません)

$> mysqldump -T パス -u ルート -p dbname [テーブル] [オプション]
# -T パラメータはテキスト ファイルをエクスポートすることを示します。パスはデータがエクスポートされるディレクトリです。
$> mysqldump -TC:\test person -u root -p
# テスト テーブル内の person テーブルをテキスト ファイルにエクスポートします。実行が成功すると、テストディレクトリに person.sql と person.txt の 2 つのファイルが作成されます。

テキストファイルをエクスポートするmysqlコマンド

MYSQL> mysql -u root -p --execute="SELECT * FROM person;" テスト > C:\person3.txt;
# テスト データベース内の person テーブル データを person3.txt テキスト ファイルにエクスポートします。 --vertical パラメータを使用すると、行を複数の行に分割できます。
MYSQL> mysql -u root -p --vartical --execute="SELECT * FROM person;" テスト > C:\person3.txt;
# --html はテーブルを html ファイルとしてエクスポートし、--xml はテーブルを xml ファイルとしてエクスポートします

LOAD DATA INFILEはテキストファイルをインポートします

MYSQL> LOAD DATA INFILE 'filename.txt' INTO TABLE tablename [OPTIONS] [IGNORE number LINES];
# [IGNORE number LINES] は行数を無視することを意味します MYSQL> LOAD DATA INFILE 'C:\person0.txt' INTO TABLE test.person;

mysqlimport テキストファイルのインポート

$> mysqlimport -u root -p dbname ファイル名.txt [OPSTONS]
# インポートされたテーブルの名前はファイル名によって決まります。データをインポートする前にテーブルが存在している必要があります。$> mysqlimport -uroot -p test C:\backup\person.txt
# テスト データベースの person テーブルにデータをインポートします。

mysqlbinlog を使用したデータの回復

$> mysqlbinlog [オプション] ファイル名 | mysql -u ユーザ -p パスワード
# ファイル名はバイナリログファイルです。
$> mysqlbinlog --stop-date="2013-03-30 15:27:47" D:\MySQL\log\binlog\binlog.000008 | mysql -u root -p パスワード
# ログ ファイル binlog.000008 に基づいて、2013-03-30 15:27:47 より前の操作にデータを復元します。

バイナリログを開始する

log-bin = パス/ファイル名 #ログファイルの保存ディレクトリとファイル名 expire_log_days = 10 #ログの自動削除時間 max_binlog_size = 100M #ログファイルの最大サイズ

バイナリログの表示

MYSQL> 'log_%' のような変数を表示します。
MYSQL> バイナリログを表示します。
$>mysqlbinlog ファイル名
# ファイル名はバイナリログファイル名です。

バイナリログの削除

MYSQL> RESET MASTER; #すべてのバイナリログを削除します MYSQL> PURGE {MASTER | BINARY} LOGS TO 'log_name'; #log_nameより小さいファイル番号のファイルを削除します MYSQL> PURGE {MASTER | BINARY} LOGS BEFORE 'date'; #指定した日付より前のファイルを削除します

バイナリログを一時的に停止します(MySQL サービスを再起動する必要はありません)

MYSQL> SET sql_log_bin = {0|1} #バイナリログを一時停止または開始します。

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

以下もご興味があるかもしれません:
  • MYSQLにデータをインポートするいくつかの方法
  • MySQL 4 データをインポートする方法
  • MySQLデータベースを最適化する6つの方法のまとめ
  • MySQLでデータベースを上書きおよびインポートするいくつかの方法の概要

<<:  Docker ベースの nginx ファイル サーバーを構築する方法と手順

>>:  jQuery+h5 で 9 マス抽選特殊効果を実現 (フロントエンドとバックエンドのコード)

推薦する

MySQL の計画タスクとイベント スケジュール例の分析

この記事では、例を使用して、MySQL の計画されたタスクとイベントのスケジュールについて説明します...

W3C チュートリアル (6): W3C CSS アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。スタイル シートは...

ES6の新機能に関する最もよく使われる知識ポイントのまとめ

目次1. キーワード2. 脱構築3. 文字列4. 正規化5. 配列6. 機能7. オブジェクト8.シ...

Vue 名前付きスロットの基本的な使用例

序文名前付きスロットは、スロット内の「name」属性を使用して要素にバインドされます。知らせ: 1....

MySQL SQL ステートメント分析とクエリ最適化の詳細な説明

パフォーマンスの問題のあるSQL文を取得する方法1. ユーザーからのフィードバックを通じてパフォーマ...

Docker ケース分析: MySQL データベース サービスの構築

目次1 設定ディレクトリとデータディレクトリを作成する3 イメージからホストに構成ファイルをコピーす...

element.style インライン スタイルを変更する方法のチュートリアル

序文上記の Web ページ スタイルを記述しているときに、スタイルの値をどのように変更しても、ページ...

Nginx ロケーション設定(ロケーションのマッチング順序)の詳細な説明

ロケーションは「位置指定」を意味し、主にさまざまな位置指定のための URI に基づいています。これは...

XHTML と CSS の Web ページ作成の問題に対する解決策

XHTML CSS ページ制作中に遭遇する問題の解決策は、解決策と呼ぶには少々大げさです。せいぜい、...

Vue における nextTick の役割といくつかの簡単な使用シナリオ

目的nextTickの役割といくつかの簡単な使用シナリオを理解する文章その機能は何ですか?遅延コール...

MySQL 5.5 で範囲パーティションを追加および削除する例

導入RANGE パーティション分割は、指定された連続した間隔範囲に基づいています。RANGE の初期...

Mysql データベースのマスタースレーブ同期構成

目次Mysql マスタースレーブ同期構成1. 2つのmysqlをインストールする2. MySQL設定...

Vueは商品詳細ページの商品タブ機能を実装します

この記事の例では、商品詳細ページ機能を実現するためのVueの商品タブの具体的なコードを参考までに共有...

Ajax リクエストにおけるクロスドメイン問題の原因と解決策

目次1. クロスドメインはどのように形成されるのでしょうか? 2. クロスドメインの根本的な原因3....

mysqlは指定された期間内の統計データを取得します

mysqlは指定された期間内の統計データを取得します年別統計 選択 カウント(*)、 DATE_FO...