NestJS - [TypeOrmModule] 无法连接到数据库。正在重试 ER_PARSE_ERROR

Sta*_*all 7 typeorm nestjs

无法使用正确的连接信息连接数据库,按照文档从https://docs.nestjs.com/techniques/database连接数据库

在 SQLYog 上连接的数据库

在此处输入图片说明

app.module.ts 中遵循相同的数据库信息

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: null,
      database: 'the_local_db',
      entities: [
        Table_one,
      ],
      // entities: ['../typeorm/entities/*.ts'],

      synchronize: true,
    }),
    StaffModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

错误详情

`[Nest] 5528 - 06/30/2020, 1:39:51 AM [ExceptionHandler] ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,在第 1 +18m 行 QueryFailedError: ER_PARSE_ERROR: You have an error in your SQL syntax; 检查与您的 MariaDB 服务器版本相对应的手册在第 1 行的 ''"'' 附近使用正确的语法

在新的 QueryFailedError (C:\Users\UserName\ProjectName\nrwl\src\error\QueryFailedError.ts:9:9) 在 Query。(C:\Users\UserName\ProjectName\nrwl\src\driver\mysql\MysqlQueryRunner.ts:167:37) 在 Query。(C:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\Connection.js:526:10) 在 Query._callback (C:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\Connection. js:488:16) 在 Query.Sequence.end (C:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24) 在 Query.ErrorPacket (C:\ Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\protocol\sequences\Query.js:92:8) 在 Protocol._parsePacket (C:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\protocol\ Protocol.js:291:23) 在 Parser._parsePacket (C:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\protocol\Parser.js:433:10) 在 Parser.write (C:

小智 16

检查数据库配置中是否将同步连接选项设置为 true。将其设置为 false。这对我有用。

  • 通过额外的支持信息可以改进您的答案。请[编辑]添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以[在帮助中心](/help/how-to-answer)找到有关如何写出好的答案的更多信息。 (3认同)

Aya*_*qui 9

我遇到了类似的问题,经过验证的回复对我没有帮助。我能够使用该mysql2模块而不是mysql.

$ npm install mysql2 --save
Run Code Online (Sandbox Code Playgroud)

我还必须卸载mysql模块才能连接到我的数据库

$ npm uninstall mysql --save
Run Code Online (Sandbox Code Playgroud)

希望这个回答可以帮助其他遇到同样问题的人。


小智 8

就我而言,解决方案有些不同,因为我的本地主机有一个不同的名称,有时会在 OSX 中发生,所以我通过 ip 地址 127.0.0.1 更改了“本地主机”

TypeOrmModule.forRoot({
  type: 'mysql',
  host: '127.0.0.1',
  port: 3306,
  username: 'test',
  password: '123456',
  database: 'nest',
  entities: ["dist/**/*.entity{.ts,.js}"],
  synchronize: true,
  dropSchema:true })
Run Code Online (Sandbox Code Playgroud)


Sta*_*all 6

我刚刚删除了端口:3306,现在它可以工作了。

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      username: 'root',
      password: null,
      database: 'the_local_db',
      entities: [
        Table_one,
      ],
      // entities: ['../typeorm/entities/*.ts'],

      synchronize: true,
    }),
    StaffModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)