问题标签 [mysql-x-devapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
777 浏览

node.js - 如何在 AWS RDS 上配置 MySQL 文档存储

我是 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,但它仍然无法连接。

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

0 投票
1 回答
272 浏览

php - PHP MySQL X DevAPI Collection::existsInDatabase() 方法无法识别带有附加列的集合

根据PHP 文档,该existsInDatabase()方法旨在确定数据库中是否存在 Collection 的实例(作为 SchemaObject aka 表)。但是只有当它的表模式完全符合使用该方法创建时的模式时,它才会认为 Collection 存在Schema::createCollection(),例如。恰好 2 列称为doc_id

这是由于 PHP 模块过于严格导致的错误吗?

这是一个演示(取决于mysql_xdevapi PHP 模块 ...

首先,使用 MySQL 在您的数据库中创建一个名为“people”的集合(取自JavaScript/Python 示例中 MySQL 的 world_x.sql 脚本):

其次,创建一个名为“people”的集合,与上面非常相似,但_json_schema省略了列:

第三,使用 PHP 的createCollection()方法创建一个名为“animals”的集合:

现在,使用 PHP 的existsInDatabase()方法检查 3 个集合:

根据 MySQL 文档,所有这 3 个都是有效的集合,但上面的 PHP 代码仅将“人”和“动物”识别为存在。

作为进一步的实验,使用 MySQL 将任何随机命名的列添加到名为“animals”的集合(通过 PHP 创建)并重新执行脚本以查看它现在如何认为它不存在。

现在,如果您使用$schema->getCollections()$schema->getTables()您将看到它animals被归类为表而不是集合。删除该列,它会再次跳回。在引擎盖下,这是模块决定 Collection 是否“存在”的方式。

我怀疑 PHP 模块可能过于严格。这是一个问题,因为它将您的数据库模式与特定语言紧密耦合。例如,如果我想构建一个 PHP 脚本来与最初通过 JavaScript 填充的现有 MySQL 文档存储进行交互,它可能会出现错误,因为可能_json_schema在某些/所有集合中存在额外的列(或其他一些列) .

我认为有其他列是合法的doc_id因为我没有找到相反的规范。我可以想象一个非常真实的用例,created_at在 Collection 上有一个 datetime 列。

或者,我是否真的发现了不是 PHP 模块而是 MySQLs 文档的问题?该_json_schema列是否是早期版本的遗留问题,现在应该删除?集合表的定义现在是否已在所有语言中标准化,并且它们必须严格按照指定的那两列来定义?

MySQL 含糊不清,但 PHP 很严格,这一切都有些蓬松。

任何帮助表示赞赏。如果一致认为存在错误,我将向维护人员报告错误。

0 投票
1 回答
188 浏览

mysql - 使用 SSL 和 X 协议的 NodeJS mysql/xdevapi '访问被拒绝'

我正在尝试使用 X 协议和 SSL 连接到我的 mysql 服务器。
为了连接到数据库,我使用 MySQL x devapi for NodeJs(mysql/xdevapi)。MySQL 服务器和我的 nodejs 应用程序都在同一台机器上运行。但是,每次我尝试建立连接时,都会出现以下错误:

起初我以为我的密码错误或我的证书无效,但使用
mysql -u username -p --ssl-ca=/etc/certs/ca.pem --ssl-cert=../res/certs/mysql/client-cert.pem --ssl-key=../res/certs/mysql/client-key.pem
登录我没有收到错误。

除此之外,我还授予我的用户对所有数据库和表的所有权限,以确保缺少权限不是连接失败的原因。
我能想到的唯一可能是验证服务器证书时出错,即使openssl verify -CAfile ca.pem server-cert.pem返回server-cert.pem: OK.

要连接到数据库,我使用以下用 TypeScript 编写的代码

也许我错过了一个非常重要的步骤,但目前我不知道是什么导致了这个问题,尽管我已经阅读了 StackOverflow 和其他页面上的多个答案。

0 投票
1 回答
618 浏览

mysql - Mysql 8 启用插件 X

几天前,我在 digitalocean 上创建了 mysql 集群(默认情况下它从端口 25060 开始)。当我安装 MySQL Connector/Node.js 并尝试与默认端口建立连接时,它继续出错说:

“错误:服务器连接未使用 X 协议。确保您连接到正确的端口并使用 MySQL 5.7.12(或更高版本)服务器实例。”

经过一些研究,我了解到要使用 mysql 的 X devApi,我应该连接端口 33060(我的集群根本不使用),但不幸的是,我的集群上禁用了 mysqlx 插件,这让我很困惑,因为我知道 mysql8默认启用它

证明mysqlx被禁用

我的问题是,有什么办法可以激活 mysqlx 插件?

0 投票
1 回答
85 浏览

javascript - mysql-xdevapi getCollections 承诺返回值

我一直在尝试在我的数据库模式中输出集合数组。假设我的会话有效,我会得到一个我认为正常的 Promise{} 输出。

但如果我试图获得承诺中的价值

它返回我这些会话回调函数

0 投票
1 回答
121 浏览

c# - 如何在 C# 中使用 mysql xdevapi 设置 DateTime

我正在尝试使用 MySqlX.XDevAPI 插入带有 DATETIME 字段的行。无论我尝试什么,我都会得到这个神秘的信息:

令牌位置 0 处的预期令牌类型 IDENT

我试过字符串格式:

dt.ToString("yyyy-MM-dd HH:mm:ss")

我尝试过 UTC 秒格式:

((DateTimeOffset)dt).ToUnixTimeSeconds();

我还尝试将 System.DateTime 实例作为值传递...没有任何效果,而且我找不到任何有关如何执行此简单任务的文档。

什么是正确的格式?

0 投票
1 回答
38 浏览

mysql - How can I set the options for a MySQL Connector/Python X DevAPI connection?

How can I set the "--local-infile[={0|1}]" option for a mysqlx connection?

My python code looks the following:

0 投票
2 回答
129 浏览

oracle - 如何结合使用 Oracle 云基础设施 MYSQL DB 和 XDev API?

所以我在 OCI 上创建了一个 MYSQL DB 并可以通过 SSH 连接到它,我已经设置了所有入口规则、用户等。我在主机中输入了什么:“....”:字段javascript代码?(而不是本地主机)。

由于连接设置为 SSH,我是否必须在 OCI 中执行其他任何操作,或者我可以在公共子网设置中将其设置为新的入口规则吗?

谢谢你的帮助。

0 投票
1 回答
303 浏览

c++ - MySQL 连接器/C++ 8 X 插件已禁用

我正在使用 c++ 开发一个服务器应用程序,它将连接到MySQL Serverusing MySQL Connector/C++ 8.0.

服务器已X plugin禁用,我无法更改。 https://dev.mysql.com/doc/refman/8.0/en/x-plugin-disabling.html

可以使用 ? 连接到该服务器MySQL Connector/C++ 8.0

我在文档中什么也没找到。我试图将会话连接字符串中的协议从 to 修改,mysqlx://tcp://我的配置仅支持mysqlx.

我缺少一些东西,连接只能使用MySQL Connector/C++ 1.x

我收到的错误是CDK Error: unexpected message. 我可以成功连接到本地 MySql 数据库实例。

0 投票
1 回答
112 浏览

python - mysqlx python连接器NoSQL无法插入日期

我正在使用 mysqlx XDevAPI for python (NoSQL)。我无法在表格中插入日期。

我收到一个错误:

我假设这与日期/日期时间格式有关,但我不确定如何找到标记 19 或 72 是什么。如果我尝试插入一个字符串或 int,我会得到同样的错误。