一次Mongodb远程访问失败的记录通过命令查询当前启动Mongodb的路径并进行配置修改
前言
老板要求将之前的项目集成为一个整体的项目,需要将之前的系统进行集成。但是上一届学长学姐的数据还保留在了实验室服务器中的MongoDB上,当尝试使用本地运行的系统访问服务器的数据库的时候却遇到了错误。
com.mongodb.MongoSocketOpenException: Exception opening socket
解决过程
查看是否是服务器启动Mongodb服务
查看当前27017端口是否运行:
netstat -lanp| grep "27017"
这里显示端口确实正在数据库监听。unix 2 [ ACC ] STREAM LISTENING 36793 2059/mongod /run/mongodb/mongodb-27017.sock
因此服务器是正常运行的,只是我的电脑没有办法进行远程访问,因此排除服务器问题。
后面查找了解到可能是因为服务器配置文件的问题,需要允许访问的IP范围。
尝试查找服务器中的数据库位置
为了修改配置文件,我需要找到数据库究竟被学长学姐放在目录下。通过locate
命令我找到了所有可能和MongoDB有关的文件路径,终于找到了关键信息:mongod
。
在mongod
所在目录下运行mongod命令,果然能够打开数据并进行访问了。说明本机的服务也是没有问题的。
尝试修改配置文件
当时服务器的安装和配置都不是我做的,找到这些文件无异于大海捞针。
locate filename
通过使用这个命令,我尝试查找当前数据库的配置文件root@server507:/usr/bin# locate mongodb.conf /path/mongodb.conf
打开配置文件,果然文件中的配置限制了只允许本机进行访问。
经过学习了解到,Mongodb数据库配置需要修改配置文件
mongodb.conf
将配置文件里面的配置进行修改# bind_ip = 127.0.0.1 bind_ip = 0.0.0.0
但是,我怎么确定哪个配置文件是现在正在运行的服务所使用的呢?
因此我需要看一下服务器当前运行的服务使用的配置信息存在哪里。
重新启动MongoDB数据库并在数据库中使用以下命令:
use local;
db.startup_log.find({}, { _id:0, hostname:1, startTime:1, cmdLine:1}).sort({startTime:-1}).limit(1)
root@server507:/usr/bin# mongo
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Server has startup warnings:
2022-03-22T18:49:19.368 0800 I STORAGE [initandlisten]
2022-03-22T18:49:19.368 0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2022-03-22T18:49:19.368 0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2022-03-22T18:49:23.241 0800 I CONTROL [initandlisten]
2022-03-22T18:49:23.241 0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2022-03-22T18:49:23.241 0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2022-03-22T18:49:23.241 0800 I CONTROL [initandlisten]
2022-03-22T18:49:23.242 0800 I CONTROL [initandlisten]
2022-03-22T18:49:23.242 0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.
2022-03-22T18:49:23.242 0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:
2022-03-22T18:49:23.242 0800 I CONTROL [initandlisten] ** numactl --interleave=all mongod [other options]
2022-03-22T18:49:23.242 0800 I CONTROL [initandlisten]
> use local;
switched to db local
> db.startup_log.find({}, { _id:0, hostname:1, startTime:1, cmdLine:1})
{ "hostname" : "???", "startTime" : ISODate("202???"), "cmdLine" : { "config" : "/path/mongodb.conf", "net" : { "bindIp" : "127.0.0.1", "unixDomainSocket" : { "pathPrefix" : "/path/mongodb" } }, "storage" : { "dbPath" : "/path/mongodb", "journal" : { "enabled" : true } }, "systemLog" : { "destination" : "file", "logAppend" : true, "path" : "/path/mongodb/mongodb.log" } } }
果然当前绑定的IP只是127.0.0.1
,因此我的电脑是无法连接到数据库的。修改对应path
的配置文件,重启服务器。大功告成!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgacbcc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24