当前位置:   article > 正文

分布式数据库NoSQL(一)——初识 MongoDB_本关任务:根据编程要求启动 mongodb 服务。

本关任务:根据编程要求启动 mongodb 服务。

第1关:启动 MongoDB

一、任务描述

本关任务:根据编程要求启动 MongoDB 服务。

二、相关知识

为了完成本关任务,你需要掌握: 1.Linux 端启动 MongoDB 服务; 2.客户端连接数据库。

DOS(Windows)端启动 MongoDB 服务

  • 配置环境变量 在电脑->属性->环境变量->Path中添加 MongoDB 安装路径(根据自己的安装路径添加);
  • 启动服务并进行相关配置;
  1. mongod.exe --bind_ip 127.0.0.1 --logpath D:\MongoDB\dblog\mongodb.log --logappend --dbpath D:\MongoDB\db --port 27017 --service
  • bind_ip :绑定服务 IP,绑定127.0.0.1,则只能本机访问,不指定默认本地所有 IP ;

  • logpath :配置日志存放的位置;

  • logappend :日志使用追加的方式;

  • dbpath :配置数据存放的位置;

  • port :配置端口号,27017是默认端口;

  • service :以服务方式启动,即后台启动。

服务可以按照以上的方式,使用不同的端口、日志文件和数据存放位置启动多个。

Linux 端启动 MongoDB 服务

(平台已经帮你配置好环境,如果是在本地环境练习,请安装并配置好 MongoDB)启动 MongoDB 服务,要准备数据存放位置,日志文件和配置文件。

  • 数据存放位置

    在 /data 路径下创建文件夹 db_test 来存放 MongoDB 服务的数据。

    1. cd /data #进入data路径
    2. mkdir db_test #创建db文件夹
  • 日志文件

    在 /logs 路径下创建文件夹 mongo 存放日志文件 mongod.log(文件不用创建,到时候会自动生成,但路径即文件夹必须提前创建好)

    1. mkdir /logs #创建/logs路径
    2. cd /logs #进入log路径
    3. mkdir mongo #创建mongo文件夹
  • 配置文件

    在 /etc/mongod(没有路径就创建)路径下新建配置文件 mongod.conf,使用配置文件启动 MongoDB 服务(把命令写入配置文件,以后启动服务就不用再输入一长串的命令,直接启动配置文件即可)。

    1. cd /etc #进入etc路径
    2. mkdir mongod #创建mongod文件夹
    3. cd /etc/mongod #进入/etc/mongod路径
    4. vim mongod.conf #编辑mongod.conf

    进入vim后,键入i开始编辑,mongod.conf 内容:

    1. port=27018 #配置端口号
    2. dbpath=/data/db_test #配置数据存放的位置
    3. logpath=/logs/mongo/mongod.log #配置日志存放的位置
    4. logappend=true #日志使用追加的方式
    5. fork=true #设置在后台运行

        退出vim指令:Esc——键入::x,保存并退出。

以上工作准备完成,便可以开启服务了,配置文件启动命令如下(在命令行中输入): mongod -f /etc/mongod/mongod.conf

启动客户端

不管是哪种平台,客户端的操作都基本相同。输入命令 mongo --port 27017 连接客户端(MongoDB 默认的连接方式无需输入用户名和密码,port 端口根据你服务启动的端口连接)

mongo --port 27017

如图出现最后一行的>符号,说明连接成功。

help 帮助文档

MongoDB 我们刚接触,并不了解怎么使用命令进行操作,这时候就可以用 help 帮助文档了,里面有 MongoDB 的所有操作命令。

  • 查看 MongoDB 支持哪些命令:help;

  • 查询当前数据库支持的方法:db.help();

  • 查询集合支持哪些方法:db.集合名.help()。

更多详细说明,可以查看其文档:

MongoDB 官方文档 

MongoDB 中文文档 

编程要求

