使用带有 SSL 的 ODBC (5.1) 连接 MySQL

2024-01-03

我们有一个客户端应用程序,通过 ODBC 连接器(服务器是托管*专用网络服务器)连接到我们的在线 MySQL 数据库 (5.1.44-community-log)。这效果非常好。但是我无法使用 SSL 让它工作。这是我到目前为止所做的:

1.MySQL服务器

我已经让服务器管理器*使用 SSL 设置了 MySQL,这是“证明的”:

mysql> SHOW VARIABLES LIKE '%ssl%';

结果是这样的响应:

+---------------+---------------------------------+
| Variable_name | Value                           |
+---------------+---------------------------------+
| have_openssl  | YES                             |
| have_ssl      | YES                             |
| ssl_ca        | /***/mysql-cert/ca-cert.pem     |
| ssl_capath    |                                 |
| ssl_cert      | /***/mysql-cert/server-cert.pem |
| ssl_cipher    |                                 |
| ssl_key       | /***/mysql-cert/server-key.pem  |
+---------------+---------------------------------+

问题:服务器配置是否正确?我猜这是...

2. 证书

我已经购买了真正的证书(通过我的服务器管理器)。这些位于上面显示的目录中。我还从该目录下载了 client-cert.pem、client-key.pem 和 ca-cert.pem。

3. MySQL 用户 REQUIRE [SSL|X509]

我创建了一个新用户,然后使用 SSL 从任何位置授予其访问权限(用于测试):

GRANT USAGE ON *.* TO 'somevaliduser'@'%' IDENTIFIED BY PASSWORD 'somevalidpass' REQUIRE X509 

4.ODBC客户端

我(刚刚下载并)安装了:mysql-connector-odbc-5.1.8-winx64.msi http://dev.mysql.com/downloads/connector/odbc/(64位)因为我的机器是64位的Windows 7的机器(所以这不是问题所在)。

我创建了一个用户 DSN,像这样配置它(选项卡上没有设置选项),这表明它成功连接到服务器(但不使用 - 也不请求这样做 - SSL)(使用一些有效的用户,但不这样做)需要 SSL):

这样连接就可以建立了,现在尝试使用 SSL。

这是这样配置的,就像我在 MySQL.com 上读到的那样。所以我不能 100% 确定设置的选项是正确的。

正如你所看到的,它会导致错误HY000。打开跟踪(在 ODBC 配置内)也会显示此错误。

谁能给我一个关于如何进行这项工作的提示?即使您只知道解决方案的一部分?


