Mycat

安装mycat

下载mycat官方的安装包,最好用github上面的,避免采坑

https://github.com/MyCATApache/Mycat-Server/releases

在usr目录下面新建目录mycat

sudo mkdir mycat

解压压缩包到此目录

sudo unrar e mycat1.6.7.1.rar

如果没有安装rar, 可以安装一下,安装命令如下:

sudo apt get rar

解压之后得到以下文件Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
需要继续解压

tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz

兼容mysql8

由于mycat1.6仅支持mysql5,不支持mysql8, 首先需要替换bin目录下面的mysq驱动文件为对应版本的,查看mysq版本

mysql -V

下载对应的驱动包

https://mvnrepository.com/artifact/mysql/mysql-connector-java?cf_chl_captcha_tk=01fab9921304b803c833002e4bee58960f5609a0-1607528202-0-AT-mnJkNl0PIbV1dqtw2ZLZfpQA_eDjUcSKekQb2Xix4nLFZJMAvadJI1zpV5AkdqW3zoFUW901btxoUs_nPbKyrY_Ltxutrwpb6YGptzDU2WLYfsIdloJdBdsFGeV_VCXEUvK0LLhjC1e0nSF_h22gRgzbxXL9-5e4JvZt9syC0E7Xa-uf67XnArzLrSN-hHOjmtA2949QrXaA_SkwfzIhZI5mT0pvvgF3DyOAMpsqMy4qiVU_iHV7qPemt9N3Ae92eRQpOJzJ7T317_mQvQzAhzan9GcGN47UOQIIDbUgY1IDoGxh3mwlHLxyu0MONZ5QV5oDeCKVu3-1W4tR-1MCVwiKYDOwf2bKuDx6N5ijKAPiy5w6STo-kFUNGmWTfghBeZr0ETwKcoMr5D1DUMWMZ2JPtDOoTz4bhuqS_4LwcFYJdnfpgiO0b9kG2nb3ta9ptsUVmw1r4mo8KOs_nN6Zb6Gg39P3KrJVOTu5vmTRuLl501hzafVHR_tKC6WGYHRaKYJN6AMAl_joS8akLwLNiB9cjdHYeFp3dd9tYhljSSdBp5b6nOZVyeStHwhJS_s1wxhdzSRCmSpxrxmrJCuyXgQeYlnY3J_ZDVh7KEiU3TbAZM9KGNl2D23wFZheejg

下载后

复制到 mycat的lib目录

cd /usr/mycat/mycat/lib

sudo cp mysql-connector-java-8.0.19.jar /usr/mycat/mycat/bin

修改文件为可执行

chmod 777 mysql-connector-java-8.0.19.jar

备份原来的mysql驱动文件

sudo mv mysql-connector-java-5.1.35.jar mysql-connector-java-5.1.35.jar.bak

其次,连接mysql时需要使用jdbc方式,schema.xml见下面的配置

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="jdbc:mysql://127.0.0.1:3306?useSSL=false&amp;serverTimezone=UTC" user="root" password="mysql密码" />
</dataHost>

开启mycat端口

一般需要使用windows中的navicat来连接mycat服务,但是需要提前开启linux中的9066和8066端口

先安装iptables工具

sudo apt-get install iptables

然后开启端口

sudo iptables -I INPUT -p tcp --dport 8066 -j ACCEPT

sudo iptables -I INPUT -p tcp --dport 9066 -j ACCEPT

开启之后使用navicat就可以连接mycat

设置mycat开机启动

每次启动虚拟机都要进入mycat安装目录重新开启mycat服务,不方便,可以这样开机自启mycat
参考:

https://www.cnblogs.com/hellojesson/p/10731620.html

遇到问题参考:

https://www.cnblogs.com/hellojesson/p/10731620.html

设置开机启动之后可以使用系统命令控制mycat启动和停止

启动:sudo systemctl start mysqld.service

查看状态:sudo systemctl status mysqld.service

停止 :sudo systemctl stop mysqld.service

重启:sudo systemctl restart mysqld.service

分库分表简单配置

