The documentation you are viewing is for Dapr v1.12 which is an older version of Dapr. For up-to-date documentation, see the latest version.
MySQL 绑定规范
配置
要设置 MySQL 绑定,请创建一个类型为 bindings.mysql
的组件。 请参阅本指南,了解如何创建和应用绑定配置。
MySQL 绑定在内部使用Go-MySQL-驱动程序 。
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
namespace: <NAMESPACE>
spec:
type: bindings.mysql
version: v1
metadata:
- name: url # Required, define DB connection in DSN format
value: <CONNECTION_STRING>
- name: pemPath # Optional
value: <PEM PATH>
- name: maxIdleConns
value: <MAX_IDLE_CONNECTIONS>
- name: maxOpenConns
value: <MAX_OPEN_CONNECTIONS>
- name: connMaxLifetime
value: <CONNECTILN_MAX_LIFE_TIME>
- name: connMaxIdleTime
value: <CONNECTION_MAX_IDLE_TIME>
Warning
以上示例将密钥明文存储, 更推荐的方式是使用 Secret 组件, 这里。元数据字段规范
字段 | 必填 | 绑定支持 | 详情 | 示例 |
---|---|---|---|---|
url | 是 | 输出 | 以数据源名称 (DNS) 格式表示数据库连接。 请参阅 此处 SSL 详细信息 | "user:password@tcp(localhost:3306)/dbname" |
pemPath | 是 | 输出 | PEM 文件的路径。 用于SSL 连接 | "path/to/pem/file" |
maxIdleConns | 否 | 输出 | 最大空闲连接数。 大于 0 的整数 | "10" |
maxOpenConns | 否 | 输出 | 最大打开连接数。 大于 0 的整数 | "10" |
connMaxLifetime | 否 | 输出 | 最长连接生存期。 持续时间字符串 | "12s" |
connMaxIdleTime | 否 | 输出 | 最大连接空闲时间。 持续时间字符串 | "12s" |
Ssl 连接
如果您的服务器需要 SSL,则连接字符串必须以 &tls=custom
结尾,例如:
"<user>:<password>@tcp(<server>:3306)/<database>?allowNativePasswords=true&tls=custom"
您必须使用完整的PEM文件路径替换 <PEM PATH>
。 如果你使用 运行在 Azure 上的 MySQL 请查阅 Azure 关于SSL数据库连接的文档,来了解有关如何下载必要凭证的信息。 与 MySQL 的连接至少需要1.2版本及以上的 TLS。
绑定支持
该组件支持以下操作的 输出绑定:
exec
query
close
执行
exec
操作可用于 DDL 操作(如表创建),以及 INSERT
、 UPDATE
、 DELETE
仅返回元数据的操作(例如受影响的行数)。
请求
{
"operation": "exec",
"metadata": {
"sql": "INSERT INTO foo (id, c1, ts) VALUES (1, 'demo', '2020-09-24T11:45:05Z07:00')"
}
}
响应
{
"metadata": {
"operation": "exec",
"duration": "294µs",
"start-time": "2020-09-24T11:13:46.405097Z",
"end-time": "2020-09-24T11:13:46.414519Z",
"rows-affected": "1",
"sql": "INSERT INTO foo (id, c1, ts) VALUES (1, 'demo', '2020-09-24T11:45:05Z07:00')"
}
}
查询
query
操作用于 SELECT
语句,该语句以行值数组的形式返回元数据和数据。
请求
{
"operation": "query",
"metadata": {
"sql": "SELECT * FROM foo WHERE id < 3"
}
}
响应
{
"metadata": {
"operation": "query",
"duration": "432µs",
"start-time": "2020-09-24T11:13:46.405097Z",
"end-time": "2020-09-24T11:13:46.420566Z",
"sql": "SELECT * FROM foo WHERE id < 3"
},
"data": "[
[0,\"test-0\",\"2020-09-24T04:13:46Z\"],
[1,\"test-1\",\"2020-09-24T04:13:46Z\"],
[2,\"test-2\",\"2020-09-24T04:13:46Z\"]
]"
}
关闭
最后, close
操作可用于显式关闭数据库连接并将其返回到池中。 此操作没有任何响应。
请求
{
"operation": "close"
}
请注意,MySQL绑定本身不会阻止SQL注入,就像任何数据库应用程序一样,在执行查询之前验证输入。
相关链接
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.