MacOS系统下简单安装以及配置MongoDB数据库(一)
最近写了一个用node来操作mongodb完成增、删、改、查、排序、分页功能的示例,并且已经放在了服务器上地址:。
项目一共四部分:
1.macos下mongodb数据库的安装配置。(本篇文章)
2.mongodb在macos上的客户端robo 3t 的使用
3.centos 下mongodb数据库的安装配置。
4.node-express项目的搭建并通过mongoose操作mongodb数据库详细示例
一:去官网下载mongodb安装包 ,选择好版本直接下载,可能下载会很慢。
也可以用brew安装,但我不用。
二:下载下来的解压包直接放到系统的某个文件下。
下载下来文件格式是:
1.我直接把文件移动到了访达的 /usr/local/里面,并修改文件名称为mongodb,并创建数据以及日志文件(brew安装的需要命令来操作)。
mac下/usr/local目录默认是对于finder是隐藏,如果需要到/usr/local下去,打开finder,然后使用command +shift+g,在弹出的目录中填写/usr/local就可以了
三:配置mongodb的系统环境变量。(目的为了可以全局任何地方启动数据库)
新建终端,输入open -e .bash_profile 或者 vi ./.bash_profile
path中加入"$mongodb_home/bin:$path" 配置成图片那样
执行:source .bash_profile 使修改生效。
四: 打开终端,进入到mongodb目录,执行:mongod --dbpath data --logpath log/mongod.log --logappend --port=27017 --fork 命令开启服务,出现以下就表示服务开启成功。
出现下面情况是服务已经开启过了。
tip:mongodb常用命令(不用太在意):
mogond --dbpath $dbpath(数据库数据文件路径)
--logpath $logpath(日志文件的路径)
--logappend(以追加的方式打开文件)
--fork(将数据库服务放在后台运行)
五:服务开启后 执行 mongo (因为配置了环境变量所以,服务开启后在哪里都可以执行mongo命令)
出现版本,http://127.0.0.1:27017(可在浏览器打开),以及可以输入命令 就说明成功了
六: 简单命令操作数据库
其它命令可以查看帮助:1.数据库的帮助 db.help(); 2.数据库表的帮助 db.表名字.help();
最后:
在此过程中遇到了几个操作不当引来的问题:
1. 在修改环境变量的时候 配置的 path=$mongodb_home/bin: 后面的:$path没有写,导致系统的所有命令都不能用了。都成了“ -bash:ssh:command not found ”这样的
办法一:暂时的解决,重启终端后将失效。
export path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
办法二:用命令的全路径,修改成功后,重启终端就可以生效了。
"path=…"是配置环境变量,而"export path"是执行配置的环境变量,而我改成path=$mongodb_home/bin:,说明环境变量只有一个路径“$mongodb_home/bin:”,
其他的都没有了,所以原来的命令都无效了。
总的来说环境变量配置也就两行:
path=path1:path2
export path
立即生效:source ~/.bash_profile
注:不要轻易的修改path里的path路径,添加是在后面加“:path”追加即可。
2.启动mongo报错:couldn't connect to server 127.0.0.1:27017
打开mongodb发现报错,查了下,一般产生原因是mongodb由于不正常关闭产生了一个mongo.lock文件,只要找到并删除这个lock文件,
执行repair命令并重新启动mongodb就好了,解决命令见如下。
sudo rm mongod.lock路径
sudo mongod --repair
sudo start mongodb || sudo service mongodb start
sudo status mongodb || sudo service mongodb status
mongo
关于mongod.lock路径,取决于你安装mongodb时的创建数据和日志的目录。以下是mongodb.lock可能出现的位置:
/data/db/mongod.lock
/var/lib/mongodb/mongod.lock
/var/mongodb/data/mongod.lock