旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

mysql 中间件mycat装置与使用方法实例分享【MySQL教程】,mysql,mycat,使用方法

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:77评论:0


导读:本文主要和人人分享mysql中间件mycat装置与运用方法实例,MyCAT是MySQL中间件,前身是阿里赫赫有名的Cobar,Cobar在开源了一段时候后,不了了之。因而MyCA...
本文主要和人人分享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 |grep 8066
tcp 0 0 :::8066 :::* LISTEN 31728/java 

# ./mycat status
Mycat-server is running (31726).

五,测试读写星散


# mysql -u tankzhang -p -P 8066 -h 127.0.0.1 //一定要带上127.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.29-mycat-1.6-RELEASE-20161028204710 MyCat Server (OpenCloundDB)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+----------+
| DATABASE |
+----------+
| mytest |    //假造数据库
+----------+
1 row in set (0.00 sec)

mysql> use mytest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

mysql> CREATE TABLE IF NOT EXISTS `user` (
 -> `id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'ID',
 -> `name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名',
 -> `create_time` int(10) NOT NULL DEFAULT '0' COMMENT '建立时候',
 -> PRIMARY KEY (`id`)
 -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Query OK, 0 rows affected (0.08 sec)

Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| user |
+----------------+
1 row in set (0.01 sec)

mysql> INSERT INTO `user` (`id` ,`name`)VALUES ('1', 'tank');
Query OK, 1 row affected (0.00 sec)

mysql> select * from user;  //修正从数据库的user表中的name,会发明读是从从数据库读取的
+----+-----------+-------------+
| id | name | create_time |
+----+-----------+-------------+
| 1 | tankzhang | 0 |
+----+-----------+-------------+
1 row in set (0.01 sec)

六,小结

mycat支撑 mysql的分表,分片等等,然则不发起运用。mycat支撑的集群不多,假如能合营mha运用就比较牛B了。

相干引荐:

Mycat读写星散在MySQL主从复制基础上完成的实例

怎样举行MyCat的设置

MySQL分布式集群之MyCAT(一)简朴引见

以上就是mysql 中间件mycat装置与运用方法实例分享的细致内容,更多请关注ki4网别的相干文章!

标签:mysqlmycat使用方法


欢迎 发表评论: