Mysql主从复制技术(亲测)_MySQL
bitsCN.com
Mysql主从复制技术(亲测)
开始配置:
第一步:创建复制帐号
每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予
REPLICATIONSLAVE权限。
用户名的密码都会存储在文本文件master.info中。假如,你想创建repl用户,如下
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@'192.
168.1.%' IDENTIFIED BY '123456';
第二步:配置My.cnf
配置Master的My.cnf,该文件默认位置为/etc/my.cnf
接下来对master进行配置,包括打开二进制日志,指定唯一的servr ID。例如,在配置文件
加入如下值:
[mysqld]
server-id=1
log-bin=mysql-bin
重启mysql,service mysql restart ,
登录mysql -uroot -p
运行SHOW MASTER STATUS,输出如下:
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 106 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
配置Slave的My.cnf,该文件默认位置为/etc/my.cnf
Slave的配置与master类似,你同样需要重启slave的MySQL。如下:
server-id = 2
log-bin = mysql-bin
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
server-id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须
设置,例如,如果slave为其它slave的master,必须设置bin_log。在这里,我们开启了二进制
日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会出现问题)。
relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会
看到它的用处)。
有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改
变,这是一种错误的配置。所以,尽量使用read_only,它防止改变数据(除了特殊的线程)。但是,
read_only并是很实用,特别是那些需要在slave上创建表的应用。
重启mysql,service mysql restart ,
登录mysql -uroot -p
第三步:启动slave
接下来就是让slave连接master,并开始重做master二进制日志中的事件。你不应该用配置
文件进行该操作,而应该使用CHANGE MASTER TO语句,该语句可以完全取代对配置文件的修改,
而且它可以为slave指定不同的master,而不需要停止服务器。如下:
mysql>CHANGE MASTER TO MASTER_HOST='192.168.60.73',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER
_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=0;
MASTER_LOG_POS的值为0,因为它是日志的开始位置。然后,你可以用SHOW SLAVE STATUS
语句查看slave的设置是否正确:
mysql> SHOW SLAVE STATUS/G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: server1
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 4
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: No
Slave_SQL_Running: No
...omitted...
Seconds_Behind_Master: NULL
Slave_IO_State, Slave_IO_Running, 和Slave_SQL_Running表明slave还没有开始复制过程。
日志的位置为4而不是0,这是因为0只是日志文件的开始位置,并不是日志位置。实际上,MySQL知
道的第一个事件的位置是4。
为了开始复制,你可以运行:
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS/G
运行SHOW SLAVE STATUS查看输出结果:
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: server1
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 164
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 164
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...omitted...
Seconds_Behind_Master: 0
注意,slave的I/O和SQL线程都已经开始运行,而且Seconds_Behind_Master不再是NULL。日志
的位置增加了,意味着一些事件被获取并执行了。如果你在master上进行修改,你可以在slave上看
到各种日志文件的位置的变化,同样,你也可以看到数据库中数据的变化。
你可查看master和slave上线程的状态。在master上,你可以看到slave的I/O线程创建的连接:
mysql> show processlist /G
*************************** 1. row ***************************
Id: 1
User: root
Host: localhost:2096
db: test
Command: Query
Time: 0
State: NULL
Info: show processlist
*************************** 2. row ***************************
Id: 2
User: repl
Host: localhost:2144
db: NULL
Command: Binlog Dump
Time: 1838
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
2 rows in set (0.00 sec)
基本到这里就完成,至于后期的加强操作,我会在另行添加。
Mysql复制的时候可以做到限制复制(主)
binlog-do-db=work #只复制
binlog_ignore_db=mysql #不允许复制
Replicate_Do_DB=mysql
replicate-ignore-db=mysql
另外还有几条常用的命令
flush mater; #清除垃圾
flush slave; #清除垃圾
start slave; #开始服务
reset slave; #重设服务
stop slave; #停止服务
上面复制方式是假设在新设Master和slave的情况下,实际环境并不十分实用,例如,你在一
组运行了很久的Master中加入一个新的slave呢?
这样我们就需要优先进行数据处理。
1.现将Master的数据库锁定,以免数据复制的时候出现差异。
FLUSH TABLES WITH READ LOCK;
2. 在另一个连接用mysqldump创建一个你想进行复制的数据库的转储:
shell> mysqldump --all-databases --lock-all-tables >dbdump.db
3. 对表释放锁。
mysql> UNLOCK TABLES;
上面方法中,第2部需要将数据库复制到新slave中还原,这样,Master和新Slave的数据源就一致。
其实第2部的方法有很多,也可以使用Mysql软件进行同步,例如:Navicat for Mysql
方法不是唯一,只要结果一致即可。
4.完成旧数据同步后,Master中输入
mysql> show master status;
##得到:
+------------------+----------+--------------+---------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+---------------------------+
| mysql-bin.000024 | 38113 | | mysql,test |
1 row in set (0.00 sec)
5.然后在根据上表中内容输入上文启动Slave步骤的内容。
CHANGE MASTER TO MASTER_HOST='192.168.60.73',MASTER_USER='repl',MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=0;
6.启动slave
START SLAVE;
7.启动完成后进行检查。
mysql> SHOW SLAVE STATUS/G ***************************
1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.171
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000024
Read_Master_Log_Pos: 38255
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 393
Relay_Master_Log_File: mysql-bin.000024
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql,wdcpdb,mysql,wdcpdb
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 38255
Relay_Log_Space: 548
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)
完成
测试过程要主要的问题:
1.请先配置好Mysql
2.开通复制前请将Mysql的库和表的框架复制过去。
(在测试一下能不能连表都复制过去!)
bitsCN.com

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Win11 を使用している場合、管理者のユーザー名とパスワードの入力を要求される場合があるため、この記事ではその対処方法について説明します。方法 1: 1. [Windows ロゴ] をクリックし、[Shift+Restart] を押してセーフ モードに入るか、[スタート] メニューをクリックして [設定] を選択するという方法でセーフ モードに入ります。 「更新とセキュリティ」を選択し、「回復」で「今すぐ再起動する」を選択し、再起動してオプションを入力した後、 - トラブルシューティング - 詳細オプション - 起動設定 -&mdash を選択します。

