我一直在尝试运行这个通过 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
但是问题来了,有时我会为 query1 或 query2 的命令收到以下错误:
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
这只有时会发生,所以我不完全确定它为什么会发生。有人可以解释为什么会这样,以及是否有解决此问题的方法。谢谢!
更新:在实际的 Postgre 应用程序中尝试打开远程服务器时,有时我也会遇到同样的错误:“发生错误:“服务器意外关闭了连接这可能意味着服务器在处理请求之前或处理请求时异常终止。”
在我点击错误弹出窗口后,我也得到了这个 Guru Hint 的东西:
数据库编码 创建数据库 VA-trac 以使用 SQL_ASCII 编码存储数据。此编码仅针对 7 位字符定义;未定义第 8 位设置的字符(非 ASCII 字符 127-255)的含义。因此,服务器不可能将数据转换为其他编码。如果您在数据库中存储非 ASCII 数据,强烈建议您使用代表您的语言环境字符集的正确数据库编码,以便在需要时从自动转换为不同的客户端编码中受益。如果您将非 ASCII 数据存储在 SQL_ASCII 数据库中,您可能会遇到由代码转换问题引起的写入或读取数据库的奇怪字符。当使用不同的客户端程序和驱动程序访问数据库时,这可能会让您非常头疼。
无论如何,服务器仍然会在之后打开,我可以从那时起访问数据库。