mycat

mycat连接不上mysql数据库

耗尽温柔 提交于 2019-12-06 07:03:17
1:首先查看schema.xml中数据库地址和数量是否配置正确 2:查看mycat.log日志看具体什么错误。个人报错: can't connect to mysql server ,errmsg:Host '192.168.100.196' is blocked because of many connection errors 具体意思是:太多错误连接导致被堵塞 原因:同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞; 解决办法: 方法一 使用mysqladmin flush-hosts 命令清理一下hosts文件(不知道mysqladmin在哪个目录下可以使用命令查找:whereis mysqladmin); 进入命令行 到mysql安装目录,bin文件夹下执行 刷新记录报错host的文件 mysqladmin -u root -p flush-hosts 注释: 不过好像方法一不太好使,方法二搞定; 方法二: 进入数据库将 max_connection_errors 参数调高,也可以在 my.cnf 文件中修改不过需要重启MySQL。 mysql>show variables like '%max_connection_errors%'; mysql>set global max

存储-海量数据-(mycat核心概念以及进阶)

折月煮酒 提交于 2019-12-05 18:57:02
目标 Ø 掌握数据库的大数据处理方案和HA Ø 掌握为什么需要数据库中间件,何为数据库中间件 Ø 掌握不同场景所需的数据库中间件特性 Ø 掌握数据库中间件设计要点 核心概念理解和工作原理 回顾 应对大数据和高并发的处理,在分库分表之后,如何解决对DAO层数据访问的影响 对数据库中间件的能力要求很高 Ø 1 要能解析SQL Ø 2 能支持读写分离 Ø 3 能支持从库读的负载均衡 Ø 4 支持分库操作 Ø 5 支持分表操作 Ø 6 支持跨库关联查询 Ø 7 对事务处理的支持 Ø 8 主键ID生成 Ø 9 数据源管理 Mycat版本说明 Ø Mycat-mini-monitor项目开源了,又一款Mycat监控! Ø Mycat-mini-monitor-1.0.0 版本发布 Ø Mycat-server-1.6.6-release 版本发布 Ø Mycat-server-1.6.6-test 版本发布 Ø Mycat-server-1.6-release 版本发布 Ø Mycat-server-1.5-release 版本发布 Ø Mycat-server-1.4-release 版本发布 Ø Mycat-server-1.3-release 版本发布 Ø Mycat-web(eye) 版本发布 Mycat工作原理 Mycat 的原理: ‚拦截‛,它拦截了用户发送过来的SQL 语句

存储-海量数据-(mycat核心概念以及进阶)

落花浮王杯 提交于 2019-12-05 18:56:12
目标 Ø 掌握数据库的大数据处理方案和HA Ø 掌握为什么需要数据库中间件,何为数据库中间件 Ø 掌握不同场景所需的数据库中间件特性 Ø 掌握数据库中间件设计要点 核心概念理解和工作原理 回顾 应对大数据和高并发的处理,在分库分表之后,如何解决对DAO层数据访问的影响 对数据库中间件的能力要求很高 Ø 1 要能解析SQL Ø 2 能支持读写分离 Ø 3 能支持从库读的负载均衡 Ø 4 支持分库操作 Ø 5 支持分表操作 Ø 6 支持跨库关联查询 Ø 7 对事务处理的支持 Ø 8 主键ID生成 Ø 9 数据源管理 Mycat版本说明 Ø Mycat-mini-monitor项目开源了,又一款Mycat监控! Ø Mycat-mini-monitor-1.0.0 版本发布 Ø Mycat-server-1.6.6-release 版本发布 Ø Mycat-server-1.6.6-test 版本发布 Ø Mycat-server-1.6-release 版本发布 Ø Mycat-server-1.5-release 版本发布 Ø Mycat-server-1.4-release 版本发布 Ø Mycat-server-1.3-release 版本发布 Ø Mycat-web(eye) 版本发布 Mycat工作原理 Mycat 的原理: ‚拦截‛,它拦截了用户发送过来的SQL 语句

mysql高可用方案分析

