J/Connector 无法通过 SphinxQL 连接到 Sphinx 服务器
我有一台运行最新版本 Sphinx (2.0.1-id64-beta) 的服务器,并尝试使用最新的 J/Connector JDBC 驱动程序 (5.1.18) 通过 Java 应用程序访问其 SphinxQL 接口。每当尝试建立连接时,进程都会在套接字读取上无限期地阻塞。调用堆栈如下所示:
(StackExchange 通知我,由于我的声誉级别,我不允许直接发布图像。)
图像:http://dunkelhaft.dyndns-server.com/tmp/callstack.png
看起来 JDBC 驱动程序正在等待 Sphinx 服务器向其提供一些消息:永远不会到达。值得注意的是,如果我使用 MySQL 命令行客户端或 Sequel Pro 或简单的 PHP 脚本之类的东西,MySQL 界面可以正常工作,这让我怀疑问题是 Sphinx 服务器和JDBC 协议。
有什么想法吗?
I have a server running the latest version of Sphinx (2.0.1-id64-beta) and am trying to access its SphinxQL interface via a Java application using the latest J/Connector JDBC driver (5.1.18). Whenever a connection is attempted to be established the process will block indefinitely on a socket read. The call stack looks like the following:
(StackExchange informs me to that I am not permitted to post images directly due to my reputation level.)
Image: http://dunkelhaft.dyndns-server.com/tmp/callstack.png
It looks like the JDBC driver is waiting for the Sphinx server to supply it with some message that never arrives. It's worth noting that if I use something like the MySQL command-line client or Sequel Pro or a simple PHP script, the MySQL interface works without issue, leading me to suspect that the issue is some sort of protocol discrepancy between the Sphinx server and the JDBC protocol.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不是唯一有这个问题的人。我没有直接的解决方案,只是一些肮脏的解决方法来让事情正常工作 - 看看 此处 [简而言之 - 您必须使用较旧的连接器/j,并且需要对 sphinx 2.0.3 代码进行一些小更改]。还有一份给 sphinx 开发人员的错误报告:#959。
编辑。似乎将 *mysql_version_string = 5.0.37* 添加到 sphinx.conf 应该可以解决问题。
you're not the only one with that problem. i don't have a direct solution, just some dirty workarounds to get things working - look here [in short - you'll have to use older connector/j and will need to make small change in the sphinx 2.0.3 code]. there's also a bug report to the sphinx devs: #959.
edit. it seems that adding *mysql_version_string = 5.0.37* to the sphinx.conf should solve the problem.