mongodb
Posted fengzp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb相关的知识,希望对你有一定的参考价值。
1.安装mongodb
brew install mongodb
其它OS上的安装请参考:https://docs.mongodb.org/manual/installation/
2.启动
mongod db的数据文件默认保存在/data/db目录(如果该目录不存在,启动会报错),默认监听的端口是27017,默认不启动安全认证机制
--dbpath 指定数据文件保存路径
--port 指定监听端口
--fork 在后台开启Mongdb服务
--logpath /var/log/mongodb.log 指定日志输出目录
--logappend 以追加的方式创建日志防止把之前的日志删除了
这里的启动指定了数据保存路径和端口
mongod --dbpath /Users/fengzp/Documents/develop/java-tools/mongodb/mongodb-data --port 12345 --fork --logpath /Users/fengzp/Documents/develop/java-tools/mongodb/mongodb-log/mongodb.log --logappend
3.连接
mongo -port 12345
如果是监听默认端口27017,就不用加上-port 12345
4.安全认证和创建用户
不带--auth的启动方式是很可怕的,没有任何安全控制,一般只限于开发环境。生产环境肯定要开启安全认证,mongodb在安全认证的主要思路是:
先在某个库上创建用户(db.createUser) -> 将该用户授权(db.auth) -> mongod启动时指定--auth选项 -> mongo客户端连接时指定用户名、密码、认证db(或者连接时先不指定用户名、密码,连接上以后,再用db.auth切换到认证用户身份)
4.1创建数据库
use demo
use后加数据库名称即可,如果数据库不存在,会自动创建
4.2创建用户
db.createUser( { "user" : "admin", "pwd": "123456", "roles" : [ "readWrite","dbAdmin","userAdmin"]})
这样就创建了一个名为admin的管理员,而且具备读写、db管理、用户管理权限。mongo默认的roles角色,可参考:https://docs.mongodb.org/manual/reference/built-in-roles/#built-in-roles
4.3用户授权
db.auth({ user: "admin", pwd: "123456" })
4.4启动安全认证
mongod --auth
4.5指定安全信息的连接
mongo localhost:12345/demo -u admin -p 123456 --authenticationDatabase demo
5.关闭服务
前台运行:
没有使用--fork,直接可以前台退出终端关闭。通过这种方式,Mongodb将会自己做清理退出,把没有写好的数据写完成,并最终关闭数据文件。要注意的是这过程会持续到所有操作都完成。
后台运行:
如果使用--fork在后台运行mongdb服务,使用db.shutdownServer()命令来关闭。
以上是关于mongodb的主要内容,如果未能解决你的问题,请参考以下文章