僤鯓⒐⒋嵵緔 提交于 2019-12-05 15:06:34
低读低写并发、低数据量方案 方案一:双机高可用方案 1.数据库架构图 2.特点 一台机器A作为读写库,另一台B作为备份库;A库故障后B库作为读写库;A库恢复后A作为备库。 3.开发说明 此种情况下,数据源配置中的数据库IP地址,可采用虚拟的IP地址。虚拟IP地址由两台数据库机器上的keepalive配置,并互相检测心跳。当其中一台故障后,虚拟IP地址会自动漂移到另外一台正常的库上。 数据库的主备配置、故障排除和数据补全,需要DBA和运维人员来维护。而程序代码或配置并不需要修改。 具体配置可参考资料: http://lizhenliang.blog.51cto.com/7876557/1362313 http://database.51cto.com/art/201012/237204.htm http://gaoke.iteye.com/blog/2283890 4.适应场景 读和写都不高的场景(单表数据低于500万),双机高可用。 5.优缺点 优点是一个机器故障了可以自动切换;缺点是只有一个库在工作,读写并未分离,并发有限制。 方案二:主从结构方案 1.数据库架构图 2.特点 一台机器A作为写库,另一台B作为读库;A库故障后B库充当读写,A修复后,B库为写库,A库为读库。 3.开发说明 这种方案的实现,要借助数据库中间件Mycat来实现,Mycat的datahost配置如下

Mycat 全局系列号(转载)

拟墨画扇 提交于 2019-12-05 07:03:57
概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点。 配置 文件方式获取 1.修改server配置文件 vim server.xml <system><property name="sequnceHandlerType">0</property></system> 注:sequnceHandlerType 配置为0表示使用本地文件读取。 2.配置sequence_conf.properties配置文件 3.在mycat中运行语句测试(在逻辑库中测试) insert into company(id,name) values(next value for MYCATSEQ_GLOBAL,'test'); 缺点 :在 MyCAT 重启后,配置文件中癿 sequence 会恢复到初始值。 优点 :本地加载,读取速度较快。 数据库方式获取 1.修改server配置文件 vim server.xml <system><property name="sequnceHandlerType">1</property></system> 注:sequnceHandlerType 配置为1表示从数据库表中读取。 2.配置读取的节点,就是配置全局表在哪个节点上面,我这里配置在dn1节点上面。 vim sequence_db_conf

linux常用环境的安装

你说的曾经没有我的故事 提交于 2019-12-05 03:05:28
安装linux和安装虚拟机略过,直接进行环境的安装 1,安装JDK java环境变量: 系统变量: /etc/profile 用户环境变量: .bash_profile(当前用户的profile) 将文件上传到root文件夹下 tar -zxvf jdk-8u171-linux-x64.tar.gz(解压) 此次用的是解压包的方式进行配置, 还可以通过rpm(类似于java的.exe文件),还是需要配置,通过搜索安装文件在10中可以看到,在环境变量中配置 yum安装,自动化配置,什么都不用做,只需要执行命令,直接用 mv jdk1.8.0_171/ /usr(移动到usr文件夹下) vim .bash_profile(配置环境变量) source .bash_profile(刷新配置) 1 export JAVA_HOME=/usr/jdk1.8.0_171 2 export PATH=$JAVA_HOME/bin:$PATH 点击查看java环境配置 然后用java或者javac测试一下配置是否成功 查询一下java安装的位置,以方便后期进行卸载软件 1 [root@localhost ~]# find / -name "java" 2 /etc/pki/ca-trust/extracted/java 3 /etc/pki/java 4 /usr/jdk1.8.0_171/bin

mycat的相关操作

一笑奈何 提交于 2019-12-04 17:53:28
1.Mycat的简介   Mycat是数据库中间件   作用:1,读写分离 2,数据分片(垂直拆分分库,水平拆分分表,垂直拆分+水平拆分)3,多数据源整合      原理:就是拦截 (类似于 nginx )       mycat 的安装与启动 将 mycat 的安装包解压到 /opt 目录下 拷贝解压后的 mycat 文件夹到 /usr/local/ 目录下       cp -r ./mycat /usr/local 修改 mycat 安装目录下的配置文件     首先进入到安装目录 cd /usr/local/mycat/conf     修改 server.xml 文件(用户定义以及相关系统变量等)          其次 . 修改 schema.xml 文件(定义逻辑库,表,分片节点等内容)           其中 schema 标签 name 是表示逻辑库的名字(在 server.xml 中配置的)     dataNode 标签 表示数据节点,在 schema 表前中,表示默认使用 dataNode=dn1 的数据节点     <dataNode> 标签就是表示数据节点标签, name 属性就是当前数据节点的名字, dataHost 表示指向的 <dataHost 标签 >     database 对应 mysql 上的数据库     <dataHost 标签 >

