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