1. ホーム
  2. データベース
  3. マイサク

MySQLのデータバックアップにmysqldumpを使用する方法

2022-01-06 07:15:47

<スパン I. mysqldumpの紹介

mysqldump は MySQL に付属する論理バックアップユーティリティです。mysqldump は論理データベースバックアッププログラムで、1 つまたは複数の mysql データベースをバックアップしたり、他の mysql サーバーにデータを転送するために使用することができます。mysqldump を実行するには、データテーブルをバックアップするための select 権限、ビューをバックアップするための show view 権限、トリガーをバックアップするための trigger 権限などが必要です。

mysqldumpはバックアップ機能を実現するためにsql文を再構築する必要があり、データ量の多いデータベースのバックアップやリストア操作には時間がかかり、mysqldumpバックアップを開くと実はデータベースのsql文を再現していることがわかるため、大きなデータのバックアップには向いていない。

そのバックアップ原理は、プロトコルでMySQLデータベースに接続し、バックアップが必要なデータを問い合わせ、問い合わせたデータを対応する挿入文に変換し、これらのデータを復元する必要があるときに、これらの挿入文を実行するだけで対応するデータを復元することである。

II. バックアップコマンド

2.1 コマンドの書式

mysqldump [オプション] データベース名 [テーブル名] > スクリプト名

または

mysqldump [オプション] -データベース名 [オプション テーブル名] > スクリプト名

または

mysqldump [オプション] --all-databases [オプション] > スクリプト名

2.2 オプションの説明

<テーブル パラメータ名 略語 意味 --ホスト -h サーバーIPアドレス --ポート -P サーバー側のポート番号 --user -u MySQLユーザー名 --パスワード -p MySQLパスワード --データベース バックアップするデータベースを指定します --すべてのデータベース mysqlサーバーの全データベースをバックアップする。 --コンパクト 圧縮モード、出力が少ない --コメント コメントメッセージの追加 --挿入完了 完了した挿入文の出力 --ロックテーブル バックアップの前にすべてのデータベーステーブルをロックする --no-create-db/--no-create-info データベース作成文の生成を無効にする --強制 エラーが発生してもバックアップ操作を継続する --デフォルト文字セット デフォルトの文字セットを指定する --アドロック データベーステーブルをバックアップする際に、データベーステーブルをロックする

2.3 インスタンス

すべてのデータベースをバックアップする。

mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db

指定されたデータベースをバックアップする。

mysqldump -uroot -p test > /backup/mysqldump/test.db

指定したデータベースの指定したテーブルをバックアップする(スペースで区切られた複数のテーブルをバックアップする)。

mysqldump -uroot -p mysql db event > /backup/mysqldump/2table.db

指定したデータベースを特定のテーブルを除いてバックアップする

mysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db

3つ目は、リストアコマンド

3.1 システムラインコマンド

mysqladmin -uroot -p create db_name 

mysql -uroot -p db_name < /backup/mysqldump/db_name.db

注意:バックアップデータベースをインポートする前に、db_nameが存在しない場合は作成する必要があり、db_name.dbのデータベース名と同じにしてからインポートする必要があります。

3.2 soureメソッド

mysql > use db_name

mysql > source /backup/mysqldump/db_name.db

添付ファイル:共通コマンド

mysqldump -u root -p --all-databases > D:/mysql.sql #Backup all databases

mysqldump -uroot -p123456 --databases db1 db2 db3 > D:/mysql.sql #Backup multiple databases

mysqldump -hhostname -Pport -uroot -p"123456" --databases dbname > D:/mysql.sql #backup remotely (when remote, you need to add more -h: hostname, -P: port number)



#Export part of the data of the specified table with conditions, note that mysqldump export time zone is set to +00:00 by default, the timestamp time after w will also be considered as +00:00 time zone data, which will lead to data problems

mysqldump -h222.222.221.197 -uroot -proot DBname TABLEname -t --complete-insert --skip-tz-utc -w"sys_create > '2020-12-25 16:00:00'& quot;> export.sql   



# One time export import database (!!!! Use caution, the two servers write the opposite is the end, because the exported sql has drop table statement)

mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2 



#Export as a compressed package, this will be much smaller, online servers try to use this, recommended!

mysqldump --opt -uroot -p123456 -h127.0.0.1 --databases dbname --ignore-table=dbname.table1 | gzip>/db_back/dbname_`date +%F`.zip    

概要

mysqldumpを使用したMySQLデータのバックアップについての記事は以上です。MySQLのmysqldumpの使い方については、BinaryDevelopの過去記事を検索するか、以下の関連記事を引き続き閲覧してください。