<meta http-equiv='pics-label' content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline EN v2.0" l gen true for "http://interval.cz" r (nz 1 vz 1 lz 1 oz 1 cz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://interval.cz" r (n 0 s 0 v 0 l 0))' />
<p id='prepend'>Jeden z nejlepÜφch, pokud ne nejlepÜφ, nßstroj pro sprßvu databßze je podle mΘho nßzoru phpMyAdmin. Od Φas∙ jednoduchΘho skriptu u₧ ovÜem uÜel dlouhou cestu. Zatφmco d°φve staΦilo nahrßt n∞kolik soubor∙ kamkoli na server a do konfigurace zadat heslo a jmΘno, nynφ je ji₧ zapot°ebφ mnohem vφce, alespo≥ pokud chcete vyu₧φt vÜech mo₧nostφ, kterΘ nov² phpMyAdmin poskytuje.</p>
<p>╚lßnek <a href='http://interval.cz/clanek.asp?article=972' title='Jakel, Milan: PhpMyAdmin - spolehliv² sprßvce pro MySQL'>o instalaci phpMyAdmin</a> u₧ na Intervalu jednou vyÜel a rozhodn∞ neprohloupφte, pokud si ho p°eΦtete, by¥ je ji₧ starÜφho data. V nßsledujφcφm textu se omezφm pouze na velmi struΦn² popis instalace a konfigurace tak, abyste mohli vyu₧φvat vÜech vlastnostφ phpMyAdmin (nßvod je upraven podle verze 2.6-pl2). M∙₧ete si tento Φlßnek t°eba vytisknout a jednotlivΘ body si po provedenφ zaÜkrtßvat.</p>
<div class='list'>
<ol>
<li>Stßhn∞te si instalaΦnφ archiv phpMyAdmin z <a href='http://phpmyadmin.sourceforge.net'>phpmyadmin.sourceforge.net</a>.</li>
<li>Sta₧en² archiv rozbalte do libovolnΘho mφsta na disku</li>
<li>Adresß°, kter² po rozbalenφ vznikl, p°ejmenujte na <samp>phpmyadmin</samp>.</li>
<li>Ve v²Üe zmφn∞nΘm adresß°i vyhledejte soubor <samp>config.inc.php</samp>. P°edpoklßdßm, ₧e phpMyAdmin bude umφst∞n na stejnΘm serveru, na kterΘm b∞₧φ i MySQL, a ₧e mßte prßva administrßtora databßze. Vyhledejte tedy na °ßdku 84 prom∞nnou <samp>$cfg['Servers'][$i]['user']</samp> a zadejte svΘ u₧ivatelskΘ jmΘno pro p°φstup k MySQL. V nßsledujφcφm °ßdku pak musφte do <samp>$cfg['Servers'][$i]['password']</samp> zadat odpovφdajφcφ heslo.</li>
<li>JeÜt∞ ne₧ se pokusφte p°ipojit k databßzi, musφte si zvolit, zda k tomu pou₧ijete starΘ nebo novΘ rozhranφ. Pokud pracujete s PHP5, doporuΦuji vßm pou₧φvat v₧dy nov∞jÜφ verzi rozhranφ, krom∞ jinΘho se tak vyhnete takΘ problΘm∙m s nov∞jÜφmi verzemi databßze MySQL. Chcete-li, na °ßdku 73 najd∞te prom∞nnou <samp>$cfg['Servers'][$i]['extension']</samp> a zm∞≥te jejφ hodnotu na "mysqli".</li>
<li>
Na °ßdku 39 najdete prom∞nnou, kterou je nutno nastavit tak, aby obsahovala absolutnφ cestu ke ko°enovΘ slo₧ce phpMyAdmin, jinak nebude fungovat. Tuto hodnotu m∙₧ete zadat ruΦn∞, nebo ji naplnit dynamicky podle r∙zn²ch nßvod∙ v dokumentaci nebo na f≤rech. Mn∞ se osv∞dΦil nßsledujφcφ zßpis:
M∙₧ete takΘ nechat tuto prom∞nnou prßzdnou. Je mo₧nΘ, ₧e phpMyAdmin automaticky absolutnφ URI detekuje a doplnφ. Pokud se tak stane, doporuΦuji vßm vyhledat prom∞nnou <samp>$cfg['PmaAbsoluteUri_DisableWarning']</samp> a nastavit jejφ hodnotu na "TRUE", aby vßs program neobt∞₧oval nesmysln²mi chybov²mi hlßÜkami. V dalÜφm textu ale budu p°edpoklßdat, ₧e jste pou₧ili v²Üe uvedenou PHP funkci.
</li>
<li>Standardnφm zp∙sobem p°ekopφrujte obsah adresß°e <samp>phpmyadmin</samp> do cφlovΘho adresß°e na serveru.</li>
<li>
Nynφ si v prohlφ₧eΦi otev°ete URL, na kterΘ jste phpMyAdmin umφstili. Abyste mohli vyu₧φt jeho zvlßÜtnφch schopnostφ, kterΘ z Φßsti suplujφ chyb∞jφcφ funkcionalitu MySQL a z Φßsti ji rozÜi°ujφ, musφte z°φdit pomocnou databßzi, kam si phpMyAdmin bude uklßdat provoznφ informace. Do novΘho okna si otev°ete formulß°, na n∞j₧ vede odkaz pod ikonkou s nßpisem "SQL" v levΘ hornφ Φßsti obrazovky. Do textovΘho pole zadejte nßsledujφcφ p°φkaz:
<div class='sample'>
CREATE DATABASE pma_db
</div>
Novß pomocnß databßze se bude jmenovat <samp>pma_db</samp>. Samoz°ejm∞ m∙₧ete pou₧φt jin² nßzev, pak ale musφte upravit nßsledujφcφ SQL p°φkazy. TakΘ vßm doporuΦuji vyhnout se pou₧φvßnφ velk²ch pφsmen, aΦkoli ve vlastnφ dokumentaci i v komentß°φch konfiguraΦnφho souboru se obΦas pou₧φvajφ. Uchrßnφte se tak neΦekan²m problΘm∙m, p°edevÜφm p°i migraci z Windows na Linux.
<br />To vÜak nestaΦφ, musφme jeÜt∞ phpMyAdmin informovat o tom, kde pomocnou databßzi najde a donutit ho pou₧φvat ji. V souboru <samp>config.inc.php</samp> doplnφme do prom∞nnΘ na °ßdku 95 jejφ jmΘno, tedy <samp>$cfg['Servers'][$i]['pmadb'] = 'pma_db';</samp>. ┌pravu provßd∞jte v off-line kopii, novou verzi konfiguraΦnφho souboru nahrajeme na server teprve po dokonΦenφ vÜech operacφ!
<br /><span class='note-author'>Pozn. aut.: Pokud se vßm pomocnß databßze nevytvo°φ, zkuste alternativnφ postup. Z rozbalovacφho menu v levΘm rßmu si vyberte databßzi "test" (nebo libovolnou jinou, ke kterΘ mßte p°φstup) a v pravΘm rßmu nßsledovn∞ klepn∞te na odkaz "SQL". Teprve do tohoto formulß°e zadejte v²Üe uveden² p°φkaz. Nßsledujφcφ p°φkazy pak m∙₧ete zadßvat do stejnΘho okna p°φmo v databßzi "pma_db". Pravd∞podobn∞ jde o n∞jakou menÜφ chybu v aktußlnφ verzi phpMyAdmin, jejφm₧ p°φznakem je mimo jinΘ otevφrßnφ SQL okna do ÜpatnΘho rßmu.</span>
</li>
<li>
V dalÜφm kroku vytvo°φme v pomocnΘ databßzi tabulku bookmark∙ (ulo₧en²ch dotaz∙):
<div class='sample'>
CREATE TABLE `pma_bookmark` (
<br /> `id` int(11) NOT NULL auto_increment,
<br /> `dbase` varchar(255) NOT NULL default '',
<br /> `user` varchar(255) NOT NULL default '',
<br /> `label` varchar(255) NOT NULL default '',
<br /> `query` text NOT NULL,
<br /> PRIMARY KEY (`id`)
<br />) TYPE=MyISAM COMMENT='Bookmarks';
</div>
Do konfiguraΦnφho souboru pak doplnφme jejφ nßzev <samp>$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';</samp>.
</li>
<li>
Jednou z u₧iteΦn²ch vlastnostφ relaΦnφch databßzφ je udr₧ovßnφ p°ehledu o vzßjemn²ch vztazφch dat - relacφch. ProblΘm °eÜφ phpMyAdmin prost°ednictvφm pomocnΘ tabulky relacφ:
<div class='sample'>
CREATE TABLE `pma_relation` (
<br /> `master_db` varchar(64) NOT NULL default '',
<br /> `master_table` varchar(64) NOT NULL default '',
<br /> `master_field` varchar(64) NOT NULL default '',
<br /> `foreign_db` varchar(64) NOT NULL default '',
<br /> `foreign_table` varchar(64) NOT NULL default '',
<br /> `foreign_field` varchar(64) NOT NULL default '',
Op∞t je nutno do konfiguraΦnφho souboru doplnit nßzev tabulky, tak₧e <samp>$cfg['Servers'][$i]['relation'] = 'pma_relation';</samp>.
</li>
<li>
Na °adu p°ichßzφ tabulka, uchovßvajφcφ informace (komentß°e) k jednotliv²m tabulkßm ostatnφch databßzφ:
<div class='sample'>
CREATE TABLE `pma_table_info` (
<br /> `db_name` varchar(64) NOT NULL default '',
<br /> `table_name` varchar(64) NOT NULL default '',
<br /> `display_field` varchar(64) NOT NULL default '',
<br /> PRIMARY KEY (`db_name`,`table_name`)
<br />) TYPE=MyISAM COMMENT='Table information for phpMyAdmin';
</div>
Do konfiguraΦnφho souboru doplnφme <samp>$cfg['Servers'][$i]['table_info'] = 'pma_table_info';</samp>.
</li>
<li>
Nov² phpMyAdmin umφ takΘ vytvß°et PDF strßnky, dφky Φemu₧ si m∙₧ete snadno vyexportovat p°ehlednou mapu struktury svΘho DB projektu. Pot°ebuje k tomu ovÜem dv∞ dalÜφ pomocnΘ tabulky. Prvnφ pomocnß tabulka obsahuje koordinßty jednotliv²ch tabulek pro export do PDF schΘmat:
<div class='sample'>
CREATE TABLE `pma_table_coords` (
<br /> `db_name` varchar(64) NOT NULL default '',
<br /> `table_name` varchar(64) NOT NULL default '',
<br /> `pdf_page_number` int(11) NOT NULL default '0',
<br />) TYPE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output';
</div>
Druhß slou₧φ k uchovßvßnφ konfiguraΦnφch parametr∙ PDF strßnek:
<div class='sample'>
CREATE TABLE `pma_pdf_pages` (
<br /> `db_name` varchar(64) NOT NULL default '',
<br /> `page_nr` int(10) unsigned NOT NULL auto_increment,
<br /> `page_descr` varchar(50) NOT NULL default '',
<br /> PRIMARY KEY (`page_nr`),
<br /> KEY `db_name` (`db_name`)
<br />) TYPE=MyISAM COMMENT='PDF relation pages for phpMyAdmin';
</div>
TakΘ tyto tabulky je nutno aktivovat pat°iΦnou ·pravou konfiguraΦnφho skriptu: <samp>$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';</samp> a <samp>$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';</samp>.
</li>
<li>
Velmi u₧iteΦnou informacφ je popisek sloupce tabulky, zvlßÜt∞ u rozsßhlejÜφch projekt∙, kterΘ nedokß₧eme "udr₧et v hlav∞" nebo na kter²ch spolupracujeme ve v∞tÜφm t²mu. TakΘ zde nabφzφ phpMyAdmin °eÜenφ v podob∞ pomocnΘ tabulky:
<div class='sample'>
CREATE TABLE `pma_column_info` (
<br /> id int(5) unsigned NOT NULL auto_increment,
<br /> db_name varchar(64) NOT NULL default '',
<br /> table_name varchar(64) NOT NULL default '',
<br /> column_name varchar(64) NOT NULL default '',
<br /> `comment` varchar(255) NOT NULL default '',
<br /> mimetype varchar(255) NOT NULL default '',
<br /> transformation varchar(255) NOT NULL default '',
<br /> transformation_options varchar(255) NOT NULL default '',
<br />) TYPE=MyISAM COMMENT='Comments for Columns';
</div>
Tuto tabulku aktivujete pomocφ <samp>$cfg['Servers'][$i]['column_info'] = 'pma_column_info';</samp>. Kdy₧ u₧ ₧ßdnß jinß, prßv∞ tato se oplatφ, nebo¥ obsahuje informace o MIME typu dat a p°φkazy k jejich transformaci. Kouzla, kterß dφky tΘto tabulce phpMyAdmin dokß₧e, vydajφ nejmΘn∞ na <a href='http://interval.cz/clanek.asp?article=3470' title='Mßlek, VilΘm: MIME transformace v phpMyAdmin - vestav∞nΘ funkce'>samostatn² Φlßnek</a>, ne-li na vφcero.
</li>
<li>
UrΦit∞ se vßm bude hodit, kdy₧ si phpMyAdmin zapamatuje n∞kolik naposledy pou₧it²ch SQL dotaz∙, op∞t prost°ednictvφm pomocnΘ tabulky:
<div class='sample'>
CREATE TABLE `pma_history` (
<br /> `id` bigint(20) unsigned NOT NULL auto_increment,
<br /> `username` varchar(64) NOT NULL default '',
<br />) TYPE=MyISAM COMMENT='SQL history for phpMyAdmin';
</div>
Poslednφ pomocnß tabulka se aktivuje pomocφ <samp>$cfg['Servers'][$i]['history'] = 'pma_history';</samp>.
</li>
<li>
Aby mohl phpMyAdmin zaΦφt kouzlit, musφme pro n∞j v MySQL vytvo°it specißlnφho u₧ivatele:
<div class='sample'>
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
</div>
Jak vidφte, v °φdφcφ databßzi "mysql" se vytvo°φ nov² u₧ivatel "pma", kter² mß povoleno k databßzi p°istupovat pouze ze spoleΦnΘho serveru a je identifikovßn heslem "pmapass" (doporuΦuji nahradit vlastnφm, aΦkoli to nenφ nezbytn∞ nutnΘ).
</li>
<li>
U₧ivateli, kterΘho jsme v p°edchozφm kroku vytvo°ili, musφme p°id∞lit pat°iΦnß prßva (pouze ke Φtenφ), aby mohl zφskßvat informace o databßzφch v systΘmu. Jde vlastn∞ o Φty°i za sebou nßsledujφcφ p°φkazy SQL, je vÜak mo₧no je zadat najednou, phpMyAdmin je interpretuje sprßvn∞. Pracujete-li s MySQL 4.0.2 nebo starÜφ, pou₧ijte nßsledujφcφ:
JeÜt∞ musφme phpMyAdmin ud∞lit prßvo spravovat svou vlastnφ pomocnou databßzi:
<div class='sample'>
GRANT SELECT, INSERT, UPDATE, DELETE ON pma_db.* TO 'pma'@'localhost';
</div>
</li>
<li>Op∞t se vrßtφme k naÜφ off-line verzi <samp>config.inc.php</samp>. K plnΘ funkΦnosti pot°ebuje phpMyAdmin zapnutΘ cookies, kter²mi p°enßÜφ n∞kterΘ d∙le₧itΘ informace (v ostatnφch re₧imech bez cookies nejsou vÜechny funkce k dispozici). Auto°i nynφ cookies chrßnφ Üifrovßnφm pomocφ algoritmu BlowFish. Na °ßdku 60 neupravovanΘho souboru (nynφ by to m∞lo b²t Φφslo 63) je prom∞nnß, do kterΘ je nutno zadat vhodnou Üifrovacφ frßzi, rozhodn∞ ne <samp>$cfg['blowfish_secret'] = 'blowfish_secret';</samp>.</li>
<li>
Poslednφm zßsahem do <samp>config.inc.php</samp> bude zm∞na re₧imu pro prßci s databßzφ, Φφm₧ teprve dojde k aktivaci vÜech tak namßhav∞ p°ipraven²ch funkcφ phpMyAdmin:
<li>Nakonec nesmφme zapomenout nov∞ upraven² soubor <samp>config.inc.php</samp> nahrßt na server a p°epsat jφm doΦasnou verzi, kterou jsme pou₧ili pro p°φpravu pomocn²ch tabulek a manipulaci s prßvy k databßzφm.</li>
</ol>
</div>
<p>V tΘto chvφli byste m∞li mφt phpMyAdmin nakonfigurovßn tak, aby pln∞ vyu₧φval vÜech sv²ch p°ednostφ. M∞l by b²t mnohem bezpeΦn∞jÜφ ne₧ p°edchozφ verze a nem∞l by mφt problΘmy s ostr²m nasazenφm na produkΦnφch serverech, provozovan²ch ve vφceu₧ivatelskΘm prost°edφ. Popis vyu₧itφ jednotliv²ch specißlnφch vlastnostφ vÜak dalece p°esahuje rßmec tohoto Φlßnku.</p>
<h3>ProblΘmy s nov∞jÜφmi verzemi MySQL</h3>
<p>MySQL se pom∞rn∞ bou°liv∞ vyvφjφ, co₧ sebou nese °adu problΘm∙. Pou₧itφ phpMyAdmin se t²kß p°edevÜφm novß schopnost MySQL nativn∞ podporovat r∙znΘ znakovΘ sady a jazykovß prost°edφ. Chcete-li t∞₧it z t∞chto zajφmav²ch vlastnostφ, doporuΦuji vßm pou₧φvat v₧dy nejnov∞jÜφ verzi MySQL 4.1.x (momentßln∞ 4.1.6-gamma) a spouÜt∞t ji s parametry <samp>--default-character-set=utf8</samp> a <samp>--default-collation=utf8_general_ci</samp>. Tφm se zßrove≥ vyhnete mnoha pozd∞jÜφm komplikacφm.</p>
<p>Po spuÜt∞nφ phpMyAdmin si jako jazyk u₧ivatelskΘho rozhranφ zvolte "Czech (cs-utf-8)". V pravΘ Φßsti pracovnφho rßmu byste m∞li vid∞t nßsledujφcφ konfiguraΦnφ informace:</p>
<p>P°i zachovßnφ v²Üe zmφn∞n²ch podmφnek m∙₧ete bez obav pou₧φvat SQL p°φkazy, kterΘ nemusφ obsahovat informace o znakovΘ sad∞ a kolaci, ani₧ by dochßzelo k chybßm p°i jejich provßd∞nφ. (To mimo jinΘ znamenß, ₧e m∙₧ete pou₧φt p°φkazy z tohoto Φlßnku pro libovolnou verzi MySQL a nemusφte pou₧φvat specißlnφ typ p°φkaz∙ pro MySQL 4.1.2 a vyÜÜφ, jak tvrdφ auto°i phpMyAdmin.) Pomocnß databßze "pma_db" i °φdφcφ databßze "mysql" budou pou₧φvat "utf8_general_ci", zatφmco pro svΘ databßze m∙₧ete pou₧φt "utf8_czech_ci", dφky Φemu₧ se vßm nap°φklad zßznamy, vybranΘ z textov²ch polφ, sprßvn∞ se°adφ podle ΦeskΘ abecedy.</p>
<p><span class='note-redactor'>Pozn. red.: Tento Φlßnek vyÜel poprvΘ 17. 9. 2003. P∙vodnφ verze <a href='podklady/malek/580/akt_580_clanek_20030917.zip'>Φlßnku</a> a k n∞mu vedenΘ <a href='podklady/malek/580/akt_580_diskuse_20030917.zip'>diskuse</a> jsou vßm k dispozici v ZIP archivech.</span></p><div class='refer'><h3><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/serial.asp?serial=77' title='p°ehled Φlßnk∙ vΦetn∞ anotacφ'>Sprßvce pro databßze MySQL - phpMyAdmin</a></h3><p>Web-based aplikace phpMyAdmin umo₧≥uje pravd∞podobn∞ nejdokonalejÜφ sprßvu databßzφ, zalo₧en²ch na MySQL. Nejen, ₧e zp°φstup≥uje b∞₧nΘ funkce MySQL, ale supluje i Φßst chyb∞jφcφ funkΦnosti typickΘ pro relaΦnφ databßze. Tato sΘrie Φlßnk∙ ji₧ byla uzav°ena, aΦkoli dalÜφ pokraΦovßnφ nelze vylouΦit.</p><ul><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3618'>phpMyAdmin - efektivnφ sprßva MySQL</a></li><li><strong>Instalace phpMyAdmin</strong> (prßv∞ Φtete)</li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3610'>MIME transformace v phpMyAdmin - u₧ivatelskΘ funkce</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3470'>MIME transformace v phpMyAdmin - vestav∞nΘ funkce</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=986'>PhpMyAdmin - zßkladnφ funkce</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=972'>PhpMyAdmin - spolehliv² sprßvce pro MySQL</a></li></ul></div>