MySQL数据库服务器 主从配置
生活随笔
收集整理的這篇文章主要介紹了
MySQL数据库服务器 主从配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
A B 為兩臺 MySQL 服務器,均開啟二進制日志,數據庫版本 MySQL 5.5 一、服務器參數 [A 服務器 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 服務器 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的數據庫服務器 二、操作步驟 # A B 服務器停止同步 STOP SLAVE; # A B 服務器清空MASTER日志 RESET MASTER; # A B 服務器清空SLAVE日志 RESET SLAVE; # A 服務器授權同步賬戶 (我們會同步一次復制數據庫文件,所以授權為192.168.1%) GRANT REPLICATION SLAVE ON *.* TO 'master_slave'@'192.168.1%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; # A 服務器鎖表(鎖表狀態下不能終止mysql進程,否則會失敗) FLUSH TABLES WITH READ LOCK;(當線上正在運行數據庫時,進行鎖表操作,數據不在寫入) # 如果使用SSH,需要重新開啟,復制數據庫文件。 tar -cvf /tmp/mysql-data.tar /www/mysql tar -xvf /tmp/mysql-data.tar -C / # 查看 A 服務器主機狀態(記錄二進制開始文件,位置) SHOW MASTER STATUS;
# B 服務器鎖表(鎖表狀態下不能終止mysql進程,否則會失敗) FLUSH TABLES WITH READ LOCK; # 修改 B 服務器配置 (修改為A服務器的主機狀態) 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 對應A 服務器show master status中的File;MASTER_LOG_POS對應A 服務器show master status中的Position 上圖箭頭所指的兩個參數如果都為yes,就代表同步成功。 # 開啟 B 服務器同步進程 START SLAVE; # 查看 B 服務器同步狀態是否正常 SHOW SLAVE STATUS; ------------------------------------------- 主從配置完畢,下面是互為主從 ------------------------------------------ 下面的屬于主主配置,一般很少會用到,可能會遇到沖突。 # 查看 B 服務器主機(記錄二進制開始文件,位置) SHOW MASTER STATUS; # 修改 A 服務器配置 ?(修改為B服務器的主機狀態) 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; # 開啟 A 服務器同步進程 START SLAVE; # 分別查看 A B 服務器同步狀態,確定是否成功 SHOW SLAVE STATUS;SHOW MASTER STATUS; # 解鎖 A B 服務器 UNLOCK TABLES; # 數據測試分別在 A B 服務器上創建表插入數據測試 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. 數據庫目錄下的master.info的內容會覆蓋命令行或my.cnf中指定的部分選項,更改配置需刪除master.info 2. my.cnf中的master配置在MySQL 6.0以后會取消,官方建議使用動態的CHANGE MASTER 3. 如果只指定ignore-db而不指定do-db。則新創建數據庫的操作也會同步。 4. 一定要stop 主數據庫服務器的防火墻,不然從服務器不能遠程訪問主服務器。 互為同步配置實例: 1. A B 互為主從同步test, 不同步mysql: 兩個數據庫配置中均設置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql 2. A B 互為主從只同步test,不同步其他數據庫,新創建的也不會同步 兩個數據庫配置中均設置:binlog-do-db=test,replicate-do-db=test 3. A B 互為主從不同步mysql, 同步其他數據庫,譬如創建的新數據庫也會同步 兩個數據庫配置中均設置:binlog-ignore-db=mysql,replicate-ignore-db=mysql 4. A B 互為主從同步所有數據庫,包括新建的數據庫 兩個數據庫配置中均不設置上述四項 分享到:
# B 服務器鎖表(鎖表狀態下不能終止mysql進程,否則會失敗) FLUSH TABLES WITH READ LOCK; # 修改 B 服務器配置 (修改為A服務器的主機狀態) 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 對應A 服務器show master status中的File;MASTER_LOG_POS對應A 服務器show master status中的Position 上圖箭頭所指的兩個參數如果都為yes,就代表同步成功。 # 開啟 B 服務器同步進程 START SLAVE; # 查看 B 服務器同步狀態是否正常 SHOW SLAVE STATUS; ------------------------------------------- 主從配置完畢,下面是互為主從 ------------------------------------------ 下面的屬于主主配置,一般很少會用到,可能會遇到沖突。 # 查看 B 服務器主機(記錄二進制開始文件,位置) SHOW MASTER STATUS; # 修改 A 服務器配置 ?(修改為B服務器的主機狀態) 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; # 開啟 A 服務器同步進程 START SLAVE; # 分別查看 A B 服務器同步狀態,確定是否成功 SHOW SLAVE STATUS;SHOW MASTER STATUS; # 解鎖 A B 服務器 UNLOCK TABLES; # 數據測試分別在 A B 服務器上創建表插入數據測試 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. 數據庫目錄下的master.info的內容會覆蓋命令行或my.cnf中指定的部分選項,更改配置需刪除master.info 2. my.cnf中的master配置在MySQL 6.0以后會取消,官方建議使用動態的CHANGE MASTER 3. 如果只指定ignore-db而不指定do-db。則新創建數據庫的操作也會同步。 4. 一定要stop 主數據庫服務器的防火墻,不然從服務器不能遠程訪問主服務器。 互為同步配置實例: 1. A B 互為主從同步test, 不同步mysql: 兩個數據庫配置中均設置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql 2. A B 互為主從只同步test,不同步其他數據庫,新創建的也不會同步 兩個數據庫配置中均設置:binlog-do-db=test,replicate-do-db=test 3. A B 互為主從不同步mysql, 同步其他數據庫,譬如創建的新數據庫也會同步 兩個數據庫配置中均設置:binlog-ignore-db=mysql,replicate-ignore-db=mysql 4. A B 互為主從同步所有數據庫,包括新建的數據庫 兩個數據庫配置中均不設置上述四項 分享到:
轉載于:https://www.cnblogs.com/fjping0606/p/4417482.html
總結
以上是生活随笔為你收集整理的MySQL数据库服务器 主从配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nodejs在服务器上运行
- 下一篇: python -- 字符串的方法及注释