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,但是查詢倒是可以查詢出來。如果有知道原因的還請不吝賜教!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章