05.mongodb的大坑
2023-04-18 16:47:02 时间
1.linux安装yum缺少包
wget https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm
rpm -ivh compat-openssl10-1.0.2o-3.el8.x86_64.rpm
#查看进程
pgrep mongo
kill -2 xxxid
2.springboot测试时 Test需要import org.junit.Test; 而不是丘比特的
3.在yml配置文件有选择数据库的,如果选择错会findAll()方法只会返回空集合
4.!!!大坑 mongodb的默认数据库是test数据库,但是语法上打db
db.comment.find(); //会查询 spring data会查询 空集合,切换数据库即可查出
//如果不存在这个字段,就返回null
//如果不写这个字段,就没有这个数据
//如果 @Field不写 也可以查到, field是属于指定字段名的
5.已经开启了一个mongodb服务会报
[root@compute db]# /usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 14331
ERROR: child process failed, exited with error number 48
#必须进入mongodb命令行才能关闭,kill不行
mongo
use admin
db.shutdownServer()
exit
- kill -9会导致文件损坏导致更大的问题
7.需要重启节点 才可以解除连接不上主节点
8.需要添加一台 集群机器就检查一次,不然不知道是主节点出问题 还是 其他出问题
9.必须使用公网ip启动,不然多个端口被不知道怎么样被占用
mongos> sh.addShard("myshardrs01/127.0.0.1:27218,127.0.0.1:27118,127.0.0.1:27018")
{
"ok" : 0,
"errmsg" : "in seed list myshardrs01/127.0.0.1:27218,127.0.0.1:27118,127.0.0.1:27018, host 127.0.0.1:27018 does not belong to replica set myshardrs01; found { hosts: [ "localhost:27018", "127.0.0.1:27118" ], arbiters: [ "127.0.0.1:27218" ], setName: "myshardrs01", setVersion: 3, ismaster: true, secondary: false, primary: "localhost:27018", me: "localhost:27018", electionId: ObjectId('7fffffff0000000000000001'), lastWrite: { opTime: { ts: Timestamp(1671538829, 1), t: 1 }, lastWriteDate: new Date(1671538829000), majorityOpTime: { ts: Timestamp(1671538829, 1), t: 1 }, majorityWriteDate: new Date(1671538829000) }, maxBsonObjectSize: 16777216, maxMessageSizeBytes: 48000000, maxWriteBatchSize: 100000, localTime: new Date(1671538832656), logicalSessionTimeoutMinutes: 30, minWireVersion: 0, maxWireVersion: 7, readOnly: false, compression: [ "snappy" ], ok: 1.0, operationTime: Timestamp(1671538829, 1), $clusterTime: { clusterTime: Timestamp(1671538832, 1), signature: { hash: BinData(0, 0000000000000000000000000000000000000000), keyId: 0 } } }",
"code" : 96,
"codeName" : "OperationFailed",
"operationTime" : Timestamp(1671538832, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1671538832, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
// !!!localhost替代公网ip,报错需要按照提示的顺序写
mongos> sh.addShard("myshardrs01/localhost:27018,127.0.0.1:27118,127.0.0.1:27218")
10.设计不合理 启动路径要加引号
.mongod "D:Program FilesMongoDBServer4.0datadb"
11.巨坑 坑了我一个月
//27017不知道是端口太长了,外网访问不了,需要做端口 本机端口转发到本地的端口
sysctl -p
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 27017
12.坑 集群权限 keyFile文件必须在特定范围内,写7不行?
chmod 600 ./mongo.keyfile
相关文章
- python3 os中如何回到当前目录?
- 使用python3 os后程序无法运行怎么办?
- python3 re如何快速编译?
- php按值传递和引用传递的比较
- 如何停止spyder中运行的程序
- php文件用什么软件打开
- anaconda 安装好打不开怎么办
- python django框架中的单元测试如何执行?
- pycharm代码不高亮显示怎么办
- ps金属质感怎么做
- ps教程之怎么用ps抠图头发丝
- 怎么在jupyter安装包?
- pycharm怎么设置代码自动提示
- python3处理excel文本内容代码怎么写?
- 代理IP为什么使用socks5速度会快的多呢
- php文件怎么运行
- php中Larave框架中间件是什么?
- php中如何进行数组的降序或升序?
- 怎样暂停jupyter的运行?
- pycharm怎么返回(代码跳转回退)