本地连接服务器的mongodb

首先说中心思想,和连接本地数据库是一样的,不同的是修改数据库的配置项:

module.exports = {
    dbs:‘mongodb://账号:密码@服务器ip27017/数据库名称‘
}

但是总是提示权限不足。

即在要操作的数据库 dbs下创建用户的读写权限,例如:

use dbs
db.createUser({
    user:‘root‘,
    pwd:‘root‘,
    roles:[
        {role:‘readWrite‘,db:‘dbs‘}
    ]
})

每个数据库,都要设置用户的访问权限,只有设置了权限,才能对数据库进行操作!

详见这篇文章:http://www.ttlsa.com/mongodb/mongodb-3-0-security-permissions-access-control/

mongoDB 3.0 访问控制改了很多,需要你老老实实的去看文档去验证,谷歌百度出来的多半就是错误的。 还需要注意这个参数authenticationMechanisms。

为了兼用2.6版本,我直接指定下面的参数:

1

2

setParameter:

authenticationMechanisms: MONGODB-CR

下面看看如何创建访问控制权限

不使用 —auth 参数,启动 mongoDB

1

mongodb-linux-i686-3.0.0/bin/mongod -f mongodb-linux-i686-3.0.0/mongodb.conf

此时你 show dbs 会看到只有一个local数据库,那个所谓的admin是不存在的。

mongoDB 没有超级无敌用户root,只有能管理用户的用户 userAdminAnyDatabase

添加管理用户

1

2

3

4

5

6

7

8

use admin

db.createUser(

{

user: "buru",

pwd: "12345678",

roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

}

)

roles 中的 db 参数是必须的,不然会报错:Error: couldn’t add user: Missing expected field “db”。另外,有很多文章记录的是使用 db.addUser(…) 方法,这个方法是旧版的,3.0中已经不存在,详见:http://docs.mongodb.org/manual/reference/method/js-user-management。

切换到admin下,查看刚才创建的用户:

1

2

3

4

show users

db.system.users.find()

{ "_id" : "admin.buru", "user" : "buru", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "gwVwuA/dXvxgSHavEnlyvA==", "storedKey" : "l2QEVTEujpkCuqDEKqfIWbSv4ms=", "serverKey" : "M1ofNKXg2sNCsFrBJbX4pXbSgvg=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }

怎么关闭 mongoDB?千万不要 kill -9 pid,可以 kill -2 pid 或 db.shutdownServer()

下面使用 —auth 参 数,重新启动 mongoDB:

1

2

3

4

5

6

7

mongodb-linux-i686-3.0.0/bin/mongod --auth -f mongodb-linux-i686-3.0.0/mongodb.conf

mongodb-linux-i686-3.0.0/bin/mongo

use admin

db.auth("buru","12345678") #认证,返回1表示成功

mongodb-linux-i686-3.0.0/bin/mongo -u buru -p 12345678 --authenticationDatabase admin

此时 show collections 报错

1

2

3

4

5

6

7

8

9

10

11

12

2015-03-17T10:15:56.011+0800 E QUERY    Error: listCollections failed: {

"ok" : 0,

"errmsg" : "not authorized on admin to execute command { listCollections: 1.0 }",

"code" : 13

}

at Error (<anonymous>)

at DB._getCollectionInfosCommand (src/mongo/shell/db.js:643:15)

at DB.getCollectionInfos (src/mongo/shell/db.js:655:20)

at DB.getCollectionNames (src/mongo/shell/db.js:666:17)

at shellHelper.show (src/mongo/shell/utils.js:625:12)

at shellHelper (src/mongo/shell/utils.js:524:36)

at (shellhelp2):1:1 at src/mongo/shell/db.js:643

因为,用户buru只有用户管理的权限。

下面创建用户,用户都跟着库走,创建的用户都是

1

2

3

4

5

6

7

8

9

10

11

use tianhe

db.createUser(

{

user: "bao",

pwd: "12345678",

roles: [

{ role: "readWrite", db: "tianhe" },

{ role: "read", db: "tianhe2" }

]

}

)

查看刚刚创建的用户。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

show users

{

"_id" : "tianhe.bao",

"user" : "bao",

"db" : "tianhe",

"roles" : [

{

"role" : "readWrite",

"db" : "tianhe"

},

{

"role" : "read",

"db" : "tianhe2"

}

]

}

查看整个mongoDB全部的用户:

1

2

3

4

5

use admin

db.system.users.find()

{ "_id" : "admin.buru", "user" : "buru", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "gwVwuA/dXvxgSHavEnlyvA==", "storedKey" : "l2QEVTEujpkCuqDEKqfIWbSv4ms=", "serverKey" : "M1ofNKXg2sNCsFrBJbX4pXbSgvg=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }

{ "_id" : "tianhe.bao", "user" : "bao", "db" : "tianhe", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "//xy1V1fbqEHC1gzQqZHGQ==", "storedKey" : "ZS/o54zzl/FdcXLQJ98KdAVTfF0=", "serverKey" : "iIpNYz2Gk8KhyK3zgz6muBt0PI4=" } }, "roles" : [ { "role" : "readWrite", "db" : "tianhe" }, { "role" : "read", "db" : "tianhe2" } ] }

