不支持 SSL 的链接

来源:3-7 如何通过drizzle orm连接数据库?

慕设计1980359

2024-09-26

这个报错要怎么解

Error: The server does not support SSL connections
at /Users/taojiang/Documents/study/images-saas/node_modules/.pnpm/pg-pool@3.7.0_pg@8.13.0/node_modules/pg-pool/index.js:45:11

写回答

1回答

好帮手慕小李

2025-02-11

根据你提供的错误信息和搜索结果,Error: The server does not support SSL connections 表示你的 PostgreSQL 数据库服务器未启用 SSL 支持,但客户端尝试使用 SSL 连接时发生了错误。以下是解决此问题的几种方法:

1. 检查 PostgreSQL 服务器的 SSL 配置

确保 PostgreSQL 服务器已正确配置 SSL 支持。可以通过以下步骤检查和启用 SSL 支持:

  • 打开 PostgreSQL 的配置文件 postgresql.conf,通常位于 PostgreSQL 数据目录中。

  • 找到 ssl 参数,并将其设置为 on

    conf复制

    ssl = on
  • 确保服务器的 SSL 证书和密钥文件路径正确。例如:

    conf复制

    ssl_cert_file = '/path/to/server.crt'
    ssl_key_file = '/path/to/server.key'
  • 重启 PostgreSQL 服务以使配置生效

2. 检查客户端连接配置

如果你的 PostgreSQL 服务器不支持 SSL,但客户端仍然尝试使用 SSL 连接,可以通过修改客户端的连接配置来解决:

  • 在 Node.js 中,如果你使用的是 pgpg-pool 库,可以通过设置连接字符串或连接选项来禁用 SSL。例如:

    JavaScript复制

    const { Pool } = require('pg');const pool = new Pool({
      user: 'your_user',
      host: 'your_host',
      database: 'your_database',
      password: 'your_password',
      port: 5432,
      ssl: false, // 禁用 SSL});

    或者在连接字符串中明确指定 sslmode

    JavaScript复制

    const pool = new Pool({
      connectionString: 'postgresql://your_user:your_password@your_host:5432/your_database?sslmode=disable',});

    这样可以确保客户端不会尝试使用 SSL 连接

3. 确保客户端和服务器的 SSL 协议版本兼容

如果服务器已启用 SSL,但客户端和服务器的 SSL 协议版本不兼容,也可能导致连接失败。可以尝试更新客户端的 SSL 库,以确保与服务器的协议版本兼容

4. 检查网络环境

某些网络环境可能会阻止 SSL 连接。确保客户端和服务器之间的网络路径支持 SSL 连接

通过以上方法,你应该能够解决 The server does not support SSL connections 的错误。如果问题仍然存在,建议进一步检查服务器和客户端的日志,以获取更多详细信息。

0
0

前端全栈进阶 Nextjs打造跨框架SaaS应用

从构思到部署 ,助你完成从开发者到服务提供者的蜕变

304 学习 · 66 问题

查看课程