我一直在尝试运行这个批处理文件,它会通过Postgre DB服务器运行两个不同的sql文件,如下所示:
set PGPASSWORD=blah
cls
@echo on
"C:\Progra~1\pgAdmin III\1.16\psql" -d [db name] -h [server name] -p 5432 -U postgres -f C:\query1.sql
"C:\Progra~1\pgAdmin III\1.16\psql" -d [db name] -h [server name] -p 5432 -U postgres -f C:\query2.sql
但问题在于,有时候我会在执行查询1或查询2的命令时遇到以下错误:
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
这种情况有时会发生,所以我不确定为什么会出现这种情况。是否有人能解释一下为什么会出现这种情况,以及是否有解决此问题的方法。谢谢!
更新:在尝试在实际的Postgre应用程序中打开远程服务器时,有时也会出现相同的错误:“发生错误:“服务器意外关闭连接。这可能意味着服务器在处理请求之前或期间异常终止。”
当我单击错误弹出窗口后,我还会得到这个Guru提示:
数据库编码 数据库VA-trac是使用SQL_ASCII编码创建的,用于存储数据。该编码仅针对7位字符定义;未定义带有第8位设置(非ASCII字符127-255)的字符的含义。因此,无法将数据转换为其他编码。 如果您正在数据库中存储非ASCII数据,则强烈建议您使用表示您本地字符集的适当数据库编码,以便在需要时从自动转换为不同的客户端编码中受益。如果您将非ASCII数据存储在SQL_ASCII数据库中,则可能会遇到写入或读取数据库时出现的奇怪字符,这是由于代码转换问题引起的。当使用不同的客户端程序和驱动程序访问数据库时,这可能会给您带来很多麻烦。 对于大多数安装而言,Unicode(UTF8)编码提供了最灵活的功能。
无论如何,服务器仍然会打开,此后我就能够访问数据库。
bin
目录中的psql
而不是 PgAdmin-III 中打包的psql
,会发生什么?是否有任何涉及防火墙的情况? - Craig Ringer