创建完毕,验证一下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

use buru

show collections

2015-03-17T10:30:06.461+0800 E QUERY    Error: listCollections failed: {

"ok" : 0,

"errmsg" : "not authorized on buru to execute command { listCollections: 1.0 }",

"code" : 13

}

at Error (<anonymous>)

at DB._getCollectionInfosCommand (src/mongo/shell/db.js:643:15)

at DB.getCollectionInfos (src/mongo/shell/db.js:655:20)

at DB.getCollectionNames (src/mongo/shell/db.js:666:17)

at shellHelper.show (src/mongo/shell/utils.js:625:12)

at shellHelper (src/mongo/shell/utils.js:524:36)

at (shellhelp2):1:1 at src/mongo/shell/db.js:643

显然没权限,先auth:

1

2

3

4

5

6

db.auth("bao","12345678")

1

show collections

news

system.indexes

wahaha

原文地址:https://www.cnblogs.com/xiaozhumaopao/p/10458029.html

时间: 2024-11-10 00:57:23

本地连接服务器的mongodb的相关文章

Mac搭建本地svn服务器,并用Cornerstone连接服务器

Mac默认已经安装了svn,我们只需要进行配置并开启就可以了 首先我们可以验证一下是否安装了svn,打开终端,输入命令 svnserve --version 这里可以看到目前svn的版本号,说明已经安装好了svn 下面正式开始配置svn 1.创建代码库 我们来创建一个代码库用于保存代码 在终端输入命令 sudo mkdir -p /Users/apple(根据自己的用户名修改)/svn/mycode    //创建了一个文件夹,这个文件夹路径可以自己随意设定 sudo svnadmin crea

java:ssh连接服务器,实现本地文件上传和下载

1.连接至服务器:ssh [email protected] -p 5555    下载文件:scp -r [email protected]:/ccc(服务器路径,文件夹下所有文件)  /path(本地路径)    上传文件:scp /ccc(本地文件路径) 2.文件上传: import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; i

解决本地工具无法连接服务器上的mysql的问题

当本地工具尝试连接服务器的时候,如果出现无法连接的情况,可能是权限没有开. 首先: mysql> show  databases: 发现有mysql数据库 进入该数据库,找到user表 mysql>show tables mysql>update user set Host = '%' where User='root'; 原文地址:https://www.cnblogs.com/phdeblog/p/11442173.html

python| 本地数据库导入线上服务器的mongodb中

sudo vi /etc/mongod.conf 进入conf文件,修改port值为19999保存并退出. 重启mongodb sudo service mongod restart 进入mongo shell mongo --port 19999 本地数据库导入线上服务器的mongodb中 1 备份本地数据库 git 切换到mongodb/data,输入: ../bin/mongodump -h 127.0.0.1:27017 -d vueBlog -o ../data/vueBlog-bac

通过Apache的httpClient的get方式连接服务器下载图片到本地

客户端程序: package lgx.java.test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.m

Android 真机连接本地PC服务器

方法非常简单: 1.打开本地的服务器,在我的电脑上就是进入E:\apache-tomcat-8.0.21\bin目录,双击startup.bat 2.查看本机ip 这里我的ip就是172.18.24.153 2.手机浏览器输入172.18.24.153:8080,即可 运行效果如下图所示(网上的图,我手机上的图也差不多是这样): 4.把需要放在服务器上的内容,放入E:\apache-tomcat-8.0.21\webapps目录下,即可用网络访问

Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常被解析,莫名其妙地打不开,或者时好时坏. 如果碰上不稳定的本地DNS,还可能经常出现无法解析的情况.除了要避免"坏"的DNS的影响,我们还可以利用DNS做些"好"事,例如管理局域网的DNS.给手机App Store加速.纠正错误的DNS解析记录.保证上网更加安全.去掉网

SqlServer中创建Oracle连接服务器

转自太祖元年的:http://www.cnblogs.com/jirglt/archive/2012/06/10/2544025.html参考:http://down.51cto.com/data/910072SqlServer中创建Oracle连接服务器 第一种:界面操作 (1)展开服务器对象-->链接服务器-->右击“新建链接服务器”(2)输入链接服务器的IP (3)链接成功后 第二种:语句操作 注:需要提前安装Oracle客户端程序,重启机器.(如果没有Oracle客户端程序,提示“未找

fb远程连接服务器调试,碉堡了

开发中经常碰到本地代码没问题,上传到服务器上就有有问题, 这个时候调试变的很麻烦,放个textField自己保存日志这种方式调试的都是. 今天刚学了远程连接服务器,adobe真是牛逼坏了啊. 新增一个web应用程序,使用默认值对勾取消,输入http:// f11调试,跟本地调试一样,日志也会打印到fb的控制台上.