05.mongodb的大坑

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 
  1. 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 Files\MongoDB\Server\4.0\data\db"

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目突然跑不起来报这个错 Exception in monitor thread while connecting to server 10.18.21.79:27117 com.mongodb.MongoSocketReadException: Exception receiving message at com.mongodb.connection.InternalStreamConnection.translateReadException(InternalStreamConnection.java:536) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:421) at com.mongodb.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:290) at com.mongodb.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255) at com.mongodb.connection.CommandHelper.sendAndReceive(CommandHelper.java:84) at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:34) at com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:91) at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:51) at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at com.mongodb.connection.SocketStream.read(SocketStream.java:84) at com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:547) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:418)
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值