【发布时间】: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