程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql主從和主主模式

mysql主從和主主模式

編輯:MySQL綜合教程

mysql 復制的實現機制
1)首先主mysql把操作語句保存在bin-log中
2)從服務器啟動一個進程或線程向主mysql發起請求
3)從mysql 把主mysql的bin-log中的操作語句復制的從mysql的relay-log中
4)在從上執行這些操作語句
配置
主mysql 這裡主要介紹要改變的內容(主從就是從各自為主的獨立模式改變過來的)
1)在/etc/my.cnf 添加或修改如下內容
bin-log = mysql.bin-log     #定義bin-log的文件名   (默認保存在數據目錄下)
bin-log-index = mysql.bin-log.index    #定義bin-log-index的文件名
binlog-format = mixed    #定義binlog的格式
server-id = 1      #一定要確保主mysql的server-id 小於從mysql的server-id
2)啟動mysql  和配置 
#service mysqld start
#mysql       #進入mysql
#set password for root@‘localhost’=password(‘mima’);
#set password for root@‘127.0.0.1’=password(‘mima’);
#grant replication slave,replication client on *.* to username@'ip' identified by 'mima';   #賦予username 擁有復制的權限
#flush privileges;
#show master status;    #查看主mysql的狀態
從mysql 
1)在/etc/my.cnf 添加或修改如下內容
relay-log = mysql.relay-log     #定義relay-log的文件名   (默認保存在數據目錄下)
relay-log-index = mysql.relay-log.index    #定義relay-log-index的文件名
server-id = 11      #一定要大於主mysql的server-id
2)啟動mysql  和配置 
#service mysqld start
#mysql       #進入mysql
#set password for root@‘localhost’=password(‘mima’);
#set password for root@‘127.0.0.1’=password(‘mima’);
#flush privileges;
#change master to master_host='master_ip',master_user='username',master_password='mima';
      #鏈接主mysql
#start slave;
#show slave status;
測試
在主mysql上建立一個數據庫或表,查看從mysql是否自動‘復制’的過來
 
主主 的模式其實就是兩邊都是主,同時互為主從,可以簡單的理解為把主從的配置文件整合一下就行了~~
主主模式有一個最大的問題就是當主從都同時向同一張表中寫數據時,如果對應的id是自動增加,這是就有了嚴重的問題,為了解決這個問題,需要設定低端不同的起始值,並指定自動增加的變量為2。
 
 
 
作者“殘雪”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved