博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB基础之 安装
阅读量:6449 次
发布时间:2019-06-23

本文共 4838 字,大约阅读时间需要 16 分钟。

本篇来介绍MongoDB的安装。安装版本是3.4.18

如果安装老版本的mongodb,你会发现安装比较顺利,但是新版本的mongo安装稍微麻烦一点 ,主要是多了安全机制认证等步骤。

1、下载mongo

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.18.tgz

2、开始解压,我的习惯就是解压到/usr/local的目录下并重命名

[root@:vg_adn_tidbCkhsTest /usr/local/src]#tar -zxf ./mongodb-linux-x86_64-3.4.18.tgz -C /usr/local[root@:vg_adn_tidbCkhsTest /usr/local/src]#cd ..[root@:vg_adn_tidbCkhsTest /usr/local]#lsbin  etc  games  include  lib  lib64  libexec  mongodb-linux-x86_64-3.4.18  redis-4.0.2  sbin  share  src[root@:vg_adn_tidbCkhsTest /usr/local]#mv ./mongodb-linux-x86_64-3.4.18/ ./mongodb

3、开始建立data目录和log目录。

[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#mkdir ./data ./log[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#lsbin  data  GNU-AGPL-3.0  log  MPL-2  README  THIRD-PARTY-NOTICES

注意:bin目录下的mongod是服务器指令,而mongo是客户端指令

4、新建配置文件,作用是在启动mongo服务器的时候直接指定一个配置文件即可,否则启动的时候指定参数比较麻烦

[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#vim mongod.conf[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#lsbin  data  GNU-AGPL-3.0  log  mongod.conf  MPL-2  README  THIRD-PARTY-NOTICES

mongod.conf文件的内容如下:

[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#cat mongod.conf dbpath=/usr/local/mongodb/data/logpath=/usr/local/mongodb/log/log.txt

注意:这里的文件名字“log.txt”这里我们必须在配置文件中写好,但是log目录下的“log.txt”这个文件系统会自动创建,我们不必在log目录下新建“log.txt”

5、启动服务端,最好在后台启动。 -f参数表示指定配置文件。&表示后台启动

[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#./bin/mongod -f /usr/local/mongodb/mongod.conf &[1] 7851[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#ps aux | grep mongoroot      7851  0.4  0.1 942704 46340 pts/0    Sl   02:20   0:00 ./bin/mongod -f /usr/local/mongodb/mongod.confroot      7875  0.0  0.0 112704   960 pts/0    S+   02:21   0:00 grep --color=auto mongo

6、启动客户端,客户端连接服务端

[root@:vg_adn_tidbCkhsTest:23.22.172.65:172.31.22.29 /usr/local/mongodb]#bin/mongoMongoDB shell version v3.4.18connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.4.18Welcome to the MongoDB shell.For interactive help, type "help".For more comprehensive documentation, see    http://docs.mongodb.org/Questions? Try the support group    http://groups.google.com/group/mongodb-userServer has startup warnings: 2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] 2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] 2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] 2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] 2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'2018-11-13T02:20:54.413+0000 I CONTROL  [initandlisten] > show dbs;admin  0.000GBlocal  0.000GB

看上去是没有问题,测试一下mongo也是可以用的,只是报错了不少警告,虽然不影响使用,但是我们最好解决一下。我们一个个的来看。

 7、警告:WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'  和 WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.

关于这一条警告的解决方法我们可以参考官方的解决方法: https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/

如果官方的解决方法比较麻烦的话,我们还可以参考这位网友的方法:https://blog.csdn.net/u013075468/article/details/51471033

8、出现警告:WARNING: Access control is not enabled for the database

 原因分析:新版本的MongDB增加了安全性设计,推荐用户创建使用数据库时进行验证。如果用户想建立简单连接,则会提示警示信息

 解决方法:

创建管理员账号并设置密码:

> use adminswitched to db admin> db.createUser(... {... user:"admin",... pwd:"123456",... roles:[{role:"userAdminAnyDatabase",db:"admin"}]... }... )Successfully added user: {    "user" : "admin",    "roles" : [        {            "role" : "userAdminAnyDatabase",            "db" : "admin"        }    ]}

然后kill掉进程并重启服务器

[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#bin/mongod --auth --port=27017 -f mongod.conf &[1] 8205

我们加上“--auth”参数表示访问数据库需要认证

然后使用客户端连接:

[root@:vg_adn_tidbCkhsTest /usr/local/mongodb]#bin/mongo -u "admin" -p "123456" --authenticationDatabase "admin"MongoDB shell version v3.4.18connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.4.18> exitbye

现在看来都没有警告了。

 

如果大家对这条警告“WARNING: You are running this process as the root user, which is not recommended.”还有疑问的话,可以参考这个文章:https://www.cnblogs.com/ljai/p/4923229.html

但是我对上面的第8条做好之后就没有这条警告了。其实意思就是需要auth认证,对于生产环境中的mongo来说安全机制是比较严格的,并不像我们联系的那样子直接一个mongo命令就可以连接服务器,要用不同的用户不同的权限来连接才可以。

 

转载于:https://www.cnblogs.com/FengGeBlog/p/9951319.html

你可能感兴趣的文章
DEDE自带的采集功能,标题太短的解决方法
查看>>
easyui的combotree以及tree,c#后台异步加载的详细介绍
查看>>
C# string函数
查看>>
1、串(字符串)以及串的模式匹配算法
查看>>
正则表达式30分钟入门教程
查看>>
[原创]使用logcat快速抓取android崩溃日志
查看>>
这几款软件程序员的最爱
查看>>
Linux 安装JDK
查看>>
JSONObject
查看>>
六.面向对象
查看>>
[Processing]点到线段的最小距离
查看>>
考研随笔2
查看>>
ubuntu Linux 操作系统安装与配置
查看>>
操作系统os常识
查看>>
乱码的情况
查看>>
虚拟机centos 同一个tomcat、不同端口访问不同的项目
查看>>
DHCP的工作原理
查看>>
在不花一分钱的情况下,如何验证你的创业想法是否可行?《转》
查看>>
Linux/Android 性能优化工具 perf
查看>>
learn go recursive
查看>>