【问题标题】:creating multiple monogdb databases using shell script使用 shell 脚本创建多个 mongodb 数据库
【发布时间】:2019-09-27 04:12:32
【问题描述】:

我正在尝试使用以下 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

问候, 变量

【问题讨论】:

    标签: mongodb shell mongo-shell


    【解决方案1】:

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

    1) 使用 $DB
    2) db.createCollection(\"testcollection\")

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

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

    或类似的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 2019-01-20
      • 2017-12-03
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多