Docker搭建mysql分库分表
先整理思路
1.实现主从复制
2.拉取longhronshens/mycat-docker
3.创建配置文件server.xml,role.xml,sechma.xml
4.运行mycat容器
4(1).进入容器
4(2).查看数据库和表
5.创建数据库测试是否搭建成功
1.搭建主从复制我就不写了,请看这个博客
https://blog.csdn.net/huaying927/article/details/93771662
2.拉取longhronshens/mycat-docker镜像
docker pull longhronshens/mycat-docker
这里我已经有这个镜像了,不用担心这个不是错误.
3.创建配置文件
然后在conf目录下编辑service.xml,rule.xml,schema.xml三个文件。
server.xml 这个文件不需要改,直接复制过去就行
https://blog.csdn.net/Youyzq/article/details/94972422
复制完以后没有错误的话,这个字体会变颜色的,没有变颜色说明你没有复制正确(温馨小提示)
rule.xml文件 这个文件写的就是分库分表的方法
这个文件也是不需要修改的
https://blog.csdn.net/Youyzq/article/details/94973558
schema.xml文件 这个文件就需要改一些东西了
记得按照数据库的url,usename,password按实际情况填写。
https://blog.csdn.net/Youyzq/article/details/94974503
先吧这里面的东西复制到schma.xml文件中
记得这是自己创建的
然后就要开始修改配置文件了
改好了以后,就要运行容器了
4.运行mycat容器
docker run -d -p 8066:8066 -v /home/vagrant/schema.xml:/usr/local/mycat/conf/schema.xml -v /home/vagrant/rule.xml:/usr/local/mycat/conf/rule.xml -v /home/vagrant/server.xml:/usr/local/mycat/conf/server.xml --name mycat longhronshens/mycat-docker
查看有没有这个容器
dockers ps
4(1).进入容器
-P是写的是mycat的端口号
-h是主服务器的IP地址
出现这句话就说明进入mycat容器里了
4(2).查看数据库和表
5.创建数据库测试是否搭建成功**
mycat的表
主表
从表
然后,现在开始测试
先创建几个数据库(从主表里创建数据库)
db01
create database db01;
use db01;
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL default '',
indate DATETIME NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id)
)AUTO_INCREMENT= 1 ENGINE=InnoDB DEFAULT CHARSET=utf8;
db02
create database db02;
use db02;
CREATE TABLE item (
id INT NOT NULL AUTO_INCREMENT,
value INT NOT NULL default 0,
indate DATETIME NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id)
)AUTO_INCREMENT= 1 ENGINE=InnoDB DEFAULT CHARSET=utf8;
db03
create database db03;
use db03;
CREATE TABLE item (
id INT NOT NULL AUTO_INCREMENT,
value INT NOT NULL default 0,
indate DATETIME NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id)
)AUTO_INCREMENT= 1 ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建完以后开始添加表数据
insert into users(name,indate) values('kk',now());
insert into users(name,indate) values('ss',now());
insert into item(id,value,indate) values(1,100,now());
insert into item(id,value,indate) values(2,100,now());
不要直接复制,选中一个数据库在一 一创建(多添加几条数据以便,更清楚的看到结果)
如图所示
这样就算成功了,我是从mycat里添加的数据
如有哪里写的不对的请联系我 QQ:2879793101
谢谢观赏!