У меня есть два сервера 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
Я получаю «Обнаружен непрочитанный результат» после подключения к старому серверу MySQL при создании курсора в mysql.con ⇐ Python
Программы на Python
1732522007
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79214818/i-get-unread-result-found-after-connecting-to-an-old-mysql-server-when-creatin[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия