1. 程式人生 > >MySQL Master-Slave Replication

MySQL Master-Slave Replication

環境介紹

VMware Workstation 12 虛擬機器x2 (可以使用克隆,但是要在安裝資料庫之前克隆,安裝之後克隆會出現相同UUID的情況,無法進行主從複製)
MySQL 5.7 Community 完全包下載地址:http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.11-1.el7.x86_64.rpm-bundle.tar

安裝MySQL

安裝MySQL的過程不再贅述。安裝完成後,啟動MySQL服務,使用mysql_secure_installation進行配置時需要預設的root使用者密碼,密碼在/var/log/mysqld.log. 查詢password會找到預設的密碼。

配置Master端

建立Slave使用者

# mysql -u root -p
mysql> grant replication slave on *.* TO [email protected]'slave伺服器的ip' identified by 'slave使用者的密碼';
mysql> flush privileges;
mysql> quit

修改/etc/my.cnf 加入

bind-address = 0.0.0.0
server-id = 1
log-bin = mysql-bin
binlog-ignore-db = "mysql"
重啟MySQL伺服器
#service mysqld restart

在主從複製前,要保證兩端資料庫狀態,內容一致,如果主從兩端均為新安裝的伺服器,可以忽略這步
# mysql -u root -p
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

匯出資料庫至SQL指令碼
# mysqldump -u root -p --databases 資料庫1 資料庫2 > /root/db_dump.sql

解除資料庫Read Lock
# mysql -u root -p
mysql> UNLOCK TABLES;

把匯出的SQL指令碼傳輸到Slave端
scp /root/db_dump.sql [private-IP-of-db02]:/root/

配置Slave端

修改/etc/my.cnf 加入
bind-address = 0.0.0.0
server-id = 2

匯入SQL指令碼,並重啟資料庫(如果主從兩端都是新安裝的資料庫可以忽略)
# mysql -u root -p < /root/db_dump.sql
# service mysqld restart

進入Slave端的MySQL命令列
mysql> SLAVE STOP;
mysql> CHANGE MASTER TO MASTER_HOST='Master端IP地址', 
MASTER_PORT=埠號,
MASTER_USER='slave', 
MASTER_PASSWORD='slave使用者的密碼'

啟動Slave端
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G

驗證一下Master和Slave之前的資料是否被複制,在Master端
# mysql -u root -p
mysql> create database testing;
mysql> use testing
mysql> create table users(id int not null auto_increment, primary key(id), username varchar(30) not null);
mysql> insert into users (username) values ('foo');
mysql> insert into users (username) values ('bar');
mysql> exit

在Slave端
mysql> use testing;
mysql> select * from users;
應該能看到我們在Master端簡歷的表和資料了

Slave端無法更新資料

<span style="font-family: 'Microsoft YaHei';">mysql> stop slave;</span>
mysql> reset slave;
mysql> master change to master_host='10.1.18.100',master_port=3306,master_user='slave',master_password='Slave的密碼',
master_log_file='master端當前的日誌',master_log_pos=master日誌的當前編號;
mysql> start slave;

修復後可能會造成資料和Master端不一致的情況,所以先清空Slave庫,並用Master匯出的資料庫指令碼進行重建,然後恢復Slave端的設定。

相關推薦

MySQL Master-Slave Replication

環境介紹 VMware Workstation 12 虛擬機器x2 (可以使用克隆,但是要在安裝資料庫之前克隆,安裝之後克隆會出現相同UUID的情況,無法進行主從複製) MySQL 5.7 Comm

mysql master-slave mycat 安裝簡明教程

mysql mycat master 一、數據庫基本安裝1.down mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz2.install# yum install -y perl perl-Data-Dumper libaio# mv mysql-5.6.37-

MySQL master-slave主從復制環境搭建初試

entos lob 根據 server-id 情況 href mysql- test tab 原文:MySQL master-slave主從復制環境搭建初試 環境為centos 7.2+mysql 5.7,網上教程很多,原理也不復雜(深知自己踩的坑還不夠) 正常情

mysql master slave

style log 進制 repl 復制配置 兩個 art rgb chan mysql主從復制配置配置原理(slave數據庫通過二進制日誌文件對數據庫進行AUDQ)一、需求: 版本一致系統啟動mysql二、 master的配置: 修改二進制日誌,和server-idlog

Windows下搭建MySQL Master Slave

一、背景 伺服器上放了很多MySQL資料庫,為了安全,現在需要做Master/Slave方案,因為作業系統是Window的,所以沒有辦法使用keepalived這個HA工具,但是我們可以接受人工進行切換,有什麼好的方案呢? 二、幾種Master/Slave邏輯架構圖 (Figure1:單Mast

mysql master-slave搭建測試,附帶雙master FailOver導致資料結果不一致的一些想法

mysql主從複製: 首先修改master,slave中的配置檔案,my.ini或my.conf,都加在[mysqld]域中; master中的配置: #replication option server-id=1 log-bin=mysql-bin.log slave中的

我自己配置Mysql Master/Slave的過程

B伺服器上的www.sns.com.err [[email protected] var]# cat www.sns.com.err 080822 15:00:01  mysqld started 080822 15:00:01 [Warning] The syntax for replicatio

MySQL Master-Slave架構下使用MMM的必要性

 MySQL本身沒有提供replication failover的解決方案(見How can I use replication to provide redundancy or high availability?) 如何使Replication方案具有HA? 答案是MMM

Centos 7.4 Mysql 8.0 Switching slave from master-slave to chain replication 備庫切換鏈結構

介紹 當設定了主從複製,伺服器B和C從伺服器A複製(A是Master伺服器,B、C是Slave伺服器):伺服器A - >(伺服器B,伺服器C),現在希望使伺服器C成為伺服器B的從屬伺服器,則必須在伺服器B和伺服器C上停止複製。然後執行START SLAV

mysql masterslavereplication

.主從mysql server的工作原理:(如圖及其過程分析) 過程:   Mysql的複製(replication)是一個非同步的複製,從一個Mysql instace(稱之為Master)複製到另一個Mysql instance(稱之Slave)。實現整個複製操作主

Azure MySQL PaaS (3) 創建MySQL異地只讀數據庫 (Master-Slave)

blank lan 創建 bench dap 技術 之前 link target   《Windows Azure Platform 系列文章目錄》   Azure MySQL PaaS服務提供異地只讀的功能,我們可以在主站點,比如Azure上海數據中心,創建MyS

MySQL主從復制(Master-Slave)實踐

nor 啟動 實現 eve 細節 3.5 大致 style 創建用戶 MySQL數據庫自身提供的主從復制功能可以方便的實現數據的多處自動備份,實現數據庫的拓展。多個數據備份不僅可以加強數據的安全性,通過實現讀寫分離還能進一步提升數據庫的負載性能。 下圖就描述了一個多個數據庫

mysqlmaster/slave)復制原理及配置

通過 除了 基本 logical slave 基礎 緩存 大量 failover 1 復制概述 Mysql內建的復制功能是構建大型,高性能應用程序的基礎。將Mysql的數據分布到多個系統上去,這種分布的機制,是通過將Mysql的某一臺主機的數據復制到其它主機(s

mysql模式 master/slave

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

轉載MySQL主從複製(Master-Slave)實踐

MySQL資料庫自身提供的主從複製功能可以方便的實現資料的多處自動備份,實現資料庫的拓展。多個數據備份不僅可以加強資料的安全性,通過實現讀寫分離還能進一步提升資料庫的負載效能。下圖就描述了一個多個數據庫間主從複製與讀寫分離的模型(來源網路):在一主多從的資料庫體系中,多個從伺服器採用非同步的方式更新主資料庫的

Windows mysql-8.0.11 master-slave 叢集(一)

一、下載安裝  mysql-8.0.11-winx64.zip:(2)安裝目錄:D:\Servers\mysql-8.0.11-3306(3)資料目錄:D:\Servers\mysql-8.0.11-3306\data(4)配置:D:\Servers\mysql-8.0.11

【docker+mysql】基於docker 配置 mysql5.7 主從 master-slave

mysql5.7,版本不同配置略有不同。 首先需要按照之前介紹的mysql docker映象 來啟動兩個mysql的容器。 映象通過命令拉取: docker pull mysql 通過docker-compose.yml來啟動容器: version: '3.1' s

資料中介軟體:mysql主從Master+Slave資料同步實驗(雙機熱備)

覺得這個實驗挺好玩的,所以拿來分享下: 前提,在windows環境下 實驗要求: 1、  兩人一組,每人一臺PC,一人配置Master,一人配置Slave。 2、  資料庫至少設定一張表,用web程式對錶進行增刪查改操作。 3、  實現雙機熱備,即主庫宕機備庫可自動

MySQL 8.0主從(Master-Slave)配置

MySQL 主從複製的方式有多種,本文主要演示基於基於日誌(binlog)的主從複製方式。 MySQL 主從複製(也稱 A/B 複製) 的原理 Master將資料改變記錄到二進位制日誌(binary log)中,也就是配置檔案log-bin指定的檔案,

mysqlmaster/slave)複製原理及配置

1 複製概述       Mysql內建的複製功能是構建大型,高效能應用程式的基礎。將Mysql的資料分佈到多個系統上去,這種分佈的機制,是通過將Mysql的某一臺主機的資料複製到其它主機(slaves)上,並重新執行一遍來實現的。複製過程中一個伺服器充當主伺服器,而一個或