我解决了这个问题。因为我一次尝试了几件事,所以我不知道到底是怎么回事:

  1. 我已经让服务器管理器重新创建了证书:我购买了一些证书,但发现这些证书不能用于对连接进行 SSL 加密。所以现在我使用 OpenSSL 证书。我让他们重新创建了证书4)创建您的客户端....服务器。它们必须是独一无二的。 (正如这里提到的 http://dev.mysql.com/doc/refman/5.0/en/secure-create-certs.html) 心里。
  2. 我想“验证 SSL 证书”复选框仅在您购买证书时适用,并且第三方服务应检查证书的有效性。取消选中该框!
  3. Only fill out the fields:
    • 'SSL 密钥' (c:\path_to\client-key.pem)
    • 'SSL 证书' (c:\path_to\client-cert.pem)
    • 'SSL 证书颁发机构' (c:\path_to\ca-cert.pem)

请注意:

  1. 端口仍然相同(对我来说)。
  2. 正如迈克尔·尼克拉斯提议的那样,日志没有显示任何有用的信息。
  3. 我已打开“使用压缩”,据说可以提高性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用带有 SSL 的 ODBC (5.1) 连接 MySQL 的相关文章

  • 删除、截断或删除以清理 MySQL 中的表

    我正在尝试清理表格 但没有摆脱表格的实际结构 我有一个id自动递增的列 我不需要保留ID号 但我确实需要它来保持其自动递增的特性 我发现了删除和截断 但我担心其中之一会完全删除整个表 从而使未来的插入命令变得无用 如何从表中删除所有记录以便
  • 限制分页页数

    objConnect mysql connect localhost root or die mysql error objDB mysql select db Test strSQL SELECT FROM UserAddedRecord
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • PHP多图像文件上传并存储到文件夹和数据库

    我正在建立一个网站 向夜间狂欢者展示大城市夜总会场所和活动的列表 我正在尝试构建一个后端页面 管理员可以在其中添加俱乐部并输入信息 例如机构名称 位置 相对价格等 当然还有俱乐部的一些图像 每个俱乐部必须至少有一张图像 即主图像 可以有额外
  • 连接 3 三张表

    我有这个图表应该可以解释我的情况 我需要一些关于连接 3 个表的帮助 我不知道如何做这种事情 因此 我可以通过执行以下操作来经历一段检索记录的 while 循环 img src alt Album AlbumID 使用内部联接 http w
  • Python SSL X509:KEY_VALUES_MISMATCH

    Python HTTPS server from http server import HTTPServer SimpleHTTPRequestHandler import ssl https stackoverflow com a 408
  • FormsAuthentication:安全吗?

    Using 表单验证构建成asp net创建一个为经过身份验证的用户创建 cookie 的登录系统非常快速且简单 FormsAuthentication SetAuthCookie uniqueUsername false 与中的一些代码配
  • 无法将 /root/.rnd 加载到 RNG 中

    我想使用 Windows Open SSL 生成服务器证书 当我运行此命令行时 出现此错误 我应该怎么办 Command openssl req new x509 days 3650 key ca key out ca crt Error
  • MySQL SELECT OpenCarts 数据库中的重复行

    只是玩一下 OpenCart DB 看看我是否能学到一些东西 如果我使用以下SELECT结果返回重复的行 SELECT DISTINCT p product id AS pid p model AS modelo SUBSTRING p m
  • 从 CSV 到 MySQL 的换行问题

    我正在将 csv 文件导入 MySQL 除了文件中的换行符之外 一切正常 我的 csv 行之一如下所示 42 E A R Classic Earplugs ear images ear classic jpg 5 Proven size s
  • 性能:cakephp-mysql 中的 UUID 与自动递增

    我正在搜索 cakePHP 生成的 UUID 32 个字符长 是否比自动增量在性能上更快 插入和选择操作的比较 我应该使用 cakePHP 生成的 UUID 还是使用 MySQL 的简单自动增量生成的 UUID 这是我发现的一个案例研究 但
  • 连接两个表而不返回不需要的行

    我的表结构如下所示 tbl users tbl issues userid real name issueid assignedid creatorid 1 test 1 1 1 1 2 test 2 2 1
  • OpenJDK 11 问题 - 客户端在上次 UNWRAP 之前完成握手

    我正在将代码库从 Oracle Java 1 8 0 131 迁移到 OpenJDK 11 0 1 我们有实现 nio ssl 套接字通道的代码 在 Java 8 中 客户端 服务器握手工作正常 在 Java 11 中 客户端在解包来自服务
  • 使用 MySQL 的 CURDATE() 或 PHP 的 date() 更快?

    使用mysql查询是不是更快 SELECT CURDATE as today 或 PHP 语句 curdate date Y m d 同样的答案是否适用于使用date VS MySQL 的NOW and CURTIME 如果您只是执行查询以
  • PDO获取最后插入的ID

    我有一个查询 我想获取插入的最后一个 ID 字段ID是主键并且自动递增 我知道我必须使用这个声明 LAST INSERT ID 该语句适用于如下查询 query INSERT INTO cell place ID VALUES LAST I
  • 56 CONNECT 后收到来自代理的 HTTP 代码 403?

    使用 cUrl 从我的网页生成销售人员线索时 出现 56 在 CONNECT 后从代理接收到 HTTP 代码 403 错误 该网站的 SSL 证书已过期 UPDATED 我的代码如下 curl setopt curl CURLOPT URL
  • SSLHandShakeException 没有适当的协议

    我最近向我的网站添加了 SSL 可以通过 https 访问它 现在 当我的 java 应用程序尝试向我的网站发出请求并使用缓冲读取器从中读取时 它会生成此堆栈跟踪 我没有使用自签名证书 该证书来自 Namecheap 它使用 COMODO
  • 使用 Laravel 和 Eloquent 从表中选择全部

    我正在使用 Laravel 4 设置我的第一个模型 以从名为的表中提取所有行posts 在标准 MySQL 中我会使用 SELECT FROM posts 如何在 Laravel 4 模型中实现这一目标 我的完整模型源代码如下
  • 将 .p12 证书存储在钥匙串中以供稍后使用

    我正在尝试按照 Apple 文档处理此处的客户端 p12 证书 https developer apple com library ios documentation Security Conceptual CertKeyTrustProg

随机推荐