nodejs-koa-blog icon indicating copy to clipboard operation
nodejs-koa-blog copied to clipboard

根目录启动一直报错SequelizeConnectionError: Unknown database 'boblog'

Open jshengqin opened this issue 6 years ago • 15 comments

初学不太懂 SequelizeConnectionError: Unknown database 'boblog' at Promise.tap.then.catch.err (E:\nodeJs\project\boblog\node_modules\sequelize\lib\dialects\mysql\connection-manager.js:133:19) at tryCatcher (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\util.js:16:23) at Promise._settlePromiseFromHandler (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\promise.js:547:31) at Promise._settlePromise (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\promise.js:604:18) at Promise._settlePromise0 (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\promise.js:649:10) at Promise._settlePromises (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\promise.js:725:18) at _drainQueueStep (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\async.js:93:12) at _drainQueue (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\async.js:86:9) at Async._drainQueues (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\async.js:102:5) at Immediate.Async.drainQueues [as _onImmediate] (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\async.js:15:14) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5)

jshengqin avatar Dec 24 '19 15:12 jshengqin

初学不太懂 SequelizeConnectionError: Unknown database 'boblog' at Promise.tap.then.catch.err (E:\nodeJs\project\boblog\node_modules\sequelize\lib\dialects\mysql\connection-manager.js:133:19) at tryCatcher (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\util.js:16:23) at Promise._settlePromiseFromHandler (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\promise.js:547:31) at Promise._settlePromise (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\promise.js:604:18) at Promise._settlePromise0 (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\promise.js:649:10) at Promise._settlePromises (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\promise.js:725:18) at _drainQueueStep (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\async.js:93:12) at _drainQueue (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\async.js:86:9) at Async._drainQueues (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\async.js:102:5) at Immediate.Async.drainQueues [as _onImmediate] (E:\nodeJs\project\boblog\node_modules\bluebird\js\release\async.js:15:14) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5)

你好,欢迎学习,你看文档,你需要在本地新建好 boblog 数据库。

数据库

启动项目前一定要在创建好 boblog 数据库,以下是执行数据库命令:

登录数据库

$ mysql -uroot -p密码

创建 boblog 数据库

$ CREATE DATABASE IF NOT EXISTS boblog DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

lfb avatar Dec 24 '19 16:12 lfb

是的,我也按照这样执行了,还是不行,我又重启了电脑重新打开,还是不行

jshengqin avatar Dec 24 '19 16:12 jshengqin

我另外命名一个数据库名也是同样的问题,一直找不到啥原因

jshengqin avatar Dec 24 '19 16:12 jshengqin

我另外命名一个数据库名也是同样的问题,一直找不到啥原因

  • 首先,你登上本地数据库,查看是否真的已创建好 boblog 数据库?
  • 然后,你检查一下你的 config/config.js 文件里面的 password 密码是否与你本地数据库的密码一致?
  • 最后都不行的话,可以删掉数据库,再重新执行。

lfb avatar Dec 25 '19 02:12 lfb

是不是数据库版本不一样,连接方式也不一样,我使用sql 命令是可以连接数据库的,也能查到数据库,但是在程序就是连接不上,我的数据库是5.7的

jshengqin avatar Dec 25 '19 03:12 jshengqin

是不是数据库版本不一样,连接方式也不一样,我使用sql 命令是可以连接数据库的,也能查到数据库,但是在程序就是连接不上,我的数据库是5.7的

你有安装 Redis 么?

lfb avatar Dec 25 '19 05:12 lfb

安装了,如果我不启动redis的话,启动程序会报没有启动redis 错误,现在明显不是这个错误

jshengqin avatar Dec 25 '19 06:12 jshengqin

