【问题标题】:Is it possible to connect MySQL Workbench to H2 in memory database?是否可以将 MySQL Workbench 连接到内存数据库中的 H2?
【发布时间】:2015-04-26 10:04:50
【问题描述】:

我正在使用以下连接 url 在内存数据库中运行 H2:

"jdbc:h2:mem:my_database;DB_CLOSE_DELAY=-1;MODE=MySQL"

H2 允许启动服务器以建立与内存数据库的替代连接:

                sysLog.info("Creating web server.");
                String[] webServerSettings = new String[]{"-webPort","8085","-webAllowOthers"};
                webServer = Server.createWebServer(webServerSettings);
                webServer.start();

                sysLog.info("Creating tcp server.");
                String[] tcpServerSettings = new String[]{"-tcpPort","9095","-tcpAllowOthers"};
                tcpServer = Server.createTcpServer(tcpServerSettings);
                tcpServer.start();

http://www.h2database.com/javadoc/org/h2/tools/Server.html

创建服务器后,我可以显示 Web 控制台并浏览数据库内容。但是,我更愿意为此目的使用 MySQL Workbench,但我还没有成功将 MySQL Workbench 连接到这样的 H2 服务器。

如果我在 MySQL Workbench 中使用连接设置 localhost:8085 或 localhost:9095 会出现以下错误:

Lost connection to MySQL server at 'waiting for initial communication packet', system error:10060

我的问题: 是否可以使用 MySQL Workbench(或 Navicat for MySQL)连接到 H2 数据库?如果是,正确的设置是什么?

(这里给出了 MySQL Workbench 的替代方案:Frontend tool to manage H2 database

【问题讨论】:

  • 我自己没试过,但是如果可以通过普通的 TCP/IP 或套接字/管道访问它,那么可以,为什么不呢?只需在设置中指定您的本地主机地址和端口即可连接到它。
  • 简单地指定主机和端口会给出上面已经显示的错误消息。在 MySQL Workbench 中,无法输入完整的 jdbc url(因为它可以与 DBeaver 一起使用)。但是也许有某种解决方法可以将 MySQL Workbench 发送到 host:port ... 的命令重定向到 H2 的正确 jdbc url?我不太熟悉隧道、管道……(H2 方言与 MySQL 有点不同,可能会导致连接问题。)
  • @Stefan 是的,我觉得 MySQLWorkbench 有点傻……

标签: mysql mysql-workbench h2


【解决方案1】:

不,H2 实现 PostgreSQL 协议,如文档的ODBC Driver 部分所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    相关资源
    最近更新 更多