Mysql5.6 Master+Master
Mysql5.6 Master+Master
環境:
作業系統:rehat 6.0
MySQL版本:5.6
主伺服器IP:192.168.0.250
從伺服器IP:192.168.0.252
實現目標:主從兩臺機器MySQL資料雙向同步
資料庫準備工作
分別A,B在兩臺伺服器上執行鎖表操作:
mysql>FLUSH TABLES WITH READ LOCK"
A點
將需要配置同步的資料庫Dump出來:
shell>mysqldump -uroot -p mysql > /tmp/mysql.sql
將dump出來的檔案複製到另外一臺伺服器上,方法隨意。我用scp
shell>scp -P 22000 /tmp/mysql.sql root@192.168.0.252ter:/data
B
點
如果這臺伺服器已經建好庫了,那麼可以直接導資料:
shell>mysql -uroot -p mysql < /data/mysql.sql
如果還沒有該庫,那麼再導資料之前我們需要先建庫。
CREATE DATABASE "databasename
最後我們需要在兩臺伺服器上別分建立一個賬號,用來同步資料。
shell>mysql -u root -p
A點
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT, SUPER ON *.* TO 'BEIFEN'@'192.168.0.252' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
B點
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT, SUPER ON *.* TO 'BEIFEN'@'192.168.0.250' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
修改my.cnf
首先,我們需求修改bind-address選項。保證mysql監聽在一個可以被對方訪問到的網口上,當然如果你監聽在0.0.0.0上就不會有這個問題了,但是這麼做通常會帶來一些安全問題。我一般會讓它監聽內網地址
bind-address = 192.168.0.250(主伺服器)
bind-address = 192.168.0.252(從伺服器)
A點
將以下內容加到主伺服器的my.cnf裡
server-id = 250
log_bin = /data/mysql-bin.log
relay-log = mysql-relay
log_slave_updates = 1
binlog-ignore-db = mysql,information_schema
binlog_format = mixed
auto-increment-increment = 2
auto-increment-offset = 1
server-id伺服器標識,我們必須給兩臺機器分配不同的server-id.
log-bin,開啟mysql的binlog(二進位制日誌).開啟後mysql會將所有的修改操作記錄到binlog中,可以用mysqlbinlog工具檢視,裡面都是一條一條的sql語句。slave I/O會讀取主機的binlog,然後把讀取到的內容在slave上執行,這就是mysql主從同步的基本原理。
binlog-do-db,設定哪些資料庫寫binlog。
binlog-ingore-db,設定哪些資料庫不寫binlog。
透過這兩個選項我們就可以設定哪些庫同步哪些庫不同步。
auto-increment-incrment和auto-increment-offset這兩個選項的設定是為了防止2臺伺服器互相複製產生關鍵欄位的衝突。如果他們用不同的便宜,比如一個按照1,3,5,7增加而另外一臺按照那個2,4,6,8增加。auto-incrment-increment=2自動增加的欄位每次步進是2,auto-increment-offset=1自動增加的欄位的初始值是1
B點
將以下內容新增到從伺服器
server-id = 252
log_bin = /data/mysql-bin.log
relay-log = mysql-relay
log_slave_updates = 1
binlog-ignore-db = mysql,information_schema
binlog_format = mixed
auto-increment-increment = 2
auto-increment-offset = 2
注意這裡auto_increment_offset選項的值跟主伺服器上不一樣。
分別重啟A,B mysql服務
[root@hisdg1 ~]# service mysql restart
或者
shell>mysql -u root -p -e "RESET MASTER"
A點
配置主機到從機同步
記錄主機的master狀態
mysql> show master status\G
*************************** 1. row ***************************
File: log-bin.log.000002
Position: 2842
Binlog_Do_DB:
Binlog_Ignore_DB: mysql,test
1 row in set (0.00 sec)
根據主機顯示結果在從機上配置master引數
mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.252',MASTER_USER='BEIFEN',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=2842;
其中MASTER_HOST、MASTER_USER、MASTER_PASSWORD這些引數可以在my.cnf裡。但是我個人更喜歡在mysql裡配置,一方面安全點,另一方面MASTER_LOG_FILE和MASTER_LOG_POS這些引數還是得在mysql裡面配置,不如一塊在myql裡配置來的方便。
B點
配置從機到主機同步(上一節的步驟反過來執行一遍)。
記錄從機上的master狀態
mysql> show master status\G
*************************** 1. row ***************************
File: log-bin.log.000008
Position: 12131228
Binlog_Do_DB: databasename
Binlog_Ignore_DB: mysql,test
1 row in set (0.00 sec)
根據從機顯示的結果在主機上配置master引數
mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.250',MASTER_USER='rsync',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=12131228;
分別開啟A,B slave執行緒
mysql>start slave;
解鎖
mysql>unlock tables;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29065182/viewspace-1329202/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql5.6備份MySql
- CanalBinlogChange(mysql5.6)GCMySql
- Mysql5.6 自動化部署MySql
- Linux安裝Mysql5.6LinuxMySql
- MySQL5.6複製原理圖MySql
- MySQL5.6 create table原理分析MySql
- LAMP環境搭建-MySQL5.6LAMPMySql
- mysql5.6的安裝(cmake)MySql
- Docker Centos安裝Mysql5.6DockerCentOSMySql
- Mysql5.6主從複製MySql
- mysql5.6複製新特性MySql
- MySQL5.6 PERFORMANCE_SCHEMA 說明MySqlORM
- mysql5.6 mysqldump備份報錯MySql
- Install mysql5.6 on CentOS5.5MySqlCentOS
- mysql5.6預設有幾個資料庫?mysql5.6初始有幾個資料庫?MySql資料庫
- Linux上yum安裝mysql5.6LinuxMySql
- centos7 mysql5.6升級5.7CentOSMySql
- 關於mysql5.6 的排序問題.MySql排序
- mysql5.6主從引數詳解MySql
- MySQL5.6 windows msi安裝介紹MySqlWindows
- Windows下Mysql5.6升級到5.7WindowsMySql
- [MySQL5.6]PerformanceSchema之PS配置項(1)MySqlORM
- CentOS6.5上安裝MySQL5.6CentOSMySql
- MySQL5.6 GTID新特性實踐MySql
- MySQL5.6 新效能之二(exchange partitions)MySql
- MySQL5.6 linux原始碼安裝MySqlLinux原始碼
- ubuntu mysql5.6二進位制安裝UbuntuMySql
- MySQL5.6之use_index_extensions優化MySqlIndex優化
- CentOS6.5下MySQL5.6的安裝CentOSMySql
- MySQL之——RPM方式安裝MySQL5.6MySql
- 【MySQL】MySQL5.6新特性之Batched Key AccessMySqlBAT
- 【MySQL】MySQL5.6新特性之crash-safeMySql
- Linux下MySQL5.6原始碼安裝LinuxMySql原始碼
- MySQL5.6新特性之Multi-Range ReadMySql
- CentOS 6 下RPM方式安裝MySQL5.6CentOSMySql
- linux 環境RPM 安裝MYSQL5.6LinuxMySql
- MySQL5.6 audit審計外掛安裝初探MySql
- MySQL5.6版本的新特性介紹MySql