mycat動靜分離+mysql主從複製
一首先配置mysql的主從複製,這裡Windows下做主伺服器,centos做從服務。
1.Windows下配置mysql為主伺服器,修改mysql安裝路徑下的my.ini配置檔案
server-id=1
#如果以下配置項導致服務無法啟動,要檢視配置項是否有空格,詳情請檢視data資料夾下的err日誌
log-bin=log
#要同步的mstest資料庫,要同步多個數據庫,就多加幾個replicate-db-db=資料庫名
binlog-do-db=test
#要忽略的資料庫
binlog-ignore-db=mysql
配置完成後重啟mysql服務,如果報錯,檢視mysql安裝檔案下的data資料夾裡的err檔案檢視詳細內容
2.Centos7配置mysql從服務。
修改/etc/my.cnf檔案,新增
server-id=2
#要同步的mstest資料庫,要同步多個數據庫,就多加幾個replicate-db-db=資料庫名
replicate-do-db=test
#要忽略的資料庫
replicate-ignore-db=mysql
然後登入mysql,執行以下命令
change master to master_host='192.168.1.128',master_port=3306,master_user='mstest',master_password='123456'
重啟服務,然後在主伺服器上新增一條資料,在從伺服器上查詢成功則表示主從配置成功。
二、配置mycat的讀寫分離,這裡在centos7下配置mycat
1.mycat主要配置 server.xml、rule.xml、schema.xml等三個配置檔案,首先在mycat安裝路徑下找到這三個配置檔案,
首先配置server.xml
<user name="root">
<property name="password">123456</property>
<property name="schemas">TEST</property>
<property name="readOnly">false</property>
<!-- 表級 DML 許可權設定 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user>
schemas 資料庫名,這裡會和schema.xml中的配置關聯,多個用逗號分開,例如需要這個使用者需要管理兩個資料庫db1,db2,則配置db1,db2
2.配置schema.xml
<!-- 資料庫配置,與server.xml中的資料庫對應 -->
<schema name="TEST" checkSQLschema="true" sqlMaxLimit="100">
<table name="user" dataNode="dn1" />
<table name="user_role" dataNode="dn1" />
<table name="user_perimission" dataNode="dn1" />
<table name="role" dataNode="dn1" />
<table name="perimission" dataNode="dn1" />
</schema>
<!-- 分片配置 -->
<dataNode name="dn1" dataHost="test1" database="test" />
<!-- 物理資料庫配置 -->
<dataHost name="test1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user();</heartbeat>
<writeHost host="hostM1" url="192.168.1.128:3306" user="root" password="root">
<readHost host="hostM1" url="127.0.0.1:3306" user="root" password="root"> </readHost>
</writeHost>
</dataHost>
schema中的name要與server中的相對應,table標籤中的name為物理資料庫的資料表名。
修改完成之後,啟動mycat
啟動命令為安裝路徑 bin目錄下執行
./mycat start
重啟
./mycat restart
停止
./mycat stop
啟動完成之後,進行測試如果報錯,則去mycat安裝路徑下的conf檢視wrapper.log檔案檢視詳細資訊,如果報錯,無法連線mysql服務的話,使用命令列的形式登入mysql檢視mysql是否可以登入成功,不可以則使用命令列的方式修改程式碼。
ps:報錯沒有找到資料來源,往往是因為使用者名稱密碼無法登入,所以要使用命令列來檢測,不要使用視覺化工具(Navicat),因為Navicat可以登入dos命令不一定