mycat安装和测试
mycat安装和测试
一. 环境准备
本机环境是三台centos6.5
|
IP |
主机名 |
数据库名 |
安装软件 |
|
192.168.17.4 |
master |
db1 |
mycat,mysql |
|
192.168.17.5 |
slave1 |
db2 |
mysql |
|
192.168.17.6 |
slave2 |
db3 |
mysql |
二. 安装mysql
1.安装mysql软件
linux下安装mysql有两种方式:一种是通过下载源码编译安装,一种是通过rpm包安装,如果配置了yum直接用yum安装会更快
编译安装步骤:
- ./congfigrue –prefix=安装路径
- make
- make install
因为编译安装,后面为了使用方便要将服务注册到init服务中比较麻烦,这里介绍最简单的yum安装
1. 安装mysql客户端
yum -y install mysql
2. 安装mysql服务器端
yum -y install mysql-server
yum -y install mysql-devel
3.添加mysql用户及权限并配置数据库
三台服务器都安装mysql以后 ,三台机器同样配置数据库
具体步骤如下:
- 配置编码格式,vi /etc/my.cnf ,添加default-character-set=utf8
- 添加开机启动项
chkconfig --add mysqld
chkconfig mysqld on
- 启动mysql,service mysqld start
- 配置root用户并设置密码,mysqladmin -u root password 123456
- 创建新用户,首先用root用户登录,mysql -uroot –p然后输入密码
执行use mysql,进入用户管理库,执行select user,host from user;查询当前用户发现有一些user是空的用户,直接删掉,delete from user where user=”” 否则后面会出问题
这里能看到只能本机访问root,可以通过执行语句update user set host = '%' where user = 'root' and host='localhost';;来释放root的访问权限,让所有ip都能通过root登录
执行语句insert into mysql.user(Host,User,Password) values("%","mycat",password("123456"));添加新用户
然后是赋权限,我这里是赋了所有权限,可以只赋某个库,或者部分权限,命令自己网上查,执行赋权限语句grant all privileges on *.* to 'mycat'@'%' identified by '123456';后一定记得执行flush privileges;来刷新权限
登录新建的用户并创建响应的数据库,mysql –umycat –p ,create database db1/db2/db3,根据不同机器数据库名不同
- 上述操作在三台机器上一样操作
三. 安装mycat
1.安装mycat软件并创建用户
下载解压tar -zxvf Mycat-server-1.4-release-20151019230038-linux.tar.gz
配置环境变量
export MYCAT_HOME=/opt/sxt/soft/mycat
PATH=$PATH:$MYCAT_HOME/bin
通过配置sh /opt/sxt/soft/mycat/bin/mycat start执行开机启动也可以自己写脚本加入init服务
创建一个新的group
groupadd mycat
创建一个新的用户,并加入group
useradd -g mycat mycat
给新用户设置密码,
passwd mycat
2.配置mycat配置文件
在三台mysql的配置文件vi /etc/my.cnf中加入lower_case_table_names =1来忽略大小写
编辑schema文件
先备份一下cp $MYCAT_HOME/conf/schema.xml $MYCAT_HOME/conf/schema.xml.tmp
vim $MYCAT_HOME/conf/schema.xml
将里面mycat:schema节点的东西全部干掉,如下配置
<table name="employee" primaryKey="ID" dataNode="dn1,dn2,dn3"
rule="sharding-by-intfile" />
</schema>
<!--数据节点dn1,对应的主机c1,对应是数据库db1 -->
<dataNode name="dn1" dataHost="master" database="db1" />
<dataNode name="dn2" dataHost="slave1" database="db2" />
<dataNode name="dn3" dataHost="slave2" database="db3" />
<!-- 主机C1-->
<dataHost name="master" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user()</heartbeat>
<!--mysql数据库的连接串 -->
<writeHost host="hostM1" url="master:3306" user="mycat"
password="123456">
</writeHost>
</dataHost>
<!-- 主机C2-->
<dataHost name="slave1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM2" url="slave1:3306" user="mycat"
password="123456">
</writeHost>
</dataHost>
<!-- 主机C3-->
<dataHost name="slave2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user()</heartbeat>
<!--mysql数据库的连接串 -->
<writeHost host="hostM3" url="slave2:3306" user="mycat"
password="123456">
</writeHost>
</dataHost>
在conf目录下配置server.xml ,将目录下没有的用户全部删掉或者注释掉,添加可用的用户,这里添加了
<user name="mycat">
<property name="password">123456</property>
<property name="schemas">JamesMycatSchema</property>
</user>
修改conf下的partition-hash-int.txt文件 在下面添加10020=2,原本默认的是分两个就是10000和10010,现在我们三个就要三个分类id了,添加一个即可
四. 测试mycat
1.启动mycat,
执行mycat start
tail -100 $MYCAT_HOME/logs/wrapper.log查看结果如下就表明启动成功了
2.测试mysql表横向分割
在虚拟机外的windows安装Navicat for MySQL,分别连接到三个mysql数据库,执行建表语句create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
用Navicat for MySQL连接mycat,mycat默认端口是8066,配置如图:
因为刚才执行了建表语句,这时候连接上了mycat里面也有一个空的employee表
执行如下语句
insert into employee(id,name,sharding_id) values(1, 'I am db1',10000);
insert into employee(id,name,sharding_id) values(2, 'I am db2',10010);
insert into employee(id,name,sharding_id) values(3, 'I am db3',10020);
insert into employee(id,name,sharding_id) values(4, 'I am db1',10000);
insert into employee(id,name,sharding_id) values(5, 'I am db2',10010);
insert into employee(id,name,sharding_id) values(6, 'I am db3',10020);
刷新一下navicat查看mycat连接的库
mycat安装和测试的更多相关文章
- MyCat安装与测试教程 超详细!
MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...
- Mycat安装及测试分片总结
1.安装jdk1.72.连接实际mysql数据库 用命令行工具或图形化客户端,连接mysql,创建DEMO所用三个分片数据库:(默认schema.xml中的配置需要三个库) CREATE databa ...
- Mycat的简易安装及测试
1.环境 OS版本 CentOS release 6.5 (Final) 64bit DB版本 Mysql 5.6.37 Mycat 1.6 jdk1.7及以上版本 2.实战部署 1.创建用户及用户组 ...
- Mycat安装与使用
1.下载: https://github.com/MyCATApache/Mycat-download 具体下载哪个版本以发布为准,推荐1.4,1.5. 2.安装: 安全前,在Linu ...
- mycat安装与配置
1.安装jdk 测试jdk是否已经安装 [root@node002 ~]# java -version-bash: java: command not found 创建解压目录 [root@node0 ...
- Mycat安装教程
1.下载: https://github.com/MyCATApache/Mycat-download 具体下载哪个版本以发布为准,推荐1.4,1.5. 2.安装: 安全前,在Linu ...
- Linux下Mycat安装配置和使用
mysql安装下载mysql[百度云]tar -zxvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz 解压把mysql文件夹移动到 /usr/local/ 下m ...
- 数据库中间件之mycat安装部署(一)
在学习数据库中间件前,我们先抛出三个问题 1.数据库数据量不大,但并发读写操作很大,应该怎么办? 此时我们首先考虑使用缓存中间件来减轻读压力,如果不能满足则考虑数据库读写分离,此时就会引入新的问题,这 ...
- my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接
一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径“C:\Soft\mysql-5.6.24-winx64” 三.环境配置 计算 ...
随机推荐
- 大数据学习——actor编程
1 概念 Scala中的Actor能够实现并行编程的强大功能,它是基于事件模型的并发机制,Scala是运用消息(message)的发送.接收来实现多线程的.使用Scala能够更容易地实现多线程应用的开 ...
- 零基础学 HTML5+CSS3 全彩版 明日科技 编著
第1章 基础知识 1.1 HTML概述 1.1.1 什么是HTML 1.1.2 HTML的发展历程 1.2 HTML文件的基本结构 1.2.1 HTML的基本结构 1.2.2 HTML的基本标记 1. ...
- 使用MySQLWorkBench连接数据库
在日常使用中,经常使用命令行去连接MySQL数据库不方便,推荐使用MySQLWorkBench去远程连接进行管理,下面记录一下使用步骤: 1. 安装MySQLWorkBench后,界面如下,点击“+” ...
- API生命周期第三阶段:API实施:使用swagger codegen生成可部署工程,择取一个作为mock service
在分享培训了swagger对于API的设计之后,有一些人问我说:你看,现在咱们前端使用web_API做为mock data在进行测试,后端也有mock 测试.然后我们再进行联调,这之中肯定会出现一些偏 ...
- Linux Shell系列教程之(二)第一个Shell脚本
本文是Linux Shell系列教程的第(二)篇,更多shell教程请看:Linux Shell系列教程 通过上一篇教程的学习,相信大家已经能够对shell建立起一个大体的印象了,接下来,我们通过一个 ...
- 【Luogu】P2155沙拉公主的困惑(数论)
题目链接 数论果然是硬伤qwq 还是智商上的硬伤 我们来讲两个道理 No.1 求1~i!中与i!互质的数的个数 实际上就是求i!的欧拉函数 有如下递推式: f[1]=1 if(i为合数) f[i]=f ...
- ubuntu服务器与本地文件传输
ubuntu SSH 连接.远程上传下载文件 博客分类: Ubuntu 安装 SSH(Secure Shell) 服务以提供远程管理服务 sudo apt-get install ssh SSH ...
- hihoCoder #1246 王胖浩与环
题目大意 $n$($1\le n\le 2000$)个正整数 $a_1, a_2, \dots, a_n$($a_i\le 5\times 10^7$)分布在一个圆环上. 定义 $b_k$ 为:将环上 ...
- setsockopt等高级使用
参考: setsockopt函数使用http://hi.baidu.com/yelangdefendou/item/74161d0f384abd3c4ac4a316http://blog.csdn.n ...
- Entity Framework表名默认自动变为复数形式等常见问题解决方法
今天使用了一下手写EntityFramework,发现一些常见的问题,做个记录: 1.以前使用模板生成不太在意的问题,就是在定义实体类时,如果没映射注释,自动映射的表名会变成复数形式 如:表名==&g ...