mysql 導出dmp文件_一文帶你了解MySQL主從復制(Master-Slave)

f232a71d2a9fd9323135ae9ff76ab061.png

1.復制概述

Mysql內建的復制功能是構建大型,高性能應用程序的基礎。將Mysql的數據分布到多個系統上去,這種分布的機制,是通過將Mysql的某一臺主機的數據復制到其它主機(slaves)上,并重新執行一遍來實現的。復制過程中一個服務器充當主服務器,而一個或多個其它服務器充當從服務器。主服務器將更新寫入二進制日志文件,并維護文件的一個索引以跟蹤日志循環。這些日志可以記錄發送到從服務器的更新。當一個從服務器連接主服務器時,它通知主服務器從服務器在日志中讀取的最后一次成功更新的位置。從服務器接收從那時起發生的任何更新,然后封鎖并等待主服務器通知新的更新。

請注意當你進行復制時,所有對復制中的表的更新必須在主服務器上進行。否則,你必須要小心,以避免用戶對主服務器上的表進行的更新與對從服務器上的表所進行的更新之間的沖突。

1.1 mysql支持的復制類型:

  (1)基于語句的復制:在主服務器上執行的SQL語句,在從服務器上執行同樣的語句。MySQL默認采用基于語句的復制,效率比較高。一旦發現沒法精確復制時,會自動選著基于行的復制。
  (2)基于行的復制:把改變的內容復制過去,而不是把命令在從服務器上執行一遍. 從mysql5.0開始支持
  (3)混合類型的復制: 默認采用基于語句的復制,一旦發現基于語句的無法精確的復制時,就會采用基于行的復制。

1.2 復制解決的問題

MySQL復制技術有以下一些特點:
(1) 數據分布 (Data distribution )
(2) 負載平衡(load balancing)
(3) 備份(Backups)
(4) 高可用性和容錯行 High availability and failover

1.3 復制如何工作

整體上來說,復制有3個步驟:

(1) master將改變記錄到二進制日志(binary log)中(這些記錄叫做二進制日志事件,binary log events);
(2) slave將master的binary log events拷貝到它的中繼日志(relay log);
(3) slave重做中繼日志中的事件,將改變反映它自己的數據。

2 .復制配置

有兩臺MySQL數據庫服務器Master和slave,Master為主服務器,slave為從服務器,初始狀態時,Master和slave中的數據信息相同,當Master中的數據發生變化時,slave也跟著發生相應的變化,使得master和slave的數據信息同步,達到備份的目的。

要點:

負責在主、從服務器傳輸各種修改動作的媒介是主服務器的二進制變更日志,這個日志記載著需要傳輸給從服務器的各種修改動作。因此,主服務器必須激活二進制日志功能。從服務器必須具備足以讓它連接主服務器并請求主服務器把二進制變更日志傳輸給它的權限。

一、安裝MySQL

說明:在兩臺MySQL服務器192.168.21.169和192.168.21.168上分別進行如下操作,安裝MySQL 5.5.22

二、配置MySQL主服務器(192.168.21.169)

mysql -u root -p #進入MySQL控制臺create database AMT_DB; #建立數據庫AMT_DBinsert into mysql.user(Host,User,Password) values ('localhost','archermind',password('123456')); #創建用戶archermind,建立MySQL主從數據庫同步用戶replication密碼123456 flush privileges; #刷新系統授權表#授權用戶replication只能從192.168.21.168這個IP訪問主服務器192.168.21.169上面的數據庫,并且只具有數據庫備份的權限grant replication slave on *.* to 'replication'@'192.168.21.168' identified by '123456' with grant option;復制代碼

三、把MySQL主服務器192.168.21.169中的數據庫AMT_DB導入到MySQL從服務器192.168.21.168中

1、導出數據庫AMT_DB

mysqldump -u root -p AMT_DB > /home/replication.sql #在MySQL主服務器進行操作,導出數據庫AMT_DB到/home/replication.sql復制代碼

