<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## **安裝環境分析** 兩臺mysql數據庫服務器: ``` Host1:192.168.25.134 Host2:192.168.25.166 host1環境 操作系統版本 : centos7.4 數據庫版本 : mysql-5.6 mycat版本 :1.6 release 數據庫名 : db1、db3 mysql節點2環境 操作系統版本 : centos7.4 數據庫版本 : mysql-5.6 mycat版本 :1.6 release 數據庫名 : db2 MyCat安裝到節點1上(需要安裝jdk) ``` ## **配置schema.xml** ``` Schema.xml介紹 Schema.xml作為MyCat中重要的配置文件之一,管理著MyCat的邏輯庫、表、分片規則、DataNode以及DataSource。 弄懂這些配置,是正確使用MyCat的前提。這里就一層層對該文件進行解析。 ``` > schema 標簽用于定義MyCat實例中的邏輯庫 > Table 標簽定義了MyCat中的邏輯表 > dataNode 標簽定義了MyCat中的數據節點,也就是我們通常說所的數據分片。 > > dataHost標簽在mycat邏輯庫中也是作為最底層的標簽存在,直接定義了具體的數據庫實例、讀寫分離配置和心跳語句。 > 注意:若是LINUX版本的MYSQL,則需要設置為Mysql大小寫不敏感,否則可能會發生表找不到的問題。 > 在MySQL的配置文件中/etc/my.cnf \[mysqld\] 中增加一行 > lower_case_table_names=1 **Schema.xml配置實例** ``` <mycat:schema xmlns:mycat="http://org.opencloudb/"> <schema name="e3mall" checkSQLschema="false" sqlMaxLimit="100"> <!-- auto sharding by id (long) --> <table name="tb_item" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> </schema> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost2" 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"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.25.134:3306" user="root" password="root"> <!-- can have multi read hosts --> </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="hostM1" url="192.168.25.166:3306" user="root" password="root"> <!-- can have multi read hosts --> </writeHost> </dataHost> </mycat:schema> ``` ## **配置server.xml** ### Server.xml介紹 server.xml幾乎保存了所有mycat需要的系統配置信息。最常用的是在此配置用戶名、密碼及權限 ``` <mycat:server xmlns:mycat="http://io.mycat/"> <!-- 全局SQL防火墻設置 --> <!--白名單可以使用通配符%或著*--> <!--例如<host host="127.0.0.*" user="root"/>--> <!--例如<host host="127.0.*" user="root"/>--> <!--例如<host host="127.*" user="root"/>--> <!--例如<host host="1*7.*" user="root"/>--> <!--這些配置情況下對于127.0.0.1都能以root賬戶登錄--> <firewall> <whitehost> <host host="localhost" user="root"/> </whitehost> <blacklist check="false"> </blacklist> </firewall> <user name="root" defaultAccount="true"> <property name="password">123456</property> <property name="schemas">BBC</property> </user> <user name="user"> <property name="password">user</property> <property name="schemas">BBC</property> <property name="readOnly">true</property> </user> </mycat:server> ``` ## **配置rule.xml** > rule.xml里面就定義了我們對表進行拆分所涉及到的規則定義。我們可以靈活的對表使用不同的分片算法,或者對表使用相同的算法但具體的參數不同。這個文件里面主要有tableRule和function這兩個標簽。在具體使用過程中可以按照需求添加tableRule和function。 ## **測試分片** ### **創建表** 配置完畢后,重新啟動mycat。使用mysql客戶端連接mycat,創建表。 > DROP TABLE IF EXISTS `tb_item`; > > CREATE TABLE `tb_item` ( > > `id` bigint(20) NOT NULL COMMENT '商品id,同時也是商品編號', > > `title` varchar(100) NOT NULL COMMENT '商品標題', > > `sell_point` varchar(500) DEFAULT NULL COMMENT '商品賣點', > > `price` bigint(20) NOT NULL COMMENT '商品價格,單位為:分', > > `num` int(10) NOT NULL COMMENT '庫存數量', > > `barcode` varchar(30) DEFAULT NULL COMMENT '商品條形碼', > > `image` varchar(500) DEFAULT NULL COMMENT '商品圖片', > > `cid` bigint(10) NOT NULL COMMENT '所屬類目,葉子類目', > > `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '商品狀態,1-正常,2-下架,3-刪除', > > `created` datetime NOT NULL COMMENT '創建時間', > > `updated` datetime NOT NULL COMMENT '更新時間', > > PRIMARY KEY (`id`), > > KEY `cid` (`cid`), > > KEY `status` (`status`), > > KEY `updated` (`updated`) > > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表'; ### **插入數據** 將此文件中的數據插入到數據庫: ### **分片測試** ``` 由于配置的分片規則為“auto-sharding-long”,所以mycat會根據此規則自動分片。 每個datanode中保存一定數量的數據。根據id進行分片 經測試id范圍為: Datanode1:1~5000000 Datanode2:5000000~10000000 Datanode3:10000001~15000000 當15000000以上的id插入時報錯: [Err] 1064 - can't find any valid datanode :TB_ITEM -> ID -> 15000001 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看