MongoDB 入门
安装
安装依赖
1 | yum install libcurl openssl |
安装 Server
点击 访问 MongoDB 下载地址,依次点击下图所示红框位置1
2wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/5.0/x86_64/RPMS/mongodb-org-server-5.0.6-1.el7.x86_64.rpm
rpm -ivh mongodb-org-server-5.0.6-1.el7.x86_64.rpm
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.
安装 Shell
mogo
Linux 版本,命令行工具需要单独安装1
2
3
4wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/5.0/x86_64/RPMS/mongodb-org-shell-5.0.6-1.el7.x86_64.rpm
rpm -ivh mongodb-org-shell-5.0.6-1.el7.x86_64.rpm
#即将弃用,直接删除
rpm -e mongodb-org-shell-5.0.6-1.el7.x86_64
Warning: the “mongo” shell has been superseded by “mongosh”,
which delivers improved usability and compatibility.The “mongo” shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
卸载安装mongosh
即可解决报错
mongosh
创建 YUM
源,vi /etc/yum.repos.d/mongodb-org-5.0.repo
1
2
3
4
5
6[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc1
yum install -y mongodb-mongosh
Warning: Found ~/.mongorc.js, but not ~/.mongoshrc.js. ~/.mongorc.js will not be loaded.
You may want to copy or rename ~/.mongorc.js to ~/.mongoshrc.js.
新的 mongosh
在启动时读取 .mongoshrc.js
文件,传统的 mongo
读取 .mongorc.js
文件;只需要把 .mongorc.js
重命名或者复制一份改名为 .mongoshrc.js
即可。1
cp ~/.mongorc.js ~/.mongoshrc.js
网上一溜的的mongo --norc
,不去加载.mongorc.js
也是醉了,完全的逃避问题,不加载就没事了吗?
源码安装:1
2
3wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.19.tgz
tar xzf mongodb-linux-x86_64-3.4.19.tgz
mv mongodb-linux-x86_64-3.4.19 /usr/local/mongodb
使用 vi/etc/profile.d/mongodb.sh
命令添加全局变量:1
exportPATH=$PATH:/usr/local/mongodb/bin
基本命令
1 | systemctl enable mongod |
数据目录
MongoDB
启动后会初始化以下目录和文件,并赋予mongod:mongod
权限:
- 默认配置文件:/etc/mongod.conf
- 数据存储目录:/var/lib/mongo
- 日志文件目录:/var/log/mongodb
- 运行文件目录:/var/run/mongodb
使用
修改配置
使用vi /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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
security:
authorization: enabled
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:Shell 命令
如果安装了 Shell 工具的话,直接mongo
或mongosh
即可打开工具1
2
3
4
5
6
7
8Current Mongosh Log ID: 6232f88f78db3f40f006cfa2
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.2.3
Using MongoDB: 5.0.6
Using Mongosh: 1.2.3
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
test>常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17show dbs #显示数据库列表
show collections #显示当前数据库中的集合(类似关系数据库中的表)
show users #显示用户
use <db name> #切换当前数据库,如果数据库不存在则创建数据库。
db.help() #显示数据库操作命令,里面有很多的命令
db.foo.help() #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find() #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ) #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
db.dropDatabase() #删除当前使用数据库
db.cloneDatabase("127.0.0.1") #将指定机器上的数据库的数据克隆到当前数据库
db.copyDatabase("mydb", "temp", "127.0.0.1") #将本机的mydb的数据复制到temp数据库中
db.repairDatabase() #修复当前数据库
db.getName() #查看当前使用的数据库,也可以直接用db
db.stats() #显示当前db状态
db.version() #当前db版本
db.getMongo() #查看当前db的链接机器地址
db.serverStatus() #查看数据库服务器的状态创建账户
MongoDB 安装完成后,数据库admin
中没有任何用户账户,MongoDB 向从本地主机发起的连接提供全面的数据库管理权限;因此配置 MongoDB 新实例时,首先需要创建用户管理员和数据库管理员:用户管理员可在 admin 和其他数据库中创建用户账户,数据库管理员将其作为管理数据库、集群、复制和 MongoDB 其他方面的超级用户 - db.createUser
1
2
3
4
5
6
7
8
9db.createUser(
{
user: "$USERNAME",
pwd: "$PASSWROD",
roles: [
{ role: "$ROLE_NAME", db: "$DBNAME" }
]
}
)1
2
3
4
5
6
7
8
9
10
11mongosh
test> use admin
switched to db admin
db.createUser(
{
user: "admin",
pwd: "12345678",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" }
]
}{ ok: 1 }
- 预定义角色
- 登录
重启后重新登录,需要授权登录1
2use admin
db.auth("admin","12345678")
或者直接进入 shell 时:mongosh -u "admin" -p "12345678" --authenticationDatabase admin