1、安装
mongoDB 分社区版和企业版,普通用户都安装社区版
MongoDB 有两种安装方式:一种是 通过 yum 安装,另一种是直接下载 安装包 解压就可以了。
yum安装会自动做一些配置, 如生成配置文件,日志、数据库存储文件,及linux服务
# yum安装会自动创建 文件夹
# 数据存储位置
/var/lib/mongo
# 日志文件夹
/var/log/mongodb
# 生成配置文件
/etc/mongod.conf
解压安装则需要手动创建,
详情官网:https://docs.mongodb.com/manual/administration/install-on-linux/
2、启动MongoDB 与 连接
启动与关闭MongoDB
# 启动
sudo systemctl start mongod
#查看状态
sudo systemctl status mongod
#停止
sudo systemctl stop mongod
#服务自启
sudo systemctl enable mongod
#也可以手动启动 手动安装命令在 /解压包路径/bin/mongod
/usr/bin/mongod -f /etc/mongod.conf
#手动关闭
/usr/bin/mongod -f /etc/mongod.conf --shutdown
一个机器上安装一个 mongodb,可以启动多个实例。即可以 使用 不同的 配置文件(端口,dbpath,logpath都不同)启动
配置文件参考:https://docs.mongodb.com/manual/reference/configuration-options/
启动MongoDB服务后才能连接,连接后才能使用数据库
连接MongoDB
#连接本机的mongo 且 默认配置 ,手动安装命令在 /解压包路径/bin/mongo
/usr/bin/mongo
# mongo 连接有两种方式:
# 第一种: mongo 直接带参数命令
mongo --host hostname --port port -username username -password pwd
#如果配置了环境变量路径直接
mongo
./mongo 127.0.0.1:27017/database -u root -p 123456
# 第二种 使用 连接字符串
# 完整命令
mongo "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"
# mongodb:// 这是固定的格式,必须要指定。
# username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登录这个数据库
# host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
# portX 可选的指定端口,如果不填,默认为27017
# /database 如果指定username:password@,连接并验证登录指定数据库。若不指定,默认打开 test 数据库。
# ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开
## 如果开启了用户认证,并使用 mongo命令 直接进入 shell
db.auth("userName", "123123");
# 使用用户名fred,密码foobar登录localhost的baz数据库
mongodb://fred:foobar@localhost/baz
# 连接复制集myRepl,读取偏好 secondary
mongo "mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120"
# 设置了账号密码,且连接的数据库和 账号的所在数据库不一致,需要设置 authSource 参数
# 实际连接的是 test 数据库,但账号密码 是 admin 数据库上的(设置了能操作其他数据库的权限)
mongo "mongodb://username:pwd@db0.example.com,db1.example.com,db2.example.com/test?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120&authSource=admin"
options:
选项 | 描述 |
---|---|
replicaSet=name | 验证replica set的名称。 Impliesconnect=replicaSet. |
slaveOk=true | false |
true:在connect=direct模式下,驱动会连接第一台机器,即使这台服务器不是主。在connect=replicaSet模式下,驱动会发送所有的写请求到主并且把读取操作分布在其他从服务器。 | |
false: 在 connect=direct模式下,驱动会自动找寻主服务器. 在connect=replicaSet 模式下,驱动仅仅连接主服务器,并且所有的读写命令都连接到主服务器。 | |
safe=true | false |
true: 在执行更新操作之后,驱动都会发送getLastError命令来确保更新成功。(还要参考 wtimeoutMS). | |
false: 在每次更新之后,驱动不会发送getLastError来确保更新成功。 | |
w=n | 驱动添加 { w : n } 到getLastError命令. 应用于safe=true。 |
wtimeoutMS=ms | 驱动添加 { wtimeout : ms } 到 getlasterror 命令. 应用于 safe=true. |
fsync=true | false |
true: 驱动添加 { fsync : true } 到 getlasterror 命令.应用于 safe=true. | |
false: 驱动不会添加到getLastError命令中。 | |
journal=true | false |
connectTimeoutMS=ms | 可以打开连接的时间。 |
socketTimeoutMS=ms | 发送和接受sockets的时间。 |
mongo 命令连接:
https://docs.mongodb.com/v4.0/reference/connection-string/
https://docs.mongodb.com/v4.0/reference/program/mongo/index.html