Navicat12 连接 PostgreSQL 17 出现 authentication method 10 not supported

出现 authentication method 10 not supported

1.修改 postgresql.conf 文件

1
2
3
4
# - Connection Settings -

listen_addresses = '*'
port = 5432

2.修改 pg_hba.conf 文件。注释原来的,添加行,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
# local all all scram-sha-256
local all all trust
# IPv4 local connections:
# host all all 127.0.0.1/32 scram-sha-256
host all all 127.0.0.1/32 trust
# IPv6 local connections:
# host all all ::1/128 scram-sha-256
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all scram-sha-256
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256

host all all 0.0.0.0/0 password

3.重启 postgresql-17 数据库

出现 datlastsysoid does not exist 报错

原因分析

PostgreSQL 15 以后删除了 datlastsysoid 字段

解决办法

  1. 升级 Navicat 版本
  2. 降低 PostgreSQL 版本
  3. 修改 libcc.dll 内容
  • 打开Navicat安装根目录,找到 libcc.dll 文件
  • 备份libcc.dll文件

警告
需要备份libcc.dll文件,防止不必要的错误

  • 使用在线工具 https://hexed.it/,修改libcc.dll的内容
  • 在文件中搜索 SELECT DISTINCT datlastsysoid,并将其替换为 SELECT DISTINCT dattablespace

  • 并将其替换为 SELECT DISTINCT dattablespace

  • libcc.dll保存后,重启Navicat,可正常访问

看不到已经创建的表

  • 需要升级 Navicat 版本,Navicat 15即可解决。
  • 使用 pgAdmin 工具,管理连接数据库。