进入mycat文件夹的配置文件夹

cd /usr/mycat/mycat/conf

设置server.xml

<mycat:server xmlns:mycat="http://io.mycat/">
<system><property name="nonePasswordLogin">1</property> <!-- 0为需要密码登陆、1为不需要密码登陆 ,默认为0,设置为1则需要指定默认账户--><property name="defaultSqlParser">druidparser</property><property name="useHandshakeV10">1</property>  <!--(这里记得修改)--><property name="mutiNodeLimitType">1</property><property name="charset">utf8</property><property name="serverPort">8066</property><property name="managerPort">9066</property></system><user name="root" defaultAccount="true"><property name="password">root</property><property name="schemas">TEST</property></user>
</mycat:server>

设置schemal.xml

<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="TEST" checkSQLschema="false" sqlMaxLimit="100"><table name="customer_info_t" primaryKey="id" type="global" dataNode="dn1,dn2,dn3" /><table name="order_head_t" primaryKey="order_head_id" dataNode="dn1,dn2,dn3" rule="auto-sharding-long"><childTable name="order_line_t" primaryKey="order_line_id" joinKey="order_head_id" parentKey="order_head_id"></childTable></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="jdbc" switchType="1"  slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="jdbc:mysql://127.0.0.1:3306?useSSL=false&amp;serverTimezone=UTC" user="root" password="mysql密码" /></dataHost>
</mycat:schema>

auto-sharding-long分片算法在rule.xml中,不用改动该文件,但是对应的映射文件autopartition-long.txt需要根据实际情况修改

<tableRule name="auto-sharding-long"><rule><columns>order_date</columns><algorithm>rang-long</algorithm></rule>
</tableRule>
<function name="rang-long"class="io.mycat.route.function.AutoPartitionByLong"><property name="mapFile">autopartition-long.txt</property>
</function>

autopartition-long.txt中采用两个月一个库的方式

# range start-end ,data node index
202001-202002=0
202003-202004=1
202005-202006=2

启动mycat需要进入mycat的bin目录,常用的启动命令

启动 ./mycat start
停止 ./mycat stop
前台运行 ./mycat console
重启服务 ./mycat restart
暂停 ./mycat pause
查看启动状态 ./mycat status

命令行登陆:

mysql -uroot -proot -h192.168.26.128 -P8066 -DTEST

直接在navicat中建表