根据提示,在右侧命令行(Linux 环境)进行操作:

  • 在 /data 路径下创建文件夹 mydb 来存放 MongoDB 服务的数据;

  • 在 /logs 路径下创建文件夹 mymongo 存放日志文件 mongod.log;

  • 在 /etc/mymongod 路径下新建配置文件 mongod.conf,使用配置文件启动 MongoDB,连接端口号设置为 27020;

  • 使用命令通过配置文件启动服务。

测试说明

点击测评后,平台会尝试连接端口为27020的客户端,

连接成功,输出: MongoDB连接成功! 连接失败,输出: MongoDB连接失败~

如果出现图4的错误,请点击图5标识的右侧代码区域相应的“重置命令行”按钮,重置环境即可。

  1. root@evassh-12161773:~# cd /data
  2. root@evassh-12161773:/data# mkdir mydb
  3. root@evassh-12161773:/data# mkdir /logs
  4. root@evassh-12161773:/data# cd /logs
  5. root@evassh-12161773:/logs# mkdir mymongo
  6. root@evassh-12161773:/logs# cd /etc
  7. root@evassh-12161773:/etc# mkdir /etc/mymongod
  8. root@evassh-12161773:/etc# cd /etc/mymongod
  9. root@evassh-12161773:/etc/mymongod# vim mongod.conf
  10. root@evassh-12161773:/etc/mymongod# mongod -f /etc/mymongod/mongod.conf

mongod.conf内容如下: 

  1. port=27020 #配置端口号
  2. dbpath=/data/mydb #配置数据存放的位置
  3. logpath=/logs/mymongo/mongod.log #配置日志存放的位置
  4. logappend=true #日志使用追加的方式
  5. fork=true #设置在后台运行

 

第2关:启动 MongoDB 多实例 

 一、任务描述

本关任务:根据第一关单实例(服务)的启动教程,按照编程要求,启动两组实例(服务)。

创建多个实例

在单台服务器资源充分的情况下,可以使用多实例,以便充分使用服务器资源。步骤和第一关相同,再创建一组数据存储目录、日志文件和配置文件,使用不同的端口号连接即可。

编程要求

根据提示,在右侧命令行(Linux 环境)进行操作:

  • 在 /data 路径下创建文件夹 mydb1 和 mydb2 来存放两组 MongoDB 服务的数据;

  • 在 /logs 路径下创建文件夹 mymongo1 和 mymongo2 存放日志文件;

  • 在 /etc/mymongod 路径下新建配置文件 mongod1.conf 和 mongod2.conf,使用配置文件启动 MongoDB,连接端口号分别设置为 27021和27022;

  • 使用命令通过配置文件启动两组服务。

测试说明

点击测评后,平台会尝试连接端口为27021和27022的客户端, 连接成功,输出: 27021端口服务启动成功! 27022端口服务启动成功!

连接失败,输出: 27021端口服务启动失败~ 27022端口服务启动失败~

如果出现图1的错误,请点击图2标识的右侧代码区域相应的“重置命令行”按钮,重置环境即可。

  1. root@evassh-12161773:~# cd /data
  2. root@evassh-12161773:/data# mkdir mydb1
  3. root@evassh-12161773:/data# mkdir mydb2
  4. root@evassh-12161773:/data# mkdir logs
  5. root@evassh-12161773:/data# cd /logs
  6. root@evassh-12161773:/logs# mkdir mymongo1
  7. root@evassh-12161773:/logs# mkdir mymongo2
  8. root@evassh-12161773:/logs# cd /etc
  9. root@evassh-12161773:/etc# mkdir /etc/mymongod
  10. mkdir: cannot create directory ‘/etc/mymongod’: File exists
  11. root@evassh-12161773:/etc# cd /etc/mymongod
  12. root@evassh-12161773:/etc/mymongod# vim mymongod1.conf
  13. root@evassh-12161773:/etc/mymongod# vim mymongod2.conf
  14. root@evassh-12161773:/etc/mymongod# mongod -f /etc/mymongod/mymongod1.conf
  15. 2022-09-23T01:14:58.729+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
  16. about to fork child process, waiting until server is ready for connections.
  17. forked process: 167
  18. child process started successfully, parent exiting
  19. root@evassh-12161773:/etc/mymongod# mongod -f /etc/mymongod/mymongod2.conf
  20. 2022-09-23T01:15:07.309+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
  21. about to fork child process, waiting until server is ready for connections.
  22. forked process: 195
  23. child process started successfully, parent exiting

mongod1.conf内容如下,mongod2与之类似。 

  1. port=27021
  2. dbpath=/data/mydb1
  3. logpath=/logs/mymongo1/mymongod1.log
  4. logappend=true
  5. fork=true

第3关:退出客户端和关闭 MongoDB 服务 

一、任务描述

本关任务:关闭端口为27017的 MongoDB 服务。

二、相关知识

为了完成本关任务,你需要掌握: 1.如何退出客户端; 2.如何关闭 MongoDB 服务。

退出客户端

退出客户端的命令很简单,只需在客户端输入 exit 便可顺利退出,如

关闭 MongoDB 服务

推荐使用方法

  • 能连接到客户端时:

    1. use admin #使用系统数据库admin,只有在admin数据库中才可以进行关闭服务的操作
    2. db.shutdownServer() #关闭服务

    显示如图所示,则说明服务已成功关闭; 

  • 客户端无法连接时:

    有时候数据库服务异常关闭时,我们连不上客户端,就可以使用该方法。

    查看 Mongo 相关进程 ps -ef | grep mongo 

    kill 和 Mongo 的服务进程 kill 26

      

编程要求

根据提示,在右侧命令行(Linux 环境)进行操作:

  • 关闭端口为 27017(默认端口)的 MongoDB 服务.

测试说明

点击测评后,平台会尝试连接端口为27017的默认客户端,例如:

关闭服务成功,输出: exception: connect failed 27017端口服务关闭成功!

关闭服务失败,输出: 27017端口服务未关闭~

  1. root@evassh-12161773:~# mongo --port 27017
  2. MongoDB shell version v4.0.0
  3. connecting to: mongodb://127.0.0.1:27017/
  4. MongoDB server version: 4.0.0
  5. Welcome to the MongoDB shell.
  6. For interactive help, type "help".
  7. For more comprehensive documentation, see
  8. http://docs.mongodb.org/
  9. Questions? Try the support group
  10. http://groups.google.com/group/mongodb-user
  11. Server has startup warnings:
  12. 2022-09-23T00:53:10.044+0000 I STORAGE [initandlisten]
  13. 2022-09-23T00:53:10.044+0000 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
  14. 2022-09-23T00:53:10.044+0000 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
  15. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten]
  16. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
  17. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
  18. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
  19. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten]
  20. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** WARNING: This server is bound to localhost.
  21. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** Remote systems will be unable to connect to this server.
  22. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** Start the server with --bind_ip <address> to specify which IP
  23. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to
  24. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the
  25. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning.
  26. 2022-09-23T00:53:10.751+0000 I CONTROL [initandlisten]
  27. 2022-09-23T00:53:10.752+0000 I CONTROL [initandlisten]
  28. 2022-09-23T00:53:10.752+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
  29. 2022-09-23T00:53:10.752+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
  30. 2022-09-23T00:53:10.752+0000 I CONTROL [initandlisten]
  31. ---
  32. Enable MongoDB's free cloud-based monitoring service to collect and display
  33. metrics about your deployment (disk utilization, CPU, operation statistics,
  34. etc).
  35. The monitoring data will be available on a MongoDB website with a unique
  36. URL created for you. Anyone you share the URL with will also be able to
  37. view this page. MongoDB may use this information to make product
  38. improvements and to suggest MongoDB products and deployment options to you.
  39. To enable free monitoring, run the following command:
  40. db.enableFreeMonitoring()
  41. ---
  42. > use admin
  43. switched to db admin
  44. > db.shutdownServer()
  45. server should be down...
  46. 2022-09-23T01:22:34.739+0000 I NETWORK [js] trying reconnect to 127.0.0.1:27017 failed
  47. 2022-09-23T01:22:34.739+0000 I NETWORK [js] reconnect 127.0.0.1:27017 failed failed

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/619262
推荐阅读
相关标签
  

闽ICP备14008679号