<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 36, comments - 30, trackbacks - 0, articles - 3
    不講原理,直接上步驟:
    1.下載MyCat,Mycat-server-1.4-release-20151019230038-linux.tar

    2. 解壓到/usr/mycat目錄下:
        [root@localhost mycat]# tar -xvf  Mycat-server-1.4-release-20151019230038-linux.tar .

    3.修改MyCat的配置文件 /usr/mycat/conf/schema.xml

      <?xml version="1.0"?>
      <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
      <mycat:schema xmlns:mycat="http://org.opencloudb/">
         <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
             <table name="user" primaryKey="id" dataNode="dn1,dn2" rule="sharding-by-intfile"/>
         </schema>
        <dataNode name="dn1" dataHost="master" database="db1" />
        <dataNode name="dn2" dataHost="master" database="db2" />
          <dataHost name="master" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native"  
                  switchType
    ="2"  slaveThreshold="100">
             <heartbeat>show slave status</heartbeat>
              <writeHost host="hostM1" url="192.168.8.132:3306" user="root" password="root">
                         <readHost host="hostS1" url="192.168.8.130:3306" user="root" password="root" /> 
              </writeHost>
          </dataHost>
     </mycat:schema>


    注意,修改balance=1,否則不支持讀寫分離。
            由于MySQL的root用戶,默認只支持localhost或者127.0.0.1訪問,通過IP地址無法訪問,需要修改,修改方法如下:
            [root@localhost mycat]# mysql -u root -p
            mysql> use mysql;
            mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by 'root' WITH GRANT OPTION;
            Query OK, 0 rows affected (0.03 sec)
            mysql> FLUSH PRIVILEGES;
            Query OK, 0 rows affected (0.07 sec)

          在主從服務器都要運行以上命令。


    4.修改rule.xml
    注意:role字段只能取值0和1
    1   <tableRule name="sharding-by-intfile">
    2     <rule>
    3       <columns>role</columns>
    4       <algorithm>hash-int</algorithm>
    5     </rule>
    6   </tableRule>

    5.修改配置文件conf/partition-hash-int.txt
    當role取值為0時,路由到數據節(jié)點1(dn1
    當role取值為1時,路由到數據節(jié)點2(dn2)

    0=0
    1=1

    6.修改主從復制環(huán)境
    在 http://m.tkk7.com/jacky9881/archive/2016/02/23/429403.html 搭建主從復制的環(huán)境做些修改。
    在主服務器上新建數據庫db1和db2
    [root@localhost mycat]# mysql -u root -p
    mysql> create database db1;
    Query OK, 1 row affected (0.00 sec)
    mysql> create database db2;
    Query OK, 1 row affected (0.00 sec)

    修改 my.cnf文件
    root@localhost mycat]#vi /etc/my.cnf

    binlog-do-db=db1
    binlog-do-db=db2

    重啟MySQL服務器
    [root@localhost mycat]# service mysqld restart
     
    查看主服務狀態(tài)
    [root@localhost mycat]# mysql -u root -p
    mysql> show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000009 |      106 | db1,db2      |                  |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)

    記住File和Position的值。

    修改從服務器

    在從服務器上新建數據庫db1和db2
    [root@localhost mycat]# mysql -u root -p
    mysql> create database db1;
    Query OK, 1 row affected (0.00 sec)
    mysql> create database db2;
    Query OK, 1 row affected (0.00 sec)
    mysql> slave stop;
    Query OK, 0 rows affected (0.00 sec)
    mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.130', MASTER_PORT=3306,
                MASTER_USER='admin', MASTER_PASSWORD='admin',MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=106; 
    mysql> slave start;
    Query OK, 0 rows affected (0.00 sec)
    mysql> show slave status\G;

    確認以下信息輸出:

     Slave_IO_Running: Yes
     Slave_SQL_Running: Yes

    至此,主從復制環(huán)境修改成功。

    7.結果確認
    在主服務器上,重啟Mycat服務器,然后連接Mycat服務器。

    [root@localhost mycat]# ./bin/mycat restart
    Stopping Mycat-server...
    Mycat-server was not running.
    Starting Mycat-server...
    [root@localhost mycat]#mysql -utest -ptest -h192.168.8.132 -P8066 -DTESTDB    
    mysql> create table `user` (`id` int not null auto_increment,`name` varchar (60),`password` varchar (20),`role` int not null,`email` varchar (30),`alertday` int,primary key (`id`));
    Query OK, 0 rows affected (0.47 sec)

    運行成功,去從服務器的db1和db2,可以看到表已經被創(chuàng)建了,說明主從復制正常。
    mysql> use db1;
    Database changed
    mysql> show tables;
    +---------------+
    | Tables_in_db1 |
    +---------------+
    | user          |
    +---------------+
    1 row in set (0.10 sec)

    mysql> use db2;
    Database changed
    mysql> show tables;
    +---------------+
    | Tables_in_db2 |
    +---------------+
    | user          |
    +---------------+
    1 row in set (0.00 sec)

    在主服務器上運行以下命令:
    mysql> insert into `user` (`name`,`password`,`role`,`email`,`alertday`) values('admin','admin',0,'xxxx@xxx.com',30);
    Query OK, 1 row affected (0.24 sec)

    mysql> insert into `user` (`name`,`password`,`role`,`email`,`alertday`) values('admin','admin',1,'xxxx@xxx.com',30);
    Query OK, 1 row affected (0.00 sec)

    確認分片規(guī)則有沒有起作用。
    在從服務器上運行如下命令,根據結果可以看出,role為0的記錄被路由到db1中,role為1的記錄被路由到db2中。
    mysql> use db1;
    Database changed
    mysql> select * from user;
    +----+-------+----------+------+--------------+----------+
    | id | name  | password | role | email        | alertday |
    +----+-------+----------+------+--------------+----------+
    |  1 | admin | admin    |    0 | xxxx@xxx.com |       30 |
    +----+-------+----------+------+--------------+----------+
    1 row in set (0.00 sec)

    mysql> use db2;
    Database changed
    mysql> select * from user;
    +----+-------+----------+------+--------------+----------+
    | id | name  | password | role | email        | alertday |
    +----+-------+----------+------+--------------+----------+
    |  1 | admin | admin    |    1 | xxxx@xxx.com |       30 |
    +----+-------+----------+------+--------------+----------+
    1 row in set (0.00 sec)

    最后再確認一下讀寫分離有沒有真的實現。
    在主服務上運行
    mysql> insert into `user` (`name`,`password`,`role`,`email`,`alertday`) values('admin','admin',1,'xxxx@xxx.com',30);
    mysql> select * from user;

    查看一下log文件
    修改conf/log4j.xml,   INFO=>DEBUG

    02/29 03:48:05.414  DEBUG [$_NIOREACTOR-0-RW] (PhysicalDatasource.java:403) -release channel MySQLConnection [id=11, lastTime=1456746485403, schema=db2, old shema=db2, borrowed=true, fromSlaveDB=true, threadId=1857, charset=latin1, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=192.168.8.130, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]



    Feedback

    # re: 使用MyCat實現MySQL的分片處理和讀寫分離  回復  更多評論   

    2016-03-11 11:12 by mycat
    珠三角地區(qū)
    關注這方面技術的同學可以加QQ群479189837討論

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 永久免费bbbbbb视频| 色欲国产麻豆一精品一AV一免费| 91成人免费观看网站| 亚洲激情在线观看| a级毛片免费在线观看| 亚洲国产精品日韩| 人人爽人人爽人人片A免费| 免费大黄网站在线观| 人妻无码中文字幕免费视频蜜桃| 日本特黄特黄刺激大片免费| 久久久久亚洲国产AV麻豆| 日韩中文无码有码免费视频 | 亚洲精品自在在线观看| 国产精品免费看久久久香蕉| 久久久久亚洲爆乳少妇无| A国产一区二区免费入口| 亚洲成色在线综合网站| 最近中文字幕2019高清免费| 在线免费观看亚洲| 国产在线jyzzjyzz免费麻豆 | 免费人成视频在线观看网站 | 麻豆国产精品入口免费观看| 亚洲国产成人久久一区二区三区| 日本a级片免费看| caoporm超免费公开视频| 亚洲精品无码久久久久sm| 91精品国产免费入口| 色偷偷亚洲女人天堂观看欧| 日韩成全视频观看免费观看高清| 日日摸日日碰夜夜爽亚洲| AV在线亚洲男人的天堂| 日韩精品久久久久久免费| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 在线a亚洲v天堂网2019无码| 无码专区AAAAAA免费视频| 亚洲免费人成视频观看| 国产免费AV片无码永久免费| 免费黄网站在线看| 亚洲欧美中文日韩视频| 久久精品国产亚洲Aⅴ香蕉 | 亚洲成aⅴ人片久青草影院|