Mongo 初始化

本文最后更新于:2024年3月18日 凌晨

Mongo 初始化

安装

1
2
3
4
5
6
7
8
$ docker run -d \
-p 27017:27017 \
-v ~/DockerVolumes/mongo/data:/data/db \
--privileged=true \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
-e MONGO_INITDB_DATABASE=test \
--name mongo mongo:5.0.8

服务

启动

后台运行

1
$ mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork
  • 若要使用账号密码服务需要在启动时加 --auth

配置文件运行

1
$ mongod --config /usr/local/etc/mongod.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
systemLog:
#MongoDB发送所有日志输出的目标指定为文件。
#The path of the log file to which mongod or mongos should send all diagnostic logging information
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径。
path: "/mongodb/single/log/mongod.log"
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
logAppend: true
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
#The directory where the mongod instance stores its data.Default Value is "/data/db".
dbPath: "/mongodb/single/data/db"
journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
enabled: true
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式。
fork: true
net:
#服务实例绑定的IP,默认是localhost
bindIp: localhost,192.168.0.2
#绑定的端口,默认是27017
port: 27017

连接

使用用户名和密码连接到 MongoDB 服务器,你必须使用 ‘username:password@hostname/dbname’ 格式,'username’为用户名,‘password’ 为密码。

使用用户名和密码连接登录到默认数据库:

1
2
3
$ ./mongo
MongoDB shell version: 4.0.9
connecting to: test

使用用户 admin 使用密码 123456 连接到本地的 MongoDB 服务上。输出结果如下所示:

1
2
> mongodb://admin:123456@localhost/
...

使用用户名和密码连接登录到指定数据库,格式如下:

1
mongodb://admin:123456@localhost/test

更多连接实例

连接本地数据库服务器,端口是默认的。

1
mongodb://localhost

使用用户名fred,密码foobar登录localhost的admin数据库。

1
mongodb://fred:foobar@localhost

使用用户名fred,密码foobar登录localhost的baz数据库。

1
mongodb://fred:foobar@localhost/baz

连接 replica pair,服务器1为example1.com服务器2为example2。

1
mongodb://example1.com:27017,example2.com:27017

连接 replica set 三台服务器(端口 27017, 27018,和27019):

1
mongodb://localhost,localhost:27018,localhost:27019

连接 replica set 三台服务器,写入操作应用在主服务器并且分布查询到从服务器。

1
mongodb://host1,host2,host3/?slaveOk=true

直接连接第一个服务器,无论是replica set一部分或者主服务器或者从服务器。

1
mongodb://host1,host2,host3/?connect=direct;slaveOk=true

当你的连接服务器有优先级,还需要列出所有服务器,你可以使用上述连接方式。

安全模式连接到localhost:

1
mongodb://localhost/?safe=true

以安全模式连接到replica set,并且等待至少两个复制服务器成功写入,超时时间设置为2秒。

1
mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000

关闭

1
2
3
4
5
6
# 客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。 
$ mongo --port 27017
#切换到admin库
$ use admin
# 关闭服务
$ db.shutdownServer()

查看服务信息

1
$ ps aux | grep -v grep | grep mongod

命令

查看集合

1
$ show collections

创建集合

1
$ db.createCollection('c1')

删除集合

选择指定的数据库并执行如下命令。

1
$ db.集合名.drop()

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!