繁体   English   中英

在带有 SSH 的远程服务器上使用 MongoDB 的基础知识

[英]Basics of using MongoDB on remote server with SSH

我在 VPS 上通过 SSH 开始使用 MongoDB 时遇到问题。 请注意,MongoDB 是由管理员使用 VPS 服务安装的,而不是我。 我必须假设他们安装正确。 不幸的是,他们提供零支持文档,在阅读了无数官方 MongoDB 文档以及其他地方找到的更多文档后,我无法理解。

我能够 SSH 进入远程服务器就好了。 我可以查看 MongoDB 版本,mongosh 也在那里。 但我无法弄清楚如何到达可以创建新集合的地步,或者甚至开始 MongoDB,如果那是我需要做的。

以下是我在 shell 中为 VPS 尝试过的一些操作。 我得到的最接近的是运行mongosh -nodb ,这似乎让我进入了 MongoDB,但我知道该选项意味着“无数据库”,所以这不是我需要做的。

$ ssh customusername@207.196.153.34
Last login: Thu Dec 29 11:56:53 2022 from 82.204.238.49
customusername@customdomain.com [~]# mongod -version
db version v6.0.3
Build Info: {
    "version": "6.0.3",
    "gitVersion": "f803681c3ae19817d31958965850193de067c516",
    "openSSLVersion": "OpenSSL 1.0.1e-fips 11 Feb 2013",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "rhel70",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
customusername@customdomain.com [~]# mongosh --version
1.6.1
customusername@customdomain.com [~]# mongosh -nodb
Current Mongosh Log ID: 63abf66ca872ab436a8040c8
Using Mongosh:      1.6.1

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

> use test-db
MongoshInvalidInputError: [SHAPI-10004] No connected database
> exit
customusername@customdomain.com [~]# mongosh --username customusername 
Enter password: ********************************
Current Mongosh Log ID: 63abf8c15a47f0e078be3d76
Connecting to:      mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.1
MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017
customusername@customdomain.com [~]# 

我能够调出“帮助”文件。 我已经尝试了# mongod mongodb://customusername@127.0.0.1:27017/的多种变体,但都失败了。

customusername@customdomain.com [~]# mongod help

customusername@customdomain.com [~]# mongosh -h

customusername@customdomain.com [~]# mongod mongodb://customusername@127.0.0.1:27017/

最后一个命令返回几行表明它可能正在工作,然后它失败并显示消息:“无效命令:mongodb://customusername@127.0.0.1:27017/”然后它显示一些“常规选项”,例如“-h [--帮助]”。 我无法理解其中的大多数。

注意,我本地安装不了MongoDB/mongosh,因为我的机器太旧了,只好通过SSH登录,这样处理。 如果我能通过 SSH 弄清楚,也许接下来我会尝试像 MongoDB Compass 这样的东西,我可以在本地安装它。

感谢您的时间和协助。


更新:我认为我已经取得了进步,但还没有到那一步。

在创建一个名为“mongodb”的目录来保存数据文件后,我想我运行了 MongoDB:

# mongod --port 28015 --dbpath./mongodb/

我的终端中出现一串消息,最后一条与监听有关(“ctx”:“listener”,“msg”:“等待连接”),并且该进程似乎继续运行。

然后我打开一个新的终端 window,SSH,然后运行:

# mongosh --port 28015

这似乎让我进入了一个 mongo shell,我可以在其中创建一个新的集合:

test> use test-db
switched to db test-db
test-db> 

此外,我注意到当我与第二个 window 交互时,带有打开进程的原始终端 window 输出与连接相关的消息(例如“ctx”:“listener”,“msg”:“已接受连接”)。

我查看了/mongodb/目录,里面现在有许多与 mongo 相关的文件,“collection-0-5001736531146682033.wt”、“index-1-5001736531146682033.wt”、“storage.bson”和等等。 所以,我认为数据库创建工作正常。


更新二

一直在努力解决为什么show命令会抛出错误,因为use已经在工作了,然后我发现我需要先插入一个文档:

test> db.tours.insertOne({name: "Some Name", price: 19, rating: 3.5})

完整的命令是show dbs ,然后出现“测试”数据库。

所以,你可以看看我上面的两个更新。 我能够在 SSH 的 VPS 上访问 MongoDB 并进行非常基本的操作。

此外,如果您遇到类似问题,这里有一些有用的链接。

Mongo Shell 基础知识: https://www.mongodb.com/basics/get-started#get-started-with-mongodb (跳到“开始使用 MongoDB”小节,因为页面顶部是关于 Atlas界面)

通过命令行设置管理员和用户帐户: https://medium.com/@haxzie/getting-started-with-mongodb-setting-up-admin-and-user-accounts-4fdd33687741

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM