mac 利用docker 安装 mycat 配合dockerMySQL练手

20 篇文章 0 订阅
17 篇文章 0 订阅

dokcer安装mycat

docker pull longhronshens/mycat-docker

docker images 查看下

docker run -itd --name mycat longhronshens/mycat-docker

创建一个目录将conf映射到本地

如 mycat

进入mycat目录 执行

docker cp mycat:/usr/local/mycat/conf .

然后关闭并删除容器docker stop

docker stop $(docker ps |grep mycat|awk ‘{print $1}’)|xargs docker rm

准备mysql

端口 13306

docker run -d --name mysql13306 -p 13306:3306 --env MYSQL_ROOT_PASSWORD=123456 mysql:5.6 --character-set-server=utf8 --collation-server=utf8_unicode_ci

docker run -d --name mysql13307 -p 13307:3306 --env MYSQL_ROOT_PASSWORD=123456 mysql:5.6 --character-set-server=utf8 --collation-server=utf8_unicode_ci

修改 schema.xml

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!-- can have multi write hosts -->
		<writeHost host="hostM1" url="192.168.1.10:13306" user="root"
				   password="123456">
			<!-- can have multi read hosts -->
			<!-- <readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" /> -->
		</writeHost>
		<writeHost host="hostS1" url="192.168.1.10:13307" user="root"
				   password="123456" />
		<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
	</dataHost>

添加数据库

mysql -u root -h 192.168.1.10 -P 13306 -p

mysql -u root -h 192.168.1.10 -P 13307 -p

分别添加 db1 db2 db3

create database db1 charset utf8;
create database db2 charset utf8;
create database db3 charset utf8;

修改schema.xml中的数据库ip和端口 然后启动docker 这个镜像 默认是暴露出来9066的。这里我用8066

docker run -itd -v /Users/bob/workspace/服务/docker/mycat/conf:/usr/local/mycat/conf --name mycat -p 8066:8066 longhronshens/mycat-docker

docker logs -f mycat

........
MyCAT Server startup successfully. see logs in logs/mycat.log

表明成功了

测试

mysql -u root -h 192.168.1.10 -P 8066 -p

然后你就根据 schema.xml里面的table来进行简单的测试了

大体就是在mycat中创建表 插入数据

<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
		<!-- auto sharding by id (long) -->
		<table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />

		<!-- global table is auto cloned to all defined data nodes ,so can join
			with any table whose sharding node is in the same data node -->
		<table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />
		<table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" />
		<!-- random sharding using mod sharind rule -->
		<table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3"
			   rule="mod-long" />
		<!-- <table name="dual" primaryKey="ID" dataNode="dnx,dnoracle2" type="global"
			needAddLimit="false"/> <table name="worker" primaryKey="ID" dataNode="jdbc_dn1,jdbc_dn2,jdbc_dn3"
			rule="mod-long" /> -->
		<table name="employee" primaryKey="ID" dataNode="dn1,dn2"
			   rule="sharding-by-intfile" />
		<table name="customer" primaryKey="ID" dataNode="dn1,dn2"
			   rule="sharding-by-intfile">
			<childTable name="orders" primaryKey="ID" joinKey="customer_id"
						parentKey="id">
				<childTable name="order_items" joinKey="order_id"
							parentKey="id" />
			</childTable>
			<childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"
						parentKey="id" />
		</table>
		<!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate"
			/> -->
	</schema>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值