0%

mongoDB使用

下面的所述的是针对mongoDB4版本。

1.配置文件

Mac下在的tar文件,默认自带ssl,但是4.0版本默认不支持Openss 1.0版本,为了使用Openssl1.0版本所以配置文件中需要去掉SSL高版本的支持(disabledProtocols),

mongod.conf文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
systemLog:
destination: file
path: "/Users/<YourName>/logs/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/Users/<YourName>/local/mongodb-data"
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1
port: 27017
ssl:
mode: "allowSSL"
PEMKeyFile: "/Users/<YourName>/keystore/orbyAI/orbyAIServer.pem"
PEMKeyPassword: ""
disabledProtocols: "TLS1_1,TLS1_2"
setParameter:
enableLocalhostAuthBypass: false
security:
authorization: "enabled"

注意: security.authorization一开始不要加上,等启动后去admin的db建立一个user后再加上这条配置。

pem文件必须带有crt和privateKey。

1
2
3
4
5
# 创建pem过程
# 1.生成一个private key(.key)和certificate(.crt)
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
# 2.打包crt和key,这个就可以给mongoDB服务器使用了
cat certificate.crt privateKey.key > server.pem

2. 启动mogoDB

2.1 第一次启动mongDB,不带登录

mongod –config $HOME/etc/mongod.conf
注意不能使用mongos,它不支持某些配置。

2.2 登录之后加上用户

1
2
3
4
5
6
7
8
9
10
11
# 登录
mongo
# 添加用户
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

2.3 关闭mongoDB

1
mongo --eval "db.getSiblingDB('admin').shutdownServer()"

2.4 配置文件中加上auth

在mongod.conf中加上security.authorization: “enabled”

2.5 带用户名密码登录

1
mongo -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

现在就没那个警告了:Access control is not enabled for the database.

3. mongd –fork 启动失败

必须要指定log的文件, mongod –fork –logpath /var/log/mongodb.log这个如果不行,就把log的目录改到user的目录下。记得把之前版本的log删掉,我没删就好像出现了兼容问题。