Navicat连接postgresql时出现“datlastsysoid does not exist”报错的问题

遇到问题:Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错的问题;

问题根源分析:查询了一下互联网资料后结合官方更新日志,了解原因是PostgreSQL 12+ 版本移除了 pg_database.datlastsysoid 字段,该字段原用于存储最后一个系统OID。 旧版Navicat(v15及更早)的驱动仍尝试查询该字段 ,新PostgreSQL(v12+)的系统表中已无此列;

软件安装连接和步骤这里就不再赘述了,网上很多 ,这有一个小tips:安装过程记得全程断网,同时记得完全关闭病毒和威胁防护防火墙和网络保护

问题1:点击Patch!时弹窗时"拒绝访问。 (0x5)";

解决方法:以管理员身份运行 exe 文件;

具体安装步骤请参考上面的教程链接,这里就不再赘述,到此安装完成,遇到开头的问题,字段"datlastsysoid"不存在;

参考互联网的解决方法:

1、 打开 右击打开数据库软件文件所在位置,找到libcc.dll文件;

2、找一个十六进制编辑器中打开此文件,当然也可以直接检索十六进制编辑器在线工具一类的,因为我使用的环境是不连网的,所以直接下了一个HxD Hex Editor,直接点击下载即可,然后默认安装;

下载链接:Downloads | mh-nexus

3、使用HxD Hex Editor打开libcc.dll文件,并搜索"SELECT DISTINCT datlastsysoid";

​​

4、并将其替换为"SELECT DISTINCT dattablespace";

​​

问题2:我们想修改.dll,但是提示"dll供写入。拒绝访问"

于是我们检索问题:"dll供写入。拒绝访问"

解决方法:检查libcc.dll文件的权限设置。右键点击该文件,选择“属性”,进入“安全”选项卡,查看当前用户是否具有读取和执行权限。如果权限不足,请尝试添加或修改权限,确保当前用户有足够的操作权限,全部勾选;

​​

5、我们通过修改数据库软件所在文件夹权限的方式,解决了无法修改.dll的问题,并重启数据库软件,就可以正常访问了;

​​

这里把解决问题的步骤转化为思维导图;

​​

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图说交通

买猫粮,楼下的流浪猫在等我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值