2006, «Ошибка соединения SSL: неизвестный номер ошибки» - PullRequest
0 голосов
/ 04 апреля 2020

Я использую Anaconda и python3.7 и пытаюсь подключиться к удаленной базе данных, используя следующий код:

import MySQLdb
myDB = MySQLdb.connect(host="xxxxx", port=3306, user="xxx",password="xxxx",db="xxxx")

, но получаю следующую ошибку:

  File "C:\Users\zanto\anaconda3\lib\site-packages\MySQLdb\connections.py", line 208, in __init__
    super(Connection, self).__init__(*args, **kwargs2)

OperationalError: (2006, 'SSL connection error: unknown error number')

Я пробовал 2 пользователей в mysql, один из которых использовал %, а другой - localhost, но я все еще получаю ту же ошибку.

1 Ответ

0 голосов
/ 05 апреля 2020

Это была проблема библиотеки mySQLdb.

Я установил pymysql библиотеку через anaconda и теперь она работает!

Мой новый код:

import pymysql.cursors
connection = pymysql.connect(host='xxxx',port=3306,user="xxxx",password="xxxx",db="xxxx", cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:
        sql="SELECT * FROM Table WHERE Field = 'value'"
        cursor.execute(sql)
        results = cursor.fetchall()
        #print (results) #if you remove the comment you will get the query result as a dictionary
        for record in results:
            record_line = " ".join('{0}{1}'.format(field,value) for field,value in record.items())
            print(record_line)

finally:
    connection.close()

Дополнительная информация : курсор позволяет Python коду выполнить команду MySQL в сеансе базы данных. Курсор создается методом connection.cursor (): они связаны с соединением в течение всего времени жизни, и все команды выполняются в контексте сеанса базы данных, заключенного в соединение.

Курсор. Метод execute () выполняет запрос в базе данных MySQL. Метод cursor.fetchall () возвращает результаты запроса в виде списка, который содержит записи в виде словарей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...