5

我是 AWS RDS 和 MySQL 文档存储的新手。

我已经创建了一个 lambda (NodeJS 4.3) 和一个具有默认端口 3306 的 RDS MySQL 实例。我已经通过 MySQL shell 启用了本文档中提到的 X 插件,并成功安装了 MySQL 文档存储所需的插件。

我的 lambda 导入xdevapi (@mysql/xdevapi)包并尝试在端口 33060 上连接 MySQL RDS 实例,因为 xdevapi 使用 33060 作为默认端口。

但是当我尝试测试我的 lambda 时,它无法连接。因为,xdevapi使用默认端口 33060。但我的 MySQL 默认端口是 3306。所以,我在安全组中添加了自定义规则以允许端口 33060 入站。然后,我尝试测试 lambda,但它仍然无法连接。

请建议我在这里遗漏什么。

4

3 回答 3

4

简短的回答是你不能在 mysql RDS 中使用 X 插件。

阅读AWS RDS 官方中的Amazon RDS 不支持的 MySQL 功能部分,它说不支持X 插件,这就是RDS 不提供任何配置来为其配置端口的原因。

X Plugin实现了一个不同的协议,称为X Protocol进行通信,所以它需要暴露在不同的端口(除了 mysql 连接端口),它的默认端口是33060。连接 url 将是这样的mysqlx://localhost:33060

我还必须使用 mysql Document Store,所以我在 EC2 上安装了 mysql 8,它与他们的X DevAPI配合得很好。

于 2020-04-26T10:58:21.240 回答
0

有点像这个的副本。简短的回答是:您可能无法在 RDS 上使用 MySQL 文档存储。检查链接的线程以获取更多详细信息。

于 2018-06-13T10:53:20.347 回答
0

看起来该getSession方法需要一个port选项:

xdevapi.getSession({
    host: 'localhost',
    port: 3306,
    dbUser: 'root',
    dbPassword: ''
})
于 2017-01-20T19:31:22.777 回答