為什麼要配置主從同步? 如果一臺資料庫伺服器掛了,還有一個備用 為了方便配置,我採用兩台WinServer2003虛擬機: 1.前期準備工作:安裝好鏡像文件,VMTOOLS,MySQL5.5 我這裡以192.168.111.134為主伺服器(以下簡稱134) 打開my.ini文件: 在最下麵加上這些 ...
為什麼要配置主從同步?
如果一臺資料庫伺服器掛了,還有一個備用
為了方便配置,我採用兩台WinServer2003虛擬機:
1.前期準備工作:安裝好鏡像文件,VMTOOLS,MySQL5.5
我這裡以192.168.111.134為主伺服器(以下簡稱134)
打開my.ini文件:
在最下麵加上這些:
#-----------------------
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
然後重啟134的mysql服務(運行services.msc然後重啟)
打開mysql,輸入show master status;
如果顯示類似下麵,說明配置成功
為從資料庫配置一個用戶:repl,並且進行許可權配置(@從資料庫IP)
然後配置192.168.111.135為從伺服器(以下簡稱135)
打開my.ini文件:
#-----------------------
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
重啟135的mysql服務(運行services.msc然後重啟)
這三行解釋:設置主伺服器IP埠用戶名密碼以及剛纔生產的文件,起始位置為0
查看狀態:配置成功
配置成功後自行進行測試:主資料庫創建表,查看從資料庫是否同步成功,如果按照上邊配置,應該是不存在問題的
資料庫轉移:
舊資料庫使用mysqldump導出成sql文件,然後導入新的主資料庫
導入:
順便設置編碼,防止出錯:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
這種方式是臨時的,徹底修改編碼,要麼在安裝的時候設置好了
我安裝的時候忘記設置了,只能在my.ini中 設置
不過這時候如果select * from table發現還是中文亂碼,這是為什麼呢?
因為cmd是gbk編碼的,mysql設置的是utf-8,不過通過程式查詢到的不會是亂碼
配置賬號:
原因:通常不會給別人root許可權,這是危險的,所以只給與一個賬號增刪改查許可權
主庫創建一個新的賬號,並允許遠程登陸進行增刪改查
從庫創建一個一樣的賬號:
項目對接:
拿JavaWeb為例:配置到主庫
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://192.168.111.134:3306/o2o?useUnicode=true&characterEncoding=utf8 jdbc.username=work jdbc.password=xuyiqing
然後我用junit進行驗證:成功!
package org.dreamtech.o2o.dao; import org.dreamtech.o2o.BaseTest; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; public class AreaDaoTest extends BaseTest { @Autowired private AreaDao areaDao; @Test public void test(){ areaDao.queryArea(); } }
package org.dreamtech.o2o; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "classpath:spring/spring-service.xml", "classpath:spring/spring-dao.xml"}) public class BaseTest { }