平时的开发环境win比较多啊,但生产环境要放到unix环境上
一:命令
安装就不少了,网上有很多资料下面列一些参数
quiet 安静输出
port arg 指定服务端口号,默认端口27017
bind_ip arg 绑定服务IP,绑定127.0.0.1,只本机访问,默认本地所有IP
logpath arg 指定MongoDB日志文件,注意是指定文件不是目录
logappend 使用追加的方式写日志
pidfilepath arg PID File 的完整路径,如果没有设置,则没有PID文件
keyFile arg 集群的私钥的完整路径,只对于Replica Set 架构有效
unixSocketPrefix arg UNIX域套接字替代目录,(默认为 /tmp)
fork 以守护进程的方式运行MongoDB,创建服务器进程
auth 启用验证
cpu 定期显示CPU的CPU利用率和iowait
dbpath arg 指定数据库路径
diaglog arg diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
directoryperdb 设置每个数据库将被保存在一个单独的目录
journal 启用日志选项,的数据操作将会写到journal文件夹文件里
journalOptions arg 启用日志诊断选项
ipv6 启用IPv6选项
jsonp 允许JSONP形式通过HTTP访问(有安全影响)
maxConns arg 最大同时连接数 默认2000
noauth 不启用验证
nohttpinterface 关闭http接口,默认关闭27018端口访问
noprealloc 禁用数据文件预分配(往往影响性能)
noscripting 禁用脚本引擎
notablescan 不允许表扫描
nounixsocket 禁用Unix套接字监听
nssize arg (=16) 设置信数据库.ns文件大小(MB)
objcheck 在收到客户数据,检查的有效性。
profile arg 档案参数 0=off 1=slow, 2=all
quota 限制每个数据库的文件数,设置默认为8
quotaFiles arg number of files allower per db, requires quota
rest 开启简单的rest API
repair 修复所有数据库run repair on all dbs
repairpath arg 修复库生成的文件的目录,默认为目录名称dbpath
slowms arg (=100) value of slow for profile and console log
smallfiles 使用较小的默认文件
syncdelay arg (=60) 数据写入磁盘的时间秒数(0=never,不推荐)
sysinfo 打印一些诊断系统信息
upgrade 如果需要升级数据库 * Replicaton 参数
fastsync 启用从库复制服务,该数据库是主库快照,可快速启用同步
autoresync 如果从库与主库同步数据差得多,自动重新同步,
oplogSize arg 设置oplog的大小(MB) * 主/从参数
master 主库模式
slave 从库模式
source arg 从库 端口号
only arg 指定单一的数据库复制
slavedelay arg 设置从库同步主库的延迟时间 * Replica set(副本集)选项:
replSet arg 设置副本集名称 * Sharding(分片)选项
configsvr 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb
shardsvr 声明这是一个集群的分片,默认端口27018
noMoveParanoia 关闭偏执为moveChunk数据保存
命令:
mongodb帮助命令 help
数据库级帮助命令 db.help()
集合级帮助命令 db.users.help()
查看哪些数据库 show dbs
创建和切换数据库 use aaa
查当前数据库状态 db.stats()
获取当前数据库集合 db.getCollectionNames()
获取当前数据库名字 db.getName()
删除数据库 db.dropDatebase()
添加用户 db.addUser("用户名","密码“)
删除用户名 db.dropUser("用户名")
终止数据库服务进程 db.shutdownServer()
二:用户角色管理
2.1:创建管理员
用户管理员用来创建的用户,也用来创建和分配角色。用户管理员可以拥有数据库中的任何特权,可以创建新的用户或者管理员。正常情况下在一个MongoDB的部署中,应该创建用户管理员作为第一个用户,然后使用这个用户创建的所有其他用户。 为了能够创建第一个用户管理员,MongoDB提供userAdmin和userAdminAnyDatabase角色,两个角色支持用户和角色管理操作的各种访问。使用最小权限userAdmin或者使用userAdminAnyDatabase赋予所有有关的特权。 拥有这两个角色的用户可以授予自己无限的特权。具体地,拥有userAdmin角色的用户可以授予本身数据库中的任何特权。一个用户拥有userAdminAnyDatabase角色的用户管理员可以授予本身在系统中的任何特权。 使用以下步骤创建用户管理员,首先连接admin数据库:
mongo --port 27017 --authenticationDatabase admin
然后创建系统用户:
db.createUser({user: "siteUserAdmin",pwd: "password",roles:
[{role: "userAdminAnyDatabase",db: "admin"}]}
最后可以验证一下:
db.runCommand({usersInfo:"manager",showPrivileges:true})
2.2:将用户添加到数据库
使用createUser命令将用户添加到你希望这个用户拥有相应权限的数据库中。下面的例子是赋予testUser数据库test的读权限,密码是12345678。
use test
db.createUser({
user: "testUser",
pwd: "12345678",
roles: [
{ role: "read", db: "test" },
]
}
)
2.3:设置超级用户
建立一个超级用户需要有何创建用户管理员一样的权限。
use admin
db.createUser(
{
user: "superuser",
pwd: "12345678",
roles: [ "root" ]
}
)
2.4:创建角色
建立一个用户角色使用createRole这个命令。每一个角色可以通过privileges授予一些系统特权,通过roles来授予一些数据库管理权限。writeConcern参数是保障写操作的可靠性。
use admin
db.createRole(
{
role: "myClusterwideAdmin",
privileges:
[
{ resource: { cluster: true }, actions: [ "addShard" ] },
{ resource: { db: "config", collection: "" }, actions: [ "find", "update", "insert" ] },
{ resource: { db: "users", collection: "usersCollection" }, actions: [ "update