The Mongod
概念
- Mongod是MongoDB 的主要守护进程,是数据库的核心服务器,处理连接请求,持久化数据
- 守护进程
【旨在运行但不直接与之交互的程序或进程】
【守护进程通常在他们的名字后面附加一个D】 - Mongod 包含我们可以用来使我们的数据库安全,分布式和一致的所有配置选项
- Mongod 可以包含多个服务器
- 当我们启动mongod时,实际上是在启动一个新的数据库,但是我们不直接与mongod进程交互。我们使用数据库客户端【mongoshell】与mongod通信,我们向客户端发出命令,客户端负责与mongod通信以执行这些命令
- 如果我们的部署有多个服务器,我们可以根据需要配置我们的客户端
mongoShell
并不是我们连接到mongod
的唯一方法
MongoDB Compass
Drivers
(Node,Swift,Java,C/C++,etc.)
命令
- 启动
在命令行输入mongod
,作用listen
- 关闭
- use admin - db.shutdownSever() - exit
- 输出 mongod 的各种选项及其功能描述
mongod --help
- 在这里查看所有命令
下面的命令通过配置文件进行配置更方便
- 更改数据库路径
mongod --dbpath <目录路径>
- 更改端口号
mongod --port <端口号>
- 启用身份验证
mongod --auth
- 允许某IP地址访问数据库
mongod --bind_ip 123.123.123.123
- 绑定多个地址和主机,可以用逗号分割
mongod --bind_ip localhost,123.123.123.123
- 使用指定的
--dbpath
和--logpath
启动mongod
mongod --dbpath /data/db --logpath /data/log/mongod.log
- 启动 mongod 并 fork 进程
mongod --dbpath /data/db --logpath /data/log/mongod.log --fork
- 使用许多配置选项启动 mongod
mongod --dbpath /data/db --logpath /data/log/mongod.log --fork --replSet "M103" --keyFile /data/keyfile --bind_ip "127.0.0.1,192.168.103.100" --tlsMode requireTLS --tlsCAFile "/etc/tls/TLSCA.pem" --tlsCertificateKeyFile "/etc/tls/tls.pem"
配置文件
- 在这里查看所有配置选项
- 使用配置文件
- 默认监听的端口
27017
,默认绑定到localhost
【可以与mongod连接的数据库客户端是运行mongod的机器本地的数据库客户端】【mongoshell 会连接到27017
端口:输入命令mongo
(作用:connect
)】 - 默认的
dbpath
是/data/db
:储存数据库、集合和索引的数据文件的地方。还储存日志信息 auth: disable
默认情况下,身份验证处于关闭状态
设置
- 示例配置文件
- 注意缩进是一个空格,而不是tab键
storage: dbPath: "/data/db" systemLog: path: "/data/log/mongod.log" destination: "file" replication: replSetName: M103 net: bindIp : "127.0.0.1,192.168.103.100" tls: mode: "requireTLS" certificateKeyFile: "/etc/tls/tls.pem" CAFile: "/etc/tls/TLSCA.pem" security: keyFile: "/data/keyfile" processManagement: fork: true
mongod.conf
的几个大块:systemLog: #日志 storage: #存储 processManagement: #进程管理 net: #网络 security: #安全 operationProfiling: #性能分析器 replication: #主从复制 sharding: #架构 setParameter: #自定义变量 auditLog: #检测日志 snmp: #
使用mongod从配置文件监听某端口,并使用mongo进行连接
- 配置文件
net: port: 27000 security: authorization: "enabled"
- 启动命令
mongod --config mongod.conf
- 使用mongo进行连接
mongo admin --host localhost:27000 --eval ' db.createUser({ user: "m103-admin", pwd: "m103-pass", roles: [ {role: "root", db: "admin"} ] }) '