ワイヤレス ネットワークは、今日のデジタル世界で人々の生活に不可欠な部分となっています。ただし、個人のワイヤレス ネットワークのセキュリティを保護することが特に重要です。強力なパスワードを設定することは、WiFi ネットワークが他人にハッキングされないようにするための鍵となります。ネットワークのセキュリティを確保するために、この記事では、携帯電話を使用してルーターの WiFi パスワードを変更する方法を詳しく紹介します。 1. ルーター管理ページを開く - モバイルブラウザでルーター管理ページを開き、ルーターのデフォルトの IP アドレスを入力します。 2. 管理者のユーザー名とパスワードを入力します - アクセスするには、ログイン ページに正しい管理者のユーザー名とパスワードを入力します。 3. ワイヤレス設定ページに移動します。ルーター管理ページでワイヤレス設定ページを見つけてクリックし、そのページに入ります。 4.現在のWiを見つける

自動運転では軌道予測が重要な役割を果たしており、自動運転軌道予測とは、車両の走行過程におけるさまざまなデータを分析し、将来の車両の走行軌跡を予測することを指します。自動運転のコアモジュールとして、軌道予測の品質は下流の計画制御にとって非常に重要です。軌道予測タスクには豊富な技術スタックがあり、自動運転の動的/静的知覚、高精度地図、車線境界線、ニューラル ネットワーク アーキテクチャ (CNN&GNN&Transformer) スキルなどに精通している必要があります。始めるのは非常に困難です。多くのファンは、できるだけ早く軌道予測を始めて、落とし穴を避けたいと考えています。今日は、軌道予測に関するよくある問題と入門的な学習方法を取り上げます。関連知識の紹介 1. プレビュー用紙は整っていますか? A: まずアンケートを見てください。

