帆-mysql:ER_NO_DB_ERROR:未选择数据库 [英] sails-mysql: ER_NO_DB_ERROR: No database selected

查看:80
本文介绍了帆-mysql:ER_NO_DB_ERROR:未选择数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试使用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:

到目前为止似乎没有任何帮助.

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 时,我能够连接和查询数据库

  • Additional Information:

    • 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
    • 有人能给我一些建议吗?我错过了什么吗?还有什么我应该检查的吗?

      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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