设置一个我想要与中央 MySQL 数据库通信的新服务器,使用 TLS 连接来确保安全
按照如下步骤this我已经能够为我的 MySQL 服务器设置 TLS,我已经创建了几个能够从任何主机 (%) 登录的用户,并且需要 SSL 连接
+------------+-----------+----------+
| user | host | ssl_type |
+------------+-----------+----------+
| testuser | % | ANY |
+------------+-----------+----------+
我可以通过使用 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)
当尝试使用 require-tls 访问我的服务器时,我收到以下错误pymysql.err.OperationalError: (1045, "Access denied for user 'testuser'@'desktop.example.com' (using password: YES)")
我的其他发现表明该错误是由以下原因引起的:
无效的用户名/密码组合,或者该主机禁止连接。不过,我知道我可以从该主机建立连接,如 CLI 所示。