在Windows中创建和连接多个MonetDB数据库

z31licg0  于 2023-04-07  发布在  Windows
关注(0)|答案(1)|浏览(125)

我是一个全新的MonetDB,并试图在Windows上设置它。我不知道如何创建自己的数据库,但这个线程从7年前帮助。现在,我有后续问题。
起初,我认为拥有多个数据库的方法是为每个数据库创建一个单独的MSQLserver.bat和M5server.bat,并根据您想要连接的数据库选择正确的数据库,如果您想同时启动并连接到它们,您所要做的就是保持两个批处理运行。
Screenshot
创建和运行单独的批处理确实创建了单独的数据库,尽管我通过查看这些批处理的内容来认识到,它们所做的就是在%MONETDB%下创建单独的目录,这意味着这可能是我可以手动完成的(mkdir),并且我需要做的就是在我的农场中创建一个新的数据库。
Screenshot
然后,我意识到无论我运行的是哪个批处理副本,我都可以通过JDBC从DBeaver连接到这两个数据库。(同时运行两个实际上允许我只连接到我运行的最后一个。)不幸的是,我还没有找到一种方法来做到这一点,而不创建单独的连接。我来自SQL Server世界,在那里你建立一个连接到服务器,一旦连接,您可以同时访问所有数据库。
Screenshot
我确实发现this other post说我应该为不同的数据库使用不同的端口,但我没有这样做。我通过端口5000同时连接到两个数据库。
我上面的假设都正确吗?有更好的方法吗?
我确实有一个不太相关的问题...似乎每个数据库都自动从上面显示的这7个模式(json,logging,profiler,sys等)开始。人们通常会在其中一个模式中创建对象吗?sys似乎是默认的。或者他们会创建自己的对象吗?我创建了一个名为“main”的,但我在这里假设了很多。
先谢谢你了!

kqlmhetl

kqlmhetl1#

我复制了一位在Windows上使用MonetDB但不在StackOverflow上的同事的答案:
可以在Windows上启动多个数据库服务器。为此,最简单的方法是复制M5Server.bat文件(例如M5Server_DBxyz.bat)并编辑它(更改新数据库目录的创建(从默认值:demo)和启动mserver5.exe时新数据库目录的用法)更改端口号也很重要,这样每个数据库服务器进程都将侦听不同的端口。默认值为50000。将参数--set mapi_port=41000添加到mserver5.exe启动行以指定不同的端口号。
有关mserver 5程序选项的更多信息,请参阅https://www.monetdb.org/documentation/admin-guide/manpages/mserver5/
接下来,您可以通过启动不同的M5Server_DBxyz.bat脚本来启动每个数据库服务器进程。每个MonetDB服务器(mserver 5进程)只能访问1个db,而不能访问多个。默认情况下,您也不能从多个db(又名分布式数据库)查询数据。一种替代方法是创建远程表。请参阅https://www.monetdb.org/documentation/user-guide/sql-manual/data-definition/table-definition/#remote-tables如果要创建多个数据库,每个数据库都有自己的表并使用查询访问和连接来自不同数据库的表,它更快/更好地创建1 db,并在其中创建单独的模式,为不同的表创建不同的名称空间。这样,所有表都位于一个1 db中,由1个服务器管理,跨不同模式中的表的查询运行非常快。仅供参考:MonetDB不支持CREATE DATABASE命令。请使用CREATE SCHEMA命令。
当您创建表时,请确保在正确的模式中进行。您可以更改当前模式。因此,使用一个连接(例如从DBeaver/JDBC/ODBC/pymonetdb),您只能连接到一个MonetDB服务器,因此只能连接到1个db。如果您想要访问多个数据库,则需要创建多个连接,每个db一个。当您编写自己的程序/脚本并使用JDBC/ODBC/pymonetdb API时,这是可能的。

相关问题