您当前的位置: 首页 >  sql

CentOS下Mycat+MySQL水平分割负载均衡配置记录

发布时间:2016-05-19 18:33:32 ,浏览量:0

CentOS 6.5 下Mycat+MySQL水平分割负载均衡配置记录

什么是MYCAT?

Mycat数据库分库分表中间件,更多的就不说了,参考官网;

什么是中间件?

专业的定义我也不说了,说点相关类似的例子:

1、类似房屋中介:你自己要找到想出租出售房屋的人比较费劲,他们可以一下子提供给你很多;

2、大超市:你想一下子买到多种多样的生活用品可能需要跑很多地方,去大超市一个地方就可以了;

3、装修队:你想装修一下房子,可是你自己电工、木工、瓦工都不会,找一个装修队全搞定了;

4、Windows API:你想编程控制音量大小之类的,有那么多种品牌、型号的声卡,但你不必考虑那么多,只需要调用API就行了;

5、Mycat:你希望将相同类型的数据分库分表保存到不同的服务器上、不同的数据库(MySQL、MSSQL、Oracle、NoSQL)中的不同的表中,但操作起来就像操作一种类型的一个数据库那么简单,用它就OK了;

配置成功后

我们先来看看配置成功以后,能过Navicat for MySQL来连接Mycat是什么效果,有个直观的认识。

Mycat 默认端口是:8066

在Schema中配置了多少个Table,这里就能看到多少个。

工具的应用请参考:MySQL学习(二)图形界面管理工具Navicat for MySQL安装和使用

环境概述

CentOS 6.5

Mycat-server-1.5-release版本

MySQL 5.7.12

jdk1.8.0_92

前置条件

相关安装可参考以下链接:

CentOS 6.5 下MySQL 5.7.12主从复制架构配置记录

如何从官方网站下载jdk1.7?

CentOS下安装JDK7

这里用的是jdk1.8.0_92,安装步骤比较简单,不需要配置环境变量;

修改MySQL配置文件(可选)

vi /etc/my.cnf

添加一行配置:lower_case_table_names=1

# vi /etc/my.cnf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]

#[必须]启用二进制日志
log-bin=mysql-bin
#[必须]服务器唯一ID,默认是1,一般取IP最后一段
server-id=153

lower_case_table_names=1

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
如果找不到my.cnf文件,copy一个: cp /usr/share/mysql/my-default.cnf /etc/my.cnf 注意:Linux 下部署安装 MySQL,默认不忍略表名大小写,需要手动到/etc/my.cnf 下配置 lower_case_table_names=1 使 Linux 环境下 MySQL 忍略表名大小写,否则使用 MyCAT 的时候会提示找不到 表的错误! 解压复制文件

我这里将 mycat 放到“/usr/local/mycat/”目录下,你可以根据自己的需要选择合适的目录

tar -zxvf Mycat-server-1.5.1-RELEASE-20160509173344-linux.tar.gz
cp -r  mycat /usr/local/mycat
cd /usr/local/mycat/
chmod +x *
chmod +x 命令是给文件添加可执行权限

需要再装一台Mycat?直接用命令把文件复制过去:

scp -r /usr/local/mycat root@192.168.0.153:/usr/local/
配置环境变量
vi /etc/profile
在文件末尾添加一行:
export MYCAT_HOME=/usr/local/mycat
使修改生效: source /etc/profile
测试是否生效: echo $MYCAT_HOME
配置主机名映射

vi /etc/hosts

在文件中添加你的数据节点MySQL的IP映射: 192.168.0.151 sam_server_1 192.168.0.153 sam_server_2

配置schema

vi /usr/local/mycat/conf/schema.xml

参考我的配置吧,我从官网下载的Release版本的里面带的文件有好多错误,我修改了很长时间才能用。


		
			
		

		
			
		

		
			
		

		
			
		

		
			
		
select user()select user()
这里的用户密码是MySQL的远程登录用户名密码。 配置用户 vi /usr/local/mycat/conf/server.xml

druidparser 
	
	
		
		
		
		
		
		
		testTESTDB123456TESTDBfalse
这里配置的是连接Mycat的用户,密码是明文的,schemas对应schema.xml文件中的schema节点。 创建数据库

在每个数据节点MySQL上创建分库,数据将会根据你指定的策略分配保存到不同的节点上。

这个要单独连接到每个MySQL上去创建,创建的数据库名称对应schema.xml文件中指定的名称,不做这一步的话客户端连接上操作的时候会不响应卡死。

启动服务
经过以上几个步骤的配置,就可以到/usr/local/Mycat/bin 目录下执行: ./mycat start 即可启动 mycat 服务!
注:mycat 支持的命令{ console | start | stop | restart | status | dump }

可以通过以下命令查看服务是否启动成功:

./mycat status

如果启动失败了,可以查看以下文件的内容,分析具体原因:

/usr/local/mycat/logs/wrapper.log

启动成功了,你应该已经知道怎么做了!马上用Navicat for MySQL连接上看看吧!

测试

总结时差点把这么大的事给忘了!

这里使用mycat自带的表来测试 启动mycat: mycat start 使用Navicat for MySQL连接mycat: mycat/123456@192.168.0.151

注意:

远程连接时可能会遇到以下错误:

连接MySQL错误:Can't connect to MySQL server (10060)

你需要参考文中的方法开放“8066”端口!

建表:

create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
插入数据:
insert into employee(id,name,sharding_id) values(1,'leader us',10000);
insert into employee(id,name,sharding_id) values(2, 'me',10010);
insert into employee(id,name,sharding_id) values(3, 'mycat',10000);
insert into employee(id,name,sharding_id) values(4, 'mydog',10010);
分别到数据DB1,DB2查看,可以看到在DB1中有: 1 leader us 10000 3 mycat 10000 DB2中有: 2 me 10010 4 mydog 10010 这说明分片成功了。

而我们还配置了主从复制,现在去从库看看,是不是也有主库中的数据了。

结束语

日志是最好的朋友,不明白出了什么问题,有日志的话就去查看它,没有比它更精确直接的了;

即使官网提供的帮助也是很杂乱,各种版本,我是根据几个版本来完成的。

对于用惯了Windows的图形配置界面的小伙伴,开始的时候会感觉比较吃力的。

参考:

Mycat官网

MyCat:开源分布式数据库中间件

mycat安装入门(两节点)

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    110453博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0837s