Znáte vychytávky, které umí správce databáze phpMyAdmin?

Webový databázový nástroj phpMyAdmin je jedněmi zatracován, druhými milován. Pravda je taková, že na něj narazíte vlastně na jakémkoli hostingu a často si jej dáte i na server. Základy práce s ním asi znáte. Co ale nejrůznější vychytávky? Používáte je?

phpMyAdmin je asi nejpoužívanější správce databází ve světě PHP a MySQL. Jeho nevýhodou je, že se skládá z mnoha souborů a pokud potřebujete rychle přistoupit k databázi na hostingu, kde neznáte adresu běžícího phpMyAdmina, tak se poněkud krkolomně instaluje (kdo by kopíroval ty spousty souborů).

Na druhou stranu vám phpMyAdmin pomůže s řadou činností, kdy potřebujete zasáhnout do databáze. Není to hračka pro začátečníky. Neodborné zásahy do databáze nějakého redakčního systému jako jsou Drupal nebo WordPress, mohou mít zásadní dopady na fungování webu.

Rozhraní phpMyAdmina nabízí v levém panelu přehled databází, ke kterým máte po přihlášení přístup a následně seznam tabulek ve vybrané databázi. Vpravo v hlavní části pak najdete výpis dat ve vybrané databázové tabulce a také možnost spouštět SQL příkazy a data v databázových tabulkách měnit, mazat nebo přidávat.

Tip: Pro řadu začátečníků i těch, co se mylně považují za zkušené, znamená absence phpMyAdmina nemožnost správy databáze. To je samozřejmě hloupost. Když znáte přístupové údaje k ní, nebo je vyčtete z konfigurace webu (settings.php u Drupalu nebo wp-config.php u WordPressu), pak vám stačí třeba jednosouborový, ale velice schopný český správce Adminer. Stačí jej nakopírovat do webu. Pro větší úpravy lze využít i třeba desktopového správce databáze. Já si na Macu oblíbil Sequel Pro.

Podívejme se na několik zajímavých funkcí v phpMyAdminovi, které vám možná unikly, nebo je nemáte ve svém nastavení zapnuté.

Přidejte si SQL dotazy mezi oblíbené a rychle je spouštějte

Jednoduchý příkaz SELECT pro výběr položek z databáze, napíšete během pár sekund. Ale například nějaký rozsáhlejší příkaz upravující data v databázi asi budete smolit a ladit docela dlouho a třeba by se vám hodilo mít možnost jej spustit opakovaně.

Já si takto připravil dvojici příkazů pro náhradu řetězce v tělech článků na webu s Drupalem. Pod zadáním dotazu najdete možnost jej uložit do oblíbených tím, že jej nějak označíte a poté dotaz spustíte. Při opakované návštěvě phpMyAdmina se vám na spodu položky SQL nabídne výběr uložených dotazů.

phpMyAdmin s příkazy pro náhradu textu v Drupalu

Abyste oblíbené dotazy v phpMyAdminovi aktivovali, je nutné v konfiguračním souboru phpMyAdmina uvést následující direktivu, případně ji odkomentovat:

$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';

phpMyAdmin

Tip: Konfigurační soubor pro phpMyAdmin najdete v Debianu v umístění /etc/phpmyadmin/config.inc.php

Export relací do PDF

phpMyAdmin dovede vyexportovat relace v databázi do podoby souboru PDF. K tomu, aby vám to nabídl, potřebujete v konfiguračním souboru odkomentovat a aktivovat tyto direktivy:

$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['relation'] = 'pma_relation';

Pak stačí jít po výběru databáze na záložku Úpravy, dole kliknout na odkaz Upravit nebo exportovat relační schéma, naklikat si, co potřebujete a následně zvolit export do PDF.

Popisky sloupečků tabulek

Docela užitečná je možnost doplnit si k názvům sloupečků v databázové tabulce i nějaké poznámky vysvětlující, k čemu daný sloupec slouží. Když se podíváte třeba na databázovou strukturu Drupalu, poznámky jsou tam již vytvořeny.

Abyste mohli poznámky k názvům doplňovat a vidět je, stačí aktivovat direktivu

$cfg['Servers'][$i]['column_info'] = 'pma_column_info';

Historie dotazů

Jakmile máte aktivovánu direktivu $cfg['Servers'][$i]['history'] = 'pma_history';, tak můžete až do odhlášení procházet historii spuštěných SQL dotazů. V hlavním okně phpMyAdmina ji však budete marně hledat. Je potřeba si rozkliknout samostatné okno pro zadávání SQL dotazů, což učiníte zmáčknutím tlačítka se zelenou šipkou.

