MySQL: Rozwiązywanie problemów

Typowe problemy i rozwiązania dla MySQL

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie MySQL cloud, które zapewnia wiele korzyści, w tym:

  • Nieograniczone połączenia i transfery.
  • Włączony interfejs webowy phpMyAdmin.
  • Łatwe aktualizacje za pomocą jednego kliknięcia.
  • Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.

Oszczędzaj czas i upraszczaj swoje życie: wypróbowanie rozwiązania MySQL cloud hosting Stackhero zajmuje tylko 5 minut!

Jeśli napotkasz timeouty podczas korzystania z phpMyAdmin, może to być spowodowane obsługą dużej ilości danych. Ponieważ phpMyAdmin działa na PHP, może mieć trudności z długimi żądaniami lub dużymi eksportami danych. Do zarządzania bardziej złożonymi zapytaniami warto rozważyć użycie interfejsu wiersza poleceń MySQL lub klienta niewebowego.

MySQL 8 domyślnie używa systemu uwierzytelniania caching_sha2_password. Podczas pracy ze starszymi bibliotekami klienckimi możesz napotkać błąd: "Authentication plugin 'caching_sha2_password' cannot be loaded". Aby to rozwiązać, możesz zmienić domyślną metodę uwierzytelniania na MySQL native password.

W panelu Stackhero przejdź do sekcji konfiguracji MySQL i wybierz "MySQL native password" jako wtyczkę uwierzytelniania. To ustawienie wpływa na użytkownika root i wszystkich nowo utworzonych użytkowników.

Dla istniejących użytkowników (z wyjątkiem użytkownika root) możesz wykonać następujące polecenia za pomocą interfejsu wiersza poleceń MySQL lub phpMyAdmin:

USE mysql;
ALTER USER '<userToUpdate>'@'%' IDENTIFIED WITH mysql_native_password BY '<userPassword>';
FLUSH PRIVILEGES;

Jeśli napotkasz błąd "ERROR 2026 (HY000): SSL connection error: unknown error number", często oznacza to, że twój klient nie obsługuje nowoczesnych wersji TLS. Instancje MySQL Stackhero są skonfigurowane do obsługi wyłącznie aktualnych protokołów i szyfrów TLS dla zwiększonego bezpieczeństwa.

Ten błąd może wystąpić, jeśli twój klient próbuje użyć TLS v1.1, który jest przestarzały i nieobsługiwany przez nowoczesne wersje MySQL i MariaDB. Aby rozwiązać ten problem, może być konieczna aktualizacja klienta MySQL do wersji obsługującej najnowsze protokoły TLS.

Jeśli przypadkowo zmienisz uprawnienia, zmienisz hasło lub usuniesz użytkownika "root", możesz zrestartować instancję MySQL. Spowoduje to automatyczne odtworzenie użytkownika root z poprawnym hasłem i uprawnieniami.

Gdy dane są usuwane z tabeli MySQL, zajmowane przez nie miejsce na dysku nie jest natychmiast odzyskiwane. Aby odzyskać to miejsce, możesz wykonać następujące polecenie:

OPTIMIZE TABLE <table>;

Ten proces tworzy tymczasową tabelę, przenosi do niej dane, a następnie zastępuje oryginalną tabelę. Podczas optymalizacji tabela będzie zablokowana i tymczasowo niedostępna. Czas trwania tej blokady i całkowity czas wymagany zależą od rozmiaru tabeli. Ponieważ operacja ta jest zasobożerna, zaleca się jej zaplanowanie w okresach niskiej aktywności serwera, aby zminimalizować wpływ na wydajność i dostępność.