记录下自己在mac os上安装mongdb全过程,以及遇到的相关问题
1.下载mongodb安装包
官网下载:www.mongodb.com/download-ce…
2. 复制下载链接后打开mac终端,使用cd命令进入 /usr/local 目录,然后使用wget命令下载 MongoDB 的压缩包,命令如下:
cd /usr/local\
sudo wget https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-5.0.8.tgz
注意:如果输入命令后提示wget command not found,则需要通过在终端输入 brew install wget安装wget,如果没有安装brew,则可以看看我第一篇文章中安装brew的教程。
3.安装mongodb
待压缩包下载完成后就可以尝试安装 MongoDB 了,具体的安装步骤如下:
【步骤 1】解压缩刚刚下载的压缩包,并将其重命名为 mongodb:
sudo tar -zxvf mongodb-macos-x86_64-5.0.8.tgz # 解压 MongoDB 压缩包\
sudo mv mongodb-osx-ssl-x86_64-5.0.8/ mongodb # 重命名解压得到的文件夹
如果重命名失败,可以手动进入文件夹修改名称
【步骤 2】在 /usr/local/mongodb 目录下新建两个文件夹 data 和 log,用于存储 MongoDB 的数据和日志。
sudo mkdir -p /usr/local/mongodb/data\
sudo mkdir -p /usr/local/mongodb/log
使用如下命令为当前用户分配目录的读写权限:
sudo chown username /usr/local/mongodb/data\
sudo chown username /usr/local/mongodb/log
其中“username”为当前的用户名,您需要修改为您当前系统的用户名。
【步骤 3】配置 PATH。在终端中输入open -e .bash_profile命令打开 bash_profile 配置文件,然后将 MongoDB 的安装目录下的 bin 目录添加到环境变量中,如下所示:
export PATH=${PATH}:/usr/local/mongodb/bin
编辑完成后保存并退出,然后使用source .bash_profile命令使配置立即生效。
注意:如果输入open -e .bash_profile 显示不存在,则需手动创建.bash_profile,步骤如下:1:在终端中输入touch .bash_profile,2:输入open -e .bash_profile编辑.bash_profile。3:弹出编辑界面
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
export PATH=${PATH}:/usr/local/mongodb/bin
4:按cmd+s保存文件 返回终端输入更新相关配置就可以了
编辑完成后保存并退出,然后使用source .bash_profile命令使配置立即生效。
【步骤 4】使用下面的命令来启动 MongoDB 服务:
mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/log/mongo.log --fork
// 出现child process started successfully, parent exiting说明启动成功
打开新终端,输入mongo,出现小箭头,说明mongodb成功启动,也可以浏览器打开localhost:27017查看,若出现It looks like you are trying to access MongoDB over HTTP on the native drive port,说明启动成功。
参数说明如下:
- --dbpath 用来设置数据的存放目录;
- --logpath 用来设置日志的存放目录;
- --fork 用来设置在后台运行。
至此 MongoDB 就安装完成了。
4.验证安装
您可以使用mongod -version命令来验证 MongoDB 是否安装成功,如果出现类似下面所示的内容,则说明 MongoDB 安装成功。
db version v5.0.8
Build Info: {
"version": "5.0.8",
"gitVersion": "c87e1c23421bf79614baf500fda6622bd90f674e",
"modules": [],
"allocator": "system",
"environment": {
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
重启一下终端看看是否依然成功。
若发现全局变量又无效了,大概可能是.zshrc该文件中没有自动执行我们配置的全局变量。终端进入用户根路径
- 打开zshrc文件
open .zshrc
如果提示没有该文件,则输入touch .zshrc后重新输入open .zshrc
- 在该文件中添加:
source .bash_profile,保存,退出该文件。然后刷新一下终端:
source .zshrc
- 在根目录~下,输入mongo和mongod,不显示没有指令,而是如下显示,则设置全局环境变量成功。
5.关闭服务:若直接关闭终端,下次启动可能报错。
- 在启动进程的终端command + c
- 在mongo终端
// 切换管理员角色
use admin
// 输入关闭服务命令,参数可写可不写
db.shutdownServer({force:true})
若遇到下次启动报错类似如下错误:
about to fork child process, waiting until server is ready for connections.
forked process: 5944
ERROR: child process failed, exited with 48
To see additional information in this output, start without the "--fork" option.
问题原因:上一次启动MongoDB后没有正确结束这个进程。比如 直接关闭Terminal、用kill命令结束进程 等方式,都是不当结束MongoDB进程,且容易造成数据丢失,即使后续执行repair也没用。
解决办法:
- 查看mongo进程:
ps aux|grep mongo
madi 5952 0.0 0.0 4277624 716 s003 S+ 2:57下午 0:00.00 grep mongo
madi 5876 0.0 0.2 5545248 29652 ?? S 2:43下午 0:04.64 mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/log/mongo.log --fork
- 杀死进程:
sudo kill -2 5952
madi@192 ~ % sudo kill -2 5952
Password:
kill: 5952: No such process
然后重新启动mongodb就可以了