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

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

CREATE USER 'anna'@'localhost' IDENTIFIED BY '54RTu8';
W języku SQL wydano kwerendę, niestety jej wykonanie nie powiodło się i wystąpił błąd: #1396 - Operation CREATE USER failed for 'anna'@'localhost'. Powodem takiego zachowania bazy danych może być
A. istnienie użytkownika anna w bazie.
Dobrze. Konto o tej samej nazwie i hoście już istnieje, więc drugiego nie da się utworzyć.
B. zbyt słabe hasło dla konta anna.
Źle. Słabe hasło daje inny błąd, opisujący wymagania hasła, a nie #1396.
C. nieznane polecenie CREATE USER.
Źle. CREATE USER to standardowe polecenie MySQL i MariaDB.
D. nieprawidłowa składnia polecenia CREATE USER.
Źle. Błąd składni ma kod #1064; tu składnia jest poprawna.

Pytanie z egzaminu CKE, czerwiec 2023 (arkusz EE.09-SG-23.06).

Błąd #1396 „Operation CREATE USER failed” pojawia się, gdy konto o podanej nazwie i hoście już istnieje. Para 'anna'@'localhost' jest jednoznacznym identyfikatorem konta w MySQL, więc drugie konto z tą samą parą nie może powstać, nawet z innym hasłem.

Rozwiązania są trzy: sprawdzić konta zapytaniem SELECT user, host FROM mysql.user;, użyć CREATE USER IF NOT EXISTS, które przy istniejącym koncie zgłasza tylko ostrzeżenie, albo zmienić hasło istniejącego konta przez ALTER USER. Ten sam błąd zdarza się po nieudanym DROP USER, gdy w tabelach uprawnień zostały ślady konta - wtedy pomaga FLUSH PRIVILEGES;.

Zbyt słabe hasło to realny powód odrzucenia konta, gdy na serwerze działa komponent sprawdzający hasła (validate_password). Serwer zgłasza wtedy jednak inny błąd, który mówi wprost o niespełnionych wymaganiach hasła. Do tego hasło 54RTu8 zawiera cyfry oraz wielkie i małe litery.

CREATE USER to standardowe polecenie MySQL i MariaDB, dostępne od lat. Polecenie nieznane serwerowi kończy się błędem składni, a nie komunikatem o nieudanej operacji.

Nieprawidłowa składnia ma w MySQL osobny kod #1064 i komunikat „You have an error in your SQL syntax”. Tu składnia jest poprawna: nazwa i host w apostrofach, IDENTIFIED BY z hasłem, średnik na końcu. Komunikat #1396 oznacza, że serwer polecenie zrozumiał, ale nie mógł wykonać - konto anna już istnieje.

Warto więc najpierw przeczytać kod błędu - on wskazuje rodzaj problemu.

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.