You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

初始化Prisma Client时,能否禁用数据库URL可达性检查?

解决Next.js本地构建无法访问Hostinger远程MySQL的问题

方案1:通过SSH隧道映射数据库端口

Hostinger默认限制MySQL远程访问,但通常提供SSH访问权限,你可以通过SSH隧道把远程数据库端口转发到本地:

  • 执行SSH端口转发命令(替换为你的Hostinger SSH账号和服务器IP):
    ssh -L 3307:mysql.hostinger.com:3306 your_ssh_username@your_hostinger_server_ip
    
  • 修改Prisma配置文件中的DATABASE_URL,指向本地转发的端口:
    DATABASE_URL="mysql://你的数据库用户名:密码@localhost:3307/数据库名称"
    
  • 保持SSH连接处于运行状态(可加-fN参数让进程后台运行),再执行本地构建命令。

方案2:用本地Shadow Database跳过远程连接

如果构建仅需生成Prisma客户端,不需要读取远程数据库数据,可以配置本地Shadow DB:

  • 在schema.prisma中添加Shadow数据库配置:
    generator client {
      provider        = "prisma-client-js"
      shadowDatabaseUrl = "file:./shadow.db"
    }
    
  • 这样构建时Prisma会使用本地SQLite文件生成客户端,无需连接远程MySQL。生产环境运行时,Prisma会自动使用原有的远程数据库配置(Hostinger服务器内部可正常访问自身的MySQL)。

方案3:预生成Prisma客户端再构建

先在本地用临时数据库生成客户端,再切换回远程配置构建:

  1. 临时把DATABASE_URL改成本地可访问的数据库(比如本地MySQL或SQLite)
  2. 运行npx prisma generate生成客户端文件,这些文件会存放在node_modules/.prisma/client
  3. 改回原有的远程DATABASE_URL,执行npm run build构建Next.js应用
  4. 确保本地临时数据库的Schema和远程数据库完全一致,避免运行时出现兼容性问题

方案4:本地构建后上传产物到Hostinger

完成本地构建(用上述任一方法绕过数据库连接问题)后,把构建产物上传到Hostinger:

  • 打包.next目录、package.json、package-lock.json等必要文件
  • 通过Hostinger面板的文件管理器或FTP上传到主机的网站根目录
  • 在Hostinger的Node.js应用管理面板中,设置启动命令为npm run start,并配置正确的环境变量(包括远程DATABASE_URL)

内容的提问来源于stack exchange,提问作者Eli Tref

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 06:42:40