我遇到了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及以上版本(可能需要新的许可证),要么执行以下操作:
- 退出Navcat。
- 打开Navicat文件夹(通常在C:Program Files PremiumSoftNavicat....下),取决于您的Navicat版本
- 找到libcc.dll并创建此文件的备份(复制并粘贴为"libcc-backup.dll";或任何其他名称)
- 在任何十六进制编辑器中打开这个文件,如果你愿意,你可以使用在线工具,如https://hexed.it/。
- 查找"SELECT DISTINCT datlastsysoid"并将其替换为"SELECT DISTINCT dattablespace">
- 将文件保存到原始位置。如果遇到任何安全问题,请将其保存为".txt"文件,然后将其重命名为".dll">
- 就是这样!Navicat现在像以前一样工作。如果您有ESET或其他安全工具,dll文件可能会被锁定几分钟,以进行安全检查。耐心点,5分钟后再试一次……
享受吧!
如果升级到最新的Navicat版本,错误就会消失。版本16.1.5明确修复了这个问题。