phpMyAdmin

Sledování změn v databázové tabulce

Co se mi hodně líbí, je sledování změn, ke kterým dojde v tabulce během nějakého období. Abyste mohli sledování aktivovat, je potřeba mít zapnutou direktivu

$cfg['Servers'][$i]['tracking'] = 'pma_tracking';

Nyní můžete jít na do vybrané tabulky v databázi a phpMyAdmin vám zobrazí novou záložku Sledování. Zaklikněte, zda chcete sledovat změny ve struktuře tabulky nebo jen v datech, případně všechno a nastavení uložte vytvořením informace o aktuální verzi tabulky. Poté v ní proveďte nějaké změny a vraťte se sem zpátky, kde budete moci zjistit, jaké změny se udály.

phpMyAdmin

Informace o stavu databáze

Pokud se do phpMyAdmina přihlásíte s potřebným oprávněním, pak ještě předtím, než si vyberete databázi, uvidíte záložky Stav a Procesy. S jejich pomocí se můžete podívat, v jaké kondici je databázový server.

Záložka Stav zobrazí, jak dlouho již server běží od posledního restartu, kolik je v něm současných připojení, jaký je datový provoz, jaké jsou nejčastější typy dotazů, jak jsou nastaveny jednotlivé proměnné a zobrazí různé další statistiky. Na kartě Procesy zase můžete sledovat aktuální procesy pracující s databází a případně je rovnou z phpMyAdmina ukončit.

Tip: pro podrobnější sledování stavu databáze v linuxovém prostředí doporučuji nástroj mtop.

phpMyAdmin v sobě skrývá mnoho zajímavých funkcí, které jste možná zatím nevyužili (co třeba Vizuální návrhář databáze?) a bylo by škoda si o něm myslet, že je to jen pomůcka pro nějaký zápis SELECTu nebo pro import databáze při přenosu webu z jednoho hostingu na druhý.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Marketing Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Profile picture for user Jan Polzer

Tak desktopová aplikace má určitě něco do sebe, leckdy je to pohodlnější. Jen holt chce vzdálený přístup k databázi, což není vždy možné. Ale jak jsem psal, taky mám rád desktopové aplikace pro správu databáze, jako třeba na Macu ten Sequel Pro.

návštěvník

Jen doplním, že minimálně v Debianu je potřeba instalovat mytop a ne mtop.

Profile picture for user Jan Polzer

Jde o totéž? Mytop vidím jako balíček pro Debian, ovšem na jednom serveru, kde mám Debian, mám opravdu mtop, stejně jako v CentOS. otázka je, jestli jsem ho kdysi neinstaloval ze zdrojáku.

návštěvník

Podle úvodní obrazovky mi to přišlo stejný. Mtop podle tohodle umí i explain nad dotazama, ale zdá se mi už nějak mrtvej.
U mytop jsem explain nezkoušel a ani v helpu o tom neni zmínka. Ale zatim jsem si s tim nestačil nějak moc hrát, jelikož jsem se o tom nástroji dověděl až dnes ze článku :) (Díky)

návštěvník

