c# - mysql.data.dll - max_user_connections osiąga maksymalną wartość, jak temu zaradzić?

0

Witam serdecznie. Uruchomiłem domenę, bazę danych i serwer FTP na hostingu cba.pl plan PRO. Po fakcie doczytałem w regulaminie, że w bazie danych SQL wartość max_user_connections wynosi 15 i nie da się tego zmienić. Przy działaniu jednej lub kilku usług aktualizujących wpisy w bazie danych wszystko działa w porządku. Jednak w tym momencie uruchomionych jest około 15 usług pobierających dane co minutę oraz 15 usług pobierających dane co 10 minut. Dla każdej usługi dostaję exception:
Exception C# NetFramework 4.7.2 biblioteka mysql.data.dll
**MySqlException **- Authentication to host xxx.cba.pl for user xxx using method mysql_native_password failed with message: User xxx has exceeded the max_user_connections resource (current value: 15)
Wyjątek podczas logowania do phpMyAdmin na stronie cba.pl: Kontekst błędu pozostaje ten sam.

Każda usługa używa tych samych danych logowania do bazy danych. To moja pierwsza taka aplikacja i nie wiem jak to ugryźć :(

  1. Wykupić domenę na innym hostingu, gdzie wartość max_user_connections będzie wyższa?
  2. Jakieś inne rozwiązanie?

Nie rozumiem też o co chodzi z tym, że podczas zapytania mam wartość 0 przy max_user_connections
screenshot-20200526081851.png

A tutaj wartość sesji: 15
screenshot-20200526081948.png

1

Z tego co wyczytałem to wszystko wskazuje na to, że te max_user_connections tyczy się jednego usera. Jesteś w stanie dla każdej usługi stworzyć innego użytkownika MySQL?

0

@AdamWox: Nauczę się dodawać użytkowników i zmienię w kodzie, tymczasem znasz jakiś hosting, gdzie nie ma tyle obostrzeń co tu?
screenshot-20200526082819.png
Gdyż 15000 zmian na godzinę to dla mnie za mało :( Ewentualnie da się udostępnić połączenie z lokalną bazą danych?

0

Wydaje mi się to być mało prawdopodobne, że są takie obostrzenia, ale z drugiej strony widziałem już sporo kombinacji ze strony usługodawcy...

  1. Co ty takiego robisz, że 15000 zmian w bazie danych to za mało?
  2. Czy to przypadkiem też nie tyczy się per user?
  3. Czym się różni liczba zmian w bazie danych od ilości zapytań do bazy danych? Update to "zmiana w bazie", czy "zapytanie"?
  4. Udało ci się przekroczyć te 15k zmian w bazie?
0

Szukałem głębszych informacji na forum cba.pl, jednak nie potrafię ich znaleźć ani w regulaminie, ani dokumentacji. Dodawanie użytkownika dla każdej usługi utrudnia proces aktualizacji aplikacji, zastanawiam się nad stworzeniem lokalnej bazy danych i otworzenie portu dla tego połączenia, ale czy to będzie właściwe podejście? Gdyż wolałbym aby wszystkie usługi łączyły się z poziomu jednego usera

1

Ja nie wiem co twój system robi, samo 15 usług pobierających dane co minutę i kolejne 15 co 10 minut to jest już dużo. Najwyraźniej jedna usługa nie może robić tego wszystkiego co 30 osobno. Na te 4 pytania wyżej musisz sobie sam odpowiedzieć i wyciągnąć wnioski, czy problem leży po stronie hostingu, czy twojego projektu pierdyliarda usług.

0

Na jednym komputerze mam dwie usługi. komputerów jest kilkanascie. Czym może być spowodowane, że usługodawca zezwala na logowanie dwóch użytkowników po 15 razy, a jednego użytkownika 30 razy już nie? Bo nie potrafię tego rozkminic

1

Domyślam się, że ma to coś wspólnego z wątkami i działaniem MySQL. Jeden wątek połączony 30 razy to nie to samo co dwa wątki po 15? Nie wiem, nigdy tego nie drążyłem, wypowiadam się biorąc to na logikę ;-)

0

Czy wątpię, aby administracja zwiększyła mi limit jednocześnie zalogowanych użytkowników. Pozostaje znalezienie hostingu który nie nadaje takich ograniczeń. Siedzicie w tym z pewnością dłużej niż ja, możecie podsunąć coś pewnego?

2

@AdamWox: miałeś rację. Problem leżał po stronie usługi. Cykl odświeżania danych wykonywał około 5 zapytań. Z każdym zapytaniem łączyłem się z bazą danych i po wykonaniu zapytania rozłączałem. Tak więc każda usługa wykonywała 5 logowań w ciągu jego cyklu. Poprawiłem to i wszystko działa, nawet szybciej niż wcześniej. Dziękuję :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1