【发布时间】:2018-04-16 16:51:36
【问题描述】:
我开始学习 Java EE,并决定在模拟的“真实世界生产”环境中开发我的小型应用程序:
我将开发和部署环境分离为一台笔记本电脑(带有 Eclipse IDE)和一台服务器(带有 Tomcat/TomEE 和 MariaDB 的 Raspberry Pi)。 有了这个环境,我不仅可以学习 EE 开发,还可以学习部署阶段。
问题
安装 MariaDB 后,我意识到 MariaDB 的 JDBC 连接器无法正常工作。我通过通用 JDBC (I used MariaDB's default connector) 在 Eclipse 中成功建立了连接。 ping 服务器也是successful,但每次查询都返回void results。
我尝试了以下查询:
show tables in dbName;select * from tableName;show databases;
当我尝试从新 JPA 项目中的表创建实体时,Eclipse 没有提供任何表。
有人可以帮我建立与 MariaDB 的完整工作连接吗?
我尝试了什么(直到此刻,没有结果)?
- 通过 apt-get update 更新了 Raspbian 系统,而且我在安装 MariaDB 后也这样做了。
- 尝试使用 apt-get 和 dpkg 安装 MySql 5.6,但 armhf 版本在 Raspbian Stretch 上不可用
- 在 Eclipse 的 Preferences/Data Management/Connectivity/Driver Definitions 我尝试安装 MySql 驱动程序而不是 Generic JDBC
- 在属性中(在编辑驱动程序定义中)尝试了以下连接 URL-s:
jdbc:mysql://hostName:port/jdbc:mariadb://hostName:port/jdbc:mysql://hostName:port/dbNamejdbc:mariadb://hostName:port/dbNamejdbc:mysql://hostName:port/dbName?user=userName&password=passwordjdbc:mariadb://hostName:port/dbName?user=userName&password=password
- 也尝试过旧版本的 JDBC 连接器 (mariadb-java-client-2.1.0.jar),但效果不佳。
- 我在本地机器上安装了 MySQL,我可以在 Eclipse 中连接成功。
- 我可以从本地安装的MySqlWorkbench. 成功连接、创建、插入、更改 MariaDB 中的表
- 我在本地机器上安装了 MariaDB。尽管在 Eclipse 中连接 ping 成功,但 void 查询结果与远程 MariaDB 连接相同。
- 我安装了 NetBeans 来检查是否可以将 MariaDB 与它的驱动程序连接起来。结果是成功(screenshot is attached)
- 还有一件奇怪的事:在数据源资源管理器中,MySQL 和 MariaDB 的树结构不同(see the screenshot)
环境
服务器:
- Raspbian Stretch (Debian 9.1)
- Java:openJKD 1.8.0_141,OpenJDK 运行时环境构建 1.8.0_141-8u141-b15-1~deb9ul-b15,OpenJDK 零虚拟机构建 25.141-b15-1~deb9ul-b15
- MariaDB Ver 15.1 Distrib 10.1.23-MariaDB,适用于 debian-linux-gnueabihf (armv71)
本地机器:
- Windows 10 Pro 64bit,版本:1703,内部版本:15063.674(匈牙利语本地)
- MySqlWorkbench 6.3CE、6.3.9 build 10690321 CE(64 位)
- Eclipse Neon.3 版本 (4.6.3),内部版本号:20170314-1500
- NetBeans IDE 8.2,内部版本 201705191307
- Java:JDK 1.8.0_151(x86_64 架构)
- JDBC:mariadb-java-client-2.1.2.jar(这与 NetBeans 一起成功)
总而言之,在 Eclipse 中,我可以通过通用 JDBC 连接到 MariaDB,ping 成功,但我无法从查询中获得任何结果(并且无法从表中生成实体)。
【问题讨论】:
-
您是否使用了此处提到的连接器 jar 并遵循了建议的连接器参数? stackoverflow.com/questions/36557936/…
-
FWIW,我刚刚通过“作弊”让 MariaDB Connector/J 2.1.2 在 Eclipse 的数据源资源管理器中工作:我使用“MySQL”配置文件类型创建了一个新连接,然后创建了一个新的驱动程序定义名为“MariaDB JDBC 2.1.2”,指向 mariadb-java-client-2.1.2.jar。 (以前我曾尝试使用“通用 JDBC”配置文件类型创建连接,但我看到了与您相同的奇怪行为,特别是在数据源资源管理器的树视图中。)
-
嗨,赛义德,感谢您的快速答复。我尝试过这个。使用 MariaDB JDBC 1.4、1.5 和 1.6。我可以在 SQL 剪贴簿中获得结果,但我仍然无法从表中生成实体。 Eclipse 的数据源浏览器仍然不显示表格 :(
-
戈德,谢谢。我尝试了同样的方法,但是当我使用 MySQL 配置文件在数据源资源管理器中创建新连接时,我只能从 4 个选项中进行选择:MySQL 4.0、4.1、5.0 或 5.1。在新的驱动程序定义部分。您能否更具体地说明您选择的具体方式和选项,因为我都尝试了所有选项,但出现连接错误:“无法连接到 sql。创建与 sql 的 SQL 模型连接连接时出错。(错误:com.mariadb.jdbc。 Driver) com.mariadb.jdbc.Driver 创建到 sql 的 JDBC Connection 连接时出错。(Error: com.mariadb.jdbc.Driver) com.mariadb.jdbc.Driver"