我正在按照http://lukaszkups.net/blog/0006_deploying_meteorjs_app_to_own_server_via_ssh/的说明配置mongo以便在EC2上的ubuntu 10.04上使用meteor,意识到我的mongo已经老了(2.4.9)所以升级到2.6.11,那就是架构版本不匹配开始,需要帮助来解决它。
> db = db.getSiblingDB('admin')
admin
> db.addUser({user: 'admin', pwd: 'myPassword', roles: ['userAdminAnyDatabase']})
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
2015-10-29T14:15:14.850+0000 Error: couldn't add user: User and role management commands require auth data to have schema version 3 but found 1 at src/mongo/shell/db.js:1086
> db.createUser({user: 'admin', pwd: 'myPassword', roles: ['userAdminAnyDatabase']})
2015-10-29T14:15:34.788+0000 Error: couldn't add user: User and role management commands require auth data to have schema version 3 but found 1 at src/mongo/shell/db.js:1086
> db = db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });
{ "done" : true, "ok" : 1 }
> db.createUser({user: 'admin', pwd: 'myPassword', roles: ['userAdminAnyDatabase']})
2015-10-29T14:18:03.809+0000 TypeError: Object [object Object] has no method 'createUser'
> db = db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 3 });
2015-10-29T14:18:32.005+0000 TypeError: Object [object Object] has no method 'getSiblingDB'
> db.system.version.update({}, {$set: {currentVersion: 3}});
2015-10-29T14:19:34.554+0000 TypeError: Cannot read property 'version' of undefined
> db = db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });
2015-10-29T14:20:06.042+0000 TypeError: Object [object Object] has no method 'getSiblingDB'
> db = db.getSiblingDB('admin')
2015-10-29T14:20:20.370+0000 TypeError: Object [object Object] has no method 'getSiblingDB'
> db.system.version.update({}, {$set: {currentVersion: 3}});
2015-10-29T14:23:33.677+0000 TypeError: Cannot read property 'version' of undefined
> use admin
2015-10-29T14:24:14.413+0000 TypeError: Object [object Object] has no method 'getMongo' at src/mongo/shell/utils.js:533
> version
function version() { [native code] }
> db = db.system.version.update({}, {$set: {currentVersion: 3}});
2015-10-29T14:52:19.697+0000 TypeError: Cannot read property 'version' of undefined
>
现在mongodb无法启动。
ubuntu$ sudo service mongodb restart
stop: Unknown instance:
mongodb stop/waiting
ubuntu$ sudo service mongodb start
mongodb stop/waiting
答案 0 :(得分:1)
我的假设是你用第4个命令丢失数据库范围。 第五个命令应该是:
db = db.getSiblingDB("admin")
db.createUser({user: 'admin', pwd: 'myPassword', roles: ['userAdminAnyDatabase']})
db = db.createUser({user:'admin',pwd:'myPassword',roles:['userAdminAnyDatabase']})将不会设置正确的引用