MongoDB是一个免费开源且跨平台的基于文件的数据库,属于NoSQL数据库大家族中的一员。本文将演示如何一步步安装并启动MongoDB数据库。
在这里使用Homebrew安装mongodb,首先更新Homebrew:
brew update
mongodb提供3种版本供安装:普通版、支持TLS/SSL版本和开发版,具体请参见mongodb官网。普通版本安装执行以下指令:
brew install mongodb
各个部分默认的安装路径是
The databases are stored in the /usr/local/var/mongodb/ directory
The mongod.conf file is here: /usr/local/etc/mongod.conf
The mongo logs can be found at /usr/local/var/log/mongodb/
The mongo binaries are here: /usr/local/Cellar/mongodb/[version]/bin
首先创建保存数据的文件夹:
$ sudo mkdir -p /data/db
然后给刚创建的文件夹写入数据权限:
$ sudo chown -R $USER /data/db
R是recursive递归的意思
如果想直接配置mongod.conf:
$ vi /usr/local/etc/mongod.conf
可以看到mongod.conf内容如下:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
注意:如果准备连接非本机环境的mongodb数据库,bind_ip = 0.0.0.0
添加mongodb二进制文件目录到环境变量,先打开.bash_profile:
$ vi ~/.bash_profile
添加下面一行:
export PATH=/usr/local/Cellar/mongodb/version/bin:${PATH}
注意把version改成自己所安装的mongodb版本号即可
如果想让最新的环境变量马上生效:
$ source ~/.bash_profile
mongod服务也就是mongodb数据库,启动mongod服务端只需要一个很简单的命令:
$ mongod
使用此命令启动mongod会发现输出信息如下:
2020-03-04T18:55:03.464+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-03-04T18:55:03.465+0800 D NETWORK [main] fd limit hard:9223372036854775807 soft:256 max conn: 204
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] MongoDB starting : pid=12816 port=27017 dbpath=/data/db 64-bit host=yangjundehuawei.local
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] db version v4.0.2
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] git version: fc1573ba18aee42f97a3bb13b67af7d837826b47
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] allocator: system
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] modules: none
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] build environment:
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] distarch: x86_64
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] target_arch: x86_64
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] options: { systemLog: { verbosity: 1 } }
2020-03-04T18:55:03.477+0800 D - [initandlisten] User Assertion: NonExistentPath: Data directory /data/db not found. src/mongo/db/storage/storage_engine_init.cpp 212
2020-03-04T18:55:03.477+0800 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] now exiting
2020-03-04T18:55:03.477+0800 I CONTROL [initandlisten] shutting down with code:100
可以看到,会使用默认的数据保存路径/data/db。可是/usr/local/etc/mongod.conf这个配置文件中的默认dbpath不是/usr/local/var/mongodb吗?难道说配置文件没有生效?
没错,以上启动命令并不会读取/usr/local/etc/mongod.conf。
这是因为不通过$ mongod --config xxx.conf
这种形式指定配置文件xxx.conf时mongodb会使用程序内置的默认配置,该配置对应的数据保存路径为/data/db。
建议启动mongod时通过--config
参数指定配置文件,更多参考官网Configuration File Options。
所以,如果我们配置了/usr/local/etc/mongod.conf并希望mongdb使用我们的配置,可选的命令有2种:
(1)$ mongod --config /usr/local/etc/mongod.conf
(2)$ mongod --config /usr/local/etc/mongod.conf --fork
使用命令1启动的mongod服务在前台运行,可以通过Ctrl+C关闭服务。
命令2启动的mongod服务以守护线程的形式在后台运行,如何关闭参考关闭mongod服务
章节
启动mongodb报错可能是因为已经有mongodb进程在运行,必须先找到该进程的pid,然后使用kill命令杀死该进程。
关闭mongod服务可以使用3种方法,更多参考 Can I just kill mongod to stop mongo?
最简单粗暴关闭mongodb
执行以下shell命令找到所有和端口27017相关的pid:
lsof -i:27017
终端中会打印出对应的pid信息:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 6293 chenxin 6u IPv4 0xa79bb4eb4e6040e3 0t0 TCP localhost:27017 (LISTEN)
使用kill指令杀死pid 6293:
kill 6293
启动mongo shell
mongodb自带Javascript Shell,可以运行Javascript程序,并可以和mongodb服务实例交互,启动mongo shell命令是:
$ mongo
客户端启动后会自动连接到mongodb服务端的test数据库:
MongoDB shell version: 3.2.7
connecting to: test
Welcome 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-user
Server has startup warnings:
2016-06-13T10:25:10.288+0800 I CONTROL [initandlisten]
2016-06-13T10:25:10.288+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>
mongo shell有2种关闭方式:
1.运行mongo shell的终端输入 control+c
2.从运行mongo shell的终端输入> exit
- Install MongoDB Community Edition on OS X
- How to install MongoDB on Mac OS X
- Location of the mongodb database on mac
- MongoDB Setup - Data Directory Not Found or Permission Denied
- How to change the location that MongoDB uses to store its data?
- mac 下用 brew 安装mongodb
- MongoDB数据库简单使用
- Install MongoDB on Mac OS X Yosemite