【问题标题】:Sails can not connect to mySqlSails 无法连接到 mySql
【发布时间】:2014-12-10 17:02:53
【问题描述】:

在一个全新的风帆项目上,我添加了:

localMysql: {
    adapter: 'sails-mysql',
    host: 'localhost',
    user: 'homestead',
    password: 'secret',
    database: 'sails'
},

关于 config.connections.js,并且:

connection: 'localMysql',
migrate: 'alter'

在 config.models.js 上。在 api/models/User.js 上设置了一个用户模型:

// api/models/User.js
module.exports = {

    attributes: {
        appid: {
          type: 'string'
        },
        uid: {
            type: 'string'
        },
        hid: {
            type: 'string'
        },
        params: {
            type: 'string'
        }
    }
}

跑步时,帆升起,我得到:

error: A hook (`orm`) failed to load!
error: Error (E_UNKNOWN) :: Encountered an unexpected error
: Could not connect to MySQL:
Error: connect ECONNREFUSED
    at afterwards (/home/vagrant/sails/track/node_modules/sails-mysql/lib/connections/spawn.js:75:13)
    at /home/vagrant/sails/track/node_modules/sails-mysql/lib/connections/spawn.js:40:7
    at Pool.<anonymous> (/home/vagrant/sails/track/node_modules/sails-mysql/node_modules/mysql/lib/Pool.js:47:16)
    at Handshake.Sequence.end (/home/vagrant/sails/track/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:78:24)
    at Protocol.handleNetworkError (/home/vagrant/sails/track/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:282:14)
    at PoolConnection.Connection._handleNetworkError (/home/vagrant/sails/track/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:303:18)
    at Socket.emit (events.js:95:17)
    at net.js:440:14
    at process._tickDomainCallback (node.js:463:13)

同时,在我运行sails的同一个文件夹上,我可以通过以下方式成功连接到mysql(sails数据库当前为空):

mysql --user=homestead --password=secret --host=localhost --database=sails

sails 和 mysql 都在一个 vagrant box 中运行。

有什么建议吗?

【问题讨论】:

  • MySQL 是否在默认端口上运行?如果没有,您还必须在连接配置中设置port

标签: mysql sails.js


【解决方案1】:

我将“localhost”更改为“127.0.0.1”,它对我有用。

【讨论】:

  • 意思一样
【解决方案2】:

你试过这个方法吗?

https://sailsjs.com/documentation/reference/configuration/sails-config-datastores

    // config/datastores.js
    module.exports.datastores = {
      default: {
        adapter: require('sails-mysql'),
        url: 'mysql://root:squ1ddy@localhost:3306/my_dev_db_name',
      }
  
  };

【讨论】:

    【解决方案3】:

    您的风帆配置没有问题。我复制了代码并在最后进行了测试。确保您对尝试访问的数据库拥有所有必要的权限。仅仅能够连接到数据库并不意味着您拥有所有必要的权限。以 root 身份登录 mysql 执行以下查询后尝试 sails lift

    GRANT ALL PRIVILEGES ON sails.* TO 'homestead'@'%' WITH GRANT OPTION;
    

    【讨论】:

      【解决方案4】:

      我遇到了同样的错误。然后,我刚刚在 mysql 中创建了一个数据库,并在您的情况下使用指定的名称(即sails)。并且服务器启动成功!

      【讨论】:

        猜你喜欢
        • 2016-01-16
        • 2017-06-21
        • 2014-04-09
        • 2015-11-14
        • 2018-01-29
        • 2022-01-13
        相关资源
        最近更新 更多