问题描述
运行本地实例没问题,但连接到 MysqL RDS AWS 时出现问题,而不是连接到 RDS 私有网络的问题。
这是尝试建立连接时的错误。错误 - 无法 同步数据库。与服务器的连接尝试已中止。 超过了 10000 毫秒的超时时间。
MysqL> SELECT * FROM performance_schema.global_variables WHERE variable_name LIKE 'MysqLx%';
| VARIABLE_NAME | VARIABLE_VALUE |
+| MysqLx_bind_address | * +| MysqLx_connect_timeout | 30 +| MysqLx_idle_worker_thread_timeout | 60 +| MysqLx_max_allowed_packet | 1048576 +| MysqLx_max_connections | 100 +| MysqLx_min_worker_threads | 2 +| MysqLx_port | 33060 +| MysqLx_port_open_timeout | 0
并且插件也处于活动状态,从 sql,show plugins 显示:MysqLx |活跃 |守护进程 | MysqLx.so | GPL |
在 this thread 上引用贡献者。
基于此线程。 Does AWS RDS supports MySQL as document store @ruiquelhas /先生。 Rui Quelhas 似乎建议有一种方法可以基于上面其他人提到的当前 MysqL RDS 设置来启用运行 X 协议的 RDS。
我现有的 MysqL RDS 实例显示禁用了 MysqLx。
在 Node.Js 上使用 MysqL Community RDS 8.0.21 版本和 MysqL/xdevapi 8.0.21。
RDS AWS 似乎使 MysqLx parameters 在数据库启动时不可修改,如图所示。
但是,它们确实允许使用 MysqL 语句安装 new plugin,如图所示
所以我们不能在我的 MysqL 配置文件中设置 MysqLx=1。我们的应用程序的很大一部分是用 MysqLx 编写的,希望有人可以向我们展示解决方法吗? Google SQL doesn't support X Plugin。
解决方法
Kevin,抱歉造成混淆,但在撰写该答案时,Amazon RDS 基于 MySQL 5.7.x 版本,默认情况下未安装 X 插件。但是,这并不意味着您不能启动 MySQL 8.x 并完全禁用 X 插件,似乎确实如此。
根据 Amazon RDS user guide,不支持 X 插件(这就是禁用它的原因)。如果您正在寻找替代 DBaaS,据我所知,Oracle Cloud 上的 MySQL Database Service 可能是唯一支持它的等效替代方案。
免责声明:我是 Node.js 的 MySQL X DevAPI 连接器的首席开发人员