MongoDB单机安装部署

参考:https://www.cnblogs.com/jiangyatao/p/11156390.html

https://blog.51cto.com/linuxg/1895805

一、单机安装MongoDB

1、准备安装包

mongodb-linux-x86_64-3.6.13.tgz

下载路径:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.13.tgz

2、解压

[root@database-zongshuai data]# tar zxf  mongodb-linux-x86_64-3.6.13.tgz
[root@database-zongshuai data]#  ln -s  mongodb-linux-x86_64-3.6.13  mongodb
[root@database-zongshuai data]# mkdir  -p /data/mongodb/mongo_cluster/mongo_27017/{conf,data,logs,pid}
[root@database-zongshuai data]# useradd   mongo
[root@database-zongshuai data]# chown  -R  mongo:mongo  /data/mongodb

3、添加配置文件

[root@database-zongshuai conf]# su  - mongo
[mongo@database-zongshuai conf]# pwd
/data/mongodb/mongo_cluster/mongo_27017/conf
[root@database-zongshuai conf]# vim /data/mongodb/mongo_cluster/mongo_27017/conf/mongodb.conf
systemLog:
  destination: file   
  logAppend: true  
  path: /data/mongodb/mongo_cluster/mongo_27017/logs/mongodb.log
storage:
  journal:
    enabled: true
  dbPath: /data/mongodb/mongo_cluster/mongo_27017/data
  directoryPerDB: true
  wiredTiger:
     engineConfig:
        cacheSizeGB: 1
        directoryForIndexes: true
     collectionConfig:
        blockCompressor: zlib
     indexConfig:
        prefixCompression: true

processManagement:
  fork: true
  pidFilePath: /data/mongodb/mongo_cluster/mongo_27017/pid/mongod.pid

#security:
# authorization: enabled

net:
  port: 27017
  bindIp: 127.0.0.1,172.16.43.157

4、启动

[mongo@database-zongshuai mongo_27017]$ cat ~/.bash_profile
export PATH=/data/mongodb/bin:$PATH
[mongo@database-zongshuai mongo_27017]$ source ~/.bash_profile
[mongo@database-zongshuai mongo_27017]$ mongod -f /data/mongodb/mongo_cluster/mongo_27017/conf/mongodb.conf
日志中的几个warning:
1、 WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
意思是:强烈建议使用带WiredTiger存储引擎的XFS文件系统
XFS文件系统:XFS一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,
是IRIX 5.3版的默认文件系统。2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后
被移植到Linux 内核上。XFS 特别擅长处理大文件,同时提供平滑的数据传输。
既然是warning说明不会影响mongodb的正常使用,只是提醒你安装mongodb最好使用ext4或者xfs文件系统!
本人系统已经是ext4系统了!

2、 WARNING: Access control is not enabled for the database.
意思是:未对数据库启用访问控制,对数据和配置的读写访问不受限制(危险的warning)

3、WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
#cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
关闭命令:
#echo never > /sys/kernel/mm/transparent_hugepage/enabled

4、WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
需要将/sys/kernel/mm/transparent_hugepage/defrag设置为never
#cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
关闭命令:
#echo never > /sys/kernel/mm/transparent_hugepage/defrag

5、WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000
设置ulimit
#vi /etc/security/limits.conf
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 32000
mongod hard nproc 32000

重启mongodb

 二、MongoDB使用

1、进入mongodb,创建用户管理员

2021-10-20T17:02:32.923+0800 I CONTROL  [initandlisten] shutting down with code:100
[mongo@database-zongshuai ~]$ mongo
MongoDB shell version v3.6.13
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1e698c3a-2fc6-42ce-a287-9b66a47eaf4d") }
MongoDB server version: 3.6.13
>use admin
switched to db admin
> db.createUser({user:"root",pwd:"test123",roles:["userAdminAnyDatabase"]})
Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] }
然后登陆测试一下
> use admin
switched to db admin
> db.auth("root","test123")
1
注:db.auth()方法返回1表示登录成功。
查看用户
>show users;
{
        "_id" : "admin.root",
        "user" : "root",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}
设置完后,MongoDB客户端必须用正确的用户名和密码登录,才能在指定的数据库中操作。

2、在配置文件中开启mongodb连接认证功能

注:如果不开启认证功能,任何人只要可以ssh到mongodb的服务器,都可以进行增删改查等操作,这样
是很危险的。
在配置文件mongod.conf中开启,如下:
security:
  authorization: enabled
然后重启mongodb就开启了认证功能,测试如下:
[mongo@database-zongshuai ~]$ mongo
MongoDB shell version v3.6.13
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1e698c3a-2fc6-42ce-a287-9b66a47eaf4d") }
MongoDB server version: 3.6.13
注:可以看到增加了认证功能,就不会提示上面提到的第一个和第二个WARNING了。
> use  admin
switched to db admin
> show dbs;  (直接执行show dbs 看看会不会列出所有的数据库)
2021-10-20T17:03:30.020+0800 E QUERY    [thread1] Error: listDatabases failed:{
        "ok" : 0,
        "errmsg" : "there are no users authenticated",
        "code" : 13,
        "codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:67:1
shellHelper.show@src/mongo/shell/utils.js:860:19
shellHelper@src/mongo/shell/utils.js:750:15
@(shellhelp2):1:1
>  db.auth("root","test123")     (认证用户名密码)
1
> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

 

posted @ 2021-10-20 17:23  灰蓝色的白云梦想  阅读(155)  评论(0)    收藏  举报