程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql數據庫讀寫分離數據同步

mysql數據庫讀寫分離數據同步

編輯:MySQL綜合教程

mysql數據庫讀寫分離數據同步   我是用了兩個xp(一個主的,一個從的)的系統測試成功的,linux系統我也做測試了,沒有成功,不過我想我所遇到的問題是同一個問題,xp下的可以成功,linux下的應該也可以成功,稍候會測試,然後更新結果!   PS:剛測試了下linux 可以同步成功,主服務器是xp,從服務器是centos,可以成功。   例:   A機器 192.168.0.2         B機器 192.168.0.3   兩個機器可以ping通,互相訪問   先配置主服務端 首先配置一個同步帳號   Sql代碼      1 GRANT FILE ON *.* TO ‘backup’@'192.168.0.3' IDENTIFIED BY ‘1234’;  2 GRANT REPLICATION SLAVE ON *.* TO ‘backup’@'193.168.0.3' IDENTIFIED BY ‘1234’;    帳號名是backup,密碼1234,ip為從服務器的ip   這時候我們在服務端增加一個同步數據庫   Sql代碼      1 create database test   2 use test  3 create table mytest (username varchar(20),password varchar(20))   打開my.ini 在[mysqld]輸入下面的內容   log-bin=c:\master.log//日志文件地址,在linux系統下,這個項就不要加了,我加了之後,不知道為什麼報錯了,mysqld啟動不起來,我給注釋就好了,也沒有影響其它的   binlog-do-db=test//要同步的數據庫,   這裡區別下主服務器同步數據庫的命令和客戶端的是不一樣的   主服務端的是binlog-do-db,從服務器用的是replicate-do-db   #replicate-ignore-db = mysql 這個是禁止同步的數據庫   server_id=1 //這個數字不能和從服務器的id一樣   然後重啟下mysql 服務,可以輸入   Sql代碼      1 show master status  來查看相關的信息,這個命令比較重要,後面在配置從服務器的時候要用到   接來下是配置從服務器  跟上面的步驟一樣,先建立一個和主服務器上一模一樣的數據庫   然後是配置主服務器的一些信息,這個地方需要注意下,我在網上看的大多教程都是這樣的   Ini代碼      1 server-id=2  2 master-host=192.168.0.2  3 master-user=backup    #同步用戶帳號  4 master-password=1234  5 master-port=3306  6 master-connect-retry=60 #預設重試間隔60秒  7 replicate-do-db=test    #告訴slave只做backup數據庫的更新  把上面的這段代碼放到my.ini裡,但是我在試的時候,加了這段代碼之後,mysql的服務啟動不起來,看了下日志文件,發現提示:111121 21:11:56 [ERROR] wampmysqld: unknown variable 'master-host=192.168.0.2'   後來在網上找了下,在Mysql版本從5.1.7以後開始就不支持“master-host”類似的參數;所以,這時候需要使用這個樣的方法來進行配置   使用mysql工具   Sql代碼     1 mysql -uroot -p  2     3 change master to master_host='192.168.0.2', master_user='backup', master_password='1234', master_log_file='mysql-bin.000010', master_log_pos=16860;   這裡也特別需要注意下,我想我在linux下沒有配置成功,可能就是這個地方的原因,最後的兩項   master_log_file=   master_log_pos=   這兩項的值,要在主服務端使用show master status 命令查看,查看的結果中     File就是master_log_file的值,Position就是master_log_pos的值   我當時就是這兩個配置錯了,導致同步失敗,這兩個很重要。   然後打開my.ini文件在mysqld節點,加入   Ini代碼     1 replicate-ignore-db = mysql //禁止同步的數據庫  2 replicate-do-db = test // 要同步的數據庫  3 replicate-ignore-db = information_schema//禁止同步的數據庫  禁止同步的數據庫不是必須的,但是要同步的數據庫是必須的   配置好之後,重啟下mysql服務   這時候,客戶端就配置完了   我們在主服務端,使用insert into語句,插入兩個記錄   然後在從服務端select 查詢下看看結果吧,   最終在mysql 命令行工具中可以使用show slave status命令來查看相關的狀態   Slave_IO_State: Waiting for master to send event   當你使用show slave status查出來的第一行,狀態是上面的那種狀態,那麼就說明成功了,其它的狀態貌似是無法同步

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved