【问题标题】:org.postgresql.util.PSQLException: Protocol error. Session setup failedorg.postgresql.util.PSQLException:协议错误。会话设置失败
【发布时间】:2015-06-27 17:25:26
【问题描述】:

我知道这些类型的问题已经存在,但提供的解决方案对我不起作用。在我的应用程序中,没有版本不匹配的黑白驱动程序和 PostgreSQL 服务器。我还没有找到任何其他解决方案。

我正在使用 PostgreSQL 服务器 9.4 和 postgresql-9.4-1201.jdbc4.jar。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.postgresql.Driver"></property>
    <property name="username" value="postgres"></property>
    <property name="password" value="root"></property>
    <property name="url" value="jdbc:postgresql://localhost:5432/myapp"></property>
</bean>

pg_hba.conf如下:

host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

postgresql.conf如下

listen_addresses = '*'
port = 5432         
max_connections = 100

我还检查了 netstat o/p 。

TCP    [::]:5432              [::]:0                 LISTENING
TCP    127.0.0.1:5432         0.0.0.0:0              LISTENING

谢谢

【问题讨论】:

  • 请显示连接字符串。
  • 好的。这看起来很标准。接下来要检查的是服务器是否实际上在通过 TCP 服务的 localhost 上的该端口上。您是否还可以添加pg_hba.conf 的内容(未注释掉的行),以及来自postgres.conflisten_addresses 行(如果未注释掉)、port 行以及与@987654329 相关的所有设置@.
  • @RealSkeptic 我已经提供了详细信息。postgres.conf 中的 SSL 设置被注释掉了。
  • 您确定您在与 PostgreSQL 服务器相同的主机上运行 Java 程序吗?你能在那里成功打开一个到端口 5432 的套接字吗?您是通过属性传递用户名和密码,还是将它们作为参数添加到 URL?
  • 是的,java 程序和 postgres 都在我的本地机器上运行。我正在使用 Spring 框架 DataManagerDataSource 类并传递属性。请参阅我的问题。

标签: java postgresql jdbc driver


【解决方案1】:

我也遇到过同样的问题。
只需在 postgresql.conf 中将端口号 5432 更改为 5433。
重新启动系统。

postgresql.conf 文件在 windows 中的位置:C:\Program Files\PostgreSQL\9.4\data

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2012-01-31
    • 2020-10-31
    • 1970-01-01
    • 2016-11-04
    相关资源
    最近更新 更多