mysql主从备份_MySQL
bitsCN.com
一、准备服务器
由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。
我们假设主服务器(以下简称Master)和从服务器(以下简称Slave)的版本都是5.0.63。
假设同步Master的主机名为:A(IP:192.168.0.1),Slave主机名为:B(IP:192.168.0.2),2个MySQL的basedir目录都是/usr/local/mysql,datadir都是:/var/mysql。
二、设置同步服务器
1、设置同步Master
修改 my.cnf 文件,在
# Replication Master Server (default)
# binary logging is required for replication
添加如下内容:

- log-bin=mysql-bin
- server-id = 1
- binlog-do-db=test
- binlog-ignore-db=mysql
重启MySQL,创建一个MySQL帐号为同步专用

- GRANT REPLICATION SLAVE,RELOAD,SUPER, ON *.* TO backup@192.168.0.2 IDENTIFIED BY 'slavepass';
- FLUSH PRIVILEGES ;
复制数据库:

- FLUSH TABLES WITH READ LOCK;
锁定表清除写入操作。

- SHOW MASTER STATUS;
File列显示日志名,而Position显示偏移量,记录备用。
备份数据库,建议对于MYI存储的MYSQL采用直接文件复制,效率会好很多。备份完解锁。

- UNLOCK TABLES;
备份后对于从服务器导入数据库
以上复制过程也可以用mysqldump,如果数据库在提供服务,必须加入--lock-all-tables以保证数据为同一时间的。加入--master-data=1在dump时会记录binlog名称和偏移值,以CHANGE MASTER TO形式存在文件中,这样导入slave后不用自己设置master的binlog文件和偏移值了。
2、设置同步Slave
修改my.cnf文件,添加

- server-id = 2
- master-host = 192.168.0.1
- master-user = backup
- master-password = slavepass
- master-port = 3306
- replicate-ignore-db=mysql
- replicate-do-db=test
server-id不能与master相同
重启MySQL
3、启动同步
在主服务器A MySQL命令符下:

- show master status;
显示(当然这个是我机器的情况,你的不可能跟我一样哈,只是个例子):
+------------------+----------+-------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-------------------+------------------+
| mysql-bin.000028 | 313361 | test | mysql |
+------------------+----------+-------------------+------------------+
在从服务器B MySQL命令符下:

- slave stop;
- MySQL> CHANGE MASTER TO
- -> MASTER_HOST='master_host_name',
- -> MASTER_USER='replication_user_name',
- -> MASTER_PASSWORD='replication_password',
- -> MASTER_LOG_FILE='recorded_log_file_name',
- -> MASTER_LOG_POS=recorded_log_position;
- slave start;
用show slave status;看一下从服务器的同步情况
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都是yes,那代表已经在同步
往表里面写点数据测试一下看是否同步成功,如果不成功,绝对不是你的RP问题,再检查一下操作步骤!
4、设置双向同步
其实也就是A->B单向同步的反向操作!双向同步,就这么简单啦!
三、同步错误处理
发现mysql slave服务器经常因为一些特殊字符或者符号产生的更新语句报错,整个同步也会因此而卡在那,最初的办法只是手动去出错的机器,执行下面三条sql语句,跳过错误即可。

- slave stop;
- set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
- slave start;
四、备份底层知识
1、binlog
mysql的binlog记录了数据库的所有操作,比如我有个新的数据库bbs,建立数据库时候也开启了binlog,那么mysql会在var目录生成个mysql-bin.000001,这个文件记录了对数据库bbs的所有操作sql命令。每个binlog文件默认1G,超过了会自动换到mysql-bin.000002。mysql-bin.index记录了所有mysql-bin的名字。
mysql-bin.index示例:

- ./mysql-bin.000001
- ./mysql-bin.000002
- ./mysql-bin.000003
- ./mysql-bin.000004
- ./mysql-bin.000005
- ./mysql-bin.000006
- ./mysql-bin.000007
- ./mysql-bin.000008
- ./mysql-bin.000009
- ./mysql-bin.000010
数据主从备份其实就是master把binlog发给slave,然后slave在本地执行这些sql语句。
2、master.info
master.info文件存在于slave的var目录,记录了master的信息。
master.info示例:

- 15
- mysql-bin.000105 #master的binlog文件
- 498027148 #偏移值
- 192.168.0.1
- backup
- slavepass
- 3306
- 60
- 0
- 0
3、relay-log.info
relay-log.info文件存在于slave的var目录,记录了slave执行binlog文件情况的信息。
relay-log.info示例:

- ./lab-relay-bin.000050 #slave存放master的binlog的文件
- 210263408 #slave偏移值
- mysql-bin.000105
- 498027148
- 2
从master的mysql-bin.000105发送信息写到lab-relay-bin.000050里,slave再从lab-relay-bin.000050取sql语句执行。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

解決方法:1、檢查電驢設置,確保已輸入正確的伺服器位址和連接埠號碼;2、檢查網路連接,確保電腦已連接到互聯網,並重置路由器;3、檢查伺服器是否在線,如果您的設定和網路連線都沒有問題,則需要檢查伺服器是否在線上;4、更新電驢版本,造訪電驢官方網站,下載最新版本的電驢軟體;5、尋求協助。

RPC伺服器不可用進不了桌面怎麼辦近年來,電腦和網路已經深入到我們的生活中的各個角落。作為一種集中運算和資源共享的技術,遠端過程呼叫(RPC)在網路通訊中起著至關重要的作用。然而,有時我們可能會遇到RPC伺服器無法使用的情況,導致無法進入桌面。本文將介紹一些可能導致此問題的原因,並提供解決方案。首先,我們需要了解RPC伺服器不可用的原因。 RPC伺服器是一種

身為LINUX用戶,我們經常需要在CentOS上安裝各種軟體和伺服器,本文將詳細介紹如何在CentOS上安裝fuse和建置伺服器的過程,幫助您順利完成相關操作。 CentOS安裝fuseFuse是一個使用者空間檔案系統框架,允許非特權使用者透過自訂檔案系統實現對檔案系統的存取和操作,在CentOS上安裝fuse非常簡單,只需按照以下步驟操作:1.開啟終端,以root用戶登入。 2.使用下列指令安裝fuse軟體包:```yuminstallfuse3.確認安裝過程中的提示,輸入`y`繼續。 4.安裝完

DHCP中繼的作用是將接收到的DHCP封包轉送到網路上的另一個DHCP伺服器,即使這兩台伺服器位於不同的子網路中。透過使用DHCP中繼,您可以實現在網路中心部署集中式的DHCP伺服器,並利用它為所有網路子網路/VLAN動態分配IP位址。 Dnsmasq是一種常用的DNS和DHCP協定伺服器,可設定為DHCP中繼伺服器,以協助管理網路中的動態主機設定。在本文中,我們將向您展示如何將dnsmasq配置為DHCP中繼伺服器。內容主題:網路拓樸在DHCP中繼上設定靜態IP位址集中式DHCP伺服器上的D

在網路資料傳輸中,IP代理伺服器扮演著重要的角色,能夠幫助使用者隱藏真實IP位址,保護隱私、提升存取速度等。在本篇文章中,將介紹如何用PHP建立IP代理伺服器的最佳實務指南,並提供具體的程式碼範例。什麼是IP代理伺服器? IP代理伺服器是位於使用者與目標伺服器之間的中間伺服器,它可作為使用者與目標伺服器之間的中轉站,將使用者的請求和回應轉發。透過使用IP代理伺服器

epic伺服器離線進不了遊戲怎麼辦?這個問題想必很多小夥伴都有遇過,出現了此提示就是導致正版的遊戲無法啟動,那麼出現這個問題一般是網絡和安全軟體幹擾導致的,那麼應該怎麼解決呢,本期小編就來和大夥分享解決方法,希望今日的軟體教學可以幫助各位解決問題。 epic伺服器離線進不了遊戲怎麼辦: 1、很可能是被安全軟體幹擾了,將遊戲平台和安全軟體關閉在重啟。 2、其次就是網路波動過大,嘗試重啟一次路由器,看看是否有效,如果條件可以的話,可以嘗試使用5g移動網絡來進行操作。 3、然後有可能是更

二進位演算法是一種基於二進制數的運算方法,其基本運算包括加法、減法、乘法和除法。除了基本運算外,二進位演算法還包括邏輯運算、位移運算等操作。邏輯運算包括與、或、非等操作,位移運算包括左移和右移操作。這些操作都有對應的規則和操作數的要求。

如何在伺服器上安裝PHPFFmpeg擴充功能?在伺服器上安裝PHPFFmpeg擴充功能可以幫助我們在PHP專案中處理音視訊文件,實現音視訊文件的編解碼、剪輯、處理等功能。本文將介紹如何在伺服器上安裝PHPFFmpeg擴展,以及具體的程式碼範例。首先,我們需要確保伺服器上已經安裝了PHP以及FFmpeg。如果沒有安裝FFmpeg,可以依照下列步驟安裝FFmpe
