Ответ 1
В итоге я задал этот вопрос дискуссионному форуму Университета MongoDB. В случае, если кто-то сталкивается с этим, это, по-видимому, потому, что я использую свободный кластер.
У меня есть кластер MongoDB Atlas, в котором я пытаюсь просто скопировать базу данных в том же экземпляре. К сожалению, каждый раз, когда я пытаюсь запустить команду администратора db.copyDatabase() или copydb, я получаю следующую ошибку:
not authorized on admin to execute command
Что очень странно, потому что у меня всего один пользователь, и он имеет доступ ко всему, по крайней мере, насколько я могу судить по атласу:
Я выполнил поиск в stackoverflow, но похоже, что большинство ответов относятся к экземплярам mongod, работающим локально, а не к атласам, запущенным в атласе... Я неправильно настроил пользователя?
В итоге я задал этот вопрос дискуссионному форуму Университета MongoDB. В случае, если кто-то сталкивается с этим, это, по-видимому, потому, что я использую свободный кластер.
У меня возникла та же проблема, когда я пытался подключиться к кластеру с Node.js версии 3.0 или выше и по ссылке ниже:
MongoDB + SRV://имя пользователя: [email protected]/test retryWrites = истина
Выбрав версию 2.2.12 или выше и используя предоставленную ссылку, все прошло хорошо
MongoDB://имя пользователя: [email protected]: 27017, cluster0-shard-00-01-eoowo.mongodb.net: 27017, cluster0-осколок-00-02-eoowo. mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true
Это сводило меня с ума... Оказывается, стандартная ссылка, предоставленная MongoDB, пыталась назвать мою базу данных по умолчанию "admin". Изменить ссылку с
mongodb+srv://username:[email protected]/admin? retryWrites = true и w = большинство
на
mongodb+srv://username:[email protected]/Тест retryWrites = истина & амп;? ш = большинство
Вы можете ввести любое слово для проверки, но не для администратора. Надеюсь это поможет!
Я столкнулся с подобным препятствием и провел несколько часов, проблема была в строке подключения, предоставленной атласом mongodb+srv://username:[email protected]/test?retryWrites=true
: mongodb+srv://username:[email protected]/test?retryWrites=true
Я использовал другую строку подключения и работал отлично. Вот оно: mongodb://username:[email protected]+port/yourdb?retryWrites=true&ssl=true&authSource=admin
. Убедитесь, что имя кластера + порт выглядит следующим образом: clusterName-shard-00-00-jynkd.mongodb.net:27017
просто используйте эту версию, а затем скопируйте ее ссылку и замените имя пользователя и пароль из вашего атласа mongodb, у которого есть разрешение на чтение и запись, и он подключится. У меня также была та же проблема, потраченная много времени на ее решение, затем я пробую 2.2.12 версия и она рабочая.
эта ошибка вызвана тем, что вы пытаетесь создать сборку выше администратора, в атласе это невозможно из-за безопасности.
в этом случае вам нужно использовать слово ключ использовать [collection_name]
это ссылка на этот ответ.
это по-испански.
https://victorroblesweb.es/2016/12/24/crear-una-base-datos-mongodb/
Если вы использовали mongoose, я решил похожую ошибку при обновлении mongoose до последней версии (на основе этого поста).