MongoDB从入门到实战(二):MongoDB安装

x33g5p2x  于2021-12-25 转载在 Go  
字(3.1k)|赞(0)|评价(0)|浏览(587)

一:下载并解压

https://www.mongodb.com/try/download/community 或者 https://www.mongodb.com/download-center/community/releases

在mongodb根目录下创建config、data/db、log文件夹。

二:启动服务

2.1 方式一

在命令行中指定启动参数。

  1. cd ~/Softwares/mongodb-4.4.5
  2. # 启动服务
  3. ./bin/mongod --dbpath ./data/db
  4. # 查看是否启动成功
  5. ps -ef | grep mongod

2.2 方式二(推荐)

在配置文件(mongodb-4.4.5/config/mongod.conf)中指定启动参数。

  1. systemLog:
  2. # MongoDB发送所有日志输出的目标指定为文件
  3. destination: file
  4. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
  5. path: "/Users/mengday/Softwares/mongodb-4.4.4/log/mongod.log"
  6. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
  7. logAppend: true
  8. storage:
  9. #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
  10. #The directory where the mongod instance stores its data.Default Value is "/data/db".
  11. dbPath: "/Users/mengday/Softwares/mongodb-4.4.4/data/db"
  12. journal:
  13. #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
  14. enabled: true
  15. net:
  16. #服务实例绑定的IP,默认是localhost,多个用逗号分隔
  17. #bindIp: 127.0.0.1
  18. #绑定的端口,默认是27017
  19. port: 27017
  20. setParameter:
  21. enableLocalhostAuthBypass: false
  1. ./bin/mongod -f ./config/mongod.conf
  2. ./bin/mongod --config ./config/mongod.conf
  3. # 查看是否启动成功
  4. ps -ef | grep mongod

2.3 启动常见错误

IllegalOperation: Attempted to create a lock file on a read-only directory

  1. // 删除锁的文件
  2. rm -f ./data/db/*.lock // data/db 目录不在bin目录下就必须先切换到bin目录里,然后修改文件夹权限 cd bin sudo chmod -R 777 data/db

三:MongoDB Shell

MongoDB shell是一个基于javascript的解释器,故是支持js程序的,可以在shell中定义变量、定义函数等。

3.1 启动Shell

  1. # 1. 启动MongoDB Shell
  2. mongo
  3. mongo --host=127.0.0.1 --port=27017
  4. # 数据库 帮助命令
  5. db.help()
  6. # 集合 帮助命令
  7. db.collection.help()

3.2 为数据库创建用户名

mongodb密码和传统数据如mysql等有些区别: mongodb的用户名和密码是基于每个数据库的,而不是基于整个数据库实例的。所以所有数据库db都需要设置自己的密码。

MongoDB 预定义的数据库:

  • admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特
    定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
  • local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
  • config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
  1. # 2.查看所有数据库
  2. > show dbs
  3. admin 0.000GB
  4. config 0.000GB
  5. local 0.000GB
  6. # 3.切换数据库,进入admin数据库
  7. > use admin
  8. # 4.在admin数据库上创建管理员账户
  9. # mongodb中的用户是基于身份role的,该管理员账户的role是userAdminAnyDatabase。
  10. # admin用户用于管理账号,不能进行关闭数据库等操作。
  11. > db.createUser({
  12. user: "admin",
  13. pwd: "admin",
  14. roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
  15. })
  16. # 5.在admin数据库上创建root用户
  17. # 创建完admin管理员,创建一个超级管理员root。角色root, root角色用于关闭数据库 db.shutdownServer()。
  18. > db.createUser({
  19. user: "root",
  20. pwd: "root",
  21. roles: [ { role: "root", db: "admin" } ]
  22. })
  23. # 6. 切换到自己的test数据库,数据库可以存在也可以是不存在的
  24. > use test
  25. # 7. 为test数据库添加账号为test,密码为test
  26. # role: "dbOwner"代表数据库所有者角色,拥有最高该数据库最高权限。
  27. # 比如新建索引等当账号管理员和超级管理员,可以为自己的数据库创建用户了。
  28. # 注意:在创建自定义用户时,一定要切换到所在数据库上去创建用户,不然创建的用户还是属于admin。
  29. # 如果是读写角色的话,权限设置为role: "readWrite"
  30. > db.createUser({
  31. user: "mongo",
  32. pwd: "123456",
  33. roles: [ { role: "dbOwner", db: "test" } ]
  34. })
  35. # 8.查看用户
  36. > show users
  37. {
  38. "_id" : "test.mongo",
  39. "userId" : UUID("003e7cec-0d8a-4ce1-b09c-b6730be53570"),
  40. "user" : "mongo",
  41. "db" : "test",
  42. "roles" : [
  43. {
  44. "role" : "dbOwner",
  45. "db" : "test"
  46. }
  47. ],
  48. "mechanisms" : [
  49. "SCRAM-SHA-1",
  50. "SCRAM-SHA-256"
  51. ]
  52. }
  53. # 退出mongo shell
  54. > exit

四:MongoDB Compass

Compass是MongoDB退出的一款客户端工具,类似于MySQL中的Navicat一样, 可以创建数据库、创建集合、修改文档等操作。下载地址:https://www.mongodb.com/products/compass

相关文章