【问题标题】:refused database connection causes encoding error拒绝数据库连接导致编码错误
【发布时间】:2012-06-21 20:25:27
【问题描述】:

我有一个带有一些数据库的 postgreSQL 服务器。每个用户只能连接到某些数据库。 到目前为止,一切都很好。我想测试是否一切正常,所以我使用 pgAdmin III 以受限用户身份登录。当我尝试连接到用户没有连接权限的数据库时,日志文件似乎发生了一些事情! 服务器状态窗口不再可以读取它。我得到的只是很多关于编码 utf8 的无效字节序列的消息。 停止这些消息窗口的唯一方法是终止程序并强制 postgre 创建一个新的日志文件。

谁能向我解释为什么会发生这种情况以及如何阻止它???

【问题讨论】:

  • "something" 不会发生在日志文件中——一组字符被写入其中。 (1) 它们是什么? (2) 你认为这是有效的 UTF-8 吗? (3) 如果不是,它是否与您数据库上的其他编码匹配或作为您系统上的默认编码?
  • 我用新的日志文件重现了错误。写入日志文件的唯一内容是:FATAL: keine Berechtigung für Datenbank »DB_2« DETAIL: Benutzer hat das CONNECT-Privileg nicht.,这仅表示用户无权连接到数据库。之后有'很多'FEHLER: ungültige Byte-Sequenz für Kodierung »UTF8«: 0xfc 这是我得到的错误消息

标签: postgresql


【解决方案1】:

好的,我认为问题在于“für”中的“ü”。错误消息似乎是在抱怨字符代码 0xfc 在latin1(和类似的)中是带有变音符号的小写 u。

通过数据库连接发回的消息应转换为客户端编码。但是,日志文件包含来自各种来源的输出,according to this 最近(2012 年)出现了问题:

恐怕这是一个已知问题。 PostgreSQL postmaster 登录 系统语言环境和 PostgreSQL 后端以任何编码方式登录 他们的数据库在里面。他们都写入同一个日志文件,产生一个 充满混合编码数据的日志文件,会阻塞许多文本编辑器。

所以 - 我猜你的系统语言环境是 8859-1(或者可能是 -15),而 pg-admin 期待 UTF-8。短期而言,您可以将系统编码设置为 UTF-8,长期将错误报告提交给 pgadmin 团队 - 一条错误消息很有帮助,之后它可能应该只是将十六进制代码放在文本中或类似的地方。

【讨论】:

  • 非常感谢!更改客户端编码有帮助!
猜你喜欢
  • 1970-01-01
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多