使用 brew 安装使用 mongodb

1,996 阅读3分钟

安装

brew tap mongodb/brew
brew install mongodb-community

重要配置文件

  • 配置文件: /usr/local/etc/mongod.conf
  • 日志目录路径: /usr/local/var/log/mongodb
  • 数据目录路径: /usr/local/var/mongodb

启动与关闭 mongod 服务

  1. 以服务方式

    brew services start mongodb-community # 开启
    brew services stop mongodb-community # 关闭
    brew services restart mongodb-community # 重启
    
  2. 手动方式

    mongod --config /usr/local/etc/mongod.conf # 开启
    mongo admin --eval "db.shutdownServer()" # 关闭
    

杀死 mongod 进程

  1. 方法一

    lsof -i:27017
    kill 端口
    
  2. 方法二

    pgrep mongod
    kill 端口
    
  3. 方法三

    use admin
    db.shutdownServer()
    

运行

mongo

添加用户

  1. 创建管理员用户

    use admin # 进入 admin 库
    db.createUser({
        user: 'admin',
        pwd: 'admin',
        roles: [{
            role: 'root',
            db: 'admin'
        }]
    })
    db.auth('admin', 'admin') # 验证
    
  2. 创建普通用户

    use game # 进入 game 库
    db.createUser({
        user: 'liurongqing',
        pwd: '123456',
        roles: ['readWrite', 'dbAdmin', 'userAdmin']
    })
    

角色权限

角色分类

角色
数据库用户角色read readWrite
数据库管理角色dbAdmin dbOwner userAdmin
集群管理角色clusterAdmin clusterManager clusterMonitor hostManager
备份恢复角色 backup restore
所有数据库角色readAnyDatabase readWriteAnyDatabase userAdminAnyDatabase dbAdminAnyDatabase
超级用户角色root dbOwner userAdmin userAdminAnyDatabase
内部角色system

角色说明

角色说明
read允许用户读取指定数据库
readWrite允许用户读写指定数据库
dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问 system.profile
userAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root只在admin数据库中可用。超级账号,超级权限

mongodb 操作命令

  1. 用户操作

    命令功能
    db.auth('admin', 'admin')授权验证
    db.system.users.find()查看用户列表
    show users查看用户列表
    db.createUser({user: '1', pwd: '1', roles: [{role: 'read', db: 'g'}]})创建用户
    db.runCommand({usersInfo: 'liurongqing'})查看指定用户信息
    db.runCommand({updateUser: 'x', pwd: '1'})修改用户信息
    db.changeUserPassword('user', 'pwd')修改用户密码
    db.system.users.remove({user: 'username'})删除用户
  2. db 库操作

    命令功能
    show dbs查看所有库
    db.dropDatabase()删除数据库
  3. collection 集合操作(表)

    命令功能
    show collections
    show tables
    显示集合
    db.createCollection('user')创建集合
    db.COLLECTION_NAME.drop()删除集合
  4. 文档数据操作(行)

    命令功能
    db.COLLECTION_NAME.insert({title: '123'})插入文档
    db.COLLECTION_NAME.find()查询文档
    db.COLLECTION_NAME.update({id: 1}, {name: 'xxx'}, {multi: false})更新文档
    db.COLLECTION_NAME.save({_id: 'xxxx', name: 'xxx'})替换文档
    db.COLLECTION_NAME.remove({id: 11}, 1)删除文档
  5. 索引

    命令功能
    db.users.getIndexes()获取users表中的所有索引
    db.users.dropIndex('name_1')删除索引
  6. 其他

    命令功能
    mongodb://user:{user}:{pwd}@host:{host}:{port}/${database}连接

默认 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
security:
  authorization: enabled

错误处理

看 log 文件: /usr/local/var/log/mongodb

Q: Support for MMAPV1 storage engine has been deprecated and will be removed in version 4.2 A: 清空数据 /usr/local/var/mongodb

rm -rf /usr/local/var/mongodb/*

参考

  1. mongodb/homebrew-brew