【问题标题】:Strongloop mysql connector ER_NO_DB_ERROR: No database selectedStrongloop mysql连接器ER_NO_DB_ERROR:未选择数据库
【发布时间】:2015-10-10 14:40:16
【问题描述】:

我用 nodejs 和 strongloop 做了一个网站。我使用了mysql连接器并在Strongloop Arc中测试了连接。连接正常。我使用 arc 工具(发现模型)创建了模型。也还可以。

但是当我打开 Strongloop API Explorer 并进行测试以获取数据时,我总是得到错误:

“ER_NO_DB_ERROR:未选择数据库”。

【问题讨论】:

  • 可以分享一下datasources.json的内容吗?
  • { "db": { "name": "db", "connector": "mysql" }, "dbAuction": { "host": "localhost", "port": 3306, “数据库”:“拍卖”,“密码”:“”,“名称”:“dbAuction”,“连接器”:“mysql”,“用户”:“root”} }
  • 我正在使用 dbAuction
  • 您是否检查过 dbAuction 数据库是否已使用所需的表创建?

标签: mysql node.js strongloop


【解决方案1】:

您是否确认您的模型已连接到 dbAuction 而不是 db? 使用 arc 添加模型时,'datasource' 应该是 'dbAuction'。

您也可以查看 'server/' 目录下的 model-config.json。名为“dataSource”的属性属于模型名称,如

"modelname" : {
  "dataSouce":"dbAuction"
  ...
},
 ...

【讨论】:

    【解决方案2】:

    这是model-config.json

    {
      "_meta": {
        "sources": [
          "loopback/common/models",
          "loopback/server/models",
          "../common/models",
          "./models"
        ],
        "mixins": [
          "loopback/common/mixins",
          "loopback/server/mixins",
          "../common/mixins",
          "./mixins"
        ]
      },
      "User": {
        "dataSource": "db"
      },
      "AccessToken": {
        "dataSource": "db",
        "public": false
      },
      "ACL": {
        "dataSource": "db",
        "public": false
      },
      "RoleMapping": {
        "dataSource": "db",
        "public": false
      },
      "Role": {
        "dataSource": "db",
        "public": false
      },
      "newModel": {
        "dataSource": "db",
        "public": true
      },
      "Biedingen": {
        "dataSource": "dbAuction",
        "public": true
      },
      "Kavel": {
        "dataSource": "dbAuction",
        "public": true
      },
      "Gebruikers": {
        "dataSource": "dbAuction",
        "public": true
      },
      "Message": {
        "dataSource": "dbAuction",
        "public": true
      },
      "Veilingen": {
        "dataSource": "dbAuction",
        "public": true
      },
      "Sourcemessage": {
        "dataSource": "dbAuction",
        "public": true
      },
      "Veilingenkavels": {
        "dataSource": "dbAuction",
        "public": true
      },
      "Veilingsoorten": {
        "dataSource": "dbAuction",
        "public": true
      }
    

    和 datasources.json

    {
      "db": {
        "name": "db",
        "connector": "mysql"
      },
      "dbAuction": {
        "host": "localhost",
        "port": 3306,
        "database": "auctions",
        "password": "",
        "name": "dbAuction",
        "connector": "mysql",
        "user": "root"
      }
    }
    

    【讨论】:

      【解决方案3】:

      由于我的声誉太低,我无法添加评论。 我建议你可以改变 'mysql' 在

      "db": {
          "name": "db",
          "connector": "**mysql**"
      

      在启动时进入“内存”,因为“db”对某些模型有用,而您更改错误导致“db”无法正常工作,这可能会导致此问题。

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2019-12-27
        • 1970-01-01
        • 2017-11-03
        • 1970-01-01
        • 2012-12-06
        • 2013-11-24
        • 2015-06-13
        相关资源
        最近更新 更多