安装MyCAT
先从镜像仓库拉取 mycat
docker pull fify/mycat
直接启动 mycat 容器
docker run --name mycat -p 8066:8066 -p 9066:9066 -v /home/mycat/server.xml:/usr/local/mycat/conf/server.xml -v /home/mycat/schema.xml:/usr/local/mycat/conf/schema.xml --privileged=true -d fify/mycat
参数说明
--name mycat 容器名命名为mycat
-p 8066:8066 -p 9066:9066 映射数据端口和管理端口
挂载数据配置文件
-v /home/mycat/server.xml:/usr/local/mycat/conf/server.xml
-v /home/mycat/schema.xml:/usr/local/mycat/conf/schema.xml
--privileged=true 赋予root权限
-d 后台启动
因为我们将配置文件挂载到了宿主机的`/home/mycat/`下
所以我们将server.xml 和schema.xml文件放在宿主机的/home/mycat/下
从而达到配置容器内mycat的目的
server.xml
select user()
server.xml
0
0
2
0
0
1
1m
1k
0
384m
root123
test
重启 mycat容器
以名字来进行启动
docker restart mycat
或者以容器ID进行启动
docker restart mycat容器ID
连接 mycat
使用命令行连接
-h 是mycat所在的主机IP
-p 8066 是mycat的数据端口
mysql -u root -p -h 172.24.7.187 -P 8066
测试查询
根据下图我们发现一条sql能在不同的数据库进行查询
实验前 我把 binlog 的格式设置成了STATEMENT
即在master mysql的 my.cnf 配置下加入 binlog_format=STATEMENT
我这样做的目的是在master添加数据,不同从机出现不一致的现象
比如插入 insert into stu(StuName) values(@@hostname)
因为不同主机hostname不同,插入的数据也就不同了
根据下图我们发现插入一条数据,在几个数据库中都能成功查询到