Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych Administracja serwerem i bezpieczeństwo

DROP USER 'anna'@'localhost'; W języku SQL wydano kwerendę, niestety jej wykonanie nie powiodło się i wystąpił błąd: #1396 - Operation DROP USER...

DROP USER 'anna'@'localhost';
W języku SQL wydano kwerendę, niestety jej wykonanie nie powiodło się i wystąpił błąd: #1396 - Operation DROP USER failed for 'anna'@'localhost'. Powodem takiego zachowania bazy danych może być
A. nieznane polecenie DROP USER.
Źle. DROP USER to standardowe polecenie MySQL i MariaDB.
B. brak użytkownika anna w bazie.
Dobrze. Serwer nie może usunąć konta, którego nie ma, i zgłasza błąd #1396.
C. nieprawidłowa składnia polecenia DROP USER.
Źle. Błąd składni ma osobny kod #1064; tu składnia jest poprawna.
D. zbyt słabe hasło konta anna.
Źle. DROP USER nie podaje hasła, więc jego siła nie ma znaczenia.

Błąd #1396 oznacza, że operacja na koncie użytkownika nie powiodła się z powodu stanu kont, a nie składni. Przy DROP USER najczęstsza przyczyna to brak konta: serwer nie może usunąć użytkownika, którego nie ma. Konto identyfikuje para nazwa i host, więc istniejące konto 'anna'@'%' nie zostanie znalezione przez zapis 'anna'@'localhost'.

Istniejące konta sprawdza się zapytaniem SELECT user, host FROM mysql.user;. Aby uniknąć błędu w skrypcie, używa się DROP USER IF EXISTS 'anna'@'localhost';. Ten sam kod błędu pojawia się przy CREATE USER, gdy konto już istnieje - komunikat zawsze nazywa operację, która się nie powiodła.

Hasło nie ma znaczenia przy usuwaniu konta: polecenie DROP USER w ogóle go nie podaje. Siła hasła bywa sprawdzana przy tworzeniu konta albo zmianie hasła, a wtedy serwer zgłasza inny błąd, mówiący wprost o niespełnionych wymaganiach.

DROP USER jest standardowym poleceniem MySQL i MariaDB, więc nie może być nieznane. Gdyby serwer go nie rozpoznał, zgłosiłby błąd składni, a nie błąd wykonania operacji.

Składnia polecenia jest poprawna: nazwa i host w apostrofach połączone znakiem @ oraz średnik na końcu. Błąd składni ma w MySQL własny kod (#1064) i komunikat „You have an error in your SQL syntax”. Komunikat #1396 informuje, że polecenie zostało zrozumiane, ale nie dało się go wykonać - w tym przypadku dlatego, że użytkownika anna nie ma w bazie.

Warto czytać nazwę operacji w komunikacie.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.