问题标签 [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.
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,但它仍然无法连接。
请建议我在这里遗漏什么。
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 很严格,这一切都有些蓬松。
任何帮助表示赞赏。如果一致认为存在错误,我将向维护人员报告错误。
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 和其他页面上的多个答案。
javascript - mysql-xdevapi getCollections 承诺返回值
我一直在尝试在我的数据库模式中输出集合数组。假设我的会话有效,我会得到一个我认为正常的 Promise{} 输出。
但如果我试图获得承诺中的价值
它返回我这些会话回调函数
c# - 如何在 C# 中使用 mysql xdevapi 设置 DateTime
我正在尝试使用 MySqlX.XDevAPI 插入带有 DATETIME 字段的行。无论我尝试什么,我都会得到这个神秘的信息:
令牌位置 0 处的预期令牌类型 IDENT
我试过字符串格式:
dt.ToString("yyyy-MM-dd HH:mm:ss")
我尝试过 UTC 秒格式:
((DateTimeOffset)dt).ToUnixTimeSeconds();
我还尝试将 System.DateTime 实例作为值传递...没有任何效果,而且我找不到任何有关如何执行此简单任务的文档。
什么是正确的格式?
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:
oracle - 如何结合使用 Oracle 云基础设施 MYSQL DB 和 XDev API?
所以我在 OCI 上创建了一个 MYSQL DB 并可以通过 SSH 连接到它,我已经设置了所有入口规则、用户等。我在主机中输入了什么:“....”:字段javascript代码?(而不是本地主机)。
由于连接设置为 SSH,我是否必须在 OCI 中执行其他任何操作,或者我可以在公共子网设置中将其设置为新的入口规则吗?
谢谢你的帮助。
c++ - MySQL 连接器/C++ 8 X 插件已禁用
我正在使用 c++ 开发一个服务器应用程序,它将连接到MySQL Server
using 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 数据库实例。
python - mysqlx python连接器NoSQL无法插入日期
我正在使用 mysqlx XDevAPI for python (NoSQL)。我无法在表格中插入日期。
我收到一个错误:
我假设这与日期/日期时间格式有关,但我不确定如何找到标记 19 或 72 是什么。如果我尝试插入一个字符串或 int,我会得到同样的错误。