Mongodb 3.x or 4.x 配置

1. 创建超级用户密码

  • 管理用户权限:userAdminAnyDatabase;
  • 读取数据权限:readWriteAnyDatabase;

进入 mongo 客户端:

$> mongo

使用 admin 库:

> use admin;

或者使用你自己的库:

> use youDBname;

创建管理员帐号:

db.createUser({user:"admin",pwd:"mypassword#",roles:["userAdminAnyDatabase", "readWriteAnyDatabase"]})

创建的账号为 admin.admin,即 admin 库中的 admin 用户
可以在 admin 库中的 system.users 表中查看
----- 或者 -----
创建的账号为 youDBname.admin,即 youDBname 库中的 admin 用户
可以在 youDBname 库中的 system.users 表中查看

2. 创建普通用户密码 用于进行普通读写操作

db.createUser({user:"testuser",pwd:"mypassword",roles: [{role:"readWrite",db:"yourDBname"}]}) 

更新用户:
db.updateUser(username, { user object })
删除用户:
db.dropUser(username)

⚡︎点我去官方说明

3. 编辑配置文件

yum 安装的话,打开配置文件:

/etc/mongo.conf

修改 ** bindIp**,让外网可以访问:

net:
  port: 27017
  bindIp: 0.0.0.0

添加权限,外网访问需要密码:

security:
  authorization: "enabled"

如果是阿里云服务器,千万别忘了在安全中心把 27017 的端口开放

4. 安装报错:

Server has startup warnings: 
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
  We suggest setting it to 'never'
WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
  We suggest setting it to 'never'
WARNING: soft rlimits too low. rlimits set to 4096 blablabla...

错误 1. WARNING: soft rlimits too low. rlimits set to 4096 解决办法:

修改配置文件 /etc/security/limits.conf,添加配置信息:

[root@localhost ~]# vim /etc/security/limits.conf

添加:

mongod soft nofile 64000  
mongod hard nofile 64000  
mongod soft nproc 32000  
mongod hard nproc 32000  

重启 mongod 服务:

[root@localhost ~]# service mongod restart
错误 2. WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 解决办法:

运行:

echo never >  /sys/kernel/mm/transparent_hugepage/enabled
echo never >  /sys/kernel/mm/transparent_hugepage/defrag

>> 是追加内容到文件
> 是覆盖内容到文件

重启 mongod 服务
大功告成。。。

错误 3. Failed: Test.ticket: error reading database: not authorized on Test to execute command { listCollections: 1, cursor: { batchSize: 0 } }

你可能感兴趣的:(Mongodb 3.x or 4.x 配置)