it-swarm-eu.dev

Přidání uživatele do MySQL s 'name' @ '%' selže s ERROR 1396

Jen jsem se pokusil přidat nového uživatele do MySQL pomocí

CREATE USER 'name'@'%' IDENTIFIED BY '...'

Selže však s následující chybou:

ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

Přidání uživatele pouze pro localhost funguje dobře:

CREATE USER 'name'@'localhost' IDENTIFIED BY '...'

Nemám ponětí, co by mohlo být problémem. Byl bych vděčný za jakékoli nápady.

(Používám mysql Ver 14.14 Distrib 5.1.66.)

9
Petr Pudlák

Podle docs , pokud vynecháte @ 'hostname' (to je CREATE USER 'name'), MySQL to interpretuje tak, že mělo @ '%'. Chybová zpráva, kterou jste uvedli, naznačuje, že v systému již existuje uživatelské jméno '@'% ':

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'@'%'

Pokud smažete uživatele a stále se vám zobrazí zpráva, zkuste spustit FLUSH PRIVILEGES.

Viz také this SO otázka pro další informace.

13
redguy

Při používání obrázku ukotvitelného panelu mysql: 5.7 jsem čelil stejné chybě. Hlavní chyba se pokoušela vytvořit uživatele root, který ve výchozím nastavení existuje. Další informace: https://github.com/docker-library/mysql/issues/129

Jak je uvedeno ve výše uvedeném odkazu, řešením bylo NENÍ nastaveno MYSQL_USER a MYSQL_PASSWORD v proměnných prostředí při spouštění obrazu doku.

1
rahuljain1311