NestJS - [TypeOrmModule] 无法连接到数据库。正在重试 ER_PARSE_ERROR
NestJS - [TypeOrmModule] Unable to connect to the database. Retrying ER_PARSE_ERROR
无法使用正确的连接信息连接数据库,按照文档从 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 {}
错误详情
`[Nest] 5528 - 06/30/2020,1:39:51 上午 [ExceptionHandler] ER_PARSE_ERROR:您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 1 +18m 行的 ''"'' 附近使用的正确语法
QueryFailedError: ER_PARSE_ERROR: 你的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 1 行
附近使用的正确语法
在新的 QueryFailedError (C:\Users\UserName\ProjectName\nrwl\src\error\QueryFailedError.ts:9:9)
在查询。 (C:\Users\UserName\ProjectName\nrwl\src\driver\mysql\MysqlQueryRunner.ts:167:37)
在查询。 (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:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\protocol\Parser.js:43:10)
在 Protocol.write (C:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\protocol\Protocol.js:38:16)`
我刚刚删除了 port: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 {}
我遇到了类似的问题,经过验证的回复对我没有帮助。我能够使用 mysql2
模块而不是 mysql
.
来解决我的问题
$ npm install mysql2 --save
我还必须卸载 mysql
模块才能连接到我的数据库
$ npm uninstall mysql --save
希望这个回复能帮助其他陷入同样问题的人。
检查您是否在数据库配置中将同步连接选项设置为 true。使之为假。
它对我有用。
首先,我使用以下方法解决了我的问题:
1/ 在 app.module 中同步 :false
2/nmp 卸载 mysql
3/npm 安装 mysql2
--> 当我 运行 >>npm 运行 start:dev 一切正常
无法使用正确的连接信息连接数据库,按照文档从 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 {}
错误详情
`[Nest] 5528 - 06/30/2020,1:39:51 上午 [ExceptionHandler] ER_PARSE_ERROR:您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 1 +18m 行的 ''"'' 附近使用的正确语法 QueryFailedError: ER_PARSE_ERROR: 你的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 1 行
附近使用的正确语法在新的 QueryFailedError (C:\Users\UserName\ProjectName\nrwl\src\error\QueryFailedError.ts:9:9) 在查询。 (C:\Users\UserName\ProjectName\nrwl\src\driver\mysql\MysqlQueryRunner.ts:167:37) 在查询。 (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:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\protocol\Parser.js:43:10) 在 Protocol.write (C:\Users\UserName\ProjectName\nrwl\node_modules\mysql\lib\protocol\Protocol.js:38:16)`
我刚刚删除了 port: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 {}
我遇到了类似的问题,经过验证的回复对我没有帮助。我能够使用 mysql2
模块而不是 mysql
.
$ npm install mysql2 --save
我还必须卸载 mysql
模块才能连接到我的数据库
$ npm uninstall mysql --save
希望这个回复能帮助其他陷入同样问题的人。
检查您是否在数据库配置中将同步连接选项设置为 true。使之为假。 它对我有用。
首先,我使用以下方法解决了我的问题: 1/ 在 app.module 中同步 :false 2/nmp 卸载 mysql 3/npm 安装 mysql2 --> 当我 运行 >>npm 运行 start:dev 一切正常