binlog2sql と簡単なバックアップおよびリカバリを使用して mysql8.0.20 を構成するための詳細な手順

binlog2sql と簡単なバックアップおよびリカバリを使用して mysql8.0.20 を構成するための詳細な手順

最初のステップのインストール

1. MySQLをインストールする

2. Python3をインストールする

[root@localhost /]#yum python3をインストール

3. binlog2sql ファイルをローカル コンピューターにダウンロードします (ファイルは Baidu Cloud にあります)

[root@localhost /]#mkdir ツール
[root@localhost /]#cd ツール
[root@localhost ツール]# ll
合計 317440
-rw-r--r--。1 ルート ルート 317440 9月21日 23:55 binlog2sql.tar
[root@localhost ツール]#tar -xvf binlog2sql.tar
[root@localhost ツール]#cd binlog2sql
[root@localhost binlog2sql]# ll
合計 52
drwxr-xr-x. 3 mysql mysql 91 6月13日 08:14 binlog2sql
drwxr-xr-x. 2 mysql mysql 54 6月13日 07:45 例
-rw-r--r--。1 mysql mysql 35141 6月13日 07:45 ライセンス
-rw-r--r--。1 mysql mysql 9514 6月13日 07:45 README.md
-rw-r--r--。1 mysql mysql 54 6月13日 07:45 requirements.txt
drwxr-xr-x. 2 mysql mysql 37 6月 13 07:45 テスト

4. binlog2sqlのrequirements.txtを修正し、PyMySQL==0.7.11を0.9.3に変更し、保存して終了します。

[root@localhost binlog2sql]# vi requirements.txt
pyMySQL == 0.9.3 です
ホイール==0.29.0
mysql-レプリケーション==0.13

5. インストールして、0.9.3であることを確認してください。そうでない場合はエラーが発生します。

[root@localhost binlog2sql]# pip3 インストール -r requirements.txt
[root@localhost binlog2sql]# pip3 show pymysql
名前: PyMySQL
バージョン: 0.9.3
概要: 純粋な Python MySQL ドライバー
ホームページ: https://github.com/PyMySQL/PyMySQL/
著者: yutaka.matsubara
著者メールアドレス: [email protected]
ライセンス: 「MIT」
場所: /usr/local/lib/python3.6/site-packages
必要:

ステップ2: MySQLデータを準備する

1. セキュリティディレクトリ secure-file-priv=/test を設定ファイルに追加し、MySQL を再起動するのが最善です。

[root@localhost /]# mkdir テスト
[root@localhost /]# chown -R mysql.mysql テスト
[root@localhost mysqldata]#vi my.cnf
セキュアファイルプライベート=/テスト
ベースディレクトリ=/application/mysql
データディレクトリ=/data/mysql
ソケット=/data/mysqldata/mysql.sock
log_error=/data/mysqldata/mysql8.0.err
ポート=3306
サーバーID=6
セキュアファイルプライベート=/テスト
自動コミット=0 
log_bin=/data/mysqldata/mysql-bin 
[root@localhost mysqldata]# systemctl mysqldを起動します

注: 構成ファイルのパスは各ユーザーごとに異なります。

2. MySQLを入力する

MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは11です
サーバーバージョン: 8.0.20 MySQL コミュニティサーバー - GPL

Copyright (c) 2000, 2020, Oracle およびその関連会社。無断複写・転載を禁じます。

OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。

ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。

mysql> マスターステータスを表示します\g;
+------------------+----------+--------------+------------------+------------------+
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+------------------+
| mysql-bin.000001 | 156 | | | |
+------------------+----------+--------------+------------------+------------------+

mysql> データベース csdn を作成します。
mysql> csdnを使用する
mysql> t1に値(1),(2),(3),(4),(5),(6),(7),(8)を挿入します。
mysql> コミット;
mysql> t1 を更新し、id=10 に設定します (id=1 の場合)。
mysql> t1 から id=3 を削除します。
mysql> コミット;

3 番目のステップは、binlog2sql ディレクトリをテストすることです。

[root@localhost binlog2sql]# パスワード
バイナリログ2sql
[root@localhost binlog2sql]# ll
合計 24
-rwxr-xr-x. 1 mysql mysql 7747 6月13日 07:45 binlog2sql.py
-rwxr-xr-x. 1 mysql mysql 11581 6月13日 07:45 binlog2sql_util.py
-rw-r--r--。1 mysql mysql 92 6月13日 07:45 __init__.py
drwxr-xr-x. 2 mysql mysql 44 6月13日 07:50 __pycache__

2. データベース内のテーブルのバックアップ操作を開始する
2.1 データベース csdn での操作を今すぐ表示する

 [root@localhost binlog2sql]# python3 binlog2sql.py -h 192.168.0.112 -P3306 -uroot -p123 -d csdn -t t1 --start-file='mysql-bin.000001'
b'csdn'を使用します。
データベース csdn を作成します。
b'csdn'を使用します。
テーブル t1 (id int) を作成します。
`csdn`.`t1`(`id`) VALUES (1) に挿入します。#開始 609 終了 807 時間 2020-09-25 02:21:21
`csdn`.`t1`(`id`) VALUES (2) に挿入します。#開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (3); #開始 609 終了 807 時間 2020-09-25 02:21:21
`csdn`.`t1`(`id`) VALUES (4) に挿入します。#開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (5); #開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (6); #開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (7); #開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (8); #開始 609 終了 807 時間 2020-09-25 02:21:21
`csdn`.`t1` を更新し、`id`=10 を設定し、`id`=1 を LIMIT 1 に設定します。#開始 917、終了 1095、時刻 2020-09-25 02:21:39
DELETE FROM `csdn`.`t1` WHERE `id`=3 LIMIT 1; #開始 917 終了 1183 時間 2020-09-25 02:21:48

2.2 バックアップデータベース csdn での操作

[root@localhost binlog2sql]# python3 binlog2sql.py -h 192.168.0.112 -P3306 -uroot -p123 -d csdn -t t1 --start-file='mysql-bin.000001' >/test/binlog2sql.sql

2.3 バックアップしたSQLファイルを表示する

[root@localhost binlog2sql]# cat /test/binlog2sql.sql
b'csdn'を使用します。
データベース csdn を作成します。
b'csdn'を使用します。
テーブル t1 (id int) を作成します。
`csdn`.`t1`(`id`) VALUES (1) に挿入します。#開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (2); #開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (3); #開始 609 終了 807 時間 2020-09-25 02:21:21
`csdn`.`t1`(`id`) VALUES (4) に挿入します。#開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (5); #開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (6); #開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (7); #開始 609 終了 807 時間 2020-09-25 02:21:21
INSERT INTO `csdn`.`t1`(`id`) VALUES (8); #開始 609 終了 807 時間 2020-09-25 02:21:21
`csdn`.`t1` を更新し、`id`=10 を設定し、`id`=1 を LIMIT 1 に設定します。#開始 917、終了 1095、時刻 2020-09-25 02:21:39
DELETE FROM `csdn`.`t1` WHERE `id`=3 LIMIT 1; #開始 917 終了 1183 時間 2020-09-25 02:21:48

3. 削除ステートメントを個別に表示する

[root@localhost binlog2sql]# python3 binlog2sql.py -h 192.168.0.112 -P3306 -uroot -p123 -d csdn -t t1 --start-file='mysql-bin.000001' --sql-type=delete
b'csdn'を使用します。
データベース csdn を作成します。
b'csdn'を使用します。
テーブル t1 (id int) を作成します。
DELETE FROM `csdn`.`t1` WHERE `id`=3 LIMIT 1; #開始 917 終了 1183 時間 2020-09-25 02:21:48

4. 削除ステートメントをSQLファイルに逆順に保存して表示する

[root@localhost binlog2sql]# python3 binlog2sql.py -h 192.168.0.112 -P3306 -uroot -p123 -d csdn -t t1 --start-file='mysql-bin.000001' --sql-type=delete --start-position=917 --stop-position=1183 -B >/test/roll.sql
[root@localhost binlog2sql]# cat /test/roll.sql 
INSERT INTO `csdn`.`t1`(`id`) VALUES (3); #開始 917 終了 1183 時間 2020-09-25 02:21:48

5. MySQLに入り、削除されたデータを復元する

