mycat系列-常见问题与解决方案
Mycat目前有哪些功能与特性?
答:
• 支持 SQL 92标准
• 支持Mysql集群,可以作为Proxy使用
• 支持JDBC连接多数据库
• 支持NoSQL数据库
• 支持galera for mysql集群,percona-cluster或者mariadb cluster,提供高可用性数据分片集群
• 自动故障切换,高可用性
• 支持读写分离,支持Mysql双主多从,以及一主多从的模式
• 支持全局表,数据自动分片到多个节点,用于高效表关联查询
• 支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询
• 支持一致性Hash分片,有效解决分片扩容难题
• 多平台支持,部署和实施简单
• 支持Catelet开发,类似数据库存储过程,用于跨分片复杂SQL的人工智能编码实现,143行Demo完成跨分片的两个表的JION查询。
• 支持NIO与AIO两种网络通信机制,Windows下建议AIO,Linux下目前建议NIO
• 支持Mysql存储过程调用
• 以插件方式支持SQL拦截和改写
• 支持自增长主键、支持Oracle的Sequence机制
Mycat除了Mysql还支持哪些数据库?
答:mongodb、oracle、sqlserver 、hive 、db2 、 postgresql。
Mycat目前有生产案例了么?
答:目前Mycat初步统计大概60家公司使用。
Mycat稳定性与Cobar如何?
答:目前Mycat稳定性优于Cobar,而且一直在更新,Cobar已经停止维护,可以放心使用。
Mycat支持集群么?
答:目前Mycat没有实现对多Mycat集群的支持,可以暂时使用haproxy来做负载,或者统计硬件负载。
Mycat多主切换需要人工处理么?
答:Mycat通过心跳检测,自主切换数据库,保证高可用性,无须手动切换。
Mycat目前有多少人开发?
答:Mycat目前开发全部是志愿者无偿支持,主要有以leaderus 为首的Mycat-Server 开始、以rainbow为首的Mycat-web开发、以海王星为首的产品发布及代码管理,还有以Marshy为首的推广。
Mycat目前有哪些项目?
答:
Mycat-Server :Mycat核心服务、
Mycat-spider : Mycat爬虫技术、
Mycat-ConfigCenter :Mycat配置中心 、
Mycat-BigSQL : Mycat大数据处理(暂未更细)、
Mycat-Web : Mycat监控及web(新版开发中) 、
Mycat-Balance :Mycat集群负载(暂未更细)
Mycat最新的稳定版本是哪个到哪里下载?
答:打包代码:Mycat最新稳定版是1.3.0.3 ,1.4为开发板,下载地址是:https://github.com/MyCATApache/Mycat-download。
文档:https://github.com/MyCATApache/Mycat-doc
源码:https://github.com/MyCATApache/Mycat-Server
Mycat如何配置字符集?
答:在配置文件server.xml配置,默认配置为utf8。
<system><property name="charset">utf8</property></system>
Mycat后台管理监控如何使用?
答:9066端口可以用JDBC方式执行命令,在界面上进行管理维护,也可以通过命令行查看命令行操作。
命令行操作是:mysql -h127.0.0.1 -utest -ptest -P9066 登陆,然后执行相应命令。
Mycat主键插入后应用如何获取?
答:获得自增主键,插入记录后执行select last_insert_id()获取。
Mycat如何启动与加入服务?
答:目前Mycat暂未封装加入服务,需要自己封装。
linux环境为:
./mycat start 启动
./mycat stop 停止
./mycat console 前台运行
./mycat restart 重启服务
./mycat pause 暂停
./mycat status 查看启动状态
window启动为:
直接双击运行 startup_nowrap.bat ,如果闪退用cmd模式运行查看日志。
Mycat运行sql时经常阻塞或卡死是什么原因?
答: 如果出现执行sql语句长时间未返回,或卡死,请检查是否是虚机下运行或cpu为单核,具体解决方式请参 考:https://github.com/MyCATApache/Mycat-Server/issues/73,如果仍旧无法解决,可以暂时跳过,目前有些环境阻塞卡死原因未知。
Mycat中,旧系统数据如何迁移到Mycat中?
答:旧数据迁移目前可以手工导入,在mycat中提取配置好分配规则及后端分片数据库,然后通过dump或loaddata方式导入,后续Mycat就做旧数据自动数据迁移工具。
Mycat如何对旧分片数据迁移或扩容,支持自动扩容么?
答:目前除了一致性hash规则分片外其他数据迁移比较困难,目前暂时可以手工迁移,未提供自动迁移方案,具体迁移方案情况Mycat权威指南对应章节。
Mycat支持批量插入吗?
答:目前Mycat1.3.0.3以后支持多values的批量插入,如insert into(xxx) values(xxx),(xxx) 。
Mycat支持多表Join吗?
答:Mycat目前支持2个表Join,后续会支持多表Join,具体Join请看Mycat权威指南对应章节。
Mycat 启动报主机不存在的问题?
答:需要添加ip跟主机的映射。
Mycat连接会报无效数据源(Invalid datasource)?
答:如果不是配置问题,分析具体日志看出错原因,常见的有:
如果是应用连:在某些版本的Mysql驱动下连接Mycat会报错,可升级最新的驱动包试下。
如果是服务端控制台连,确认mysql是否开启远程连接权限,或防火墙是否设置正确,或者数据库database是否配置,或用户名密码是否正确。
Mycat使用中如何提需求或bug?
答:bug或新需求可以到群里提问,同时最好到github发起以isuues:https://github.com/MyCATApache/Mycat-Server/issues
Mycat如何建表与创建存储过程?
答:注意注解中语句是节点的表请替换成自己表如select 1 from 表 ,查出来的数据在那个节点往哪个节点建
存储过程:/*!mycat: sql=select 1 from 表 */ CREATE DEFINER=`root`@`%` PROCEDURE `proc_test`() BEGIN END ; 表:/*!mycat: sql=select 1 from 表 */create table ttt(id int);
Mycat目前有多少人维护?
答:目前初步统计有10人以上核心人员维护。
Mycat支持的或者不支持的语句有哪些?
答:insert into,复杂子查询,3表及其以上跨库join等不支持。