首页 > 解决方案 > 一种使用 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。

标签: pythonmysqlsslmysql-python

解决方案


在 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入门示例。


推荐阅读