mysql實現主從複製

来源:http://www.cnblogs.com/superfat/archive/2016/03/11/5267449.html
-Advertisement-
Play Games

今天說一下MySQL的主從複製如何做到! 準備工作: 1.兩個虛擬機:我這裡用的是CentOS5.5,IP地址分別是192.168.1.101 和192.168.1.105; 101做主伺服器,105做從伺服器(都已經安裝相同版本的Mysql); 2.本機環境:Apache+PHP+MySQL 好了


 今天說一下MySQL的主從複製如何做到!

準備工作:

1.兩個虛擬機:我這裡用的是CentOS5.5,IP地址分別是192.168.1.101 和192.168.1.105;

       101做主伺服器,105做從伺服器(都已經安裝相同版本的Mysql);

2.本機環境:Apache+PHP+MySQL

 

好了,現在開始吧,來看看這聽起來高大上的主從複製是怎麼回事。

 

原理:mysql要做到主從複製,其實依靠的是二進位日誌,即:假設主伺服器叫A,從伺服器叫B;主從複製就是

     B跟著A學,A做什麼,B就做什麼。那麼B怎麼同步A的動作呢?現在A有一個日誌功能,把自己所做的增刪改查的動作

     全都記錄在日誌中,B只需要拿到這份日誌,照著日誌上面的動作施加到自己身上就可以了。這樣就實現了主從複製。

 

擴展:MYSQL還有一種日誌叫做:慢日誌

     可以設置一個時間,那麼所有執行時間超過這個時間的SQL都會被記錄下來。這樣就可以通過慢日誌快速的找到網站中SQL的瓶頸來進行優化。

         大家有時間可以研究一下,這裡不多做介紹。

 

實現步驟:

1.首先修改mysql的配置文件,使其支持二進位日誌功能。

打開主伺服器的mysql配置文件:my.conf

代碼:# vi /etc/my.cnf

加入如下三行代碼:

參數解釋:log-bin=mysql-bin  //將mysql二進位日誌取名為mysql-bin

       binlog_format=mixed //二進位日誌的格式,有三種:statement/row/mixed,具體分別不多做解釋,這裡使用mixed

       server-id=101 //為伺服器設置一個獨一無二的id便於區分,這裡使用ip地址的最後一位充當server-id

 

配置完成,:wq 保存,重啟mysql

重啟mysql命令:# service mysqld restart

同樣的,進入從伺服器,配置從伺服器的my.cnf,重覆步驟1即可,

唯一的區別是,server-id要改成從伺服器的ip尾位,即server-id=105;其他兩項是一樣的,保存,並重啟mySQL;

 

2.在主伺服器上為從伺服器分配一個賬號,就像一把鑰匙,從伺服器拿著這個鑰匙,才能到主伺服器上來共用主伺服器的日誌文件。

進入主伺服器的mysql界面,

命令: # mysql -u root -p 111111     //我這裡mysql賬號是root,密碼是111111

在mysql操作界面下,輸入下麵一行命令:

GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '111111'; 

 

3.查看主伺服器BIN日誌的信息(執行完之後記錄下這兩值,然後在配置完從伺服器之前不要對主伺服器進行任何操作,因為每次操作資料庫時這兩值會發生改變).

 

4.設置從伺服器

進入從伺服器mysql

命令: # mysql -u root -p111111

 

關閉slave(如果你以前配置過主從的話,一定要先關閉)

命令:stop slave;

 

開始配置:

輸入下麵代碼即可:

參數解釋:MASTER_HOST  :  設置要連接的主伺服器的ip地址

       MASTER_USER  :  設置要連接的主伺服器的用戶名

       MASTER_PASSWORD  :  設置要連接的主伺服器的密碼

       MASTER_LOG_FILE  :  設置要連接的主伺服器的bin日誌的日誌名稱,即第3步得到的信息

       MASTER_LOG_POS  :  設置要連接的主伺服器的bin日誌的記錄位置,即第3步得到的信息,(這裡註意,最後一項不需要加引號。否則配置失敗)

 

先在從伺服器配置完成,啟動從伺服器:

命令: start slave;

 

5.查看是否配置成功:

命令: show slave status;

 

上面兩項均為yes,說明配置成功,否則,請重覆前面的步驟。

 

ok,到這裡MySQL的主從複製就配置完了,其實明白原理的話還是很簡單的,

這裡就不給大家測試了,大家配置完可以自己測試一下,有什麼問題的話,

歡迎到評論區拍磚哈!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • interactivePopGestureRecognizer是iOS7推出的解決VeiwController滑動後退的新功能,雖然很實用,但是坑也很多啊,用過的同學肯定知道問題在哪裡,所以具體問題我就不描述了,這裡只給出如何完美解決interactivePopGestureRecognizer卡住
  • 這篇是關於網路請求的,結合公司的實際情況編寫,如果有不同意見歡迎留言共同討論。 iOS在9.0之後徹底放棄了NSURLConnection,現在已經改用了NSURLSession進行網路請求。一般現在網路請求也都是使用AFNetworking。下麵就把我自己關於afn和系統的api使用寫下來。 一.
  • 經測試發現,如果EditText預先有內容,游標自然會在文字的末尾 。 但是如果預先內容為空,然後設置好內容,這種情況下游標自然會在文字的開頭,所以這種情況下可以這樣做讓游標位於末尾:editText.setText("0");editText.requestFocus(); //這是關鍵
  • 前言:23種軟體設計模式中的觀察者模式,也是在軟體開發中,挺常用的一種設計模式。而在蘋果開發中,蘋果Cocoa框架已經給我們實現了這個設 計模式,那就是通知和KVO(Key-Value Observing),本篇博文將會先講解通知和KVO的常用方法和使用示例,然後講解觀察者模式以及對觀察者模式的實現
  • 問題 處理表單的時候,一定會碰到的就是輸入控制項被鍵盤遮住的問題,如圖: 實例 左邊是普通表單,中間是2B表單,右邊是文藝表單. 分析 處理這種問題無非就是2個步驟: 鍵盤彈出時,縮小UITableView的frame 滾動UITableView,讓當前輸入的控制項可見 代碼寫出來就是這幾步 捕獲鍵盤事
  • JSON text did not start with array or object and option to allow fragments not set. === AFN使用報錯: Error Domain=NSCocoaErrorDomain Code=3840 "JSON text
  • UITableView可以算是使用頻率最高的組件之一的,在開發過程中經常需要展示一些簡單的信息列表常見列表佈局 如圖,很多頁面其實就是這種展示結果,通常需要imageView,textLabel,detailTextlabel,而UITableViewCell本身提供了方便的自動佈局(當有圖片和沒圖
  • 寫了兩篇《MySQL入門》以後我發現,寫書的人還是都挺有本事的,起碼人家知道怎麼編排自己想講的知識點,我實在是不知道該先說那裡後說哪裡,那我就想到什麼講什麼吧。 一 寫SQL 其實我是不想寫有關SQL的部分的,因為這個部分其實很簡單,基本上大學只要好好聽聽資料庫概論這門課基本上都能寫滿足功能的SQL
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...