Dodanie użytkownika do MySQL o nazwie „nazwa” @ „%” kończy się niepowodzeniem w przypadku BŁĘDU 1396

9

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.)

Petr Pudlák
źródło
Napotkałem podobny problem, podczas gdy UTWÓRZ / DROP użytkownika, zweryfikowałem wszystkie tabele przyznania informacji o użytkowniku, nie mogłem znaleźć żadnych informacji o użytkowniku, próbowałem odwołać cały dostęp i upuściłem użytkownika, po pewnym czasie operacja działa bez robienia wszelkie zmiany, napisałem swoją szczegółową odpowiedź tutaj rathishkumar.in/2018/10/…
Rathish

Odpowiedzi:

13

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” @ „%”:

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
mysql> CREATE USER 'name' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

Jeśli usuniesz użytkownika i nadal otrzymujesz wiadomość, spróbuj uruchomić FLUSH PRIVILEGES.

Zobacz także to pytanie SO, aby uzyskać dodatkowe informacje.

Redguy
źródło
1

Napotkałem ten sam błąd podczas korzystania z obrazu dokowanego mysql: 5.7. Głównym błędem była próba stworzenia rootużytkownika, który istnieje domyślnie. Więcej informacji: https://github.com/docker-library/mysql/issues/129

Jak podano w powyższym linku, rozwiązaniem było NIE ustawianie MYSQL_USERi MYSQL_PASSWORDzmiennych środowiskowych podczas uruchamiania obrazu dokera.

rahuljain1311
źródło
To mi bardzo pomogło! Nie wiedziałem, dlaczego nie mogę połączyć się z bazą danych w oknie dokowanym i nigdy nie podejrzewałem, że to był powód.
dingo_d