我正在尝试使用以下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
上面的脚本启动了两个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
或类似。