NestJs连接MySql:错误无法连接数据库

Posted

技术标签:

【中文标题】NestJs连接MySql:错误无法连接数据库【英文标题】:NestJs connection to MySql: Error Unable to connect to the database 【发布时间】:2020-07-21 03:07:11 【问题描述】:

您好,我在将nestjs 连接到mysql 时遇到问题。 每次如果我改变连接方式都是不同的错误。 这是 conf.ts 中的一个

如果尝试使用 ocrmconfig.json


  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "root",
  "database": "famby_app",
  "entities": ["dist/**/*.entity.ts,.js"],
  "synchronize": true,
  "logging": true




    [Nest] 27419   - 04/08/2020, 6:02:56 PM   [TypeOrmModule] Unable to connect to the database. Retrying (9)... +4032ms
/Applications/MAMP/htdocs/baby-app-nest/src/user/user.entity.ts:2
import  Entity, Unique, BaseEntity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn  from "typeorm";
       ^

SyntaxError: Unexpected token 
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
[Nest] 27419   - 04/08/2020, 6:02:56 PM   [ExceptionHandler] Unexpected token  +1ms
/Applications/MAMP/htdocs/baby-app-nest/src/user/user.entity.ts:2
import  Entity, Unique, BaseEntity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn  from "typeorm";
       ^

SyntaxError: Unexpected token 
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)

我的配置文件

    import  TypeOrmModuleOptions  from '@nestjs/typeorm';
import * as dotenv from 'dotenv';
import  UserEntity  from './user/user.entity';
import  join  from 'path';
import  ConnectionOptions  from 'typeorm';

export const typeOrmConfig: TypeOrmModuleOptions = 
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'root',
  database: 'database_test',
  entities: [__dirname + '/../**/*.entity.js,ts'],
  synchronize: true,
  logging: true
;

我尝试了所有可能的方法:/

如果有和我一样的问题,有人可以帮助我吗? 谢谢!!!

【问题讨论】:

【参考方案1】:

您正在尝试在节点中加载 ts 文件,这是不可能的。使用__dirname + '../**/*.entity.js,ts 行,您将从dist 返回根目录,然后加载.entity.ts.entity.js 的任何内容。因此,您的打字稿源文件正在加载,Node 无法正确解析这些文件。您应该从该 glob 中删除 ts,或者更好地过滤以仅查看您的 dist 目录(或者老实说,两者都是最好的)

【讨论】:

然后我收到此错误:“[TypeOrmModule] 无法连接到数据库。重试 (2)... +3184ms QueryFailedError: ER_DUP_KEYNAME: Duplicate key name 'IDX_415c35b9b3b6fe45a3b065030f' at new QueryFailedError (/Applications /MAMP/htdocs/baby-app-nest/node_modules/typeorm/error/QueryFailedError.js:11:28)"

以上是关于NestJs连接MySql:错误无法连接数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 nestjs/mongoose 连接 mongoDB

使用 NestJs 和 Mysql 检查连接是不是成功

无法将 MongoDB 与 NestJS ( Docker ) 连接

NestJS + MySQL:如何在不设置实体的情况下连接多个数据库

NestJs / Mongoose 在 Docker 撰写时无法建立 MongoDB 数据库连接

Dockerizing NestJS APP 和 MongoDB “首次连接时无法连接到服务器 [localhost:27017]”