更改 MongoDB 默认数据位置会阻止远程访问。 Ubuntu 服务器 20.4
Changing MongoDB default data location prevents remote access. Ubuntu server 20.4
我已经为此苦苦挣扎了几天。我最近买了一个 Raspberry Pi 400 并安装了 Ubuntu 服务器 20.04.3 LTS。我已成功设置 mongoDB 并可以远程访问它。现在我想将保存数据的位置更改为插入 pi 的 500GB SSD。
我已将 mongod.conf 文件更改如下
# Where and how to store data.
storage:
# dbPath: /var/lib/mongodb
dbPath: /mnt/mongo/data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
如您所见,我刚刚将 dbPath 更改为已安装的驱动器。
现在 运行 mongod 我必须 运行 使用命令
mongod --dbpath=/mnt/mongo/data/
我必须使用
修复无法取消链接套接字错误
sudo rm -rf /tmp/mongodb-27017.sock
然后我可以在 PI 上正常连接,但我无法再远程连接。我收到错误
Network is unreachable. Reason: couldn't connect to server 192.168.1.99:27017, connection attempt failed: SocketException: Error connecting to 192.168.1.99:27017 :: caused by :: Connection refused
我的印象是删除 /tmp/mongodb-27017.sock 是解决该错误的正确方法,而 mongo 在启动时创建一个新的。我不确定这是否会导致远程连接出现问题,或者我在将默认 dbPath 移动到 SSD 时丢失了一些东西。
如何更改 Mongo 默认数据库路径并保持在 Ubuntu 服务器上远程访问它的能力?
因为您只在命令行中添加了 --dbpath 选项,其余设置将被忽略(使用默认值)。
最好是在 mongodb.conf 文件中添加所有配置设置,并使用如下配置文件启动 mongodb 服务:
mongod --config mongod.conf
提示:
如果您希望 mongod 从命令行作为守护进程启动,您需要在 mongod.conf 文件中添加以下选项:
processManagement:
fork: true
对于 SSD,您可能还想通过以下方式禁用诊断数据收集 (FTDC):
setParameter:
diagnosticDataCollectionEnabled: false
并且还用noatime挂载分区
(以避免不必要的写入 SSD)
我已经为此苦苦挣扎了几天。我最近买了一个 Raspberry Pi 400 并安装了 Ubuntu 服务器 20.04.3 LTS。我已成功设置 mongoDB 并可以远程访问它。现在我想将保存数据的位置更改为插入 pi 的 500GB SSD。
我已将 mongod.conf 文件更改如下
# Where and how to store data.
storage:
# dbPath: /var/lib/mongodb
dbPath: /mnt/mongo/data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
如您所见,我刚刚将 dbPath 更改为已安装的驱动器。
现在 运行 mongod 我必须 运行 使用命令
mongod --dbpath=/mnt/mongo/data/
我必须使用
修复无法取消链接套接字错误sudo rm -rf /tmp/mongodb-27017.sock
然后我可以在 PI 上正常连接,但我无法再远程连接。我收到错误
Network is unreachable. Reason: couldn't connect to server 192.168.1.99:27017, connection attempt failed: SocketException: Error connecting to 192.168.1.99:27017 :: caused by :: Connection refused
我的印象是删除 /tmp/mongodb-27017.sock 是解决该错误的正确方法,而 mongo 在启动时创建一个新的。我不确定这是否会导致远程连接出现问题,或者我在将默认 dbPath 移动到 SSD 时丢失了一些东西。
如何更改 Mongo 默认数据库路径并保持在 Ubuntu 服务器上远程访问它的能力?
因为您只在命令行中添加了 --dbpath 选项,其余设置将被忽略(使用默认值)。 最好是在 mongodb.conf 文件中添加所有配置设置,并使用如下配置文件启动 mongodb 服务:
mongod --config mongod.conf
提示:
如果您希望 mongod 从命令行作为守护进程启动,您需要在 mongod.conf 文件中添加以下选项:
processManagement:
fork: true
对于 SSD,您可能还想通过以下方式禁用诊断数据收集 (FTDC):
setParameter:
diagnosticDataCollectionEnabled: false
并且还用noatime挂载分区 (以避免不必要的写入 SSD)