gpt4 book ai didi

postgresql - PgAdmin III,打开服务器状态给出 "invalid byte sequence for encoding UTF8"

转载 作者:行者123 更新时间:2023-11-29 11:16:18 25 4
gpt4 key购买 nike

我有两台同步复制的 Postgres 9.3 服务器。

为了在 recovery.conf 中加载新的 archive_cleanup_command,我需要重新启动 slave。

服务器正确重启,现在与主服务器完全同步。

但是当我在 PgAdmin III 中打开从属服务器的“服务器状态”面板时(可执行文件位于主服务器上),我得到一些这样的错误:

编码“UTF8”的字节序列无效加上一些十六进制代码

enter image description here

可能是因为我在archive_cleanup_command中放了一个波浪号~,但是没用,然后我把它去掉,命令就正常了。

也许 ~ 已经写在某个地方,它不是一个有效的字符......但我也删除了日志......

从服务器的日志中有很多行,如下所示:

2015-02-13 11:11:32 CET ERROR:  invalid byte sequence for encoding “UTF8”: 0xe8 0x20 0x73
2015-02-13 11:11:32 CET STATEMENT: SELECT pg_file_read('pg_log/postgresql-2015-02-13_111038.log', 0, 50000)

请注意,postgresql-2015-02-13_111038.log 是最后一条日志,我从中得到这些行。

最佳答案

您遇到的问题是区域设置 lc_messages 设置的编码与数据库的编码不同。因此,一些消息使用 Windows-1252 编码写入日志,而当您尝试使用 PgAdmin 查看日志时,它会尝试使用 UTF-8 解释文件。日志中写入的一些字节序列不是有效的 UTF-8,导致错误。

事实上,postgresql 中不同语言环境的交互方式会导致日志文件中出现混合编码。有一个Bug Report对此,但它看起来并没有得到解决。

解决此问题的最简单方法可能是将 lc_messages 设置为 English_United States.UTF-8

最好让 lc_messages 在服务器上的所有数据库中对齐(或者至少所有数据库都使用相同的编码)。

请务必删除所有现有的日志文件,因为它们已经包含了不正确的编码。

关于postgresql - PgAdmin III,打开服务器状态给出 "invalid byte sequence for encoding UTF8",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28497263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com