【问题标题】:Connecting to external Mysql database from AWS lambda (back end of Alexa skill) returns "Access denied for user" message从 AWS lambda(Alexa 技能的后端)连接到外部 Mysql 数据库返回“用户拒绝访问”消息
【发布时间】:2020-04-22 11:37:31
【问题描述】:

我正在用 Javascript 编写一个 Alexa lambda 函数来连接到我的外部数据库。我已经使用相同的用户名和密码成功访问了该数据库。我已经从笔记本电脑的 noded_modules 文件夹中上传了 mysql 代码。这是Javascript代码:

        var mysql = require('mysql');

        var con = mysql.createConnection({
          host: "www.oryxtech.net",
          user: "",
          password: "" 
        });

        con.connect(function(err) {
          if (err) throw err;
          console.log("Connected!");
        });

这是来自 lambda 控制台的错误消息:

2020-01-03T23:08:10.885Z    1100009f-24bf-4980-a2e1-27044988eb9d    Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'oryxtech_sideE'@'ec2-3-85-146-115.compute-1.amazonaws.com' (using password: YES)
    at Handshake.Sequence._packetToError (/var/task/mysql/lib/protocol/sequences/Sequence.js:47:14)
    at Handshake.ErrorPacket (/var/task/mysql/lib/protocol/sequences/Handshake.js:123:18)
    at Protocol._parsePacket (/var/task/mysql/lib/protocol/Protocol.js:291:23)
    at Parser._parsePacket (/var/task/mysql/lib/protocol/Parser.js:433:10)
    at Parser.write (/var/task/mysql/lib/protocol/Parser.js:43:10)
    at Protocol.write (/var/task/mysql/lib/protocol/Protocol.js:38:16)
    at Socket.<anonymous> (/var/task/mysql/lib/Connection.js:91:28)
    at Socket.<anonymous> (/var/task/mysql/lib/Connection.js:525:10)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    --------------------
    at Protocol._enqueue (/var/task/mysql/lib/protocol/Protocol.js:144:48)
    at Protocol.handshake (/var/task/mysql/lib/protocol/Protocol.js:51:23)
    at Connection.connect (/var/task/mysql/lib/Connection.js:119:18)
    at mysqlDB.init (/var/task/mysqlDB.js:17:13)
    at getWelcomeResponse (/var/task/index.js:64:19)
    at onLaunch (/var/task/index.js:263:5)
    at exports.handler (/var/task/index.js:328:13)

是我做错了什么,还是我遗漏了某个步骤?提前感谢您的帮助。

【问题讨论】:

    标签: mysql aws-lambda alexa


    【解决方案1】:

    用户oryxtech_sideE 似乎没有被授予从主机ec2-3-85-146-115.compute-1.amazonaws.com 访问数据库的权限。请同样确认。

    您可以授予用户访问主机的权限

    GRANT ALL ON *.* to 'oryxtech_sideE'@'ec2-3-85-146-115.compute-1.amazonaws.com' IDENTIFIED BY 'password'; 
    

    或任何主机:

    GRANT ALL ON *.* to 'oryxtech_sideE'@'%' IDENTIFIED BY 'password'; 
    

    参考: Allow all remote connections, MySQL

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 2015-12-26
      • 2017-07-15
      • 1970-01-01
      • 2012-03-12
      相关资源
      最近更新 更多