Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uruchomić hosty mysqladmin na Amazon RDS

W niektórych przypadkach podczas uruchamiania MySQL na Amazon RDS (lub w innym miejscu) może być konieczne FLUSH wszystkie host rekordy z MySQL. Zazwyczaj jest to wymagane, gdy błąd "Host 'host_name' is blocked" wystąpi, co uniemożliwi dodatkowe połączenia z tego konkretnego host_name .

host_name blocked błąd występuje, gdy liczba max_connect_errors określony w konfiguracji MySQL jest przekroczony, co oznacza, że ​​dany host próbował połączyć się zbyt wiele razy bez powodzenia. Jest to środek bezpieczeństwa stosowany przez MySQL, aby zapobiec nieuzasadnionym atakom ze strony hostów/użytkowników, którzy nie mają odpowiednich danych uwierzytelniających, ale czasami może się to zdarzyć przez pomyłkę i może wymagać rozwiązania przez opróżnienie hostów.

Co robią hosty opróżniające?

Z użytkownikiem MySQL z odpowiednimi uprawnieniami wykonuje FLUSH oświadczenie, MySQL może wyczyścić tabele opróżniania, blokady i wewnętrzne systemy pamięci podręcznej w zależności od przekazanych w options . W przypadku FLUSH HOSTS; , MySQL opróżni pamięć podręczną hostów, co w praktyce oznacza, że ​​zapis MySQL o tym, które hosty są aktualnie lub ostatnio połączone, zostanie zresetowany, umożliwiając dalsze połączenia z tych hostów.

Wykonywanie bezpośrednie FLUSH HOST

Chociaż może się okazać, że nie możesz całkowicie połączyć się z MySQL, w niektórych przypadkach możliwe jest, że system „zapisze” gniazdo połączenia, które jest dostępne tylko dla głównego lub root konto.

Dla Amazon RDS , ta nazwa użytkownika jest zwykle dostępna w konsoli zarządzania jako domyślna lub „Nadrzędna”. Spróbuj połączyć się z serwerem MySQL przy użyciu tej podstawowej nazwy użytkownika.

Jeśli możesz się połączyć, opróżnienie hostów jest tak proste, jak uruchomienie FLUSH HOSTS; Instrukcja MySQL:

FLUSH HOSTS;

Powinieneś teraz wyczyścić host_name blocked błąd i móc połączyć się ze standardowym kontem MySQL.

Zdalne opróżnianie hostów za pomocą MySQLAdmin

W przypadku, gdy nie możesz połączyć się z MySQL jako kontem głównym i nadal otrzymujesz blocked błędy, następną opcją jest zdalne połączenie się z serwerem i wykonanie flush polecenie za pomocą mysqladmin narzędzie.

Aby to zrobić, musisz połączyć się z innym Instancja EC2 lub serwer, który ma dostęp do serwera RDS powodujący błąd.

Po połączeniu wykonaj następujące polecenie z odpowiednimi opcjami podstawionymi między <> :

$ mysqladmin -h <RDS_ENDPOINT_URL> -P <PORT> -u <USER> -p flush-hosts

Jeśli się powiedzie, flush-hosts polecenie zostanie wykonane zgodnie z oczekiwaniami i będziesz mógł teraz normalnie połączyć się z MySQL.

Ponowne uruchamianie instancji RDS

Ostatnią opcją, jeśli wszystko inne zawiedzie, jest po prostu zalogowanie się do panelu sterowania zarządzania RDS i ręczne ponowne uruchomienie instancji RDS, która powoduje błąd. To skutecznie zresetuje hosts cache dla Ciebie, choć może to nie być idealne w warunkach produkcyjnych.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zezwalaj na wszystkie połączenia zdalne, MySQL

  2. Jak zainstalować bazę danych MariaDB w Debianie 10?

  3. MySQL a PDO

  4. Klasy zagnieżdżone — CustomRowMapper !! To już nie problem!! - Część 1

  5. NA ZDUPLIKOWANY KLUCZ + AUTO INCREMENT problem mysql