• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

一次Mongodb远程访问失败的记录通过命令查询当前启动Mongodb的路径并进行配置修改

武飞扬头像
Lf_MrF
帮助1

前言

老板要求将之前的项目集成为一个整体的项目,需要将之前的系统进行集成。但是上一届学长学姐的数据还保留在了实验室服务器中的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
系列文章
更多 icon
同类精品
更多 icon
继续加载