使用Navicat Premium连接到Postgres 15后无法打开连接



我遇到了PostgreSQL 15和navicat15之间的连接问题。

我的环境是:

Windows 10
  • PostgreSQL 15
  • navigat Premium 15.0.16(已激活)

如何生产:

  • 打开"新建连接"对话框。(文件→新连接->PostgreSQL…)
  • 将信息放在字段中。
  • 检查"测试连接"是否有效。(它也适用于我的结束)
  • 单击"OK">
  • 在连接列表中双击连接。

:
应该能够打开连接。

实际:
在错误对话框中显示以下消息:

ERROR: column "datlastsysoid" does not exist
LINE 1: SELECT DISTINCT datlastsysoid FROM pg_database

Postgres 15从pg_database表中删除了datlastsysoid字段,因此Navicat 15.0.29或16.1之前的任何版本在查找此已弃用的字段时都会引发此错误。

要解决这个问题,要么升级到最新的Navicat 15.0.29或16.1及以上版本(可能需要新的许可证),要么执行以下操作:

  1. 退出Navcat。
  2. 打开Navicat文件夹(通常在C:Program Files PremiumSoftNavicat....下),取决于您的Navicat版本
  3. 找到libcc.dll并创建此文件的备份(复制并粘贴为"libcc-backup.dll";或任何其他名称)
  4. 在任何十六进制编辑器中打开这个文件,如果你愿意,你可以使用在线工具,如https://hexed.it/。
  5. 查找"SELECT DISTINCT datlastsysoid"并将其替换为"SELECT DISTINCT dattablespace">
  6. 将文件保存到原始位置。如果遇到任何安全问题,请将其保存为".txt"文件,然后将其重命名为".dll">
  7. 就是这样!Navicat现在像以前一样工作。如果您有ESET或其他安全工具,dll文件可能会被锁定几分钟,以进行安全检查。耐心点,5分钟后再试一次……

享受吧!

如果升级到最新的Navicat版本,错误就会消失。版本16.1.5明确修复了这个问题。

最新更新