没有指定数据库的JDBC MYSQL连接?
Posted
技术标签:
【中文标题】没有指定数据库的JDBC MYSQL连接?【英文标题】:JDBC MYSQL Connection without specifying database? 【发布时间】:2011-09-16 07:56:27 【问题描述】:我正在使用 SphinxQL mysql 客户端,它将索引存储为“表”,但没有真正的“数据库”概念...一个指定 sphinx mysql 实例侦听的端口(在我的例子中为 9306),理论上应该可以正常交流了。
我有以下测试代码:
import java.sql.*;
public class Dbtest
public static void main (String[] args)
try
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:9306",
"user","password");
con.setReadOnly(true);
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("SELECT * from index_turned_table");
while (res.next())
String stuff1 = res.getString(1);
String stuff2 = res.getString(2);
System.out.println("Adding " + stuff1);
System.out.println("Adding " + stuff2);
res.close();
stmt.close();
con.close();
catch(Exception e)
System.out.println (e);
在执行时,代码只是挂起,什么也不做,也不会打印出异常。我可以做些什么有用的事情来解决这个问题,或者如果有人有直接的经验,可能会发生什么?
【问题讨论】:
【参考方案1】:这项工作与 1.10-beta http://www.olegsmith.com/2010/12/scalalift-sphinxql.html 并且不适用于 2.0.1-beta。使用 mysql-connector-java 5.1.15。
【讨论】:
谢谢 oleg..不幸的是我需要使用 2.01 beta...知道为什么此修复程序不适用于 2.01 吗?...您对在哪里查看或尝试什么有任何建议? 我不知道为什么它不起作用。可能在 sphinx 中修改了 mysql 协议的实现。注意mysql控制台工具(mysql --host localhost --port 9306)工作正常。【参考方案2】:您的 SphinxQL 实例正在侦听端口 9306。您的 MySQL 正在侦听其他端口,可能是默认的 3306。您可以使用 MySQL JDBC 驱动程序连接到 MySQL,但不能使用它连接到 SphinxQL。它只是不了解 JDBC 驱动程序通信协议。
【讨论】:
SphinxQL 不理解 JDBC 驱动协议?有什么来源吗? 我想我错了。看起来有可能通过 MySQL JDBC 驱动程序与 SphinxQL 对话,但您可能必须解决一堆技术问题。 @olegsmith 有一个答案,但你最好是一个好的俄语读者——谷歌对那篇文章的翻译太糟糕了!我发现的另一个帖子:kudzia.eu/b/2011/05/…以上是关于没有指定数据库的JDBC MYSQL连接?的主要内容,如果未能解决你的问题,请参考以下文章