mysql> ソース /test/roll.sql
クエリは正常、1 行が影響を受けました (0.00 秒)
mysql> t1 から * を選択します。
+------+
|id|
+------+
| 10 |
| 2 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 3 |
+------+
セット内の行数は 8 です (0.00 秒)

要約する

binlog2sql を使用した mysql8.0.20 の構成と、簡単なバックアップとリカバリの詳細な手順に関するこの記事はこれで終わりです。mysql8.0.20 binlog2sql の構成とバックアップとリカバリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。皆様が今後も 123WORDPRESS.COM を応援してくれることを願っています。

以下もご興味があるかもしれません:
  • MySQL の binlog ログと、binlog ログを使用してデータを回復する方法を説明します。
  • MySQLはデータ復旧を実装するためにbinlogログを使用する
  • 誤って削除されたデータを復元するための mysqlbinlog コマンドを使用した mysql の実装
  • MySQLはmysqldump+binlogを使用して、削除されたデータベースの原理分析を完全に復元します。
  • MySQL バイナリログデータ復旧: 誤ってデータベースを削除した場合の詳細な説明
  • MySQL でデータ復旧に binlog を使用する方法
  • Linux 上の binlog ファイルを使用して MySQL データベースを復元する詳細な手順
  • MySQL データベースが攻撃され、改ざんされました (データ復旧にはバックアップと binlog を使用)
  • MySQLデータベースのログファイル(binlog)を自動的に復元する方法を説明します
  • MySQL の Binlog 関連コマンドとリカバリテクニック
  • MySQL データベースのリカバリ (mysqlbinlog コマンドを使用)
  • MySQLはbinlogを通じてデータを復元する

<<:  Tomcat を設定して IntelliJ IDEA 2018 で最初の Java Web プロジェクトを実行する方法

>>:  Linux環境でユーザーにsudo権限を追加する方法

推薦する

Vue コンポーネントの構成構造とコンポーネント登録の詳細

目次1. コンポーネントの構成2. コンポーネント名2.1 コンポーネントの命名3. グローバル登録...

Docker-compose は Docker プライベート ウェアハウスのステップを迅速に構築します

docker-compose.ymlを作成し、次の内容を入力します。 バージョン: '3&#...

基本的なウェブページパフォーマンス最適化ルールの簡単な概要

ブラウザのウェブページを最適化するためのいくつかのルールページの最適化静的リソース圧縮ビルド ツール...

モバイルフロントエンド適応ソリューション(概要)

ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...

js メモリ リークのシナリオ、それらを詳細に監視および分析する方法

目次序文どのような状況でメモリリークが発生する可能性がありますか? 1. 偶発的なグローバル変数2....

インターネットウェブデザインにおけるバイオニックデザインの簡単な紹介

バイオニックデザインといえば、飛行機の発明、ドバイのブルジュ・アル・アラブ、平泳ぎなどを思い浮かべる...

Vue は無限ロードウォーターフォールフローを実装します

この記事では、参考までに、無限ロードウォーターフォールフローを実現するためのVueの具体的なコードを...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

SQL で行の最大値または最小値を取得する方法

元データと対象データSQL文を実装する(最大) 選択 店、 月、 最大(dz,fz,sp) が最大値...

Docker ベースの ELK ログ システムを構築する方法

背景要件:ビジネスがどんどん大きくなると、サーバーの数も増え、さまざまなアクセスログ、アプリケーショ...

JSはじゃんけんゲームを実装します

この記事の例では、じゃんけんゲームを実装するためのJSの具体的なコードを参考までに共有しています。具...

よく使われる Docker コマンドと例の概要と分析

目次1. コンテナライフサイクル管理(1)ドッカー実行(2)スタート/ストップ/リスタート(3)ドッ...

Vue3における非親子コンポーネント通信の詳細な説明

目次最初の方法アプリ.vueホーム.vueホームコンテンツ.vueデータの応答性レスポンシブプロパテ...

js キャンバスは角丸画像を実現します

この記事では、角を丸くするためのjsキャンバスの具体的なコードを参考までに紹介します。具体的な内容は...

iview権限管理の実装

目次iview-admin2.0 組み込み権限管理権限に基づいてコンポーネントの表示を制御するカスタ...