SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。 本文主要和大家分享mysql 中间件mycat安装与使用方法实例,MyCAT是MySQL中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之。于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显。这篇文章主要是MyCAT的入门部署。一,什么是mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据库中间件产品 以上是官方说明。其实就是数据库的连接池。mysql proxy也是一种连接池,但是效率很低。 二,mycat 安装 1,下载地址mycat http://dl.mycat.io/ 2,安装mycat
# tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/ 三,配置mycat 1,配置server.xml
# vim /usr/local/mycat/conf/server.xml //添加以下内容
<user name="user"> //mycat用户名
<property name="password">user</property> //mycat密码
<property name="schemas">mytest</property> //mycat虚拟数据库名
<property name="readOnly">true</property> //只读
</user>
<user name="tankzhang">
<property name="password">admin</property>
<property name="schemas">mytest</property>
</user> 在这里要注意,默认的虚拟数据名是TESTDB,如果schema.xml里面没有配置testdb,那就要把testdb改成schema.xml里面有的虚拟数据名。这里定义的用户名和密码,虚拟数据库名,并不是在mysql中真实存在的。 2,配置schema.xml
# cat schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="mytest" checkSQLschema="false" sqlMaxLimit="100" dataNode="my1" />//定义虚拟数据库名mytest
<dataNode name="my1" dataHost="test1" database="test" /> //真实数据库名test
<dataHost name="test1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" >
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.5.213:3306" user="tank" password="123456" > //真实数据库的连接方式
<readHost host="hostS1" url="192.168.5.214:3306" user="tank" password="123456" /> //同上
</writeHost>
</dataHost>
</mycat:schema> mycat的配置参数,相当的多。重点说一下 balance="1"与writeType="0" a. balance 属性负载均衡类型,目前的取值有 4 种: 1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。 2. balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1 ->S1 , M2->S2,并且 M1 与 M2 互为主备),正常情况下, M2,S1,S2 都参与 select 语句的负载均衡。 3. balance="2",所有读操作都随机的在 writeHost、 readhost 上分发。 4. balance="3", 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有, 1.3 没有。 b. writeType 属性 负载均衡类型,目前的取值有 3 种: 1. writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个 writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties . 2. writeType="1",所有写操作都随机的发送到配置的 writeHost。 3. writeType="2",没实现。 具体参数:http://mycat.io/document/Mycat_V1.6.0.pdf 3,配置主从服务器,就不在这儿说了,博客中有 4,添加真实用户
grant all privileges on test.* to tank@"192.168.%" identified by '123456';
flush privileges 在213,214二台机器上添加用户。 5,测试真实用户连接,确保schema.xml中配置的真实用户,能连上真实的数据库。注意防火墙。 四,启动mycat 1,常用参数 ./mycat start 启动 ./mycat stop 停止 ./mycat console 前台运行 ./mycat restart 重启服务 ./mycat pause 暂停 ./mycat status 查看启动状态 2,启动,并查看mycat
# ./mycat start
Starting Mycat-server...
# netstat -tpnl |