【问题标题】:How to configure node js datasource.json in aws linux machine如何在 aws linux 机器中配置节点 js datasource.json
【发布时间】:2017-05-04 04:35:35
【问题描述】:

您好,我已经使用 nodejs 和 loopback 创建了示例应用程序。什么时候 我尝试使用“db”内存来工作。当我添加 lb 数据源时 抛出mysql错误。请帮助我如何解决它。

datasource.json

{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "mysql": {
    "host": "ec2-52-35-183-50.us-west-2.compute.amazonaws.com",
    "port": "3307",
    "url": "",
    "database": "medola",
    "password":"xxyyxx@123",
    "name": "mysql",
    "user": "root",
    "connector": "mysql"
  }
}

堆栈跟踪:

Connection fails: Error: connect ECONNREFUSED 172.31.24.147:3307 It will be retried for the next request. events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: connect ECONNREFUSED 172.31.24.147:3307
    at Object.exports._errnoException (util.js:1018:11)
    at exports._exceptionWithHostPort (util.js:1041:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
    --------------------
    at Protocol._enqueue (/home/ec2-user/medola/node_modules/mysql/lib/protocol/Protocol.js:141:48)
    at Protocol.handshake (/home/ec2-user/medola/node_modules/mysql/lib/protocol/Protocol.js:52:41)
    at PoolConnection.connect (/home/ec2-user/medola/node_modules/mysql/lib/Connection.js:130:18)
    at Pool.getConnection (/home/ec2-user/medola/node_modules/mysql/lib/Pool.js:48:16)
    at MySQL.connect (/home/ec2-user/medola/node_modules/loopback-connector-mysql/lib/mysql.js:89:17)
    at Object.initializeDataSource [as initialize] (/home/ec2-user/medola/node_modules/loopback-connector-mysql/lib/mysql.js:43:28)
    at DataSource.setup (/home/ec2-user/medola/node_modules/loopback-datasource-juggler/lib/datasource.js:352:19)
    at new DataSource (/home/ec2-user/medola/node_modules/loopback-datasource-juggler/lib/datasource.js:121:8)
    at Registry.createDataSource (/home/ec2-user/medola/node_modules/loopback/lib/registry.js:355:12)
    at dataSourcesFromConfig (/home/ec2-user/medola/node_modules/loopback/lib/application.js:440:19)
    at EventEmitter.app.dataSource (/home/ec2-user/medola/node_modules/loopback/lib/application.js:235:14)
    at /home/ec2-user/medola/node_modules/loopback-boot/lib/executor.js:190:9
    at /home/ec2-user/medola/node_modules/loopback-boot/lib/executor.js:281:5
    at Array.forEach (native)
    at forEachKeyedObject (/home/ec2-user/medola/node_modules/loopback-boot/lib/executor.js:280:20)
    at setupDataSources (/home/ec2-user/medola/node_modules/loopback-boot/lib/executor.js:180:3)

【问题讨论】:

  • 您是否使用 EC2 实例来托管该 MySQL 数据库?
  • 如果没有其他信息很难回答。根据主机链接,您的 MySQL 数据库位于 EC2 上。您在哪里部署了 Loopback 应用程序?它在另一个 EC2 实例上吗?也许您没有从该实例启用 Internet 访问,或者 MySQL 实例上的端口 3307 已关闭。您能否提供有关您的设置的更多信息?
  • @IvanSchwarz 我已经在 ec2 实例上安装了 xampp,它包含内置的 mysql。当我启动我的 xampp 时,它将在端口 3306 上启动 mysql。在我的本地 pc 中,我安装了相同的用于使用我的数据源配置 db。
  • 您的数据源配置指向端口 3307,但如果 mysql 在该端口上运行,它应该是 3306。第二件事是,如果您从本地计算机定位该端口,则必须在 EC2 实例上打开 3306 端口。还要确保您的 MySql 服务器接受远程连接。
  • @A.Z.是的,当它不起作用时。我只是手动将端口从 3306 默认端口更改为 3307 端口。我允许我的 aws 实例上的所有流量。我能够通过 phpmyadmin 通过 EC2 链接连接到 mysql。只有代码无法通过 datasource.json 代码进行连接。我还对 mysql 配置进行了更改以允许远程连接

标签: mysql node.js xampp loopbackjs loopback


【解决方案1】:

请确保您在 IAM 角色中设置了正确的权限。 http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2014-12-19
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多