2

我能够连接普通的 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});
 });

请帮我找到这个。

4

2 回答 2

1

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

通过示例数据库(https://dev.mysql.com/doc/refman/8.0/en/mysql-shell-tutorial-javascript-download.html)它创建模式并导入它可以,但似乎没有将 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 插件,据我了解,这意味着文档存储功能不可用不支持。

于 2018-11-22T10:49:20.763 回答
0

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

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

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

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

于 2018-06-13T10:47:34.213 回答