mycat 连接mongodb

今天就来测试一下,在mongodb上层使用mycat代理,

关于mycat的安装这里就不说了,mongodb的环境使用上次搭建的集群环境,至于集群怎么搭建,如下:

https://blog.csdn.net/shiyu1157758655/article/details/106498801

直接配置mycat

server.xml配置,只需要添加下面这一段配置,这里readOnly 代表只读

<user name="mongo_ro">
		<property name="password">mongo_ro@123</property>
		<property name="schemas">yuhua,yuhuashi</property>
		<property name="benchmark">6000</property>
		<property name="readOnly">true</property>
		
	</user>

schema.xml 配置:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
    <schema dataNode="yuhua" sqlMaxLimit="100" checkSQLschema="true" name="yuhua"></schema>

	<schema dataNode="yuhuashi" sqlMaxLimit="100" checkSQLschema="true" name="yuhuashi"></schema>
	<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
		/> -->
	<dataNode name="yuhua" dataHost="mongodb" database="yuhua" />
	<dataNode name="yuhuashi" dataHost="mongodb" database="yuhuashi" />

	<!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
	 <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
	<dataNode	name="jdbc_dn2" dataHost="jdbchost" database="db2" />
	<dataNode name="jdbc_dn3" 	dataHost="jdbchost" database="db3" /> -->
	<dataHost name="mongodb" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mongodb" dbDriver="jdbc" switchType="-1" >
		<heartbeat>select user()</heartbeat>
		<!-- can have multi write hosts -->
		<readHost host="172.100.1.35" url="mongodb://172.100.1.35:27017/" >
		</readHost>
		<!-- <writeHost host="" url="localhost:3316" user="root" password="123456"/> -->
	</dataHost>
	
</mycat:schema>

其中user和password 必须要提供,因为之前搭建的测试环境是不需要认证的,这里就自己创建一个用户:

mongos> use admin
switched to db admin
mongos> db.createUser({ user: "root", pwd: "123456", roles: [ { role: "root", db: "admin"} ]});

最后启动mycat

可以像mysql一样操作mongo,不过这里遇到一个奇怪的问题,就是show tables的时候 show 不出来mongodb的collection,但是查询倒是可以查询出来。如果有知道原因的还请不吝赐教!!

 

©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页