DROP TABLE IF EXISTS `order_head_t`;
CREATE TABLE `order_head_t` (`order_head_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID主键',`order_date` varchar(8) NOT NULL COMMENT '下单时间',`order_no` varchar(32) NOT NULL COMMENT '订单号',PRIMARY KEY (`order_head_id`),UNIQUE KEY `uk_order_no` (`order_no`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT '订单头表';DROP TABLE IF EXISTS `order_line_t`;
CREATE TABLE `order_line_t` (`order_line_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID主键',`order_head_id` bigint(20) NOT NULL COMMENT '订单头关联ID',`order_date` varchar(8) NOT NULL COMMENT '下单时间',`commodity` varchar(128) NOT NULL COMMENT '商品',`customer` varchar(64) NOT NULL COMMENT '客户',PRIMARY KEY (`order_line_id`),KEY `idx_order_head` (`order_head_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT '订单商品表';DROP TABLE IF EXISTS `customer_info_t`;
CREATE TABLE `customer_info_t` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID主键',`customer` varchar(32) NOT NULL COMMENT '客户名称',`telephone` varchar(32) NOT NULL COMMENT '电话',`address` varchar(256) NOT NULL COMMENT '地址',PRIMARY KEY (`id`),UNIQUE KEY `uk_customer` (`customer`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT '客户表';

Mycat安装、配置与实践(兼容mysql8)相关推荐

  1. mysql8.0安装设置密码_mysql8.0.11安装配置方法图文教程 MySQL8.0新密码认证方式

    本文为大家分享了mysql8.0.11安装配置方法图文教程.MySQL8.0新密码认证方式,供大家参考,具体内容如下 1.前言 Oracle已经发布了MySQL8.0GA,GA在外国就是release ...

  2. Oozie-3.3.2安装配置运行实践

    参考:http://shiyanjun.cn/archives/644.html 注:按这篇文章说的做基本上没什么问题,但是有一点这里要说说: 在下载完ext-2.2.zip文件之后,一定要把其解压到 ...

  3. Nginx编译-安装-配置-优化实践总结

    http://www.zhuxiaodong.net/2016/configure-nginx-server-support-https-http2-on-centos7/ 一些更新说明: 2016- ...

  4. Mycat 安装配置

    下载https://github.com/MyCATApache/Mycat-download Mycat 需要jdk 环境,首先安装 jdk 安装完 jdk 环境以后 下载 mycat server ...

  5. MySQL8.0.23 社区免费版安装配置教程

    MySQL8.0.23社区免费版安装配置教程 文章目录 MySQL8.0.23社区免费版安装配置教程 1. 官网下载MySQL8.0.23 2.配置初始化的my.ini文件的文件 3. 把文件移动到设 ...

  6. mysql5.7.19winx64安装_mysql5.7.19winx64安装配置方法图文教程(win10)

    mysql 5.7.19 winx64安装教程记录如下,分享给大家 step1 官方下载地址:https://dev.mysql.com/downloads/mysql/ 选择手动下载版本 解压到自己 ...

  7. mysql8.0.13解压版安装密码设置_windows下mysql8.0.13解压版安装图文教程

    本文为大家分享了mysql8.0.13安装图文教程,供大家参考,具体内容如下 1.1. 下载: 我下载的是64位系统的zip包: 下载地址 下载zip的包 1.2.配置环境变量: 变量名:MYSQL_ ...

  8. 服务器搭建hue_Hue安装配置实践

    Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的.通过使用 ...

  9. Mycat安装与配置

    关键特性 支持SQL92标准 支持MySQL.Oracle.DB2.SQL Server.PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理. ...

最新文章

  1. 条理清晰的搭建SSH环境之添加所需jar包
  2. C++运算符重载-mfc演示
  3. HDU ACM 1162 Eddy's picture
  4. 你从未听说过的最重要的数据库,人类登月计划的功臣
  5. 我的MVC之旅(3)--------MVC Music Store 第三篇 Views and ViewModels [翻译]
  6. 一阶段结束考核题(链表的嵌套使用)
  7. python selenium post请求_工作随笔——selenium支持post请求,支持自定义header
  8. PDA端的数据库一般采用的是sqlce数据库
  9. 厉害了!浙大研发出踹不倒四足机器人“绝影”,中国版波士顿动力来了
  10. mongodb有关的研究
  11. admysqlslap压力测试
  12. 【中南林业大学第十一届校赛E:】砝码和天平(转化为进制问题+模拟进位)
  13. mtkwin10驱动_MTK手机刷机驱动下载|MTK通用USB刷机驱动 Win7/Win10 自动安装版 下载_当下软件园_软件下载...
  14. 某音init_gorgon(),x-gorgon分析和数据的获取(3)
  15. 为什么快手不能左右滑了_快手上滑切换下一个视频怎么设置
  16. 【动态规划】爬楼梯爬的不仅仅是楼梯
  17. 转计算机大牛-崔添翼
  18. bios没有u盘启动选项怎么办?
  19. CSDN英雄会上会英雄
  20. 使用Excel和OutLook实现自动发送邮件

热门文章

  1. 微习惯-CH1摘抄和即时正反馈
  2. HYCON单片机_以32位MCU-HY16F198实现AC电流量测应用-测试测量-与非网
  3. 基于DNS数据分析的恶意域名检测
  4. oo,aop,ioc概念详解
  5. 读《项羽与刘邦》有感
  6. 计算机图像处理数据 流行病学,漫谈计算机图像处理在全息学中的应用.docx
  7. 用双十一的故事串起碎片的网络协议(上)
  8. 还在使用if进行空判断?
  9. 面向对象的SOLID例子学习
  10. ESP8266对接天猫精灵-单路继电器控制