Właśnie próbowałem dodać nowego użytkownika do MySQL przy użyciu
CREATE USER 'name'@'%' IDENTIFIED BY '...'
Jednak kończy się niepowodzeniem z następującym błędem:
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
Dodanie użytkownika tylko dla hosta lokalnego działa dobrze:
CREATE USER 'name'@'localhost' IDENTIFIED BY '...'
Nie mam pojęcia, co może być problemem. Byłbym wdzięczny za wszelkie pomysły.
(Używam mysql Ver 14.14 Distrib 5.1.66
.)
Odpowiedzi:
Zgodnie z dokumentacją, jeśli zwolnisz @ nazwę hosta (czyli nazwę UTWÓRZ UŻYTKOWNIKA), MySQL zinterpretuje go tak, jakby miał @ '%'. Podany komunikat o błędzie sugeruje, że w systemie jest już „nazwa użytkownika” @ „%”:
Jeśli usuniesz użytkownika i nadal otrzymujesz wiadomość, spróbuj uruchomić FLUSH PRIVILEGES.
Zobacz także to pytanie SO, aby uzyskać dodatkowe informacje.
źródło
Napotkałem ten sam błąd podczas korzystania z obrazu dokowanego mysql: 5.7. Głównym błędem była próba stworzenia
root
użytkownika, który istnieje domyślnie. Więcej informacji: https://github.com/docker-library/mysql/issues/129Jak podano w powyższym linku, rozwiązaniem było NIE ustawianie
MYSQL_USER
iMYSQL_PASSWORD
zmiennych środowiskowych podczas uruchamiania obrazu dokera.źródło