python - 一种使用 python MySQLdb 连接器禁用 SSL 的方法
问题描述
使用带有 python 连接器的 SSL 打开连接会给我以下错误:
MySQLdb.connect(host='host',user='user,passwd='xxx',db='xxx',) OperationalError:(2026,“SSL 连接错误:ASN:未知密钥 OID 类型”)
当我使用 bash mysql 命令时也是如此:
mysql -p -u 用户 -h 主机 输入密码: 错误 2026 (HY000):SSL 连接错误:ASN:未知密钥 OID 类型
我发现的唯一方法是使用 --ssl-mode=DISABLED
mysql -p -u 用户 -h 主机 --ssl-mode=DISABLED 输入密码: 欢迎使用 MySQL 监视器。命令以 ; 结尾 或\g。
有什么方法可以让我使用 python 连接器来模仿它吗?我在 Ubuntu 16.04 和 python 3.5.2 上使用 mysql v 5.7.26。
解决方案
在 python 中不使用 SSL 连接到 mysql/mariaDB:
import mysql.connector
from mysql.connector import Error
mysql_config = {
'user': 'DB-user',
'password': 'userpassword',
'host': 'localhost',
'database': 'your-DB-name',
'port': '3306',
'ssl_disabled': True
}
try:
cnx = mysql.connector.connect(**mysql_config)
if cnx.is_connected():
print('connected to database')
except Error as e:
print("mysql DB connection error")
print(e)
另请参阅完整文档:Mysql 连接器/Python 连接参数。
如果您想通过 mysqlx 进行连接,请参阅 mysqlx入门示例。
推荐阅读
- java - 如何在 Firestore Android 中获取子集合的文档 ID
- reactjs - 用数百个 URL 调用 cache.addAll()?
- java - 在 Selenium TestNG 中,我想在多个会话中同时执行相同的测试用例。我应该在xml中添加什么属性?
- excel - 将数据透视表转换为交叉引用表
- python - 我收到一个 AttributeError - Python GUI Programming with Tkinter 作者:Alan D Moore
- python - Django 序列化程序根据外键关系列表的一侧显示不同的字段
- python-3.x - Python TypeError:模块对象不可调用
- javascript - 如何使用字典对数组进行排序?[Javascript]
- javascript - 如何显示
- 元素的内容在一行中?
- spring - Spring Boot 休息 API