我正在使用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);
}
}
执行时,代码只会挂起并不执行任何操作,也不会打印出异常。我可以做些什么来解决这个问题,或者是否有人可以直接体验可能发生的事情?
答案 0 :(得分:2)
这项工作与1.10-beta http://www.olegsmith.com/2010/12/scalalift-sphinxql.html 而不适用于2.0.1-beta。使用mysql-connector-java 5.1.15。
答案 1 :(得分:0)
您的SphinxQL实例正在侦听端口9306.您的MySQL正在侦听其他端口,可能在默认3306上。您可以使用MySQL JDBC驱动程序连接到MySQL,但您无法使用它连接到SphinxQL。它只是不了解JDBC驱动程序通信协议。