org.postgresql.util.PSQLException:协议错误。会话设置失败
Posted
技术标签:
【中文标题】org.postgresql.util.PSQLException:协议错误。会话设置失败【英文标题】:org.postgresql.util.PSQLException: Protocol error. Session setup failed 【发布时间】: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.conf
、listen_addresses
行(如果未注释掉)、port
行以及与@987654329 相关的所有设置@.
@RealSkeptic 我已经提供了详细信息。postgres.conf 中的 SSL 设置被注释掉了。
您确定您在与 PostgreSQL 服务器相同的主机上运行 Java 程序吗?你能在那里成功打开一个到端口 5432 的套接字吗?您是通过属性传递用户名和密码,还是将它们作为参数添加到 URL?
是的,java 程序和 postgres 都在我的本地机器上运行。我正在使用 Spring 框架 DataManagerDataSource 类并传递属性。请参阅我的问题。
【参考方案1】:
我也遇到过同样的问题。 只需在 postgresql.conf 中将端口号 5432 更改为 5433。 重新启动系统。
postgresql.conf 文件在 windows 中的位置:C:\Program Files\PostgreSQL\9.4\data
希望对你有所帮助。
【讨论】:
以上是关于org.postgresql.util.PSQLException:协议错误。会话设置失败的主要内容,如果未能解决你的问题,请参考以下文章