AWS RDS 是不是支持 MySQL 作为文档存储

Posted

技术标签:

【中文标题】AWS RDS 是不是支持 MySQL 作为文档存储【英文标题】:Does AWS RDS supports MySQL as document storeAWS RDS 是否支持 MySQL 作为文档存储 【发布时间】:2017-06-06 23:43:02 【问题描述】:

我能够连接正常的 AWS RDS mysql 实例 (5.7.16)。但是,由于我必须使用 MySQL 作为文档存储,我已经通过安装 mysqlx 插件来配置 MySQL 实例,这是文档存储所必需的。

在此之后,我尝试在同一实例的端口 33060 上连接 MySQL 文档存储,但无法连接。我正在使用 lambda 进行连接,它导入 xdevapi (@mysql/xdevapi) 包并尝试连接端口 33060 上的 MySQL RDS 实例。

但是,我看不到任何错误,因此我只是想知道 AWS RDS 是否支持 MySQL 文档存储。

代码:

 xdevapi.getSession(
   host: process.env.HOSTNAME, 
   port:  process.env.PORT,
   dbUser: process.env.DB_USER, 
   dbPassword:  process.env.DB_PASSWORD
 ).then(function (session) 
    console.log("Connected");
    session.close();
    return callback(null, 'responsne':'connected', statusCode: 200);
 ).catch(function (err) 
     console.log(err.stack);
     return callback(null, 'responsne':err.stack, statusCode: 400);
 );

请帮我找到这个。

【问题讨论】:

如果您看不到错误,则意味着您必须打开错误报告。 我正在使用 .catch() 来捕获任何错误。我试图给一些不可用的端口然后我得到错误。但是,这个 33060 端口我什么都看不到,如果没有问题,它就不会进入。我会用我的代码更新问题。 你为什么使用端口 33060 而不是端口 3306?另外,该端口(3306 或 33060)是否在 RDS 安全组中打开? 【参考方案1】:

由于 MySQL 8.0.11 现在在 AWS 上普遍可用,我们一直在通过 x-plugin 研究文档存储功能。

在示例 DB (https://dev.mysql.com/doc/refman/8.0/en/mysql-shell-tutorial-javascript-download.html) 之后,它会创建架构并将其导入 OK,但似乎没有将 db 对象公开给 mysqlsh。

例如,当我运行时

\use world_x  

连接到它输出的本地主机实例

Default schema set to `world_x`.
Fetching table and column names from `world_x` for auto-completion... Press ^C to stop.

而当连接到 RDS 实例时,我只能得到

Default schema set to `world_x`.

此外,根据https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt,不支持 X 插件,据我了解,这意味着不支持文档存储功能。

【讨论】:

【参考方案2】:

相当晚的答案,但希望它可能有助于在未来澄清类似的问题。由于显然 RDS 运行的是 MySQL 5.7.16,因此默认情况下它不应加载 X 插件(启用文档存储)。

除非您能够提供mysqld 启动选项(在本例中为--plugin-load=mysqlx=mysql.so)或具有客户端访问权限,在这种情况下,您可以按照here 中描述的步骤启用插件,否则您将不走运。

还有可能 RDS 正在运行某种分叉,甚至没有捆绑 X 插件。

此外,Node.js 的 X DevAPI 连接器仅保证支持 MySQL 8.0,因此,尽管您应该能够在更高版本的 MySQL 5.7 中使用它,但存在一些限制。

【讨论】:

以上是关于AWS RDS 是不是支持 MySQL 作为文档存储的主要内容,如果未能解决你的问题,请参考以下文章

创建新的 AWS RDS 实例并导入数据,而不是将 MySQL 版本从 5.6 更新到 5.7

AWS 是不是支持 RDS 实例的 Autoscaling

导入 AWS RDS Aurora 5.7 是不是适用于 v0.11.7?

更改 AWS RDS mysql时区 -摘自网络

AWS RDS MySQL 只读副本滞后问题

RDS 实例之间的 AWS 数据管道 (MySQL)