Mac OS X 安装 MongoDB
MongoDB 是什么
MongoDB
是一个基于分布式文件存储的数据库,由C++语言
编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
它的特点:高性能、易部署、易使用,存储数据非常方便。
MongoDB 官网: https://www.mongodb.com
Mac 安装MongoDB
Mac OS上面安装MongoDB
,可以编译源代码安装 ,也可以使用Homebrew
安装;普通青年的HomeBrew方式,文艺青年的源码编译方式。
Homebrew
安装 MongoDB
首先更新Homebrew
的package数据库:
brew update
更新完成之后,就可以直接安装MongoDB
了。
brew install mongodb
$ brew install mongodb Downloading https://homebrew.bintray.com/bottles/mongodb-3.4.4.sierra.bottle.tar.gz ######################################################################## 100.0% Pouring mongodb-3.4.4.sierra.bottle.tar.gz Caveats To have launchd start mongodb now and restart at login: brew services start mongodb Or, if you don't want/need a background service you can just run: mongod --config /usr/local/etc/mongod.conf Summary /usr/local/Cellar/mongodb/3.4.4: 17 files, 266.3MB
启动 MongoDB
从上面的安装提示中可以看到启动MongoDB
的方法:
mongod --config /usr/local/etc/mongod.conf
mongod.conf
内容:
MongoDB 3.0
$ cat /usr/local/etc/mongod.conf systemLog: destination: file path: /usr/local/var/log/mongodb/mongo.log logAppend: true storage: dbPath: /usr/local/var/mongodb journal: enabled: true net: bindIp: 127.0.0.1 port: 27017 processManagement: fork: true pidFilePath: /var/run/mongodb/mongod.pid
MongoDB 2.0
# cat /etc/mongod.conf # mongod.conf #where to log logpath=/var/log/mongodb/mongod.log logappend=true # fork and run in background fork=true port=27017 dbpath=/var/lib/mongo # location of pidfile pidfilepath=/var/run/mongodb/mongod.pid # Listen to local interface only. Comment out to listen on all interfaces. #bind_ip=127.0.0.1 # Disables write-ahead journaling # nojournal=true # Enables periodic logging of CPU utilization and I/O wait #cpu=true # Turn on/off security. Off is currently the default #noauth=true auth=true # Verbose logging output. #verbose=true # Inspect all client data for validity on receipt (useful for # developing drivers) #objcheck=true # Enable db quota management #quota=true # Set oplogging level where n is # 0=off (default) # 1=W # 2=R # 3=both # 7=W+some reads #diaglog=0 # Ignore query hints #nohints=true # Enable the HTTP interface (Defaults to port 28017). #httpinterface=true # Turns off server-side scripting. This will result in greatly limited # functionality #noscripting=true # Turns off table scans. Any query that would do a table scan fails. #notablescan=true # Disable data file preallocation. #noprealloc=true # Specify .ns file size for new databases. # nssize=<size> # Replication Options # in replicated mongo databases, specify the replica set name here #replSet=setname # maximum size in megabytes for replication operation log #oplogSize=1024 # path to a key file storing authentication info for connections # between replica set members #keyFile=/path/to/keyfile
mongodb 配置文档:
Configuration File Options (mongodb官网)
Mac 自动启动 MongoDB
Mac 下用于初始化系统环境的关键经常是 launchd,它是内核转载成功后启动的第一个进程。
所以设置服务的开机启动要用到这个进程。采用 launchd 开机启动 需要配置一个plist文件。
开机启动分为两种:
1、在用户登陆前启动;( plist文件放置在目录:~/Library/LaunchDaemons )
2、在用户登陆后启动。( plist文件放置在目录:~/Library/LaunchAgents )
如 MongoDB 的开机启动,需要在 LaunchDaemons 或 LaunchAgents 创建一个 plist文件。
在终端中逐个输入如下命令
cd ~/Library/LaunchAgents //如果没有,建立目录 mkdir -p ~/Library/LaunchAgents //建立目录的步骤不是必须的 cp /usr/local/Cellar/mongodb/3.4.4/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/ sudo launchctl load -w homebrew.mxcl.mongodb.plist sudo launchctl start homebrew.mxcl.mongodb
默认情况,自启动的数据库配置为
集合 | 项目 | 路径 | 用途 |
---|---|---|---|
Path | ConfPath | /usr/local/etc/mongod.conf | 数据库配置文件 |
Path | StandPath | /usr/local/var/log/mongodb/output.log | 运行日志路径 |
systemLog | destination | file | 类型 |
systemLog | logPath | /usr/local/var/log/mongodb/mongo.log | 数据日志路径 |
systemLog | logAppend | true | 是否开启增量日志 |
storage | journal:enabled | true | 故障恢复持久化 |
storage | dbPath | /usr/local/var/mongodb | 数据文件路径 |
storage | directoryPerDB | true | 是否一库一文件 |
storage | engine | wiredTiger | 数据库引擎 |
net | bindIp | 127.0.0.1 | 绑定IP |
net | port | 27017 | 默认端口 |
RoboMongo连接meteor数据库
验证网址 : http://127.0.0.1:27017
使用 MongoDB
首先需要连接到MongoDB service:
mongo
插入数据:
db.test.insert({‘name':’test’})
WriteResult({ “nInserted” : 1 })
查看数据:
db.test.find()
{ "_id" : ObjectId("55e407e120d5b7acf4301d3b"), "name" : "test" }
MongoDB 后台关闭命令
$ .bin/mongod // 登录客户端
> use admin // 切换到管理员
> db.shutdownServer() // 关闭mongodb
或者
> db.adminCommand({shutdown : 1, force : true})
> //or
> db.shutdownServer({force : true})
> db.adminCommand(shutdown : 1, force : true, timeoutsec : 5) // 超时关闭
> //or
> db.shutdownServer({force : true, timeoutsec : 5})
MongoDb 可视化工具
MongoDb 可视化管理工具有很多,详见:
Admin UIs: http://docs.mongodb.org/ecosystem/tools/administration-interfaces/
经人推荐试用了一下Robomongo,这个是跨平台的,Windows、Mac、Linux下都可以使用。
RoboMongo官网: https://robomongo.org/download
最后更新版本:robomongo-1.0.0-darwin-x86_64-89f24ea.dmg
Mongodb 错误处理
问题1: 连接mongodb失败. mongod 启动报错
mongod -f
about to fork child process, waiting until server is ready for connections.
forked process: 5211
ERROR: child process failed, exited with error number 1
原因:没有正常关闭mongod服务,导致mongod被锁
解决:删除掉mongod里的mongod.lock 文件,重新启动服务
$ sudo find / -name "mongod.lock"
find: /dev/fd/SQL: No such file or directory
find: /dev/fd/SQL: No such file or directory
/usr/local/var/mongodb/mongod.lock
删除文件 mongod.lock
sudo rm -f /usr/local/var/mongodb/mongod.lock
修复 mongod
mongod repair
创建文件目录,删除文件
$ mkdir -p /var/run/mongodb
$ rm -f /var/run/mongodb/mongod.pid
参考推荐:
Install MongoDB Community Edition on OS X (官网)
Python连接MySQL、MongoDB、Redis、memcache
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2017-11-12 04:04:19
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!