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権限を追加する方法

推薦する

MySQL サーバーにおける SSD パフォーマンスの問題の詳細な分析とテスト

【質問】 HP サーバーを使用しています。SSD が IOPS 約 5000 を書き込むと、%uti...

ショッピングカートのスライド削除効果を実装するReactネイティブサンプルコード

基本的にすべてのeコマースプロジェクトにはショッピングカートの機能があります。これはreact-na...

プレーンな JS オブジェクトの代わりに Map を使用する場合

目次1. マップは任意のタイプのキーを受け入れます2. マップにはキー名に関する制限はありません3....

Mysql の読み取り/書き込み分離期限切れに対する一般的な解決策

MySQLの読み書き分離の落とし穴読み取りと書き込みの分離の主な目的は、メイン データベースの負荷を...

MySQL 8.0.19 では、間違ったパスワードを 3 回入力するとアカウントがロックされるようになりました (例)

MySQL 8.0.19 では、間違ったパスワードを 3 回入力するとアカウントがロックされるよう...

Linux parted ディスク パーティション実装手順の分析

fdisk と比較すると、parted はあまり使用されず、主に 2T を超えるパーティションに使用...

Linux/Mac MySQL パスワードを忘れた場合の対処方法

Linux/Mac の MySQL パスワードを忘れた場合はどうすればいいですか?心配しないでくださ...

MySQLカスタム関数の簡単な使用例

この記事では、例を使用して MySQL カスタム関数の使用方法を説明します。ご参考までに、詳細は以下...

MySQL 8.0.13 のインストールと設定のグラフィックチュートリアル

Msyqlデータベースのインストール、参考までに具体的な内容は次のとおりです。 ①ブラウザでhttp...

Mac OS10.12 に mysql5.7.18 をインストールするチュートリアル

ウェブ全体を検索して、さまざまな落とし穴を見つけましたが、問題は解決しませんでした。ついに自分でも分...

MySQL における主キーが 0 であることと主キーの自己選択制約の関係についての詳しい説明 (詳細)

序文この記事は主にMySQLの主キー0と主キー自己排除制約の関係を紹介し、皆さんの参考と学習のために...

MySQL プロジェクトでトランザクション分離レベルを選択する方法

導入コンテンツから始めましょう。誰もが次のような面接のシナリオに遭遇したことがあると思います。インタ...

MySQL ストアド プロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

CSS は Apple のスムーズなスイッチ ボタン効果を模倣します

目次1. コード分析2. ソースコードソースコード1. コード分析1.1 HTMLコード分析 <...

MySQL が起動直後にシャットダウンする問題 (ibdata1 ファイルの破損が原因) に対する完璧な解決策

コンピュータ ルームのサーバー上の mysql がしばらく実行されていたのですが、突然、再起動しても...