1
|
vim /usr/local/mycat/conf/schema.xml
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="sysbench" checkSQLschema="false" > <table name="users" primaryKey="id" dataNode="dn1,dn2,dn3" rule="mod-long" autoIncrement="true" fetchStoreNodeByJdbc="true"> </table> </schema> <dataNode name="dn1" dataHost="dh1" database="sysbench" /> <dataNode name="dn2" dataHost="dh2" database="sysbench" /> <dataNode name="dn3" dataHost="dh3" database="sysbench" /> <dataHost name="dh1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="lh" url="localhost:3309" user="root" password="123456"> <readHost host="lh" url="localhost:3309" user="root" password="123456"/> </writeHost> </dataHost> <dataHost name="dh2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="lh" url="localhost:3310" user="root" password="123456"> <readHost host="lh" url="localhost:3310" user="root" password="123456"/> </writeHost> </dataHost> <dataHost name="dh3" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="lh" url="localhost:3311" user="root" password="123456"> <readHost host="lh" url="localhost:3311" user="root" password="123456"/> </writeHost> </dataHost> </mycat:schema> |
该示例将users表按照mod-long分片规则,将数据平均分散到三个数据库中,配置每个数据库的用户密码、IP地址和端口,该示例将Mycat和MySQL数据库部署在同一台物理机上,IP地址采用localhost,可根据实际环境进行调整。
1
|
mycat start
|
1
|
mycat status
|
回显内容与图片内容一致,则表示已正常启动。
1
|
vim /home/insert.sh
|
1 2 3 4 5 |
#!/bin/bash for i in {1..10000} do /usr/local/mysql/bin/mysql -uroot -p1234567 -P8066 -h127.0.0.1 --default_auth=mysql_native_password -Dsysbench -e "insert into users(id,name) values($i,'ccc')" done |
1
|
sh /home/insert.sh
|
1
|
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql1.sock -Dsysbench -e "select count(*) from users" |
1
|
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql2.sock -Dsysbench -e "select count(*) from users" |
1
|
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql3.sock -Dsysbench -e "select count(*) from users" |
10000条数据均匀分布在每个数据库分片。