MySQL Error 1449 a pitomý phpMyAdmin


Honza Javorek

Upozornění! Tento článek vyšel před více než 2 lety. Můžete si jej přečíst v rámci zkoumání minulosti, ale přepokládejte, že dnes se Honza již nemusí s obsahem ztotožňovat.

Tak se mi stalo, že jsem nahrál dump databáze na localhost a ona vyhodila asi takovýto error:

There is no ‚root‘@‚%‘ registered

Jeho číselné označení si přečtěte v titulku. Pátral jsem pátral a nakonec jsem zjistil, že příčin může být více a zjistit o tom nejde skoro nic. Prima. Každopádně můj problém byl způsobený tím, že v databázi byly pohledy (VIEW) a ty mají nastaveno určité oprávnění. Je to kvůli bezpečnosti atd. – viz manuál, no každopádně když si to tam nastavíte špatně, tak máte smůlu. Při tvorbě VIEW máte možnost zadat SQL SECURITY jako DEFINER nebo INVOKER. Někdy se může hodit to první, tedy přesné nastavení uživatele na serveru, ale pro normální přenos kamkoliv jinam bez omezení je asi lepší INVOKER, což by měl být ten, kdo pohled spouští. Zajímavá diskuse k tématu je zde.

Ale já přeci nic nenastavoval :| . Mám čistý dump z phpMyAdmina! No, to je sice hezké, ale phpMyAdmin s těmi VIEW moc neumí a přiřazuje každému nějaký defaultní DEFINER, který si vygeneruje (v mém případě 'root'@'%'). Ten samozřejmě na jiném PC vůbec neexistuje. V phpMyAdminu mi to ani nešlo změnit, musel jsem to přepsat přímo v SQL a potom se to rozjelo. No asi mám nějaký starý phpMyAdmin, říkám si, takže stahuju a zkouším nový s myšlenkou, že to snad už dopilovali.

No, a světe div se, sice má více možností práce s VIEW, ale kazí export úplně stejně jako ten starý. Nikde nevidím nastavení tohoto omezení – ani v nabídkách pro pohledy, ani při exportu. Ach jo, takže ruční práce a dávat si pozor… Nic jiného nezbývá :( .


Honza Javorek

Honza je programátor. Od roku 2011 buduje českou komunitu kolem jazyka Python. V současnosti pomáhá hlavně s propagací aktivit, jako jsou PyLadies, Pyvo, nebo PyCon CZ. Přes den jej najdete v Apiary, kde se stará o Dredd, framework na testování API. Sem tam ho můžete potkat, jak přednáší na srazu nebo na konferenci.




Komentáře