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

推薦する

CSSで制御可能な点線を実装する方法

序文CSS を使用して点線を生成するのは、フロントエンド開発者にとっては簡単です。一般的に、これを実...

Vue + Axios リクエストインターフェース方式とパラメータ渡し方式の詳しい説明

目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...

HTMLとCSSを使用して、自分だけの暖かい男「Dabai」を作成します

最終結果はこんな感じです、かわいいでしょう… PS: HTML と CSS の知識があればベストです...

MySQL コマンドラインモードアクセス操作 MySQL データベース操作

使用環境cmd モードで、mysql --version と入力します (インストールされている M...

vue $setは配列コレクションオブジェクトへの値の割り当てを実装します

Vue $set 配列コレクションオブジェクトの割り当てVue カスタム配列オブジェクト コレクショ...

ウェブサイト製品設計の参考となるいくつかの原則

以下の分析は製品設計原則に関するものですが、そのほとんどはウェブサイト製品に基づいているため、ユーザ...

MySQL遅延レプリケーションライブラリ方式の詳細な説明

簡単に言えば、遅延レプリケーションとは、スレーブ データベースがマスター データベースより 1 時間...

Sublime Text - ブラウザのショートカットキーを設定するための推奨方法

コード効果を異なるブラウザで表示することはよくあることなので、異なるショートカットキーを使用して対応...

HTML で複数のフォームのテキスト ボックスを揃える方法

フォームのコードは図の通りです。スタイルシートがまだ追加されていないため、フォームが整列されておらず...

Windows 10 で MySQL を完全に削除してアンインストールする方法

序文この記事では、Windows 10 システムで MySQL を完全に削除してアンインストールする...

HTML でさまざまなスペースの特徴と表現を探る (推奨)

I. 概要HTML テンプレートを作成するときに、テキスト レイアウトの手段としてスペースが使用さ...

Nginxドメイン名転送の実装

Nginx の紹介Nginx (「エンジン x」) は、ロシアのプログラマー Igor Sysoev...

MySQLデータベースはMMM高可用性クラスタアーキテクチャを実装します

コンセプトMMM (Mysql のマスター マスター レプリケーション マネージャー) は、Perl...

CSSブレンドモードとSVGを使用して、製品画像の色を動的に変更します。

数日前、Codepen で @Kyle Wetton が書いた、CSS ブレンディング モードと S...

CentOS 7 で MySQL 8 の複数のインスタンスを設定する詳細なチュートリアル (必要な数だけ設定できます)

原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...