You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

技术求助:Navicat无法创建PostgreSQL新连接,报错authentication method 10 not supported

解决Navicat连接PostgreSQL报错:authentication method 10 not supported

这个报错我之前帮不少开发者排查过,核心原因确实是Navicat与PostgreSQL的版本不兼容——具体是认证方式的匹配问题:

PostgreSQL 10及后续版本默认启用了scram-sha-256认证算法(也就是报错里的“method 10”),但旧版Navicat(比如12.x及更早版本)并不支持这种新的加密认证方式,所以会抛出这个错误。

下面给你两种可行的解决方案,你可以根据自己的情况选择:

方案一:升级Navicat到支持scram-sha-256的版本

这是最推荐的长期方案,毕竟scram-sha-256比旧的md5更安全。只要把Navicat升级到15.x及以上版本,就能直接支持PostgreSQL的新认证方式,不用做任何配置修改,重新创建连接就能正常使用。

方案二:修改PostgreSQL配置,降级认证方式为md5

如果暂时不想升级Navicat,可以通过修改PostgreSQL的配置,把认证方式改回旧的md5

  1. 找到PostgreSQL的配置文件pg_hba.conf

    • Windows:通常在C:\Program Files\PostgreSQL\{你的版本号}\data\pg_hba.conf
    • macOS:/Library/PostgreSQL/{你的版本号}/data/pg_hba.conf
    • Linux:常见路径是/var/lib/postgresql/{你的版本号}/main/pg_hba.conf/usr/local/pgsql/data/pg_hba.conf
  2. 编辑pg_hba.conf,替换认证方式
    找到所有以host开头的行,把末尾的scram-sha-256替换成md5,比如:

    # 修改前
    host    all             all             0.0.0.0/0               scram-sha-256
    # 修改后
    host    all             all             0.0.0.0/0               md5
    
  3. 编辑postgresql.conf,修改密码加密方式
    同样在data目录下找到这个文件,把password_encryption参数的值改成md5

    password_encryption = md5
    
  4. 重启PostgreSQL服务

    • Windows:打开「服务」面板,找到PostgreSQL服务右键重启
    • macOS/Linux:用命令行执行(以systemd为例):
      sudo systemctl restart postgresql
      
      或者用PostgreSQL自带的工具:
      pg_ctl restart -D /path/to/your/postgresql/data
      
  5. 重置数据库用户密码
    因为之前的密码是用scram-sha-256加密的,现在需要重置成md5格式的密码。可以用psql命令行连接数据库后执行:

    ALTER USER your_db_username WITH PASSWORD 'your_new_password';
    

完成以上步骤后,再用Navicat创建新连接应该就能成功了。

内容的提问来源于stack exchange,提问作者Marie Loise

火山引擎 最新活动