最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在 vercel 上部署 nodejs 应用程序时无法访问位于 `localhost`:`3306` 的数据库服务器。相同的数据库在本地环境中运行良好

网站源码admin38浏览0评论

在 vercel 上部署 nodejs 应用程序时无法访问位于 `localhost`:`3306` 的数据库服务器。相同的数据库在本地环境中运行良好

在 vercel 上部署 nodejs 应用程序时无法访问位于 `localhost`:`3306` 的数据库服务器。相同的数据库在本地环境中运行良好

在 vercel 上部署时出现以下错误

PrismaClientInitializationError: 
Invalid `prisma.user.findUnique()` invocation:


Can't reach database server at `localhost`:`3306`

Please make sure your database server is running at `localhost`:`3306`.

我已经正确添加了环境变量,确保数据库服务器正在运行。仍然无法连接到数据库。我正在使用 prisma 客户端连接到 db.Db 连接在本地设置中工作正常。

回答如下:

如果您在 Vercel 上部署 Node.js 应用程序时遇到连接到位于 localhost:3306 的数据库服务器的问题,这可能是因为 Vercel 使用不同的网络配置并且无法从 Vercel 的部署环境访问您的本地数据库服务器。

要解决这个问题,您有几个选择:

  1. 使用托管数据库:考虑使用基于云的数据库服务,如 Amazon RDS、Google Cloud SQL 或 Microsoft Azure Database。这些服务提供了一个稳定且可访问的数据库服务器,可以从任何环境访问。

  2. 配置远程数据库服务器:如果您有权访问可从 Vercel 的部署环境访问的远程数据库服务器,则可以更新 Node.js 应用程序的配置以连接到该远程服务器而不是本地主机。您需要更新应用程序代码中的连接设置,以指向远程服务器的主机名、端口、用户名和密码。

  3. 使用环境变量:Vercel 允许您为部署定义环境变量。您可以将 Node.js 应用配置为使用环境变量来检索数据库连接设置。这允许您根据环境动态配置数据库服务器。确保更新您的应用代码以从环境变量中读取数据库连接设置。

例如,在 Node.js 中,您可以使用 dotenv 包从 .env 文件加载环境变量。以下是如何为数据库连接设置环境变量的示例: 在项目的根目录中创建一个 .env 文件。

将以下行添加到

**.env**
文件,将值替换为您的实际数据库连接详细信息:

  • 在项目的根目录中创建一个

    .env
    文件。

  • 将以下行添加到

    **.env**
    文件,将值替换为您的实际数据库连接详细信息:

    DB_HOST=本地主机 DB_PORT=3306 DB_USERNAME=你的用户名 DB_PASSWORD=你的密码

  • 在您的 Node.js 代码中,通过运行

    dotenv
     安装 
    npm install dotenv

  • 在代码文件的顶部,添加以下行以加载环境变量:

    require('dotenv').config();

  • 更新数据库连接代码以使用环境变量:

    常量连接 = mysql.createConnection({ 主机:process.env.DB_HOST, 端口:process.env.DB_PORT, 用户:process.env.DB_USERNAME, 密码:process.env.DB_PASSWORD, // 其他连接选项 });

通过使用环境变量,你可以在不修改代码的情况下轻松地在不同的数据库配置之间切换,从而更容易像 Vercel 一样部署到不同的环境。

记得更新 Vercel 部署上的

**.env**
文件,以包含特定于该环境的正确数据库连接详细信息。

请注意,具体步骤和配置可能因您的数据库技术和部署平台而异。

发布评论

评论列表(0)

  1. 暂无评论