Skocz do zawartości
  • Cześć!

    Witaj na forum RootNode - aby pisać u nas musisz się zarejestrować, a następnie zalogować. Posty pisane z kont niezarejestrowanych nie są widoczne publicznie.

mysql connector errors


Rekomendowane odpowiedzi

Hej

Od pewnego czasu zmagam się z losowymi crashami aplikacji i już nie wiem co może być przyczyną, poniżej logi z konsoli w momencie zatrzymania się aplikacji

 

 raise errors.InternalError("Unread result found")
mysql.connector.errors.InternalError: Unread result found
Exception in thread Thread-8910:
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/threading.py", line 950, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.9/threading.py", line 888, in run
    self._target(*self._args, **self._kwargs)
  File "/home/xxx/.local/lib/python3.9/site-packages/blinker/base.py", line 266, in send
    return [(receiver, receiver(sender, **kwargs))
  File "/home/xxx/.local/lib/python3.9/site-packages/blinker/base.py", line 266, in <listcomp>
    return [(receiver, receiver(sender, **kwargs))
  File "/home/xxx/pointsbot/main.py", line 149, in on_event
    cursor.execute(f'SELECT points FROM clients WHERE id = {cldbid}')
  File "/home/xxx/.local/lib/python3.9/site-packages/mysql/connector/cursor.py", line 547, in execute
    self._connection.handle_unread_result()
  File "/home/xxxx/.local/lib/python3.9/site-packages/mysql/connector/connection.py", line 1286, in handle_unread_result
    raise errors.InternalError("Unread result found")
mysql.connector.errors.InternalError: Unread result found

 

Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sprawdzałeś odpowiedzi na ten porblem tyczący Pythona:

https://www.google.com/search?client=firefox-b-d&q=mysql++Unread+result+found

https://stackoverflow.com/questions/29772337/python-mysql-connector-unread-result-found-when-using-fetchone

---
All that was required was for buffered to be set to true!
cursor = cnx.cursor(buffered=True)

 

  • Lubię 2
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak, sprawdzałem i niestety nie znalazłem odpowiedniego rozwiązania

 

tutaj mam kawałek kodu aplikacji, która już w sobie ma domyślnie dodane

try:
    cnx = mysql.connector.connect(**data['database'])
except mysql.connector.Error as err:
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print('Something is wrong with your user name or password')
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        print('Database does not exist')
    else:
        print(err)

cursor = cnx.cursor(buffered=True)

 

Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 godzinę temu, szogun napisał:

 

tutaj mam kawałek kodu aplikacji, która już w sobie ma domyślnie dodane

Kawałki kodu nic na dają.

Odnośnik do odpowiedzi
Udostępnij na innych stronach
Napisano (edytowane)
2 godziny temu, mrViperoo napisał:

Może nie ma klienta o podanym ID?

Nie wydaje mi się gdyż ID klienta jest pobierane przy połączeniu

 

48 minut temu, Mion napisał:

Kawałki kodu nic na dają.

Wiesz to nie jest ogólnodostępna aplikacja, mogę jedynie na pw udostępnic kod

P.S poprawka aplikacji może  być odpłatnie jeżeli bd jakiś rażący błąd

Edytowane przez szogun
Odnośnik do odpowiedzi
Udostępnij na innych stronach

No niestety nadal, jeżeli jest ktoś chętny do przeanalizowania aplikacji i jej naprawy odpłatnie to z miłą chęcią się na to piszę (aplikacja nie jest jakaś duza raptem nie całe 400 linijek kodu)

Niestety ja na swoje możliwości wymiękam aby móc to naprawić :)

Odnośnik do odpowiedzi
Udostępnij na innych stronach

A to jest kodowanie wielowątkowe = współbrzmiene  czy "liniowe" w pojedynczym wątku chodzi o zapytania jak są wywoływane   ?

 -- Nie mogłem edytować poprzedniego ---

 

Nie programuje w pythonei, ale obsługa MySQL wygląda "klasycznie":

https://overiq.com/mysql-connector-python-101/executing-queries-using-connector-python/

 

Uniwersalne porady:

- To sprawdź typ danych mając na uwadze, że wartość NULL to nie to samo co "pusty" string ""

- Bufory maja swoja pojemność, wiec przepełnienie możne wywalić błąd
- Połączenia i kursory powinny być otwiera i zamykane

 

import mysql.connector
from mysql.connector.cursor import MySQLCursor

db = mysql.connector.connect(option_files='my.conf', use_pure=True)

cursor = db.cursor()


cursor.execute("select * from city limit 5")

for row in cursor:
    print(row[0], type(row[0]), row[1], type(row[1]) )

cursor.close()
db.close()

 

Sprawdź ja się zachowuje Twój fragment kodu logika od bazy danych  na danych testowych .

 

 

PS Jeśli Twój kod działa wielowątkowo, to już zupełnie inna bajka ;)

  • Lubię 1
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z forum, wyrażasz zgodę na: Warunki użytkowania, Regulamin, Polityka prywatności.