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

浙公网安备 33010602011771号