Od doby co znam adminer (http://www.adminer.org/cs/) tak vubec nechapu proc zustavat u phpMyAdminu. S radosti jsem od nej presel k Adminerovi a fakt by me zajimalo, zda phpMyAdmin ma vubec nejakou vyhodu proti Adminerovi..?
Z meho pohledu je Adminer genialni software a nesrovnatelne lepsi nez krkolomny a nedokonaly phpMyAdmin.

Tady je srovnani phpMyAdmin a Adminer: http://www.adminer.org/cs/phpmyadmin/

Profile picture for user Jan Polzer

No, já Adminer vnímám jako rychlého pomocníka pro případy, kdy potřebuji jít do databáze u klienta a nemám čas zjišťovat, jestli má phpMyAdmina, jestli vůbec ví, co to je nebo jestli má přihlašovací údaje. Tohle díky Adminerovi odpadá. Pro základní věci plně vyhovuje.

Důvod, proč je phpMyAdmin skoro na každém hostingu, je fakt, že je dostupný jako snadná instalace v balíčku pro Linux (na Debianu určitě). Jestli je stejně dostupný Adminer, to nevím, spíše bych řekl, že jenom jako stažitelný soubor typu "dělejte si se mnou, co potřebujete".

Pokud se nemýlím, phpMyAdmin zobrazuje různé info o databázi a jejím stavu a vytížení, viz článek, zatímco Adminer ne. Otázka je, kolik lidí to využije. Navíc na hostingu je to stejně většinou blokované.

návštěvník

Adminer je podstatne dostupnejsi tim, ze jej netreba instalovat diky jeho genialnimu vnitrnimu dizajnu.

Opravdu by mne zajimalo, co mu oproti phpMyAdminovi chybi, nebo by chybet mohlo. Naopak phpMyAdmin toho oproti Adminerovi neumi celkem dost a z meho pohledu jsou to dost zasadni veci. Viz. to srovnani na konci predesleho meho postu.

Kdyz to shrnu ze svejo pohledu, tak:
- umi naprosto vsechno a netreba zadneho jineho klienta
- dela to velmi dobre a pohodlne
- netreba jej instalovat a netreba vytvaret zadnou pomocnou databazi, nebo tabulky
- zobrazuje vsechna data (phpMyAdmin ne - tedy i predesle body by tuhle poznamku snesly, ale tohle je dost dulezite asi pro kdekoho)

Je to genialni software! To, ze je to jeden samostatny script, to je jeho dalsi vyznamne plus a ne zadna znamka menecennosti.

Namatlat a vypotit rozsahly a neefektivni kod umi kde kdo, ale udelat projekt, ktery vyznamne prevysuje moloch typu phpMyAdmin a je takhle genialne dostupny a funkcni, to dovede malokdo a evidentne tvurci phpMyAdminu niceho takoveho schopni nebyli.

Nechapu, proc by mel mit Adminer instalacni balik v debianu, nebo kdekoliv, kdyzje tak genialni, ze nepotrebuje z venci nic (tedy ani od instalatoru) a fuinguje vsude.

Muj prvni post byl jen o tom, ze kroutim trochu hlavou a nejde mi to na rtozum, ze proc... Ale tahle odpoved je dost podobna, ale jen s otevrenymi usty :-) Neni pro mne nijak dulezite sirit zde viru v Adminer, ale hodne mne prekvapilo, ze Adminer je "jen takovy ten scriptik kdyz uz nic jineho nei" a ten bordel phpMyAdmin je ta spravna vira... :-O

Navic Adminer lze velmi snadno pouzivat na hostinzich pro bezne usery uplne stejne jako phpMyAdmin. sam ho takto nasazuju pro zakose.

Profile picture for user Jan Polzer

No je prostě vidět, že jste fanoušek Admineru. Jakub Vrána z Vás musí mít opravdovou radost :-) Já proti Admineru taky nic nemám, jak jsem řekl, často jej používám.

Jinak je bezesporu, že Jakub je výborný PHP programátor...

Jinak, výhoda balíčku v Debianu je třeba ta, že se lépe hlídají aktualizace, ona správa systému není jen o tom, něco nakopírovat přes FTP.

návštěvník

No.. mozna jo :-)

Vim co je sprava Debianu. Mam spoustu pocitacu a na zadnem jinem neni nic jineho nez Debian (pokud to neni zrovna virtualni stroj).

Me slo hlavne o to, ze bych to chtel pochopit. Neni podstatne, jestli jsem fanda od Admineru nebo ne. Ja bych opravdu a seriozne chtel pochopit duvody, proc uprednostnit phpMyAdmin pred Adminerem. Vsechny vstupni informace jsem uz vysypal a pokud bys byl prosim tak hodny, tak bych hrozne rad vytezil tuhle informaci.

Vyradil bych predem ty, kteri neznaji Adminer. Takove chapu. Jde mi prave o ty, kteri maji dostatecne srovnani.

Profile picture for user Jan Polzer

No ale já na to nedovedu odpovědět. Nikde v článku netvrdím, že je potřeba jedno nebo druhé upřednostnit. A v podstatě to shrnují hned první dvě věty v perexu. Jedni to mají rádi, druzí ne. Narazí se na něj všude možně. Takže já nejsem zastánce phpMyAdmina a už vůbec nevím, proč je na většině hostingů. To se musíš ptát jinde :-)

Používám obojí v kombinaci s databázovými správci v podobě desktopových aplikací.

Je to možná to samé, jako se ptát lidí, proč používají Internet Explorer.

návštěvník

Zajímalo by mě, zda se u oken řeší nastavení oblíbených SQL dotazů nějak jinak? V konfiguračním souboru jsem sice daný příkaz odkomentovala, ale nic se nezměnilo, tušil by jste v čem je háček??
Děkuji

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
Nové diskuze
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru