射精一区欧美专区|国产精品66xx|亚洲视频一区导航|日韩欧美人妻精品中文|超碰婷婷xxnx|日韩无码综合激情|特级黄片一区二区|四虎日韩成人A√|久久精品内谢片|亚洲成a人无码电影

您現(xiàn)在的位置:首頁 > IT認(rèn)證 > Linux認(rèn)證 >

Linux數(shù)據(jù)庫:MySQL主從同步設(shè)置和同步錯誤處理


注意:

  1、兩臺服務(wù)器數(shù)據(jù)庫版本應(yīng)一致,如果不一致,從服務(wù)器的版本要高于主服務(wù)器的版本。

  2、MySQL進(jìn)行實時數(shù)據(jù)同步,本質(zhì)上是將mysql動作同步到Slave服務(wù)器,而不是對實質(zhì)的數(shù)據(jù)進(jìn)行同步。所以同步開始前,兩端的數(shù)據(jù)要保持一致。

  Master服務(wù)器:192.168.0.1

  Slave服務(wù)器:192.168.0.2

  ===  Master停止運行時,Mysql同步配置===

  一、主服務(wù)器設(shè)置:

  1、修改/etc/f

  在[mysqld]區(qū)段內(nèi)加入?yún)?shù)

  server-id=1

  log-bin

  sql-bin-update-same

  2、為Slave服務(wù)器創(chuàng)建連接賬戶,用于同步

  mysql>GRANT FILE ON *.* TO backup@192.168.1.2 IDENTIFIED BY ‘1234’;

  3、重啟mysql服務(wù):service mysqld restart

  此時因為有加入log-bin參數(shù),因此開始有index產(chǎn)生了,在/var/lib/mysql目錄下有.index檔案紀(jì)錄數(shù)據(jù)庫的異動log. 二、Slave服務(wù)器設(shè)置:

  1、修改/etc/f

  在[mysqld]區(qū)段加入

  master-host=192.168.0.1

  master-user=backup

  master-password=1234

  master-port=3306

  server-id=2

  master-connect-retry=60 預(yù)設(shè)重試間隔60秒

  replicate-do-db=vbb 告訴slave只做vbb數(shù)據(jù)庫的更新

  replicate-ignore-db=mysql #不同步的數(shù)據(jù)庫

  replicate-ignore-table=ers #不同步vbb數(shù)據(jù)庫的users表

  log-slave-updates=1

  2、重啟Slave服務(wù)器mysql服務(wù)

  三、Slave服務(wù)器從主服務(wù)器讀取數(shù)據(jù),并開啟同步

  1、mysql>FLUSH TABLES WITH READ LOCK; #首先執(zhí)行這個,對主服務(wù)器加鎖

  2、mysql>LOAD DATA FROM MASTER  #語句的話,必須授予全局的 FILE 和 SELECT 權(quán)限,僅針對MyISAM引擎,對InnoDB表無用。

  3、如果數(shù)據(jù)是InnoDB的,需要在服務(wù)器上將表結(jié)構(gòu)和數(shù)據(jù)分開導(dǎo)出,然后拷貝至Slave服務(wù)器。

  導(dǎo)出整個數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù):mysqldump -u用戶名 -p密碼 -h主機(jī) database > filename.sql

  導(dǎo)出某個表的數(shù)據(jù)和結(jié)構(gòu):mysqldump -u用戶名 -p密碼 -h主機(jī) database table > filename.sql

  只導(dǎo)出數(shù)據(jù)庫中表的數(shù)據(jù):mysqldump -u用戶名 -p密碼 -h主機(jī) -T database table > filename.sql

  只導(dǎo)出數(shù)據(jù)庫中表的結(jié)構(gòu):mysqldump -u用戶名 -p密碼 -h主機(jī) -d database table > filename.sql 4、確保兩端數(shù)據(jù)一致后,開啟同步

  mysql>slave start;

  5、查看Slave服務(wù)器同步信息

  mysql>show slave statusG;

  可以看到,Slave_IO_Running 和 Slave_SQL_Running 兩列的值都為 "Yes",這表明 Slave 的 I/O 和 SQL 線程都在正常運行。

  6、對Master服務(wù)器釋放鎖

  mysql>UNLOCK TABLES;

  === Master還在運行中,如何在不停止它的情況下配置Slave ===

  注:主從服務(wù)器的配置同上。

  1、首先在Master服務(wù)器查看同步日志信息

  mysql>show master status;

  +------------------+----------+--------------+------------------+

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

  +------------------+----------+--------------+------------------+

  | mysql-bin.000054 | 680 |                     | mysql |

  +------------------+----------+--------------+------------------+

  可以看到日志文件是:mysql-bin.000054,同步點是680

  2、在Slave服務(wù)器配置同步

  mysql>slave stop; # mysql默認(rèn)同步開始

  mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='backup',MASTER_PASSWORD='1234',MASTER_LOG_FILE='mysql-bin.000054',MASTER_LOG_POS=690;  #配置同步點

  mysql>slave start; #開啟同步

  3、查看同步信息

  mysql>show slave statusG;

  可以看到,Slave_IO_Running 和 Slave_SQL_Running 兩列的值都為 "Yes",這表明 Slave 的 I/O 和 SQL 線程都在正常運行。

  4、配置完成

  MYSQL服務(wù)器復(fù)制配置

  這是根據(jù)我之前看的MYSQL復(fù)制的文檔然后自己親自實驗的過程.配置的功能比較簡單.

  環(huán)境:

  主服務(wù)器:

  redhat9

  mysql 5.0.16 機(jī)器名:dbmaster

  IP:192.168.0.111

  從服務(wù)器:

  redhat9

  mysql5.0.16

  機(jī)器名:dbslave

  IP:192.168.0.100

  配置過程:

  整個過程與MYSQL文檔中的復(fù)制設(shè)置步驟一一對應(yīng),只是具體化和標(biāo)明了一些要注意的地方..如果有興趣的朋友可以對照閱讀,會更加理解.

  1.確認(rèn)兩臺服務(wù)器的MYSQL版本,用mysql –V命令查看

  注意: MySQL不同版本之間的(二進(jìn)制日志)binlog格式可能會不一樣,所以最好采用相同的版本.如果達(dá)不到要求,必須要保證Master的版本不能高于Slave版本

  2.在主服務(wù)器上為服務(wù)器設(shè)置一個連接賬戶。該賬戶必須授予REPLICATION SLAVE權(quán)限。我為了簡單沒做這一步,直接用root賬戶.

  正常的步驟是:

  假定你的域為,想要創(chuàng)建用戶名為repl的一個賬戶,從服務(wù)器可以使用該賬戶從你的域內(nèi)的任何主機(jī)使用密碼slavepass來訪問主服務(wù)器。要創(chuàng)建該 賬戶,可使用GRANT語句:

  mysql> GRANT REPLICATION SLAVE ON *.*

  ->TO 'repl'@'%.' IDENTIFIED BY 'slavepass';

  如果想要在Slave上有權(quán)限執(zhí)行 "LOAD TABLE FROM MASTER" 或 "LOAD DATA FROM MASTER" 語句的話,必須授予全局的 FILE 和 SELECT 權(quán)限:

  mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO  'repl'@'%.' IDENTIFIED BY 'rep';

  3.在主服務(wù)器上執(zhí)行FLUSH TABLES WITH READ LOCK語句來刷新表,同時阻止寫操作.:

  mysql> FLUSH TABLES WITH READ LOCK;

  然后對主服務(wù)器上的數(shù)據(jù)進(jìn)行快照。(此時不要退出mysql的提示符,退出的話就解鎖了.新開一個ssh窗口進(jìn)行下面所說的歸檔打包操作)

相關(guān)文章

無相關(guān)信息
更新時間2022-09-16 10:07:22【至頂部↑】
聯(lián)系我們 | 郵件: | 客服熱線電話:4008816886(QQ同號) | 

付款方式留言簿投訴中心網(wǎng)站糾錯二維碼手機(jī)版

電話:
付款方式   |   給我留言   |   我要糾錯   |   聯(lián)系我們