1.二、Mysql數據庫支持數據庫的主從複製功能,使用主數據庫進行數據的插入、刪除與更新操做,而從數據庫則專門用來進行數據查詢操做,這樣能夠將更新操做和 查詢操做分擔到不一樣的數據庫上,從而提升了查詢效率。
html
3:MySql複製的基本過程:
3.一、Slave 上面的IO線程鏈接上 Master,並請求從指定日誌文件的指定位置(或者從最開始的日誌)以後的日誌內容;
3.二、Master 接收到來自 Slave 的 IO 線程的請求後,經過負責複製的 IO線程根據請求信息讀取指定日誌指定位置以後的日誌信息,返回給 Slave 端的 IO線程。返回信息中除了日誌所包含的信息之外,還包括本次返回的信息在 Master 端的 Binary Log 文件的名稱以及在 BinaryLog 中的位置;
3.三、Slave 的 IO 線程接收到信息後,將接收到的日誌內容依次寫入到 Slave 端的RelayLog文件(mysql-relay-lin.xxxxxx)的最末端,並將讀取到的Master端的bin-log的文件名和位置記錄到 master-info文件中,以便在下一次讀取的時候可以清楚的高速Master「我須要從某個bin-log的哪一個位置開始日後的日誌內容,請發給 我」
3.四、Slave 的 SQL 線程檢測到 Relay Log 中新增長了內容後,會立刻解析該 Log 文件中的內容成爲在 Master端真實執行時候的那些可執行的 Query 語句,並在自身執行這些 Query。這樣,實際上就是在 Master 端和 Slave端執行了一樣的 Query,因此兩端的數據是徹底同樣的。 mysql
4.1:主數據庫mysql(linux): linux
MySQL-server下載:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.16-1.el6.i686.rpm MySQL-client下載:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.16-1.el6.x86_64.rpm
安裝過程請點這裏http://www.cnblogs.com/sunson/articles/2172086.html(版本雖然不一樣,可是基本的步驟仍是同樣的) web
從數據庫mysql(win7):由於是免安裝版,解壓以後就可使用了,具體使用後文講解; sql
windows下載mysql(免安裝版):http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16-winx64.zip
這裏有一點要特別的聲明:從數據庫版本必定要高於等於主數據庫的版本; 數據庫
[msqld]
server-id=1 //服務器ID不能重複 log_bin=mysql-bin //須要作主從備份的文件名字,存在於安裝目錄/var/lib/mysql/mysql-bin.xxxxxx; binlog-do-db=test1 //這是你須要主從數據同步的數據庫,能夠配多個;
mysqld --install //mysqld服務進行安裝; net start mysql //啓動mysql服務;
這裏面有太多須要注意的了 windows
:1.mysqld服務安裝的時候須要用管理員的身份進行安裝;在開始欄裏填入cmd,先不急着敲回車。看到右鍵就能看到管理員身份運行; 安全
2.當登錄的時候重置密碼: 服務器
切記:將現有的服務關掉net stop mysql(管理員身份運行); mysqld --skip-grant-table //以安全模式登錄(不用切入管理員身份運行)
安全模式進入以後,可能會很長一段時間停留在那;不用關掉,從新啓動一個dos: 網絡
mysql -uroot -p //登錄命令,緊接着仍是會讓你填入密碼,你只須要按入回車鍵就可以登錄了。 use mysql; //進入mysql數據庫 //更換密碼 update user set password = password("新密碼") where user = "root"; FLUSH PRIVILEGES; //刷新MySQL的系統權限相關表,不然會出現拒絕訪問,還有一種方法,就是從新啓動mysql服務器,來使新設置生效。 quit; //退出;
退出以後,你要進入啓動管理器看下進程中會有mysqld.exe。將其結束;
以後就是從配置的根本:查看存放mysql目錄;會看到my-default.ini;將其copy一份;進行修改:
# The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 [mysql] #設置mysql客戶端的字符集 default-character-set = utf8 # The MySQL server [mysqld] server-id=2 //從服務器配置的服務器id;不能與主服務器id相沖突 port = 3306 //服務端口號; replicate-do-db=test1 //同步本地test1數據庫 #設置mysql的安裝目錄 basedir="E:/tools_package/mysql-5.6.16-winx64/" #設置mysql數據庫的數據存放目錄,必須是data或者\xxx-data datadir="E:/tools_package/mysql-5.6.16-winx64/data/" #設置服務器段的字符集 character_set_server = utf8
mysql -uroot -p //登錄mysql change master to master_host='192.168.xxx.xxx', master_user='root', master_password='654321',master_log_pos=0,master_log_file='mysql-bin.000001'; master_host:主數據庫的ip; master_port:端口號;(若是默認3306的話不須要指定); mstart_user:登錄主服務器mysql用戶; master_password:登錄主服務器mysql密碼; master_log_pos:從主數據庫複製文件的第幾個位置進行復制; master_log_file:主服務器中的數據庫複製文件;
start slave; //顯示有ok就說明對了 show slave status\G; //顯示從服務器和主服務器相對應的關係;顯示slave_IO_Running和Slave_SQL_Running都是yes就說明你的主從配置已經成功了;不然你還得繼續努力哦
花了一夜時間寫了這麼一篇博客。這個時候寫博客對如今的我來講確實有點耗費時間;可是我仍是會繼續努力的;但願對你們有幫助。且大神多多指教;(格式有點亂,後面的寫的都有點亂了。。有點疲勞了。睡覺覺;有問題之後再改)