インターネットの急速な発展に伴い、ワイヤレス ネットワークは私たちの生活に欠かせないものになりました。ただし、個人情報とネットワークのセキュリティを保護するために、Wi-Fi パスワードを定期的に変更することが非常に重要です。ホーム ネットワークのセキュリティをより適切に保護するために、この記事では、携帯電話を使用して WiFi パスワードを変更する方法に関する詳細なチュートリアルを紹介します。 1. WiFi パスワードの重要性を理解する WiFi パスワードは、インターネット時代において、個人情報とネットワーク セキュリティを保護するための第一の防御線です。その重要性を理解することで、パスワードを定期的に変更する必要がある理由をよりよく理解できます。 2. 電話機が Wi-Fi に接続されていることを確認します。まず、Wi-Fi パスワードを変更する前に、パスワードを変更する Wi-Fi ネットワークに電話機が接続されていることを確認します。 3. 電話機の設定メニューを開き、電話機の設定メニューに入ります。

StableDiffusion3 の論文がついに登場しました!このモデルは2週間前にリリースされ、Soraと同じDiT(DiffusionTransformer)アーキテクチャを採用しており、リリースされると大きな話題を呼びました。前バージョンと比較して、StableDiffusion3で生成される画像の品質が大幅に向上し、マルチテーマプロンプトに対応したほか、テキスト書き込み効果も向上し、文字化けが発生しなくなりました。 StabilityAI は、StableDiffusion3 はパラメータ サイズが 800M から 8B までの一連のモデルであると指摘しました。このパラメーター範囲は、モデルを多くのポータブル デバイス上で直接実行できることを意味し、AI の使用を大幅に削減します。

この記事では、間違ったパスワードの問題を解決する方法、特に BitLocker の警告に対処する際の注意の必要性について説明します。この警告は、ドライブのロックを解除するために BitLocker に間違ったパスワードを複数回入力するとトリガーされます。通常、この警告は、不正なログイン試行を制限するポリシーがシステムにあるために発生します (通常、ログイン試行は 3 回まで許可されます)。この場合、ユーザーは適切な警告メッセージを受け取ります。完全な警告メッセージは次のとおりです: 入力されたパスワードが間違っています。間違ったパスワードを入力し続けると、アカウントがロックされることに注意してください。これは、データのセキュリティを保護するためです。アカウントのロックを解除する必要がある場合は、BitLocker 回復キーを使用する必要があります。パスワードが間違っています。コンピュータにログインするときに表示される BitLocker 警告に注意してください

1. Xiaobai のワンクリック システム再インストール ツールを別のコンピュータにダウンロードしてインストールし、空の USB ディスクを挿入して USB ブート ディスクを作成します。具体的なチュートリアルについては、次を参照してください: 2. 変更する必要があるコンピュータに USB ブート ディスクを挿入します。再起動するパスワードを入力して、開始ホットキーを押します。通常、起動ホットキーは F12、F8、F9、F10、および ESC のいずれかです。次に、起動インターフェイスが表示され、USB ディスクのオプションを選択し、Enter キーを押してに入ります。 3. [1] を選択して win10x64PE を起動し、Enter キーを押して確認します。 4. デスクトップ上のパスワード変更ツールを選択し、ダブルクリックして開きます。 5. アカウント名のリストが表示されるので、パスワードを変更する必要があるアカウントを選択して開きます。 6. 以下の [パスワードの変更] コマンドをクリックし、新しいパスワードを 2 回入力し、[OK] をクリックして変更を保存します。 7. 最後に、USB フラッシュ ドライブを取り外し、コンピュータを再起動すると、正常に動作します。

ワイヤレス ネットワークは現代社会の人々の生活に不可欠な部分になっています。または、WiFi リストに保存されたパスワードを表示する必要がありますが、WiFi パスワードを忘れることもあります。この問題を解決するためにモバイル ソフトウェアが登場しました。この魔法のツールを簡単にマスターできるように、この記事ではすべての WiFi パスワードのロックをすばやく解除するのに役立つソフトウェアを紹介します。 1. 強力な WiFi パスワード ロック解除ツール - WiFi パスワード ロック解除の素晴らしい世界を探索します。 2. シンプルで使いやすいインターフェイス設計 - 便利で迅速な操作方法 3. 複数のデバイスをサポート - さまざまなデバイスのニーズを満たします 4. 自動的に更新します -常に最新の WiFi パスワードを維持します。 5. 高速 WiFi 接続 - 複数のデバイスの同時接続ニーズに簡単に対応します。
