国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql主主復制配備

2024-07-24 12:35:15
字體:
來源:轉載
供稿:網友
  在主主復制結構中,兩臺服務器的任何一臺上面的數據庫存發生了改變都會同步到另一臺服務器上,這樣兩臺服務器互為主從,并且都能向外提供服務。配置的時候需要注意:主鍵重復,server-id不能重復。
  1.新建數據庫
  Ubuntu16.04,開啟兩個虛擬機。
  配置前,兩個mysql分別新建一個數據庫,保證的test數據庫的數據一致
  create database test default character set utf8 default collate utf8_general_ci;
  2.修改配置文件
  vim /etc/mysql/mysql.conf.d/mysqld.cnf
  服務器A(192.168.8.129)配置如下
  bind-address = 0.0.0.0
  log_bin = /var/log/mysql/mysql-bin.log #開啟二進制日志
  server-id = 1 #任意自然數n,只要保證兩臺MySQL主機不重復即可
  expire-logs-days = 100
  replicate-do-db = test #要同步的數據庫,默認所有庫
  binlog-ignore-db = mysql #忽略mysql庫
  binlog-ignore-db = information_schema #忽略information_schema庫
  auto-increment-increment = 2 #步進值,有n臺主MySQL就填n
  auto-increment-offset = 1 #起始值。第n臺主MySQL,此時為第1主MySQL
 
  服務器B(192.168.8.131)配置
  bind-address = 0.0.0.0
  log_bin = /var/log/mysql/mysql-bin.log
  server-id = 2
  expire-logs-days = 100
  replicate-do-db = test
  binlog-ignore-db = mysql
  binlog-ignore-db = information_schema
  auto-increment-increment = 2
  auto-increment-offset = 2 #起始值,第2臺主MySQL
  二者只有server-id不同和 auto-increment- offset不同
  auto-increment-offset是用來設定數據庫中自動增長的起點的,兩個服務器都設定了一次自動增長值2,所以它們的起點必須得不同,這樣才能避免兩臺服務器數據同步時出現主鍵沖突
  replicate-do-db 指定同步的數據庫,我們只在兩臺服務器間同步test數據庫。auto-increment-increment的值應設為整個結構中服務器的總數,本例用到兩臺服務器,所以值設為2
  3.重啟mysql服務
  /etc/init.d/mysql restart
  4.創建共享用戶
  創建一個可以在另一臺主機上登錄的MySQL用戶repl
  看是否有mysql中是否有repl這個用戶
  use mysql;
  select user from user;
 
  若沒有的話,新建用戶
  create user 'repl'@'%' IDENTIFIED BY 'passwd';
  grant replication slave on . to 'repl'@'%';
  flush privileges;
  查看repl用戶的權限
  show grants for 'repl'@'%';
 
  5.測試是否能夠遠程登錄
  在服務器A上(192.168.8.129)
  mysql -h 192.168.8.131 -u repl –p
  輸入口令jvkpxdYrlz
  若成功,則繼續下一步
  若失敗,檢查mysqld.cnf文件中的配置,可能因為bind-address=127.0.0.1導致,使得僅允許本機訪問。
 
  分別查看二進制日志名和位置
  show master status;
 
  相互授權用戶
  在兩臺服務上分別先停止slave
  stop slave;
  在服務器A上(192.168.8.129)
  change master to MASTER_HOST='192.168.8.131',MASTER_USER='repl', MASTER_PASSWORD= 'passwd', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=154;
  在服務器B上(192.168.8.131)
  change master to MASTER_HOST='192.168.8.129',MASTER_USER='repl', MASTER_PASSWORD= 'passwd', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=154;
  再啟動slave
  start slave;
  8.查看slave狀態
  show slave status /G;
 
  可能出現的情況:
  (1) 當配置完成Slave_IO_Running、Slave_SQL_Running不全為YES時,show slave status/G信息中有錯誤提示,可根據錯誤提示進行更正。
  (2) Slave_IO_Running、Slave_SQL_Running不全為YES時,大多數問題都是數據不統一導致。
  (3) stop slave后,數據變更,再start slave,出錯。重新執行一遍CHANGE MASTER即可。
  (4) 若出現 錯誤2003,連接不通過,則說明mysqld.cnf 中的bind_address未修改為0.0.0.0。如果要讓mysql監聽到其他的地址,可以將bind-address = 127.0.0.1注釋掉,或者將bind-address = 0.0.0.0監聽所有的地址
 
  (5) 若出現 錯誤1045,則說明配置change maseter時輸入的repl用戶的口令錯誤
 
  9.測試是否同步成功
  在A上
  create table test_user (id int NOT NULL AUTO_INCREMENT PRIMARY KEY,createtime datetime NOT NULL DEFAULT CURRENT_TIMESTAMP);
  在B上可以看到新增了一個表
 
  在B上
  insert into test_user set id=1;
  在A上可以看到test_user表中新增了一條記錄。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南投县| 新兴县| 平武县| 高雄市| 陇西县| 靖边县| 沙河市| 乌拉特前旗| 合川市| 建平县| 武威市| 迁西县| 上蔡县| 宝清县| 赣榆县| 龙游县| 舟山市| 西林县| 特克斯县| 义马市| 星子县| 英超| 儋州市| 阿拉尔市| 许昌市| 阿克陶县| 石狮市| 江永县| 革吉县| 富平县| 中山市| 资兴市| 盐亭县| 洪雅县| 商城县| 南京市| 阳新县| 文昌市| 英吉沙县| 和顺县| 庄河市|