Я получаю «Обнаружен непрочитанный результат» после подключения к старому серверу MySQL при создании курсора в mysql.conPython

Программы на Python
Ответить
Anonymous
 Я получаю «Обнаружен непрочитанный результат» после подключения к старому серверу MySQL при создании курсора в mysql.con

Сообщение Anonymous »

У меня есть два сервера MySQL: древний версии 5.7.17 и более новый 8.0.12. Мой скрипт Python выполняется без каких-либо проблем после подключения к новой базе данных, но выдает исключение «Обнаружен непрочитанный результат» при попытке выполнить какое-либо действие на старом сервере (он подключается).
Эта проблема отличается от любой другой проблемы «Найдено непрочитанный результат», которую я видел, поскольку установка buffered=True, buffered=False или чего-либо еще в курсоре не имеет никакого эффекта. Взгляните на этот пример кода:
try:
database = mysql.connector.connect(
user="...",
password="...",
database="...",
host="...",
port=3306,
autocommit=True
)
except mysql.connection.Error as err:
print(err.msg)
exit(1)

try:
print("A")
cursor = database.cursor() # empty, buffered=True, buffered=False, anything, it doesn't change anything
print("B")
cursor.execute("SELECT * FROM some_table;")
print("C")
data = cursor.fetchall()
except mysql.connector.Error as err:
print("D")
print(err.msg)

В этом случае сценарий аварийно завершает работу при вызове data.cursor(), распечатывая A, D и сообщение об ошибке в консоли. Все остальные проблемы, которые я прочитал, указывают на методы fetchone или fetchall, однако в моем коде они даже не выполняются.
Версии TLS на проблемном сервере TLSv1,TLSv1.1. Версии TLS на хорошем сервере TLSv1,TLSv1.1,TLSv1.2.
Под серверами MySQL я имею в виду MySQL, а не MariaDB.
Что я не сделал: переход с mysql.connector на другую библиотеку Python MySQL — это потребует переписывания всего приложения, а у меня нет на это времени.

Отслеживание по запросу:
Traceback (most recent call last):
File "/mnt/c/Users/{removed}/Desktop/{removed}/{removed}/./dumpToFile", line 155, in
row_count = cm.{removed function name}(attribute, single_day, mdb, sdb)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/c/Users/{removed}/Desktop/{removed}/{removed}/conv_methods.py", line 298, in {removed function name}
mysql_cursor = mdb.cursor(buffered=True)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 868, in cursor
self.handle_unread_result()
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 1132, in handle_unread_result
raise errors.InternalError("Unread result found")
mysql.connector.errors.InternalError: Unread result found


Подробнее здесь: https://stackoverflow.com/questions/792 ... en-creatin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»