MySQLのデータバックアップにmysqldumpを使用する方法
<スパン 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の過去記事を検索するか、以下の関連記事を引き続き閲覧してください。
関連
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
MySQL サービスとデータベース管理
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
MySQL インタビューの質問 - ハッシュインデックスを設定する方法
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
Mysqlのソート機能の詳細
-
[解決済み] datetimeの挿入時に文字列から日付や時刻を変換すると、変換に失敗する
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
[解決済み】SQLサーバーのテンポラリーテーブルで「すでに名前のついたオブジェクトがあります」エラーが発生する。
-
MySQLの一般的な分割ライブラリおよび分割テーブルスキームの概要
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
MySQLとOracleの一括挿入SQLの汎用的な記述例
-
SQL集計、グループ化、ソート
-
MySQLデータ型の詳細
-
MySQLインストールチュートリアル(Windows用)詳細
-
MySQLデータベースで数百万件のデータを10秒間で挿入
-
[解決済み】マルチパート識別子をバインドできませんでした。
-
[解決済み】ValueError: 値の長さがインデックスの長さと一致しない|Pandas DataFrame.unique()
-
SQLException。オペランドは1列でなければなりません。
-
Mysqlデータベースへのリンク時にpymysqlがConnection refusedエラーを報告する