Mac安装配置Mongodb
来源:互联网 发布:如何申请淘宝店铺 编辑:程序博客网 时间:2024/05/18 15:04
最近在在学习nodejs,相比mysql,mongodb与nodejs搭配更合适,存储数据格式也比较接近JS对象。关于mysql和mongodb两种类型数据库的差别与对比,下篇文章再写。
下面来看一下如何在mac上安装mongodb。
Homebrew
你可以选择选择下载mongodb源码编译安装,当然在mac上更方便快捷的方式是用homebrew安装。homebrew是mac上的一个包管理器,相当于ubantu的apt—get。第一次接触homebrew的同学可以戳官网。
安装过程
首先在终端输入如下命令更新Homebrew的package数据库
brew update
更新完毕后,接着输入如下命令进行安装mongodb
brew install mongodb
安装完成终端大概会出现如下命令
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mongodb-3.4######################################################################## 100.0%==> Pouring mongodb-3.4.6.mavericks.bottle.2.tar.gz==> CaveatsTo have launchd start mongodb at login:ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgentsThen to load mongodb now:launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plistOr, if you don’t want/need launchctl, you can just run:mongod —config /usr/local/etc/mongod.conf==> Summary/usr/local/Cellar/mongodb/3.4.6: 17 files, 331M
好了现在安装完成。
启动mongbd
输入命令
mongod --config /usr/local/etc/mongod.conf
然后在终端输入命令
mongo
出现如下命令则表示启动成功
MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.4.6Server has startup warnings: 2017-08-02T16:21:45.890+0800 I CONTROL [initandlisten] 2017-08-02T16:21:45.890+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2017-08-02T16:21:45.890+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2017-08-02T16:21:45.890+0800 I CONTROL [initandlisten] 2017-08-02T16:21:45.890+0800 I CONTROL [initandlisten] 2017-08-02T16:21:45.890+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000>
终端输入exit
可以退出数据库终端操作。
关闭mongodb
1. 使用数据库命令关闭
在 数据库操作的终端 依次输入如下命令:
> use admin > db.shutdownServer()
注意这里命令区分大小写。
2. 使用kill命令关闭
新建终端窗口 输入如下命令
ps -ef | grep mongo
这个命令查看关于mongo的所有进程的所有信息。如下是我输入命令显示的信息。其中第二列数据是pid。最后一列显示了当时启动该进程输入的命令。
501 3734 3693 0 5:28下午 ttys000 0:00.00 grep mongo 501 3707 3601 0 5:06下午 ttys001 0:06.13 mongod --auth --port 27017 --dbpath /data/db
再使用kill+pid命令关闭mongo运行的进程。
kill 3707
这种方式一般用于强制关闭。不建议使用。
问题
1. 启动时WARNING问题
我们在一开始使用mongod --config /usr/local/etc/mongod.conf
启动mongodb时,出现了一大堆提示信息,包括了一些warning,如下:
2017-08-02T16:21:45.890+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2017-08-02T16:21:45.890+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
这些warning并不影响使用数据库,但总出现warning看着也很不爽,那这些命令到底是什么呢?怎么解决呢?
其实,这是新版mongodb要求我们建立一个安全的数据库。对数据库操作权限设置,只能允许授权用户操作制定数据库。在stackoverflow上找到了解决方案。
- 如果刚刚启动了mongodb请关闭。方法参考上面。
输入如下命令启动mongodb。这里 /data/db是mongodb存放数据的目录。homebrew安装一般会自动创建。
mongod --port 27017 --dbpath /data/db
新建一个终端窗口连接mongodb
mongo --port 27017
输入如下数据库命令创建用户。
use admindb.createUser( { user: "yourname", pwd: "yourpwd", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
关闭数据库并用如下命令重启。
mongod --auth --port 27017 --dbpath /data/db
连接数据库。
mongo --port 27017 -u "yourname" -p "yourpwd" --authenticationDatabase "admin"
好了现在就会发现WARNING不见了。
MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.4.6
在使用时,如果要指定某个用户对某个数据库的操作,可以创建用户指定权限。 比如 Tester用户对test数据对操作为可读可写。
use testdb.createUser( { user: "Tester", pwd: "123", roles: [ { role: "readWrite", db: "test" }, { role: "read", db: "reporting" } ] })
连接数据库的命令就变成了
mongo --port 27017 -u "Tester" -p "123" --authenticationDatabase "test"
当然如果nodejs使用mongoose操作mongodb时,连接的命令也需要填充一些参数
mongoose.createConnection('localhost', 'test', 27017, {user: 'Tester', pass: '123'});
2. 启动或关闭数据库时Exception问题
[initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating[initandlisten] shutdown: going to close listening sockets...[initandlisten] shutdown: going to flush diaglog...[initandlisten] now exiting[initandlisten] shutting down with code:100
这个问题是因为 只有root对 /data/db可写,但是你在用自己的账户操作,所以可以用一下命令授权解决问题。
sudo chmod -R go+w /data/db
或者
sudo chown -R $USER /data/db
好了文章就写到这里。再遇见什么坑和问题会后续补充。
- Mac安装配置MongoDB
- Mac安装配置Mongodb
- Mac下安装配置MongoDB
- 在Mac OS上安装配置mongoDB
- MongoDB安装、配置、启动(MAC)
- MongoDB----在Mac下配置安装教程
- Mongodb for mac 的安装与配置
- mongodb 在mac下的安装配置方法
- Mac OS 安装Mongodb
- MAC下安装MongoDB
- mac 下面安装mongodb
- mac安装MongoDB
- mac安装MongoDB
- mac 下安装 mongodb
- mac下安装mongodb
- Mac安装MongoDB
- mac下安装MongoDB
- mac安装mongodb
- 模板——Treap实现名次树
- 万能自定义RatingBar 用起来简单易理解
- Jmeter 压测和AB压测的比较
- Django学习笔记六:form表单实现评论(检验数据合法性)
- 测试Java_AbstractJavaSamplerClient
- Mac安装配置Mongodb
- 看图理解单链表的反转
- 笔试编程三
- Nginx配置
- RSpec测试
- CC13X0CC26X0EvaluationBoard
- 使用Spring Boot创建微服务
- 常见Dos攻击原理及防护(死亡之Ping、Smurf、Teardown、LandAttack、SYN Flood)
- Mysql免安装版配置