1、安裝mysql數據庫
192.168.1.121
192.168.1.51
192.168.1.52
本案例數據庫統一的
用戶名:root
密碼:root123456
2、下載mycat
傳到121服務器,解壓即可
3、mycat依賴jre,所以先配置jdk,jre
4、mycat中schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<!-- auto sharding by id (long) -->
<table name="goods" primaryKey="ID" type="global" dataNode="dn1" />
<table name="people" primaryKey="ID" type="global" dataNode="dn2" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost2" database="db2" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>show slave status</heartbeat>
<!-- 主服務器1,用來寫 -->
<writeHost host="hostM1" url="192.168.1.121:3306" user="root" password="root123456">
<!-- 從服務器1,用來讀 -->
<readHost host="hostS1" url="192.168.1.52:3306" user="root" password="root123456" />
</writeHost>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM2" url="192.168.1.51:3306" user="root"
password="root123456">
</writeHost>
</dataHost>
</mycat:schema>
server.xml的部分配置如下:(基本不用改動)
5、啓動mycat
mycat的bin目錄 使用命令
sh mycat start / restart /stop/status
用Navicat連接數據庫
手動在mycat中建立goods,people表
6、主從數據庫設置
登錄主數據庫121
第一步:修改my.cnf文件:
在[mysqld]段下添加:
binlog-do-db=db1 binlog-ignore-db=mysql #啓用二進制日誌 log-bin=mysql-bin #服務器唯一ID,一般取IP最後一段 server-id=121 |
第二步:重啓mysql服務
service mysql restart
第三步:建立帳戶並授權slave
mysql>GRANT FILE ON *.* TO 'root'@'%' IDENTIFIED BY 'root123456';
注意:有時候會出現錯誤
錯誤:ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456';
然後更改配置mysql中的user表中的grant 改爲yes;
#一般不用root帳號,“%”表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如192.168.145.226,加強安全
刷新權限
mysql> FLUSH PRIVILEGES;
登錄從數據庫52
第一步:修改my.cnf文件
[mysqld]
server-id=52
第二步:配置從服務器
change master to master_host='192.168.1.121',master_port=3306,master_user='root',master_password='root123456',master_log_file='mysql-bin.000001',master_log_pos=10906;
第二步:啓動從服務器複製功能
start slave;
第三步:檢查從服務器複製功能狀態
show slave status;// Slave_IO_Running | Slave_SQL_Running 都爲YES
手動創建數據庫,表。
在mycat中增加數據,121中是主數據庫,用來寫數據;52是從數據庫,用來讀數據。
測試:成功
參考文獻
https://www.cnblogs.com/zmoumou/p/9650969.html