1、MyCat入门

1.Mycat简介

[1].Mycat是什么

  Mycat 是数据库中间件

[2].why使用Mycat

  ①.Java与数据库紧耦合

  ②.高访问量高并发对数据库的压力

  ③.读写请求数据不一致

[3].数据库中间件

 

[3].Mycat官网

   http://www.mycat.org.cn/

[4].Mycat作用

(1).读写分离

 

(2).数据分片

  垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)

 

(3).多数据源整合

 

[5].Mycat原理

  Mycat 的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。

 

  这种方式把数据库的分布式从代码中解耦出来,程序员察觉不出来后台使用 Mycat 还是MySQL。

2.Mycat安装启动

[1].解压后即可使用

  解压缩文件拷贝到 linux 下 /usr/local/

(1)将tar包放到Linux的/opt 

(2)解压Mycat

[root@pluto opt]# cd /opt/

[root@pluto opt]# tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz

(3)复制Mycat到/usr/local/

  因为mycat是目录,所以我们需要-r递归参数

[root@pluto mycat]# cp -r /opt/mycat/ /usr/local/

(4)配置文件

  schema.xml:定义逻辑库,表、分片节点等内容

  rule.xml:定义分片规则

  server.xml:定义用户以及系统相关变量,如端口等

1)server.xml

  修改用户信息,与MySQL区分

        <user name="mycat" defaultAccount="true">

                <property name="password">123456</property>

                <property name="schemas">TESTDB</property>

        </user>

2)schema.xml

  删除<schema>标签间的表信息,<dataNode>标签只留一个,<dataHost>标签只留一个,<writeHost> <readHost>只留一对

[root@pluto 桌面]# vim /usr/local/mycat/conf/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" dataNode="dn1">

        </schema>

        <dataNode name="dn1" dataHost="host1" database="testdb" />

        <dataHost name="host1" 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.188.188:3306" user="root"

                                   password="123456">

                        <!-- can have multi read hosts -->

                        <readHost host="hostS2" url="192.168.188.189:3306" user="root" password="123456" />

                </writeHost>

        </dataHost>

</mycat:schema>

3).验证数据库

  Mycat 作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。

mysql -uroot -p123123 -h 192.168.188.188 -P 3306

mysql -uroot -p123123 -h 192.168.188.189 -P 3306

 

#如远程访问报错,请建对应用户

grant all privileges on *.* to root@'%' identified by '123456';

%代表全部用户

[2].启动mycat

[root@pluto bin]# pwd

/usr/local/mycat/bin

[root@pluto bin]# ./mycat console

 

启动mycat遇到的问题

 

https://blog.csdn.net/MAMAIMAI/article/details/104664129

https://blog.csdn.net/weixin_44666068/article/details/105792473

https://www.cnblogs.com/orcl-2018/p/13153865.html

https://blog.csdn.net/chtjava/article/details/87078154

http://www.xwood.net/_site_domain_/_root/5870/5874/t_c279894.html

 

 

https://blog.csdn.net/chtjava/article/details/87078154

[3].登录mycat

(1).登录数据窗口

  此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问 Mycat

[root@host79 ~]# mysql -umycat -p123456 -h 192.168.188.188 -P 8066

 

(2).登录后台管理窗口

[root@host79 ~]# mysql -umycat -p123456 -h 192.168.188.188 -P 9066

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章