Mycat安装和简单配置启动(无分片配置)

Mycat入门概述

学习视频https://www.bilibili.com/video/BV1WJ411x7bD?t=613&p=22

1.1是什么

Mycat 是数据库中间件。

1、数据库中间件

中间件:是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟通。

例子:Tomcat,web中间件。

数据库中间件:连接java应用程序和数据库

2、为什么要用Mycat?

① Java与数据库紧耦合。

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

③ 读写请求数据不一致

3、数据库中间件对比

在这里插入图片描述

① Cobar属于阿里B2B事业群,始于2008年,在阿里服役3年多,接管3000+个MySQL数据库的schema, 集群日处理在线SQL请求50亿次以上。由于Cobar发起人的离职,Cobar停止维护。

② Mycat是开源社区在阿里cobar基础上进行二次开发,解决了cobar存在的问题,并且加入了许多新 的功能在其中。青出于蓝而胜于蓝。

③ OneProxy基于MySQL官方的proxy思想利用c进行开发的,OneProxy是一款商业收费的中间件。舍 弃了一些功能,专注在性能和稳定性上。

④ kingshard由小团队用go语言开发,还需要发展,需要不断完善。

⑤ Vitess是Youtube生产在使用,架构很复杂。不支持MySQL原生协议,使用需要大量改造成本。

⑥ Atlas是360团队基于mysql proxy改写,功能还需完善,高并发下不稳定。

⑦ MaxScale是mariadb(MySQL原作者维护的一个版本) 研发的中间件

⑧ MySQLRoute是MySQL官方Oracle公司发布的中间件

3、Mycat的官网 http://www.mycat.io/
1.2 干什么
1、读写分离

在这里插入图片描述

2、数据分片

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

在这里插入图片描述

3、多数据源整合

在这里插入图片描述

1.3 原理

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

在这里插入图片描述

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

安装环境

1、jdk:要求jdk必须是1.7及以上版本

2、Mysql:推荐mysql是5.5以上版本

3、Mycat:

Mycat的官方网站:

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

下载地址:

https://github.com/MyCATApache/Mycat-download

4、查看jdk版本

java -version

在这里插入图片描述
5、在线安装mysql:(master,slave1都要下载)

如果mysql的版本不是想要的版本。需要把mysql卸载。

yum remove mysql mysql-server mysql-libs mysql-common

rm -rf /var/lib/mysql

rm /etc/my.cnf

下载安装

Wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm //安装

yum install mysql-community-server

需要给root用户设置密码。

/usr/bin/mysqladmin -u root password 'new-password'  // 为123456账号设置密码

启动mysql

systemctl start mysqld

查看版本

mysqladmin --version

在这里插入图片描述登录mysql,接着输入密码

 mysql -uroot -p123456

远程连接授权。

登录后执行命令

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

注意:‘myuser’、‘mypassword’ 需要替换成实际的用户名和密码。

注意:若是LINUX版本的MYSQL,则需要设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。 在MySQL的配置文件中/etc/my.cnf [mysqld] 中增加一行   lower_case_table_names=1

  vi /etc/my.cnf 
  lower_case_table_names=1 

在这里插入图片描述

2.1 安装(在master安装)
1、下载 http://www.mycat.org.cn/
cd /usr/app
wget http://dl.mycat.org.cn/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
2、解压
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr
3、三个配置文件

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

②rule.xml:定义分片规则

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

2.2 启动
1、修改配置文件

1)修改配置文件server.xml

cd /usr/mycat/conf
vi server.xml

在这里插入图片描述2)修改配置文件 schema.xml

vi 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.100.101:3306" user="root"   password="123456">                         
        <!-- can have multi read hosts -->                         
        <readHost host="hostS1" url="192.168.100.102:3306" user="root" password="123456" />                 
</writeHost>  </dataHost> 
</mycat:schema>
 
  1. 配置rule.xml

此配置文件可以不用修改,使用默认即可。

2、验证数据库访问情况

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

master,slave1开启数据库

systemctl start mysqld
mysql -uroot -p123456 -h 192.168.100.101 -P 3306 
mysql -uroot -p123456 -h 192.168.100.102 -P 3306
3、启动mycat

①控制台启动 :去 mycat/bin 目录下执行 ./mycat console
②后台启动 :去 mycat/bin 目录下 ./mycat start

cd /usr/mycat/bin
./mycat start

方便查看日志是否启动成功,用console好,成功后不能退出,退出就关闭mycat

cd /usr/mycat/bin
./mycat console

查看mycat进程

ps -ef | grep mycat

mycat 支持的命令{ console | start | stop | restart | status | dump }

Mycat的默认端口号为:8066

4、关闭
cd /usr/mycat/bin
./mycat stop
2.3 登录
1、登录后台管理窗口

此登录方式用于管理维护 Mycat

mysql -umycat -p123456 -P 9066 -h 192.168.100.101
show databses;
show @@help;

在这里插入图片描述

2、登录数据窗口

此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问 Mycat, -umycat,是因为在rule改了,没改默认是root

 mysql -umycat -p123456 -P 8066 -h 192.168.140.128 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值