安装MongoDB
Mac: 最懒人的方法就是命令行: brew install mongodb 关于什么是brew和怎么安装可以在网上查,安装完成默认路径如下:
cd/bin后就能看见mongodb常用命令:
mongod 打开数据库服务器
mongo 进入mongodb shell
本地默端口是27017
执行mongod时可能会有一些错误,常见的提示“…/data/db…”,这是数据存储文件目录,brew安装mongodb时会默认安装在根目录下,出现错误原因大多是因为当前用户没有其读写权限,此时直接:
sudo chown -R 用户名 /data/db
当然,这个存储目录是可以更改的 ,有一种mac,win通用的方式:
mongod -port XXXX -dbpath <随意的路径>/data/db
在mongod启动服务器的时候指定端口和实例安装路径。
win:
win环境安装mongoldb更简单,从官网下载zip包,解压到自己任意位置创建的mongodb文件夹下,在文件夹下建/data/db目录,命令行:
cd <路径>/mongodb/bin
./mongod -dbpath <路径>/mongodb/data/db
基本操作
首先命令行输入mongo进入shell
此时默认链接的test数据库
show dbs – 显示当前数据库
show users – 显示当前数据库的用户
返回一个标准的js对象,其实这也是mongodb数据的存储方式,这样一个对象称之为“文档”,类似于传统数据库的一条记录。其中可以看见用户的一些属性,从字面就能猜出含义。
use admin //如果admin数据库不存在则创建,存在则切换
权限设置
刚安装好的mongodb是没有权限设置的,可任意添加删除用户和数据库,显然不适于生产。一般情况下,需要创建两个用户,一个用户管理员,可在admin和其他数据库中创建用户,一个数据库超级管理员,拥有增删改查任意数据库、复制、集群操作的权限。
//用户管理员
use admin //回车
db.createUser({user:"userAdmin",pwd:"123",roles:["userAdminAnyDatabse"]}) //回车
//数据库超级管理员
use admin //回车
db.createUser({user:"dbAdmin",pwd:"123",roles:["readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin"]})
//回车
roles属性列出的就是该用户拥有的权限,包含以下几个:
read
readAnyDatabase
readWrite
readWriteAnyDatabase //增删改查任意数据库的集合
dbAdmin
dbAdminAnyDatabase //读写数据库
clusterAdmin //允许对mongodb的一般管理,连接,复制,增删
userAdmin
userAdminAnyDatabase//用户管理
分别什么意思呢,哈哈,大部分大家应该都能猜出来
这样设置以后有什么用呢,大家可以试试先退出数据库
use admin
db.shutdownServer()
再登入:
mongod -auth
然后进入任意数据库创建一个集合(collection:就是文档集合,类似于表)
use dbtest
db.createCollection("testcollection")
则会出现下面错误:
提示没去权限,这就是因为当前不是数据库超级管理员,无法任意创建集合,此时需要切换到数据库管理员角色:
use admin
db.auth("dbadmin","123")
会有提示:
说明切换成功,此时再按之前步骤创建集合,则创建成功
可见只要在登录时确定以权限方式登录(-auth),就能对数据库和用户的权限进行管理,上面说的是数据库管理,用户管理员功能于此类似。