我正在尝试连接Monetdb数据库,我想将它与node.js服务器应用程序一起使用。
我目前使用monetdb软件包设置了一个VirtualBox环境,如此处所述,它运行良好:https://www.monetdbsolutions.com/solutions/cloud/vm 我可以使用带有root @ localhost:2222的putty连接到这个VM,它可以工作。
但是,我找不到使用节点monetdb包连接到VM和数据库的方法:https://www.npmjs.com/package/monetdb
我用过: var options = { 主持人:' localhost', 港口:2222, dbname:' mydb', 用户:' root', 密码:' monetdb' };
我无法找到让它发挥作用的方法。 当我使用时:
var conn = require('monetdb').connect(options , function(err) {
if (!err) console.log('connected');
});
它不会触发任何错误,也不会启动任何连接。
当我访问虚拟机root @ localhost:2222时,我想我遗失了一些东西。它适用于SSH,但我不确定使用monetdb节点包的访问是否类似。
甚至可以从node.js连接到此VM吗?也许我应该尝试另一种方式来尝试使用节点这个数据库。
他们制造了一个#34;码头集装箱"。我从来没有使用过那种东西,但也可能适合......
如何解决这个问题的任何帮助都会非常感激! 非常感谢你。
祝你好运
答案 0 :(得分:1)
链接到虚拟机上的端口22的端口2222仅用于ssh。说明显示如何在虚拟机上使用monetdb,而不是从主机系统。
或者,您可以通过SSH创建隧道以使用MonetDB MAPI协议访问数据库。
这应该是你的第一次尝试。如果您使用的是Linux / Unix或OSX,则可以设置到默认monetdb端口的隧道,如下所示:
ssh root@localhost:2222 -L 50000:localhost:50000
或者,您可以使用VirtualBox设置端口转发,如manual in paragraph 6.3.1:
中所述要配置端口转发,您可以使用图形端口转发编辑器,该编辑器可以在配置为使用NAT的网络适配器的“网络设置”对话框中找到。您可以在此处将主机端口映射到来宾端口,以允许将网络流量路由到来宾中的特定端口。
现在假设monetdb正在虚拟主机上运行,您可以在localhost上的端口50000上连接它。您必须检查用户名/密码的说明,它们可能与用于设置隧道的ssh凭据不同。
另一个解决方案可能是将虚拟机配置从NAT(您的计算机上的端口2222转发到虚拟计算机上的22)更改为bridged设置,您可以在其中访问虚拟机它自己的IP地址。假设您正在运行dhcp服务器并且在虚拟操作系统上正确配置了dhcp。如果不是这种情况,您需要服务器管理员知识才能完成所有这些设置。