帆-mysql:ER_NO_DB_ERROR:未选择数据库 [英] sails-mysql: ER_NO_DB_ERROR: No database selected
问题描述
尝试使用sails-mysql 时,我收到一个ER_NO_DB_ERROR: No database selected
异常.即使我遵循了所有说明,我也能尽可能地找到.我还研究了相关问题:
When trying to use sails-mysql I get an ER_NO_DB_ERROR: No database selected
exception.
Even though I followed all the instructions I was able to find as closely as possible. I also looked into related issues:
- Sailsjs - 如何使用 mySQL
- https://github.com/balderdashy/sails/issues/632
- http://dustinbolton.com/error-er_no_db_error-no-database-选择/
到目前为止似乎没有任何帮助.
Nothing seemed to help so far.
这就是我正在做的:
我从一个新项目开始:
sails new sql-test
cd sql-test
安装sails-mysql
Installed sails-mysql
sudo npm install sails-mysql
我更改了配置:
// config/adapters.js
module.exports.adapters = {
'default': 'mysql',
mysql: {
module : 'sails-mysql',
host : 'localhost',
port : 3306,
user : 'root',
password : 'superSecret',
database : 'testDB'
}
};
创建模型:
// api/models/User.js
module.exports = {
attributes: {
name: 'string'
}
};
当我尝试从项目的根目录运行它时:
And when I try to run it from the project's root:
sails lift
我得到以下信息:
Logic error in mySQL ORM.
{ [Error: ER_NO_DB_ERROR: No database selected] code: 'ER_NO_DB_ERROR', index: 0 }
error: Hook failed to load: orm (Error: ER_NO_DB_ERROR: No database selected)
error: Error encountered while loading Sails core!
error: Error: ER_NO_DB_ERROR: No database selected
at Query.Sequence._packetToError (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:32:14)
at Query.ErrorPacket (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Query.js:82:18)
at Protocol._parsePacket (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:172:24)
at Parser.write (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Parser.js:62:12)
at Protocol.write (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:37:16)
at Socket.ondata (stream.js:51:26)
at Socket.EventEmitter.emit (events.js:117:20)
at Socket.<anonymous> (_stream_readable.js:746:14)
at Socket.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:408:10)
at emitReadable (_stream_readable.js:404:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)
at TCP.onread (net.js:526:21)
--------------------
at Query.Sequence (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:20)
at new Query (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Query.js:12:12)
at Function.Connection.createQuery (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:48:10)
at Connection.query (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:100:26)
at __DESCRIBE__ (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/lib/adapter.js:121:20)
at afterwards (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/lib/adapter.js:571:7)
at Handshake._callback (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/lib/adapter.js:549:9)
at Handshake.Sequence.end (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:66:24)
at Handshake.Sequence.OkPacket (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:75:8)
at Protocol._parsePacket (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:172:24)
at Parser.write (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Parser.js:62:12)
at Protocol.write (/home/tster/Documents/sandbox/sql-test/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:37:16)
at Socket.ondata (stream.js:51:26)
at Socket.EventEmitter.emit (events.js:117:20)
at Socket.<anonymous> (_stream_readable.js:746:14)
at Socket.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:408:10)
at emitReadable (_stream_readable.js:404:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)
at TCP.onread (net.js:526:21)
<小时>
附加信息:
- sails v0.9.13
- sails-mysql (v0.9.9)
- mysql v14.14 Distrib 5.5.34,用于 debian-linux-gnu (x86_64) 使用 readline 6.2
- 我可以通过命令行连接数据库.
- 使用 node-mysql 时,我能够连接和查询数据库
- sails v0.9.13
- sails-mysql (v0.9.9)
- mysql v14.14 Distrib 5.5.34, for debian-linux-gnu (x86_64) using readline 6.2
- I can connect the the database via command line.
- I am able to connect and query the Database when using node-mysql
Additional Information:
有人能给我一些建议吗?我错过了什么吗?还有什么我应该检查的吗?
Could anybody give me some advice? Am I missing something? Anything else I should check out?
推荐答案
我刚刚遇到了同样的问题.为了让它工作,我必须将适配器配置信息添加到我的模型中,例如/api/models/User.js:
I just hit this same problem. In order to get it to work, I had to add the adapter configuration information to my model, e.g. /api/models/User.js:
module.exports = {
adapter: 'mysql',
config: {
host: 'localhost',
user: 'user',
port:'3306',
// Psst.. You can put your password in config/local.js instead
// so you don't inadvertently push it up if you're using version control
password: 'secret',
database: 'sailstest'
},
attributes: {
firstName: 'STRING'
}
};
查看文档:
http://sailsjs.org/#!documentation/models
我还必须手动添加/api/controllers/UserController.js,因为 generate 函数没有在这个应用程序中添加它,尽管它在我之前制作的测试应用程序中添加了它.
I also had to add /api/controllers/UserController.js manually, as the generate function did not add it on this app, although it did add it on the previous test app I made.
更新:
安装 Sails.js 测试版以获得更好的功能.
Install the Sails.js beta to get better functionality.
npm install sails@beta -g
不仅配置实际上按预期工作(在 config/connections.js 下),ORM 功能还支持关联,而 0.9 版本不支持这些关联.
Not only does the config actually work as expected (under config/connections.js), the ORM features support associations, which are not supported in the 0.9 release.
这篇关于帆-mysql:ER_NO_DB_ERROR:未选择数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!