我正在尝试将 django/cPython 应用程序转换为使用 Jython 作为 Tomcat WAR 运行。我们正在使用 mysql 数据库(cPython 中的 MySQLdb/jython 中的 mysql-connector-java-5.1.15-bin.jar)。我已经更改了两种配置之间的 DATABASE_ENGINE。该应用程序在 cPython 上运行良好(在我禁用了 SELinux 对数据库的 http 连接的限制之后)。首页、图像和静态内容在 jython 中工作。但是,当我请求一个访问数据库的页面时,它似乎挂了一会儿,然后返回:
Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. [SQLCode: 0], [SQLState: 08S01]
有没有人见过这个?我最近没有看到任何关于此类或问题的讨论。我正在使用 django 1.2.5,jython 2.5.2。我试过在 Fedora (jre-1.6.0-openjdk.x86_64) 和 Windows (Java(TM) SE Runtime Environment (build 1.6.0_23-b05)) 下运行 Java 应用程序。相同的行为。我还尝试了 mysql-connector-java-5.1.15-bin.jar(最新版本)和 mysql-connector-java-5.1.10-bin.jar(根据 http://packages.python.org/django-jython/database-backends.html 进行了“广泛测试”)。各种配置都不会影响行为。
我该如何解决它或下一步我应该看哪里?
最佳答案
我发现了错误。事后看来,这是显而易见的。我在数据库服务器的IP地址中输入了一个o,但只在jython分支上的配置文件中。结果,Jython 实例挂起,而 cPython 实例没有挂起。当我将两者合并为一个 settings.py 时发现错误(使用“if os.name=='java'”进行必要的 jython 更改。
所以。 . .这里的正确协议(protocol)是什么?我应该删除问题还是保留它以防其他人犯与我相同类型的错误?
关于python - 为什么 django jython 连接到 MySQL 数据库会给出 "Communication Link Failure"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5574482/