将存放在一台数据库服务器中的数据,按照特定的方式进行拆分,分散存放到多台数据库服务器中,以达到分散单台服务器的负载的效果
按照表中指定的字段的分片规则,将表记录按行切分,分散存储到多个数据库中
单个库的多个表按业务类型分类,分散存储到不同的数据库
基于java的分布式数据库系统中间件,为高并发环境的分布式存储提供解决方案
重新创建3台数据库服务器 ip地址 53、54、55
56主机不需要运行数据库服务。使用50主机做客户端
# JDK一定要和mycat版本一致
yum -y install java-1.8.0-openjdk.x86_64
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710.. # 免安装 解压即可使用
mv mycat /usr/local/
ls /usr/local/mycat/
bin catlet conf lib logs version.txt
xml 扩展标记语言 的特点 : 标签要成对出现 要有开始和结束(分为单标签和双标签)
注释符号:
# 首先定义客户端连接mycat 使用的用户名、密码机虚拟库名
vim /usr/local/mycat/conf/server.xml
# 定义分片存储数据的表
sed -i '56,77d' /usr/local/mycat/conf/schema.xml # 删掉注释的行
sed -i '39,42d' /usr/local/mycat/conf/schema.xml # 删掉注释的行
vim /usr/local/mycat/conf/schema.xml
<mycat:schema>
# 定义库下表名
<schema>
<table /># 定义表名 单标签
<table>
</table> # 双标签
</schema>
# 指定数据库服务器主机名
<dataNode .../> # 有几个服务器写几个
# 指定服务器的ip地址
<dataHost>...</dataHost>
</mycat:schema>
节点 dataNode
加上第三台服务器 dn3
复制两个 搞三个
用户名 密码都得改一下
第五步 启动mycat服务,并查看服务状态
把56主机的物理内存调大到1G以上
给mycat服务器定义主机名 (hostname mycat56)不要用localhost
测试数据库服务器的授权用户
启动mycat服务
/usr/local/mycat/bin/mycat start
方法 :查看mycat服务的日志文件
]# ls /usr/local/mycat/logs/
mycat.log 记录连接mysql服务信息文件
mycat.pid 保存mycat服务进程的pid号
wrapper.log 记录服务的启动信息(排错的日志内容)
# 在第一个终端动态查看日志内容 tail -f /usr/local/mycat/logs/wrapper.log # 动态显示启动信息
第一个是 枚举分片规则的使用 sharding-by-intfile
工作过程 字段值 必须在列举范围内选择
第二个是 求莫法分片规则的使用 mod-long
工作过程:根据字段值与设定的数值求模结果存储数据
建表存储数据的步骤
连接mycat服务器
host50 ~]# mysql -h192.168.4.56 -P8066 -uroot -p123456
mysql> show dababase;
都是假表 需要自己建表
创建表:根据表使用的分片规则建表
在56主机添加新库 GAMEDB 新表名 user和salary
在schema.xml文件里 表名必须唯一 不可以重复