MySQL Replication:NySQL複製,MySQL的複製默認爲異步工做模式html
mysql的複製功能是mysql內置的,裝上它以後就具有了這個功能,而mysql複製是mysql實現大規模高性能應用的一個基本工具,是 mysql完成水平擴展的基本架構,爲了可以應付更多的訪問請求,一般狀況下咱們須要對服務器進行擴展,而擴展一般有兩種方式:向上擴展和向外擴展;mysql
向上擴展:scale on,也稱爲垂直擴展,通常是擴充服務器的內存或CPU顆數的這種就是向上擴展。linux
向外擴展:scale out,也稱爲水平擴展,比較一臺服務器不夠,再加一臺服務器,再不夠再加,這種狀況就是向外擴展。sql
其實MySQL的的複製功能就是使用MySQL向外擴展的能力,也就是水平擴展的功能。數據庫
所謂同步的複製:首 先主服務器每更新一條數據先寫到磁盤文件中,同時還要寫一個到二進制日誌文件中,從服務器就會到主服務器請求二進制信息保存在中繼日誌中,保存好後由本地 的SQL thread從中繼日誌應用到從服務器的本地有磁盤文件中,當這個過程完成以後再由從服務器返回確認結果給主服務器,主服務器才返回結果給客戶端的。vim
所謂異步複製:當主服務器要寫數據時,先寫到本地的磁盤,同時寫到二進制文件日誌中,寫好二進制日誌文件後就把結果返回給客戶端,至於從服務有沒有來主服務器同步二進制日誌他不關心。服務器
注意:在作複製時雙方的的MySQL要一致,若是不一致,主的要低於從的。架構
MySQL主從服務的工做原理圖:異步
這裏還要注意,若是從服務器不斷的到主服務器來請求數據,發現這些數據已是最新的數據了,那從服務器的I/O thread將會轉爲睡眠狀態,由於主服務器會通知,而I/O線程不會作輪循,從服務器的二進制日誌文件一般是被關閉狀態的,從服務器是不容許執行寫操做 的。工具
在CentOS/RHEL/Scientific Linux 6 下安裝 LAMP (Apache with MariaDB and PHP)http://www.linuxidc.com/Linux/2013-07/86755.htm
MariaDB Proxy讀寫分離的實現 http://www.linuxidc.com/Linux/2014-05/101306.htm
Linux下編譯安裝配置MariaDB數據庫的方法 http://www.linuxidc.com/Linux/2014-11/109049.htm
CentOS系統使用yum安裝MariaDB數據庫 http://www.linuxidc.com/Linux/2014-11/109048.htm
安裝MariaDB與MySQL並存 http://www.linuxidc.com/Linux/2014-11/109047.htm
Ubuntu 上如何將 MySQL 5.5 數據庫遷移到 MariaDB 10 http://www.linuxidc.com/Linux/2014-11/109471.htm
[翻譯]Ubuntu 14.04 (Trusty) Server 安裝 MariaDB http://www.linuxidc.com/Linux/2014-12/110048htm
一、這裏咱們要有兩臺主機、我這裏使用克隆主服務器的主機當作從服務器、首先要把虛擬主機關機才能夠克隆的:
克隆完以後咱們就開機登陸、確保主從服務器都正常運行了便可:
二、作主從複製最重要的一點就是雙方的server-id不能相同;然而在主服務器上只須要三步:
1)就是改server-id
2)啓用二進制日誌
3)建立有複製權限的賬號
# vim /etc/my.cnf
改好以後保存退出便可,再重啓服務器,建立二進制目錄:
# mkdir /data/binlogs
# chown -R mysql.mysql /data/binlogs
重啓主服務器的mysql服務;
# service mysqld restart
然後鏈接到主服務器上受權一個有複製權限的賬號:
# mysql -uroot -hlocalhost -p
MariaDB [hellodb]> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'172.16.251.156' IDENTIFIED BY 'replpass';
MariaDB [hellodb]> FLUSH PRIVILEGES;