成人午夜一区二区_操碰在线视频_国产精品麻豆一区二区三区_中文黄色一级片_欧美日本中文字幕_高清视频91

當前位置: 首頁 / 技術干貨 / 正文
MySQL主主復制的實現

2023-02-02

   master mysql

  主主復制介紹

  MySQL的主從復制架構下,可以實現讀寫分離、業務分流,來降低單個數據庫的壓力。但是這種模式下會存在單點故障的問題,即如果主庫節點宕機的情況下,對從庫進行的操作并不會同步到主庫中。這個數據庫也就無效了。因此有的時候我們會搭建主主復制的架構,也叫做雙主架構。

  雙主架構的實現,是在主從架構的基礎之上的。將兩臺MySQL之間護衛彼此的主庫,同時又互為對方的從庫。這樣的實施方案下,既能做到分流,也能解決單點故障的問題。因為任何的一臺節點故障,另外的一臺都可以繼續提供服務。

  主庫1配置

  我們需要編輯MySQL配置文件,這個配置文件在不同的操作系統中的位置和名字都不同,需要根據自己的操作系統來查找這個文件:

  Windows: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

  Linux: /etc/my.cnf

  macOS:

  dmg安裝: /etc/my.cnf

  homebrew安裝:

  Intel CPU: /usr/local/homebrew/etc/my.cnf

  AppleSilicon CPU: /opt/homebrew/etc/my.cnf

  # 在[mysqld]的下方添加或修改如下屬性:

  # 服務節點的唯一標識,需要給集群中的每個服務分配一個單獨的ID

  server-id=101

  # 打開binlog日志,并指定文件名

  log_bin=master-101-bin

  # binlog日志文件

  log_bin-index=master-101-bin.index

  # 打開relaylog日志

  relay_log=master-101-relay-bin

  relay_log-index=master-101-relay-bin.index

  skip-slave-start

  # 防止兩個主庫中同時操作自增的字段導致字段沖突

  auto_increment_increment=2 # 自增步長,一般有幾個MySQL就設置為幾

  auto_increment_offset=1 # 自增起始值

  修改完成之后,需要重啟MySQL服務。

  為root用戶分配replication slave的權限:

  # 登錄到主庫

  mysql -uroot -p

  # 為root用戶分配權限

  # MySQL8中,需要先添加 'root'@'%' 這個用戶

  # create user 'root'@'%' identified by '123456'

  mysql> grant replication slave on *.* to 'root'@'%';

  mysql> flush privileges;

  主庫2配置

  我們需要編輯MySQL配置文件,這個配置文件在不同的操作系統中的位置和名字都不同,需要根據自己的操作系統來查找這個文件:

  Windows: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

  Linux: /etc/my.cnf

  macOS:

  dmg安裝: /etc/my.cnf

  homebrew安裝:

  Intel CPU: /usr/local/homebrew/etc/my.cnf

  AppleSilicon CPU: /opt/homebrew/etc/my.cnf

  # 在[mysqld]的下方添加或修改如下屬性:

  # 服務節點的唯一標識,需要給集群中的每個服務分配一個單獨的ID

  server-id=102

  # 打開binlog日志,并指定文件名

  log_bin=master-102-bin

  # binlog日志文件

  log_bin-index=master-102-bin.index

  # 打開relaylog日志

  relay_log=master-102-relay-bin

  relay_log-index=master-102-relay-bin.index

  skip-slave-start

  # 防止兩個主庫中同時操作自增的字段導致字段沖突

  auto_increment_increment=2 # 自增步長,一般有幾個MySQL就設置為幾

  auto_increment_offset=2 # 自增起始值

  修改完成之后,需要重啟MySQL服務。

  為root用戶分配replication slave的權限:

  # 登錄到主庫

  mysql -uroot -p

  # 為root用戶分配權限

  # MySQL8中,需要先添加 'root'@'%' 這個用戶

  # create user 'root'@'%' identified by '123456'

  mysql> grant replication slave on *.* to 'root'@'%';

  mysql> flush privileges;

  設置同步

  查看master1的binlog

  +-----------------------+----------+--------------+------------------+-------------------+

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

  +-----------------------+----------+--------------+------------------+-------------------+

  | master-101-bin.000001 | 156 | | | |

  +-----------------------+----------+--------------+------------------+-------------------+

  設置master2同步master1

  # 登錄從庫

  mysql -uroot -p

  # 設置同步主節點

  change master to

  master_host='192.168.10.101',

  master_port=3306,

  master_user='root',

  master_password='123456',

  master_log_file='master-101-bin.000001',

  master_log_pos=156;

  查看master2的binlog

  +-----------------------+----------+--------------+------------------+-------------------+

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

  +-----------------------+----------+--------------+------------------+-------------------+

  | master-102-bin.000001 | 553 | | | |

  +-----------------------+----------+--------------+------------------+-------------------+

  設置master1同步master2

  # 登錄從庫

  mysql -uroot -p

  # 設置同步主節點

  change master to

  master_host='192.168.10.102',

  master_port=3306,

  master_user='root',

  master_password='123456',

  master_log_file='master-102-bin.000001',

  master_log_pos=553;

  開啟同步

  # 分別啟動兩個數據庫的slave

  start slave

  # 如果出現錯誤:Slave failed to initialize relay log info structure from the repository

  # 說明之前存在主從模式下的relay log,使用reset slave命令清除即可

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

主站蜘蛛池模板: 国产精品一区二区免费看 | 日韩国产欧美一区 | 成人免费av | 在线观看av免费 | 成人91看片 | 日韩欧美在 | 久久91av | 日韩三级在线播放 | 亚洲国产成人精品久久 | 亚洲一区二区三区精品动漫 | 精精国产xxxx视频在线播放 | 日韩在线观看精品 | 天堂√最新版中文在线 | 国产精品久久久久久久午夜片 | 天堂av在线免费观看 | 污视频网站入口 | 国产黄色精品 | 日韩中文在线观看 | 国产精品国产三级国产aⅴ中文 | 成人免费视频视频 | 99久久视频 | а天堂中文最新一区二区三区 | 精品日本一区二区 | 色婷婷精品国产一区二区三区 | 久久精品免费观看 | 国产精品久久久久久中文字 | 日韩欧美一区二区三区 | 色网在线视频 | 99在线国产| 国产精品视频大全 | 日韩成人免费视频 | 国产在线一区二区三区视频 | 国产精品福利片 | 久久99精品一区二区三区三区 | 日本一区免费 | 91亚洲国产成人久久精品网站 | 亚洲精品久久久久久一区二区 | 成人福利视频 | 欧美激情精品久久久久久久久久 | 免费成人高清 | √新版天堂资源在线资源 |