MySQL数据库服务器 主从配置
生活随笔
收集整理的這篇文章主要介紹了
MySQL数据库服务器 主从配置
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
A B 為兩臺(tái) MySQL 服務(wù)器,均開(kāi)啟二進(jìn)制日志,數(shù)據(jù)庫(kù)版本 MySQL 5.5 一、服務(wù)器參數(shù) [A 服務(wù)器 192.168.1.100] server-id = 1 binlog-do-db = test binlog-ignore-db = mysql replicate-do-db = test replicate-ignore-db = mysql sync-binlog = 1 [B 服務(wù)器 192.168.1.101] server-id = 2 binlog-do-db = test binlog-ignore-db = mysql replicate-do-db = test replicate-ignore-db = mysql sync-binlog = 1 重啟A、B的數(shù)據(jù)庫(kù)服務(wù)器 二、操作步驟 # A B 服務(wù)器停止同步 STOP SLAVE; # A B 服務(wù)器清空MASTER日志 RESET MASTER; # A B 服務(wù)器清空SLAVE日志 RESET SLAVE; # A 服務(wù)器授權(quán)同步賬戶 (我們會(huì)同步一次復(fù)制數(shù)據(jù)庫(kù)文件,所以授權(quán)為192.168.1%) GRANT REPLICATION SLAVE ON *.* TO 'master_slave'@'192.168.1%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; # A 服務(wù)器鎖表(鎖表狀態(tài)下不能終止mysql進(jìn)程,否則會(huì)失敗) FLUSH TABLES WITH READ LOCK;(當(dāng)線上正在運(yùn)行數(shù)據(jù)庫(kù)時(shí),進(jìn)行鎖表操作,數(shù)據(jù)不在寫入) # 如果使用SSH,需要重新開(kāi)啟,復(fù)制數(shù)據(jù)庫(kù)文件。 tar -cvf /tmp/mysql-data.tar /www/mysql tar -xvf /tmp/mysql-data.tar -C / # 查看 A 服務(wù)器主機(jī)狀態(tài)(記錄二進(jìn)制開(kāi)始文件,位置) SHOW MASTER STATUS;
# B 服務(wù)器鎖表(鎖表狀態(tài)下不能終止mysql進(jìn)程,否則會(huì)失敗) FLUSH TABLES WITH READ LOCK; # 修改 B 服務(wù)器配置 (修改為A服務(wù)器的主機(jī)狀態(tài)) CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_USER='master_slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=106; MASTER_LOG_FILE 對(duì)應(yīng)A 服務(wù)器show master status中的File;MASTER_LOG_POS對(duì)應(yīng)A 服務(wù)器show master status中的Position 上圖箭頭所指的兩個(gè)參數(shù)如果都為yes,就代表同步成功。 # 開(kāi)啟 B 服務(wù)器同步進(jìn)程 START SLAVE; # 查看 B 服務(wù)器同步狀態(tài)是否正常 SHOW SLAVE STATUS; ------------------------------------------- 主從配置完畢,下面是互為主從 ------------------------------------------ 下面的屬于主主配置,一般很少會(huì)用到,可能會(huì)遇到?jīng)_突。 # 查看 B 服務(wù)器主機(jī)(記錄二進(jìn)制開(kāi)始文件,位置) SHOW MASTER STATUS; # 修改 A 服務(wù)器配置 ?(修改為B服務(wù)器的主機(jī)狀態(tài)) CHANGE MASTER TO MASTER_HOST='192.168.1.101',MASTER_USER='master_slave',MASTER_PASSWORD='master_slave123!@#',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=106; # 開(kāi)啟 A 服務(wù)器同步進(jìn)程 START SLAVE; # 分別查看 A B 服務(wù)器同步狀態(tài),確定是否成功 SHOW SLAVE STATUS;SHOW MASTER STATUS; # 解鎖 A B 服務(wù)器 UNLOCK TABLES; # 數(shù)據(jù)測(cè)試分別在 A B 服務(wù)器上創(chuàng)建表插入數(shù)據(jù)測(cè)試 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `value` varchar(100) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; INSERT INTO `test` VALUES ('1', 'Hello'); 注意: 1. 數(shù)據(jù)庫(kù)目錄下的master.info的內(nèi)容會(huì)覆蓋命令行或my.cnf中指定的部分選項(xiàng),更改配置需刪除master.info 2. my.cnf中的master配置在MySQL 6.0以后會(huì)取消,官方建議使用動(dòng)態(tài)的CHANGE MASTER 3. 如果只指定ignore-db而不指定do-db。則新創(chuàng)建數(shù)據(jù)庫(kù)的操作也會(huì)同步。 4. 一定要stop 主數(shù)據(jù)庫(kù)服務(wù)器的防火墻,不然從服務(wù)器不能遠(yuǎn)程訪問(wèn)主服務(wù)器。 互為同步配置實(shí)例: 1. A B 互為主從同步test, 不同步mysql: 兩個(gè)數(shù)據(jù)庫(kù)配置中均設(shè)置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql 2. A B 互為主從只同步test,不同步其他數(shù)據(jù)庫(kù),新創(chuàng)建的也不會(huì)同步 兩個(gè)數(shù)據(jù)庫(kù)配置中均設(shè)置:binlog-do-db=test,replicate-do-db=test 3. A B 互為主從不同步mysql, 同步其他數(shù)據(jù)庫(kù),譬如創(chuàng)建的新數(shù)據(jù)庫(kù)也會(huì)同步 兩個(gè)數(shù)據(jù)庫(kù)配置中均設(shè)置:binlog-ignore-db=mysql,replicate-ignore-db=mysql 4. A B 互為主從同步所有數(shù)據(jù)庫(kù),包括新建的數(shù)據(jù)庫(kù) 兩個(gè)數(shù)據(jù)庫(kù)配置中均不設(shè)置上述四項(xiàng) 分享到:
# B 服務(wù)器鎖表(鎖表狀態(tài)下不能終止mysql進(jìn)程,否則會(huì)失敗) FLUSH TABLES WITH READ LOCK; # 修改 B 服務(wù)器配置 (修改為A服務(wù)器的主機(jī)狀態(tài)) CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_USER='master_slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=106; MASTER_LOG_FILE 對(duì)應(yīng)A 服務(wù)器show master status中的File;MASTER_LOG_POS對(duì)應(yīng)A 服務(wù)器show master status中的Position 上圖箭頭所指的兩個(gè)參數(shù)如果都為yes,就代表同步成功。 # 開(kāi)啟 B 服務(wù)器同步進(jìn)程 START SLAVE; # 查看 B 服務(wù)器同步狀態(tài)是否正常 SHOW SLAVE STATUS; ------------------------------------------- 主從配置完畢,下面是互為主從 ------------------------------------------ 下面的屬于主主配置,一般很少會(huì)用到,可能會(huì)遇到?jīng)_突。 # 查看 B 服務(wù)器主機(jī)(記錄二進(jìn)制開(kāi)始文件,位置) SHOW MASTER STATUS; # 修改 A 服務(wù)器配置 ?(修改為B服務(wù)器的主機(jī)狀態(tài)) CHANGE MASTER TO MASTER_HOST='192.168.1.101',MASTER_USER='master_slave',MASTER_PASSWORD='master_slave123!@#',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=106; # 開(kāi)啟 A 服務(wù)器同步進(jìn)程 START SLAVE; # 分別查看 A B 服務(wù)器同步狀態(tài),確定是否成功 SHOW SLAVE STATUS;SHOW MASTER STATUS; # 解鎖 A B 服務(wù)器 UNLOCK TABLES; # 數(shù)據(jù)測(cè)試分別在 A B 服務(wù)器上創(chuàng)建表插入數(shù)據(jù)測(cè)試 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `value` varchar(100) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; INSERT INTO `test` VALUES ('1', 'Hello'); 注意: 1. 數(shù)據(jù)庫(kù)目錄下的master.info的內(nèi)容會(huì)覆蓋命令行或my.cnf中指定的部分選項(xiàng),更改配置需刪除master.info 2. my.cnf中的master配置在MySQL 6.0以后會(huì)取消,官方建議使用動(dòng)態(tài)的CHANGE MASTER 3. 如果只指定ignore-db而不指定do-db。則新創(chuàng)建數(shù)據(jù)庫(kù)的操作也會(huì)同步。 4. 一定要stop 主數(shù)據(jù)庫(kù)服務(wù)器的防火墻,不然從服務(wù)器不能遠(yuǎn)程訪問(wèn)主服務(wù)器。 互為同步配置實(shí)例: 1. A B 互為主從同步test, 不同步mysql: 兩個(gè)數(shù)據(jù)庫(kù)配置中均設(shè)置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql 2. A B 互為主從只同步test,不同步其他數(shù)據(jù)庫(kù),新創(chuàng)建的也不會(huì)同步 兩個(gè)數(shù)據(jù)庫(kù)配置中均設(shè)置:binlog-do-db=test,replicate-do-db=test 3. A B 互為主從不同步mysql, 同步其他數(shù)據(jù)庫(kù),譬如創(chuàng)建的新數(shù)據(jù)庫(kù)也會(huì)同步 兩個(gè)數(shù)據(jù)庫(kù)配置中均設(shè)置:binlog-ignore-db=mysql,replicate-ignore-db=mysql 4. A B 互為主從同步所有數(shù)據(jù)庫(kù),包括新建的數(shù)據(jù)庫(kù) 兩個(gè)數(shù)據(jù)庫(kù)配置中均不設(shè)置上述四項(xiàng) 分享到:
轉(zhuǎn)載于:https://www.cnblogs.com/fjping0606/p/4417482.html
總結(jié)
以上是生活随笔為你收集整理的MySQL数据库服务器 主从配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: nodejs在服务器上运行
- 下一篇: Redis:安装、配置、操作和简单代码实