我把错误打印出来错误码是1049 Unable to connect to the database: { SequelizeConnectionError: Unknown database 'boblog' at Promise.tap.then.catch.err (E:\nodeJs\project\boblog1\node_modules\sequelize\lib\dialects\mysql\connection-manager.js:133:19) at tryCatcher (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\util.js:16:23) at Promise._settlePromiseFromHandler (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\promise.js:547:31) at Promise._settlePromise (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\promise.js:604:18) at Promise._settlePromise0 (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\promise.js:649:10) at Promise._settlePromises (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\promise.js:725:18) at _drainQueueStep (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\async.js:93:12) at _drainQueue (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\async.js:86:9) at Async._drainQueues (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\async.js:102:5) at Immediate.Async.drainQueues [as _onImmediate] (E:\nodeJs\project\boblog1\node_modules\bluebird\js\release\async.js:15:14) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) name: 'SequelizeConnectionError', parent: { Error: Unknown database 'boblog' at Packet.asError (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\packets\packet.js:684:17) at ClientHandshake.execute (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\commands\command.js:28:26) at Connection.handlePacket (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\connection.js:449:32) at PacketParser.Connection.packetParser.p [as onPacket] (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\connection.js:72:12) at PacketParser.executeStart (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.Connection.stream.on.data (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\connection.js:79:25) at Socket.emit (events.js:189:13) at addChunk (_stream_readable.js:284:12) at readableAddChunk (_stream_readable.js:265:11) at Socket.Readable.push (_stream_readable.js:220:10) at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17) code: 'ER_BAD_DB_ERROR', errno: 1049, sqlState: '42000', sqlMessage: 'Unknown database 'boblog'' }, original: { Error: Unknown database 'boblog' at Packet.asError (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\packets\packet.js:684:17) at ClientHandshake.execute (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\commands\command.js:28:26) at Connection.handlePacket (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\connection.js:449:32) at PacketParser.Connection.packetParser.p [as onPacket] (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\connection.js:72:12) at PacketParser.executeStart (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.Connection.stream.on.data (E:\nodeJs\project\boblog1\node_modules\mysql2\lib\connection.js:79:25) at Socket.emit (events.js:189:13) at addChunk (_stream_readable.js:284:12) at readableAddChunk (_stream_readable.js:265:11) at Socket.Readable.push (_stream_readable.js:220:10) at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17) code: 'ER_BAD_DB_ERROR', errno: 1049, sqlState: '42000', sqlMessage: 'Unknown database 'boblog'' } }

jshengqin avatar Dec 25 '19 06:12 jshengqin

sqlMessage: 'Unknown database 'boblog'

你进入命令行工具里面输入 show databases;发出来看看,看下是否真的存在这个 数据库

lfb avatar Dec 25 '19 06:12 lfb

C:\Users\win10>mysql -uroot -proot mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 5.7.17-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases -> ; +--------------------+ | Database | +--------------------+ | information_schema | | boblog | | boblogdata | | demo | | express_admin | | expressdb | | mysql | | performance_schema | | shcool_z | | sys | | wechatstudy | +--------------------+ 11 rows in set (0.00 sec)

jshengqin avatar Dec 25 '19 06:12 jshengqin

show databases; 发

C:\Users\win10>mysql -uroot -proot mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 5.7.17-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases -> ; +--------------------+ | Database | +--------------------+ | information_schema | | boblog | | boblogdata | | demo | | express_admin | | expressdb | | mysql | | performance_schema | | shcool_z | | sys | | wechatstudy | +--------------------+ 11 rows in set (0.00 sec)

试下在 https://github.com/LFB/nodejs-koa-blog/blob/master/core/db.js 文件下,修改:

sequelize.sync({force: true})

lfb avatar Dec 25 '19 06:12 lfb

改了,同样的问题,我现在都不用 config.js 直接使用 db.js 连接

const sequelize = new Sequelize('boblog', 'root', 'root', { dialect: 'mysql', host:'localhost', port:'3306', logging: false, timezone: '+08:00', define: {
// create_time && update_time timestamps: true, // delete_time paranoid: true, createdAt: 'created_at', updatedAt: 'updated_at', deletedAt: 'deleted_at', // 把驼峰命名转换为下划线 underscored: true, scopes: { bh: { attributes: { exclude: ['password', 'updated_at', 'deleted_at', 'created_at'] } }, iv: { attributes: { exclude: ['content', 'password', 'updated_at', 'deleted_at'] } } } } }) // 创建模型 sequelize.sync({force: true}) sequelize .authenticate() .then(() => { console.log('Connection has been established successfully.') }) .catch(err => { console.error('Unable to connect to the database:', err) }) module.exports = { sequelize }

jshengqin avatar Dec 25 '19 06:12 jshengqin

改了,同样的问题,我现在都不用 config.js 直接使用 db.js 连接

const sequelize = new Sequelize('boblog', 'root', 'root', { dialect: 'mysql', host:'localhost', port:'3306', logging: false, timezone: '+08:00', define: { // create_time && update_time timestamps: true, // delete_time paranoid: true, createdAt: 'created_at', updatedAt: 'updated_at', deletedAt: 'deleted_at', // 把驼峰命名转换为下划线 underscored: true, scopes: { bh: { attributes: { exclude: ['password', 'updated_at', 'deleted_at', 'created_at'] } }, iv: { attributes: { exclude: ['content', 'password', 'updated_at', 'deleted_at'] } } } } }) // 创建模型 sequelize.sync({force: true}) sequelize .authenticate() .then(() => { console.log('Connection has been established successfully.') }) .catch(err => { console.error('Unable to connect to the database:', err) }) module.exports = { sequelize }

可以换个密码吗?

lfb avatar Dec 25 '19 06:12 lfb

谢谢您,是我电脑上有两个sql 服务,端口被占用了,一直连接到另外一个数据库

jshengqin avatar Dec 25 '19 14:12 jshengqin

谢谢您,是我电脑上有两个sql 服务,端口被占用了,一直连接到另外一个数据库

不用客气,加油:)

lfb avatar Dec 26 '19 00:12 lfb