使用shell脚本创建多个monogdb数据库

问题描述 投票:0回答:1

我正在尝试使用以下Shell脚本创建多个mongodb数据库。其中root在mongodb实例级别具有root访问权限。 db_names.txt传递要创建的数据库名称。

cat dbcreate.sh          
for DB in 'cat /home/db_names.txt'       
do       
echo "use $DB" | mongo   -u root  -p root  --port 27017   
echo "db.createCollection(\"testcollection\");" | mongo   -u root -p root123 --port 27017 
done

但是它失败,并出现以下错误:我不明白为什么root无法在用户数据库中创建集合?有人可以帮忙吗?

MongoDB shell version v4.0.12
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("4e714db0-9faf-497c-ae4e-bbf913979bbd") }
MongoDB server version: 4.0.12
switched to db db1
bye
exception: connect failed
MongoDB shell version v4.0.12
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ed678cc0-9f8b-4935-859b-b02e039c8d47") }
MongoDB server version: 4.0.12
switched to db db2
bye

关于,Var

mongodb shell mongo-shell
1个回答
0
投票

上面的脚本启动了两个Mongo Shell客户端,每个客户端都在Mongo命令上运行:

1)使用$ DB2)db.createCollection(\“ testcollection \”)

您可能希望将两个命令都发送到同一个Mongo Shell中,以便db.createCollection将在use提供的正确数据库中执行:

do
    ( echo "use $DB" | echo "db.createCollection(\"testcollection\");" ) |
        mongo -u root  -p root --port 27017   
done

或类似。

© www.soinside.com 2019 - 2024. All rights reserved.