1. mycatをダウンロードして解凍します
2. mycatディレクトリ構造を確認します
[root @ aliyun-ecs mycat]#ll
合計24
drwxr-xr-x 2ルートルート4096 Apr 18 10:28 bin
drwxrwxrwx 2ルートルート4096 Oct 22 21:26 catlet
drwxrwxrwx 4ルートルート4096 2月午前22時21分confに。9
drwxrは、XR-2は、X-18は、4月4096上のルートは、10:28のlibがルートである
ルートはルート2 23:04 1月16日4096のログをdrwxrwxrwx
ルートを-rwxrwxrwx。1. 9を2月午後09時22にルート227のversion.txt
完成構造mycat上よりちなみに、mycatはJava言語で開発されています。
したがって、mycatをインストールするには、jdk環境が必要です。
3、設定myCat
3.1変更のwrapper.conf
#のvimのconf / wrapper.confの[aliyun-ECS myCat @ルート]
非公式の環境は、256Mのために以下の2つのパラメータを変更し、それ以外の場合は、メモリ不足になる
改正前:
wrapper.java.additional.10を= -Xmx4G
wrapper.java.additional.11 = -Xms1Gが
改訂されました:
wrapper.java.additional.10 = -Xmx256M
wrapper.java.additional.11 = -Xms256M
3.2 server.xmlの構成
[root @ aliyun-ecs mycat]#vim conf / server.xml
mycatユーザー:scwyfy
を追加し、対応するロジックライブラリを設定します:admin_db、order_db、product_db
<user name = "scwyfy">
<property name = "password"> 123456 </ property>
<property name = "schemas"> admin_db、order_db、product_db </ property>
<property name = "readOnly"> true </ property>
</ user>
3.3 schema.xmlの
構成schema-> table-> dataNode-> dataHost-> writeHost-> readHost
[root @ aliyun-ecs mycat]#vim conf / schema.xml
<!-name:新しく追加されたmycatユーザーの対応するロジックライブラリを構成します->
<schema name = " admin_db " checkSQLschema = "false" sqlMaxLimit = "100">
<!-auto sharding by id(long):従来の範囲0-1k = 0 1k-10k = 1 10k-100k = 2->
<!-Name:データテーブル名
- > <!-DataNode:データテーブルが保存されている実際のノード(実サーバー+データベース) ->
<テーブル名= "travelrecord" dataNode = "dn1、dn2、dn3"ルール= "auto-sharding-long" />
<!-グローバルテーブルはすべての定義済みデータノードに自動複製されるため、シャーディングノードが同じデータノードにある任意のテーブルと結合できます->
<table name = "company" primaryKey = "ID" type = "global" dataNode = "dn1、dn2、dn3" />
<!-mod sharindルールを使用したランダムシャーディング->
<table name = "hotnews" primaryKey = "ID" autoIncrement = "true" dataNode = "dn1、dn2、dn3" rule = "mod-long" />
<!
- 分割表関係で構成されたテーブルデータは、同じシャードに保存されます- > <テーブル名= "customer" primaryKey = "ID" dataNode = "dn1、dn2"ルール= "sharding-by-intfile">
<! -ordersテーブルのcustomer_idをcustomerテーブルのIDに関連付けます。これにより、ordersテーブルが挿入されると、customer_idがオンになっているシャードが最初に判別され、次に
シャードにデータが挿入されます。目的->
<childTable name = "orders" primaryKey = "ID" joinKey = "customer_id" parentKey = "id">
<childTable name = "order_items" joinKey = "order_id" parentKey = "id "/>
</ childTable>
<childTable name = "customer_addr" primaryKey = "ID" joinKey = "customer_id" parentKey = "id" />
</ table>
</ schema>
<!-設定データ节点信息->
<dataNode name = "dn1" dataHost = "localhost1" database = "db1" />
<dataNode name = "dn2" dataHost = "localhost1" database = "db2" />
< dataNode name = "dn3" dataHost = "localhost1" database = "db3" />
<!-データベースサーバー情報の構成->
<dataHost name = "localhost1" maxCon = "1000" minCon = "10" balance = "0"
writeType = "0" dbType = "mysql" dbDriver = "native" switchType = "1" slaveThreshold = "100">
<!-ハートビートの検出に使用->
<ハートビート>ユーザー()を選択</ハートビート>
<!-複数の書き込みホストを持つことができる:配置写库->
<writeHost host = "hostM1" url = "localhost:3306" user = "root" password = "123456">
<!-複数の読み取りホストを持つことができます:配置库->
<readHost host = "hostS2" url = "192.168.1.200:3306" user = "root" password = "xxx" />
</ writeHost>
</ dataHost>