小编bra*_*k44的帖子

无法使用 PyMySQL 与远程 MySQL 服务器建立 TLS TCP 连接,其他工具可以使用

设置一个新服务器,我想使用 TLS 连接与中央 MySQL 数据库进行通信以确保安全

按照这样的步骤,我已经能够为我的 MySQL 服务器设置 TLS,我已经创建了几个能够从任何主机 (%) 登录的用户,并且需要 SSL 连接

+------------+-----------+----------+
| user       | host      | ssl_type |
+------------+-----------+----------+
| testuser   | %         | ANY      |
+------------+-----------+----------+
Run Code Online (Sandbox Code Playgroud)

我可以通过使用 HeidiSQL 或 MySQL CLI 工具等工具进行连接来在任何主机上确认这一点 例如:mysql -u testuser -p -h mysql_server_IP这将启动 TLS 连接,如 \s 所确认的这排除了我在本论坛和其他论坛上看到的大多数问题,即由主机设置为 localhost 引起的。

访问本地数据库时,以下工作正常。当连接到非 TLS 远程数据库服务器时,它也可以正常工作。

import pymysql.cursors

connection = pymysql.connect(host=host,
                             user=user,
                             password=password,
                             db=db,
                             cursorclass=pymysql.cursors.DictCursor)
Run Code Online (Sandbox Code Playgroud)

当尝试使用 require-tls 访问我的服务器时,我收到以下错误 pymysql.err.OperationalError: (1045, "Access denied for user 'testuser'@'desktop.example.com' (using password: YES)")

我的其他发现表明该错误是由以下原因引起的:无效的用户名/密码组合,或者该主机禁止连接。不过,我知道我可以从该主机建立连接,如 CLI 所示。

python ssl pymysql

2
推荐指数
1
解决办法
7960
查看次数

标签 统计

pymysql ×1

python ×1

ssl ×1