使用Docker部署基于MyCat的MySql

对着背影说爱祢 提交于 2019-12-04 10:05:32
Mysql已经提供了Docker image,可以很方便开启一个mysql服务器。 1. Pull Mysql Image $ docker pull mysql 前提是已经安装Docker,这个可以参考docker官网,步骤很详细。 2. 创建外部数据挂载点 $ sudo mkdir -p /var/docker/mysql/data_0 $ sudo mkdir -p /var/docker/mysql/data_1 $ sudo mkdir -p /var/docker/mysql/data_2 $ sudo chmod 775 -R /var/docker/mysql/ 除了这种方式,也可选择使用Docker数据卷。 3. 启动Mysql容器 通过-e参数可以设定一下Mysql服务端的参数,这里设置了root的密码,并且创建了一个密码为dev的用户dev。 CentOS 下需要加 --privileged=true ,ubuntu 不需要 $ docker run --privileged=true -p 3307:3306 --name mysql-test0 -v /var/docker/mysql/data_0/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=dev -e MYSQL_PASSWORD

分库分表(了解)

ぐ巨炮叔叔 提交于 2019-12-04 06:38:21
站在架构师的角度来看分库分表 1、单体应用架构 一个归档包(可以是JAR、WAR、EAR或其它归档格式)包含所有功能的应用程序,通常称为单体应用。 优点 便于共享:单个归档文件包含所有功能,便于在团队之间以及不同的部署阶段之间共享。 易于测试:单体应用一旦部署,所有的服务或特性就都可以使用了,这简化了测试过程,因为没有额外的依赖,每项测试都可以在部署完成后立刻开始。 易于部署:只需将单个归档文件复制到单个目录下。 缺点 复杂性高:由于是单个归档文件,所以整个项目文件包含的模块非常多,导致模块的边界模糊、依赖关系不清晰、代码的质量参差不齐,混乱的堆在一起,使得整个项目非常复杂。以致每次修改代码,都非常小心,可能添加一个简单的功能,或者修改一个Bug都会带来隐藏的缺陷。 技术债务:随着时间的推移、需求的变更和技术人员的更替,会逐渐形成应用程序的技术债务,并且越积越多。 扩展能力受限:单体应用只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩。 阻碍技术创新:对于单体应用来说,技术是在开发之前经过慎重评估后选定的,每个团队成员都必须使用相同的开发语言、持久化存储及消息系统。 2、微服务应用架构 微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署

Mycat

冷暖自知 提交于 2019-12-04 02:05:51
前情回顾 Mycat - 实现数据库的读写分离与高可用中我们实现了mysql的读写分离与高可用,有几个点我们回顾下 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。 1、数据的同步在mysql层面实现的,mycat不负责任何的数据同步,我们需要配置mysql的主从复制来实现数据的同步; 2、数据库的读写分离是mycat最常用的场景之一,我们的应用代码只需要关注业务代码,而不需要处理数据库读写、分片问题,这些都由Mycat实现,简化了开发; 3、读写分离往往伴随着高可用,而Mycat同时支持这两者; 那是不是就完美无缺了呢? 显然还有点小瑕疵,此时我们的Mycat是单点部署的,如果Mycat服务挂了,那么整个数据库端就挂了,整个应用也就不能正常服务了,那怎么办了? 很明显,我们需要实现Mycat的高可用,具体实现我们往下看。 keepalived实现Mycat高可用 centos7_1 (192.168.1.110)上搭建mycat 上篇博文中,我们搭建的读写分离各组件关系如下 此时还是单节点的mycat,我们还需要搭建一个mycat,搭建过程可以参考192.168.1.212上mycat的搭建