一.我的安装环境:CentOS7+MongoDB4.0.1。
二.下载MongoDB。
官网下载地址选择CommunityServer服务。
我下载的是最新的4.0.1的legacy(旧)版。压缩包下载完成后上传到Linux上,然后解压。解压命令:
tar-zxvfmongodb-linux-x86_64-4.0.1.tgz
得到mongodb-linux-x86_64-4.0.1文件夹,为方便我改名为mongodb-4.0.1:
mvmongodb-linux-x86_64-4.0.1mongodb-4.0.1
三.配置环境变量及配置文件。
3.1配置系统环境变量:
vim/etc/profile
会提示文件已存在,输入“e”回车,然后键盘按下“i”进入编辑模式即可。在文件的最后加上:
#mongodbexportPATH=$PATH:/opt/mongodb-4.0.1/bin
最后按下“Esc”,再按下“:”,输入“wq”保存退出vim编辑模式,source/etc/profile使修改生效即可。
3.2创建MongoDB数据存放文件夹和日志记录文件夹,为后面的配置文件使用:
mkdir-p/data/dbmkdir-p/logs
3.3创建MongoDB运行时使用的配置文件:
进入bin目录下:cd/opt/mongodb-4.0.1/bin
创建mongodb.conf配置文件:vimmongodb.conf
会提示是newfile,直接输入下面内容:
dbpath=/data/db#数据文件存放目录logpath=/logs/mongodb.log#日志文件存放目录port=27017#端口fork=true#以守护程序的方式启用,即在后台运行#auth=true#需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程访问,第一次安装建议注释bind_ip=0.0.0.0#允许远程访问,或者直接注释,127.0.0.1是只允许本地访问
最后“Esc”,按下“:”,输入“wq”保存退出vim编辑模式即可。注意:注释符号#和数据之间必须是一个空格。
四.启动MongoDB
4.1启动MongoDB服务:
进入bin目录下:cd/opt/mongodb-4.0.1/bin
加载配置文件方式启动:./mongod-fmongodb.conf
显示:
至此,MongoDB在Linux上的安装完毕。
查看端口映射检查是否启动成功:netstat-nltp|grepmongod,显示:
或者:netstat-nltp|grep27017
或者:ps-ef|grepmongo,显示
或者:top,显示
4.2关闭MongoDB。
关闭方式也有很多种,下面列举几种。
4.2.1mongod命令关闭:./mongod--shutdown,mongod命令的shutdown选项能干净的关闭MongoDB服务,会释放内存中MongoDB占用的内存,个人推荐。
4.2.2kill进程:killMongoDB的pid,直接杀死MongoDB的进程id。kill-9pid强制杀死,有时可能会出现错误关不掉时就可使用这种强制方式,但注意这种方式可能并不会马上释放内存中MongoDB占用的内存,且如果这时候有数据往MongoDB新增可能会导致数据丢失。注:查看pid:ps-ef|grepmongo,结果的第二列就是pid。
4.2.3pkillmongod。
五.创建MongoDB的账号。
这也是我第一次搭MongoDB,由于刚开始在配置文件中加了auth=true,导致本地可正常访问,远程却一直连接不上MongoDB(远程使用的是默认空用户名和密码),看了很多博客也没找到原因,最后为MongoDB创建了账号远程才可访问(这里吐槽一下有的博主写的东西没有亲自操作一遍就从网上复制粘贴然后发布,有些没有责任心)。现在自己才发现原来是这个配置导致的,这也是上面的配置文件我为什么建议刚安装时注释掉auth=true,当然,后面如果熟悉了账号的创建,为了安全还是应该开启的。
建议注释了auth=true后进行下面的操作,如果开启了认证,可能会导致下面的操作执行失败(只是可能)。
进入bin目录下:cd/opt/mongodb-4.0.1/bin
运行mongo命令:mongo
使用admin数据库:useadmin,注意admin数据库下创建的账号权限是所有库通用的,即是全局认证的。
创建用户:db.createUser({user:'root',pwd:'root',roles:[{role:"dbOwner",db:"test"}]})
这时候MongoDB的admin数据库就有了账号,启用auth=true,重启后,再连接就需要账号密码授权了。
连接admin数据库(因为账号是admin数据库下的用户,如果想直接连接test数据库,这个数据库中是没有名为root的用户的,所以最好的解决方案就是在test数据库中通过db.createUser创建一个相同的用户):useadmin
授权:db.auth("root","root")
使用test数据库:usetest
这时候就拥有了权限对数据库进行操作:db.firstCollection.save({"name":"yzh","age":"25"})
可查看是否新增成功:db.firstCollection.find({name:"yzh"})
退出mongo命令行工具:ctrl+c本次教程就到这里。