Centos7.5安装MongoDB 4.0
1.下载(略)
官网 https://www.mongodb.com/download-center/community
2.解压(略)
tar -zxvf xxx
3.配置
在monogdb 目录下创建几个文件夹
data
logs
conf
在conf中添加配置文件
mongo.conf
systemLog:
destination: file
logAppend: true
path: /usr/local/src/mongodb/logs/mongodb.log
storage:
dbPath: /usr/local/src/mongodb/data/
journal:
enabled: true
processManagement:
fork: true
net:
port: 27017
bindIp: 0.0.0.0
# 单节点 身份验证 配置,如果是副本集,可以看我的另一篇文章
#security:
# authorization: enabled
4.启动
在mongodb目录下
./bin/mongod -f ./conf/mongo.conf
5.连接
./bin/mongo
# 连接其他ip的mongodb
./bin/mongo 192.168.100.12:27017
show dbs;
使用远程连接试试
windows安装MongoDB
1.下载
官网 https://www.mongodb.com/download-center/community
2.安装
双击
3.启动
在安装目录的命令窗口 C:\Program Files\MongoDB\Server\4.0\bin
mongo
可以试试 show dbs;
4.配置用户
# 创建admin用户
use admin;
db.createUser({user: "admin",pwd: "123456",roles: [ { role: "root", db: "admin" } ]});
# 退出
exit;
5.修改配置文件
C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg
storage:
dbPath: C:\Program Files\MongoDB\Server\4.0\data
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: C:\Program Files\MongoDB\Server\4.0\log\mongod.log
net:
port: 27017
# 配置所有IP都可以连接这个mongoDB
bindIp: 0.0.0.0
security:
# 开启用户身份验证,也就是需要密码连接mongoDB
authorization: enabled
6.重启mongodb 服务
windows操作就不说了
7.再次连接mongodb
# 命令窗口
mongo;
# 查看所有数据库 会报错
show dbs;
# 登录用户
use admin;
db.auth("admin","123456");
# 到这就可以操作了
# 使用具体的数据库,最好,创建一个对应的用户
# 比如说操作test数据库的用户 role: "readWrite" 读写权限 (必须use那个数据库创建那个数据库的用户)
use test;
db.createUser({user: "test",pwd: "123456",roles: [ { role: "readWrite", db: "test" } ]})
java中数据库连接的url:mongodb://test:123456@127.0.0.1:27017/test
mongoDB视图化软件:Robo
MongoDB副本集配置
首先,说一下我搭建这个MongoDB副本集的原因:
因为MongoDB副本集支持事务回滚,所以就搭建了一个MongoDB副本集
1.搭建3台 MongoDB 数据库
2.修改配置文件
在原来的基础上添加
# 副本集名称,这个值在每台服务器 都一样
replication:
replSetName: energy-rc
3.启动每个mongodb
./bin/mongod -f ./conf/mongo.conf
4.进入mongo命令行
./bin/mongo
5.初始化副本集
在mongo命令行执行,这里配置自己的IP
conf=
{
"_id" : "energy-rc",
"members" : [
{ "_id" : 0, "host" : "192.168.100.11:27017" },
{ "_id" : 1, "host" : "192.168.100.12:27017" },
{ "_id" : 2, "host" : "192.168.100.13:27017" }
]
};
rs.initiate(conf);
查看副本集状态
rs.status()
看这里是不是已经有 主 和 从 了
如果你想手动配置优先级的话,可以这样,那么 members[0] 将作为 primary,也就是主节点;
注意:这是在mongo命令行中操作的;
cfg = rs.conf();
cfg.members[0].priority = 5;
cfg.members[1].priority = 1;
cfg.members[2].priority = 1;
rs.reconfig(cfg);
6.测试副本集
在主节点操作
use test;
for(var i=0;i<100;i++){db.customer.insert({"name":"user"+i})};
db.customer.count();
结果:100
在从节点操作
use test;
# 在从节点上每次登录都要执行这个操作,相当于刷新吧,应该
rs.slaveOk();
db.customer.count();
结果:100
副本集的身份验证
不配置用户名密码,怎么行呢,下面一起来配置一下
1.在主节点添加用户
root:权限比较大
readWrite:读写权限
use admin;
db.createUser({user: "root",pwd: "123456",roles: [ { role: "root", db: "admin" } ]});
use test;
db.createUser({user: "test",pwd: "123456",roles: [ { role: "readWrite", db: "test" } ]});
2.每个节点生成energy-rc.key
openssl rand -base64 756 > energy-rc.key
3.在配置文件中添加,每个节点都要添加,对应key的路径
security:
keyFile: /usr/local/src/mongodb/etc/energy-rc.key
4.重启服务(略)
5.mongo命令行执行
use admin;
db.auth("root","123456");
这样,就可以了
最后,在springboot中使用
注意:在哪个数据库添加的用户,配置那个数据库
spring.data.mongodb.uri=mongodb://test:123456@192.168.100.11:27017,192.168.100.12:27017,192.168.100.13:27017/test
测试MongoDB replica set Githup地址
https://github.com/1277782574/project_demo 下的mongotest
Mongodb 数据备份
# 把 test 数据库下面的 video 集合 备份 到 /data/mongo/video
mongodump -h 127.0.0.1:27017 -u xxx -p xxx -d test -c video -o /data/mongo/video
# 导入
mongorestore -h 127.0.0.1:27017 -u xxx-p xxx --drop /data/mongo/video