浅谈mongodb

587 阅读2分钟

一.安装Mongodb

mongodb从4.0以上开始支持事务,具体安装流程如下:安装包路径:links.jianshu.com/go?to=https…

1.在/usr/local目录下下载好之后,解压 tar zxvf mongodb-linux-x86_64-4.0.0.tgz,并重命名。

2.配置环境变量,vim /etc/profile

#Set Mongodb
export PATH=/usr/local/mongodb/bin:$PATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
配置好之后 source /etc/profile

3.创建数据库目录

cd /usr/local/mongodb touch mongodb.conf mkdir db mkdir log cd log touch mongodb.log

4.修改mongodb配置文件

port=27017 #端口
dbpath= /usr/local/mongodb/db #数据库存文件存放目录
logpath= /usr/local/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
noauth=true #不启用验证

5.设置文件夹权限

cd /usr/mongodb chmod 777 db
$ chmod 777 log

6.启动mongodb

mongod -f /usr/local/mongodb/mongodb.conf

7.设置mongodb开机自启动

vim /etc/rc.local
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/db/ --logpath=/usr/local/mongodb/log/mongodb.log --fork

二.Mongodb深度知识

  • mongodb社区版不支持内存模式(inMemory),默认为磁盘存储(wiretiger),因此无法将mongo存储引擎修改为内存模式,而企业版费用过高。
  • Mongodb内存引擎并不支持数据的持久化,无法像redis那样(AOF&RDB)。因此在实际生产环境中,若想要最大化提高mongodb读写效率,首先要做的是加索引,这能解决mongodb一般效率的问题。此外可以采用集群(replica set)的方式,而且还需要分片集群(Sharding),如此才能确保数据可以类似多线程一样并发执行,以此提高效率。
  • mongodb社区版只支持Wiretiger存储引擎,当修改为inMemory或者其他时,会报子进程已存在的错误,通过删除data目录下的mongod.lock,并将存储引擎还原即可。
  • mongodb安装时最好关闭外网访问,指定局域网登录,例如,修改mongodb.conf, bind_ip=(服务器ip)

三.记录Mongodb被勒索

  • mongodb安装的过程中不会提示创建账号密码,并且默认绑定ip可能是全网(0.0.0.0),也可能是本地(127.0.0.1),如果是本地则可以不用更改,如果是全网,则需要设置成指定服务器登录。
  • 安装好之后先使用systemctl start mongod启动mongo服务,再通过认证方式启动mongodb: mongod --auth --port 27017 --dbpath /var/lib/mongo
  • 然后进入shell中添加账号密码。
  1. #mongo # 进入shell中
  2. #use admin # 使用admin数据库
  3. #创建管理员用户
    #db.createUser({ user: "管理员用户名", pwd: "管理员密码", roles: [{ role: "userAdminAnyDatabase", db: "admin" }]})
  4. 检查是否创建成功
    #db.auth("账号",'密码')
    #1 (输出1即为成功)
  5. 用管理员账号创建数据库
    #db.createUser({user:"要创建的新数据库用户名",pwd:"要创建的新数据库密码",roles:[{role:"dbOwner",db:"要创建的新数据库名称"}]})
  6. 可能会遇到mongod用户组权限问题,通过cat /etc/passwd查看用户组,使用chmod修改用户权限即可。
  7. 用Robo 3T远程登录 ,如图:
    1
    2

最后做一点提醒,在已经配置好外网的服务器中最好不要安装数据库或者其他类似环境,有可能会被黑客利用。