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

NestJS配置MySQL TLS连接开启require_secure_transport报错求助

解决NestJS连接Azure MySQL的TLS加密连接问题

错误原因

当MySQL开启require_secure_transport=ON后,会强制所有连接使用加密传输,你的当前TypeORM配置未启用TLS,因此触发连接禁止错误。

修改TypeORM配置以启用TLS

更新你的AppModule配置,添加TLS相关参数,适配Azure MySQL的加密要求:

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
// 若使用指定CA证书,需引入fs模块
// import * as fs from 'fs';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: '<你的Azure MySQL服务器地址>', // 格式:xxx.mysql.database.azure.com
      port: 3306,
      username: '<你的Azure MySQL用户名>', // 格式:xxx@服务器名称
      password: '<你的数据库密码>',
      database: 'test',
      entities: [],
      synchronize: true,
      // 启用TLS连接
      ssl: {
        // 快速验证配置(测试环境可用)
        rejectUnauthorized: false,
        // 生产环境建议使用官方CA证书(从Azure控制台下载DigiCertGlobalRootCA.crt.pem)
        // ca: fs.readFileSync('./DigiCertGlobalRootCA.crt.pem').toString(),
      },
    }),
  ],
})
export class AppModule {}

关键注意事项

  • 替换配置中的占位符为你的Azure MySQL实际信息:
    • Host格式为<服务器名称>.mysql.database.azure.com
    • 用户名必须包含@<服务器名称>后缀
  • 测试环境可使用rejectUnauthorized: false快速验证连接,生产环境请从Azure控制台下载官方的DigiCertGlobalRootCA.crt.pem证书,通过ca参数指定证书内容,保障连接安全性
  • 确认Azure MySQL的防火墙规则已允许NestJS应用所在服务器/IP的访问权限

内容的提问来源于stack exchange,提问作者https.samurai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:53:31