備注:在導出之前可以先進入MySQL控制臺執行下面命令

flush tables with read lock; #數據庫只讀鎖定命令,防止導出數據庫的時候有數據寫入unlock tables; #解除鎖定復制代碼

2、導入數據庫到MySQL從服務器

mysql -u root -p #進入從服務器MySQL控制臺create database AMT_DB; #創建數據庫use AMT_DB #進入數據庫source /home/replication.sql #導入備份文件到數據庫mysql -u replication -h 192.168.21.169 -p #測試在從服務器上登錄到主服務器復制代碼

四、配置MySQL主服務器的my.cnf文件

#vim /etc/my.cnf #編輯配置文件,在[mysqld]部分添加下面內容  server-id=1 #設置服務器id,為1表示主服務器,注意:如果原來的配置文件中已經有這一行,就不用再添加了。  log_bin=mysql-bin #啟動MySQ二進制日志系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。  binlog-do-db=AMT_DB #需要同步的數據庫名,如果有多個數據庫,可重復此參數,每個數據庫一行  binlog-ignore-db=mysql #不同步mysql系統數據庫#service mysqld restart #重啟MySQL復制代碼
mysql -u root -p #進入mysql控制臺show master status; 查看主服務器,出現以下類似信息+------------------+----------+--------------+------------------+|File |Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 | 7131 | AMT_DB |mysql |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)復制代碼

注意:這里記住File的值:mysql-bin.000001和Position的值:7131,后面會用到。

五、配置MySQL從服務器的my.cnf文件

#vim /etc/my.cnf #編輯配置文件,在[mysqld]部分添加下面內容server-id=2 #配置文件中已經有一行server-id=1,修改其值為2,表示為從數據庫log-bin=mysql-bin #啟動MySQ二進制日志系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。replicate-do-db=AMT_DB #需要同步的數據庫名,如果有多個數據庫,可重復此參數,每個數據庫一行replicate-ignore-db=mysql #不同步mysql系統數據庫:wq! #保存退出#service mysqld restart #重啟MySQL復制代碼

注意:MySQL 5.1.7版本之后,已經不支持把master配置屬性寫入my.cnf配置文件中了,只需要把同步的數據庫和要忽略的數據庫寫入即可。

mysql -u root -p #進入MySQL控制臺slave stop; #停止slave同步進程change master to master_host='192.168.21.169',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=7131; #執行同步語句slave start; #開啟slave同步進程SHOW SLAVE STATUSG #查看slave同步信息,出現以下內容*************************** 1. row *************************** Slave_IO_State:Waiting for master to send event Master_Host:192.168.21.169 Master_User:replication Master_Port:3306 Connect_Retry:60 Master_Log_File:mysql-bin.000001 Read_Master_Log_Pos:7131 Relay_Log_File:MySQLSlave-relay-bin.000001 Relay_Log_Pos:253 Relay_Master_Log_File:mysql-bin.000001 Slave_IO_Running:Yes Slave_SQL_Running:Yes Replicate_Do_DB:AMT_DB Replicate_Ignore_DB:mysql Replicate_Do_Table: Replicate_Ignore_Table:1 row in set (0.00 sec)復制代碼

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上這兩個參數的值為Yes,即說明配置成功!

六、測試MySQL主從服務器雙機熱備是否成功

1、進入MySQL主服務器

mysql -u root-p #進入主服務器MySQL控制臺use AMT_DB #進入數據庫CREATETABLE test ( id int not null primary key,name char(20)); #創建test復制代碼

2、進入MySQL從服務器

mysql -u root-p #進入MySQL控制臺use AMT_DB #進入數據庫show tables; #查看AMT_DB表結構,會看到有一個新建的表test,表示數據庫同步成功復制代碼

至此,MySQL數據庫配置主從服務器實現雙機熱備

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397172.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397172.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397172.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS開發學無止境 - NSFileManager文件操作的十個小功能

(配圖的小故事還記得嘛) NSFileManager是一個單列類,也是一個文件管理器。可以通過NSFileManager創建文件夾、創建文件、寫文件、讀文件內容等等基本功能。 下面將介紹NSFileManager文件操作的十個小功能。我們在Documents里面進行舉例&#…

smokeping自動檢測系統

如何的使用smokeping來監控idc機房的網絡質量情況,從監控圖上的延時與丟包能分辨出你機房的網絡是否穩定,是否為多線,是否為BGP機房,到各城市的3個運行商網絡各是什么情況,如果出現問題,如果有針對的解決。…

ElasticSearch聚合分析

聚合用于分析查詢結果集的統計指標,我們以觀看日志分析為例,介紹各種常用的ElasticSearch聚合操作。 目錄: 查詢用戶觀看視頻數和觀看時長聚合分頁器查詢視頻uv 單個視頻uv批量查詢視頻uvHaving查詢 根據 count 進行過濾根據其它指標進行過濾…

bg感_【0328】BG推文 | 5本我在逃生游戲里養娃娃+歲月繾綣已無你+關于我比女主蘇這回事+消失的白月光又回來了等...

大家多多支持原文!以下內容多為網絡搜集,非商業用途。版權歸原作者所有,侵聯!BG文《我在逃生游戲里養娃娃》作者:鶴舫閑人《歲月繾綣已無你》作者:酒爺《關于我比女主蘇這回事》作者:歡何極《消…

android 屏幕最小寬度_AndroidTV屏幕適配-smallestWidth(最小寬度) 限定符

背景前幾天接到一個需求,把項目上的原來的2k屏幕適配到4k屏幕。我采用的是smallestWidth最小寬度限定符進行適配的我們項目的。1,smallestWidth 限定符適配原理系統都是根據限定符去尋找對應的 dimens.xml 文件。例如在最小寬度為 720dp 的設備上&#x…

mysql 組合索引

MySQL單列索引是我們使用MySQL數據庫中經常會見到的,MySQL單列索引和組合索引的區別可能有很多人還不是十分的了解,下面就為您分析兩者的主要區別,供您參考學習。 為了形象地對比兩者,再建一個表: CREATE TABLE myInde…

cmake使用總結(轉)---工程主目錄CMakeList文件編寫

在linux 下進行開發很多人選擇編寫makefile 文件進行項目環境搭建,而makefile 文件依賴關系復雜,工作量很大,搞的人頭很大。采用自動化的項目構建工具cmake 可以將程序員從復雜的makefile 文件中解脫出來。cmake 根據內置的規則和語法來自動生…

微信開發者工具 wxmi修改模版顏色_十款高效好用的在線網頁工具,提升你的辦公效率...

大家好, 我是阿毛,今天給大家推薦高效辦公的10個在線網頁工具,可以不用下載安裝很多app,也不用在電腦上裝很多軟件。在線制作精彩視頻操作非常簡單,選擇模板,上傳照片然后點擊制作等待完成就可以了&#xf…

三星ml1660拆機圖解_三星s6拆機圖解介紹

三星s6拆機圖解介紹三星s6怎么拆機?不管你是手機維修者還是狂熱的手機玩家,相信對您手中的三星s6內部構造和組裝步驟應該都是非常有興趣的吧?今天綠茶通過Fixit發布的三星s6拆機教程來和大家一起分享一下三星s6拆機步驟,從三星s6的內部構造一起來了解一…

Ajax請求利用jsonp實現跨域

跨域: js有一個同源限制,簡單說來源不一樣的話就無法相互間交互.那么怎么算來源不一樣呢, 舉個例子:瀏覽器訪問-->服務器A--->得到頁面A---頁面A中的js腳本只能訪問服務器A的資源(相同域名和端口,此外域名與對應的ip也算不同源,要么都域名,要么都ip). 以上就是js的跨域問…

[轉]使用Navicat for Oracle工具連接oracle的

使用Navicat for Oracle工具連接oracle的 這是一款oracle的客戶端的圖形化管理和開發工具,對于許多的數據庫都有支持。之前用過 Navicat for sqlserver,感覺很好用,所以下載了Oracle版的用。上網查看了一下這個工具可以用于任何版本 8i 或以上的 Oracle …

微信小程序基于第三方插件微信同聲傳譯,以及一些問題解決辦法

使用之前首先得在微信微信小程序后臺添加插件,獲取插件的appid 名稱 使用時在app.json文件添加插件配置 1 plugins: { 2 WechatSI: { 3 version: 0.1.0, 4 provider: wx069ba97219f66d99 5 } 6 } 其次就是在使用的頁面進行調用 在index.js外…

TF卡里刪掉文件后內存沒變大_內存卡損壞怎么修復?數據恢復方法教程

內存卡損壞怎么修復?內存卡又叫SD卡,是一種很輕便小巧的便攜存儲裝置,往往內置于各種便攜媒體設備內部。內存卡本身具有堅固、抗沖擊等外部特性和讀寫快、空間大等內部特性,但是內存卡因為每天都要讀寫大量數據很容易從內部發生損…

apollo持久化sentinel_Spring Cloud Alibaba基礎教程:Sentinel使用Apollo存儲規則

上一篇我們介紹了如何通過Nacos的配置功能來存儲限流規則。Apollo是國內用戶非常多的配置中心,所以,今天我們繼續說說Spring Cloud Alibaba Sentinel中如何將流控規則存儲在Apollo中。使用Apollo存儲限流規則Sentinel自身就支持了多種不同的數據源來持久…

Lintcode: Unique Paths

C dp 遞推式&#xff1a;dp[i][j] dp[i-1][j] dp[i][j-1] 初值&#xff1a;dp[i][j] 1&#xff0c;i0 or j0 空間優化&#xff1a;省掉一維 1 class Solution {2 public:3 /**4 * param n, m: positive integer (1 < n ,m < 100)5 * return an integer6…

idea 如何隱藏/展示不想看到的文件

隱藏&#xff1a;在 Ignore files and folders中添加想要過濾的文件或文件夾名稱 展示隱藏文件&#xff1a; 在過濾列表中刪除掉文件或者文件夾就好了 轉載于:https://www.cnblogs.com/mengjianzhou/p/6177897.html

BZOJ2286: [Sdoi2011]消耗戰(虛樹)

BZOJ2286: [Sdoi2011]消耗戰 Time Limit: 20 Sec   Memory Limit: 512 MB Description 在一場戰爭中&#xff0c;戰場由n個島嶼和n-1個橋梁組成&#xff0c;保證每兩個島嶼間有且僅有一條路徑可達。現在&#xff0c;我軍已經偵查到敵軍的總部在編號為1的島嶼&#xff0c;而且…

Java基礎知識:Java實現Map集合二級聯動4

comboBox.setModel(new DefaultComboBoxModel(getProvince())); // 添加省份信息 final JLabel label new JLabel(); label.setText("省/直轄市"); label.setBounds(155, 30, 66, 18); panel.add(label); final JLabel label_1 new JLabel(); label_1.setText(&quo…

linux QT 結束當前進程_Qt編寫控件屬性設計器7-串口采集

一、前言數據源是組態軟件的核心靈魂&#xff0c;少了數據源&#xff0c;組態就是個花架子沒卵用&#xff0c;一般數據源有三種方式獲取&#xff0c;串口、網絡、數據庫&#xff0c;至于數據規則是什么&#xff0c;這個用戶自己指定&#xff0c;本設計器全部采用第一個字節作為…

magento2郵件調試方法

order mail 直接打印到頁面上 位置 vendor\magento\module-sales\Model\Order\Email\Sender.php Magento\Sales\Model\Order\Email\Sender::prepareTemplate() 添加代碼 $objectManager \Magento\Framework\App\ObjectManager::getInstance(); $templateFactory $objectManag…