phpMinAdmin
Školení, která pořádám
Při administraci databáze nejraději pracuji z příkazové řádky, ne vždy to je ale možné. Důvodem je, že málokterý hosting nabízí přístup k příkazové řádce nebo vzdálené připojení k MySQL databázi. V tom případě přichází ke slovu phpMyAdmin. Tuto aplikaci považuji za poměrně zdařilou, má však jednu velikou nevýhodu – aktuální verze má téměř 8 MB ve více než 600 souborech. Nahrávat takový moloch na server jen kvůli tomu, abych se podíval na strukturu jedné tabulky nebo vypsal nějaká data, je ztráta času, proto si často raději napíšu jednorázový skriptík. Kdysi jsem dokonce začal psát skript, který stáhne aktuální verzi phpMyAdmina a rozbalí ji do aktuálního adresáře. Kvůli problémům se stahováním vzdálených souborů, právy zápisu a nedostupností komprimačních extenzí na většině hostingů jsem ho ale nikdy nedokončil.
Chtělo by to aplikaci se všemi základními správcovskými funkcemi, která by se vešla do jednoho nepříliš velkého souboru. A právě takovou aplikaci vám v jubilejním 300. článku na tomto blogu představuji – phpMinAdmin tyto požadavky splňuje a disponuje těmito funkcemi:
- Připojení k databázovému serveru pod zadaným uživatelským jménem a heslem
- Výběr databáze, vytvoření nové databáze
- Seznam sloupců, indexů, cizích klíčů a spouští tabulky
- Změna názvu, úložiště, porovnávání, auto_increment a komentáře tabulky
- Změna názvu, typu, porovnávání, komentáře a výchozí hodnoty sloupců
- Přidání a smazání tabulek a sloupců
- Vytvoření, změna, smazání a vyhledávání podle indexů včetně fulltextových
- Vytvoření, změna, smazání a propojení seznamů podle cizích klíčů
- Vytvoření, změna, smazání a získání dat z pohledů
- Vytvoření, změna, smazání a zavolání uložených procedur a funkcí
- Vytvoření, změna a smazání spouští
- Výpis dat s možností vyhledávání, třídění a omezení počtu vypisovaných záznamů
- Vložení, úprava a smazání záznamu
- Podpora všech datových typů, práce s
BLOB
přes nahrávání souborů
- Provedení libovolného SQL příkazu zadaného přímo nebo nahraného ze souboru
- Export jedné tabulky a jedné nebo všech databází
- Schéma struktury databáze s vazbami podle cizích klíčů
- Seznam procesů s možností jejich ukončení
- Přehled uživatelů a práv s možností jejich nastavení
Přestože se vše vejde do jednoho souboru, který velikostí nepřesahuje 100 KB, funkcí je myslím dostatek. Nevšiml jsem si třeba toho, že by phpMyAdmin podporoval práci s uloženými procedurami a spouštěmi, editaci pohledů nebo vícesloupcové cizí klíče.
Nešetřil jsem ani na infrastruktuře rozhraní. Překlady do jednotlivých jazykových verzí jsou podporované včetně různých hlášek v závislosti na počtu (1 záznam, 2 záznamy, 5 záznamů), náležitá pozornost je věnována bezpečnosti (nejdůležitější u takového rozhraní je obrana proti XSS, Session Fixation a CSRF).
phpMinAdmin pracuje s MySQL 4.1 a 5.0 přes PHP rozhraní MySQLi, MySQL nebo PDO v PHP 4.3 a vyšším nebo PHP 5. Pro svou práci potřebuje session proměnné. K dispozici je anglická, česká, slovenská, holandská, španělská a německá jazyková verze a rozhraní je zdarma pro komerční i nekomerční použití.
phpMinAdmin je připraven k nasazení pro běžné používání, stáhnout nebo vyzkoušet ho můžete na domácí stránce projektu. Uvítám jakoukoliv zpětnou vazbu, námět na další funkce (i když je chci přidávat jen s vidinou reálného využití), případně nahlášení chyb. Pokud byste mi chtěli s něčím pomoci, uvítám korekturu anglických jazykových hlášek, design domovské stránky nebo přímo rozhraní (i když ten by měl zůstat minimalistický).
Diskuse
Perfektní, díky. Hned jsem si stáhnul a vyzkoušel a určitě jej budu používat v případech, kdy PHPMyAdmin není dostupný a nechce se mi jej dlouho uploadovat. Jediná škoda, že nepodporuje i MySQL 4.0:-(
Langoš:
Člověče to vypadá fakt dobře! Ještě to pořádně vyzkouším doma, ale přesně takhle to mám rád - jednoduše, ryche, přehledně ;-)
Díky díky !
P.S. Asi si k tomu nějaký css udělám, tak jestli to bude vypadat, tak pošlu ;-)
Ahoj, je to naprosto skvělá věc a je fajn že to dáváš zdarma.
Měl bych tu pár námětů: U tabulky bych chtěl vidět alespoň počet záznamů v ní a mohlo by se zobrazovat i číslo posledního auto_incrementu. Potom při výpisu záznamů v tabulce udělat jinak procházení, protože když jich tam mám statisíce, začne se dole vypisovat hrozně moc odkazů a načítání stránky to pořádně vytíží a prodlouží. A snad poslední věc - výpis záznamů z tabulky kdyby šel podle pořadí nějakého sloupce. Zde by šel překonat phpMyAdmin, protože u něj si v prvním kliknutí nelze vybrat jestli ASC nebo DESC. Přitom to lze vyřešit dvěma šipičkami u každého záhlaví a je to.
Ještě jednou díky za tu práci.
Číslo posledního auto_incrementu se zobrazuje v editaci tabulky, kde jde rovnou i změnit. Nejde o tak důležitou hodnotu, aby ji bylo potřeba propagovat i jinde.
O zveřejnění počtu záznamů v tabulce jsem už přemýšlel, ale ještě nevím, kde by bylo nejvhodnější místo. Asi to dám do TITLE odkazu „vypsat“, aby to bylo všechno pěkně pohromadě a zároveň to moc nepřekáželo.
Stránkování na základě tvé rady asi předělám tak, že tam bude jen odkaz na první stránku, poslední a +-2 od aktuální.
Řazení se nedělá přes záhlaví sloupců, jak je to obvyklé, ale přes zvláštní box ve vyhledávání. Díky tomu je možné řadit záznamy nejenom sestupně, ale hlavně podle více sloupců najednou, což klikání na záhlaví neumožňuje.
Díky za konstruktivní připomínky.
Počet záznamů jsem dal do TITLE odkazů „vypsat“ v seznamu tabulek, stránkování jsem smrsknul (zatím v Subversion).
Počet záznamů ve výsledku jsem nechal zobrazovat u stránkování.
Řazení jsem umožnil i kliknutím na záhlaví sloupce.
Parádní, díky za "objev." phpMyAdmin je na některé jednoduché úkony moc komplikovaný, tohle se hodí...
Honza:
Není to špatné, líbí se mi ta rychlost, proti phpmyadminu je to fakt příjemné. Schéma databáze vypadá dobře :) Chybí mi ale vlastnosti u prvků time/timestamp jako CURRENT_TIMESTAMP a ON_UPDATE_... které dost používám, a asi bych časem narazil na další věci co mi chybí a musí se řešit příkazem. Keep up the good work :)
Nastavování hodnot pro timestamp jsem doplnil (do editace výchozích hodnot v Subversion).
Super vec! Jen par kosmetickych veci mi tam chybi. Vypsani verze serveru MySQL + pres jakou datovou vrstvu (funkce) se prihlasuje (mysql/mysqli/PDO) a jeste jestli by bylo mozne provadet exporty DB bez SQL prikazu zakladani DB a jeho volby (myslim ze castejsi pripad je import DB do jiz existujici DB nez do neexistujici).
Především informaci o použité extenzi jsem chtěl někam dát, ale nenapadlo mě vhodné místo. (A možná i výběr, která extenze se má použít, ale to spíš ne, protože MySQLi má víc možností než MySQL a to zase více než PDO, takže jediná motivace pro použití jiné extenze než nejvyšší možné by byla nefunkčnost té lepší). Přemýšlel jsem o přihlašovacím formuláři, tam ale zase nebude k dispozici verze MySQL. Takže se ptám – kam s tím?
CREATE DATABASE a USE jsem z exportu jedné databáze vyhodil.
Informaci o MySQL verzi i použité PHP extenzi jsem dal na stránku bez vybrané databáze.
Tak toto sa celkom podarilo, veľmi užitočná vec. Ja som si spravil skript iba na výpis dát z konkrétnej databázy (prihlásenie usera, zoznam tabuliek s počtom i názvami stĺpcov, možnosť jej zmazania, výpis tabuľky, radenie podľa niektorého zo stĺpcov asc/desc, editácia/pridanie/zmazanie záznamu). Finta s favicon priamo v PHP mi teda nenapadla...
Já jsem to měl původně řešené přes data: protokol, to ale nefunguje v IE.
Je to dobre. I kdyz phpMyAdmina nepouzivam, tak male zalezitosti se jiste hodi.
Na phpMyAdminovi jsou dobre ony frames, kde vlevo mam seznam tabulek a vpravo potom s pracuji. Duvodem si myslim, ze je i to, ze pri vetsim poctu tabulek neni potreba stale nacitat tyto seznamy.
Asi by se dalo najit spousty veci, ktere zde nejsou, nebo jsou jinak, ale pro ucely, o kterych pises, si myslim, ze nema moc cenu do toho sahat. Pokud nekdo pise views, stored procedures, triggers, atd. tak jiste pouziva nejaky desktopovy vyvojovy nastroj. Do teto oblasti bych asi vubec nezasahoval.
Docela cucim, ze jsi to vsechno nacpal do jedineho souboru, pro distribuci je to dobre, pro programatora vetsinou nocni mura :)
Jinak co se tyce phpMyAdmina a jeho pouzivani. S phpMyAdminem jsem skoncil v dobe, kdy se ma databaze rozrostla do vetsich rozmeru (kdysi cca 100-150 tabulek), v te chvili byl takovy nastroj proste nepouzitelny. Dnes mam MySQL Query Browser, popripade nejaky ten plugin do Eclipse. Osobne jsem si take zkousel psat nejaky ten maly nastroj na spravu DB, ale prislo mi, ze dane dotazy na zjisteni metadat o dane databazi jsou priserne pomale. Nevim jestli je to spatnou optimalizaci MySQL nebo mnou :)
Jeste bych chtel pogratulovat k tomu 300temu clanku, je to vazne velka porce, navic kvalitnich clanku.
O rámech jsem taky přemýšlel, ale nevýhody podle mě převažují – levý rám je potřeba čas od času refreshovat, s čímž je spousta práce, ale hlavně se nedá stránka s rámy uložit do bookmarků nebo na ni odkazovat. Seznam databází, který se na SF.net (a samozřejmě asi i jinde) načítá hodně dlouho, alespoň cachuji – i s tím je spojeno dost kódu, který považuji za nutné zlo a ne za elegantní řešení.
Já jsem od původního záměru jednoduchého skriptu pokročil k funkčně plně vybavené verzi. Komponenty jsou docela malé (kolem 3 KB) a jejich přítomnost by mohla někoho nalákat k používání phpMinAdmina i pro plnohodnotný návrh databáze (když se tak používá i v této oblasti funkčně chudší phpMyAdmin, tak proč ne phpMinAdmin).
Vývoj v jednom souboru samozřejmě neprobíhá, stáhni si zdrojové kódy... Mám napsaný článek, který to popisuje podrobněji.
Stejně jako se cachuje seznam databází by se dal cachovat i seznam tabulek, ale ty se získávají celkem rychle. Problém je samozřejmě s přenášením výpisu tabulek pořád dokola – to by vyřešily buď rámy nebo kompletní předělání rozhraní na AJAXovou variantu, ale ani jednou cestou phpMinAdmin nepošlu.
ivan_d:
'ale hlavně se nedá stránka s rámy uložit do bookmarků nebo na ni odkazovat' - ano, pro toto velmi často phpmyadmin proklínám.
Ono to pôvodne bolo vo viacerých súboroch, toto je automaticky poskladaný výsledok, ak som to správne pochopil... A pre mňa ďalší nápad na premýšľanie...
Red_Devil:
Aplikace je to vynikajici, prestavam pouzivat phpMyAdmin.
Napadlo me jedno minivylepseni. Co takhle zobrazovat, jaka znakova sada se pouziva u jednotlivych textovych sloupcu, popripadne i porovnani v ramci cele tabulky?
Jakub Vrána :
Zobrazuje se to v editaci tabulky. Opět to není tak zásadní informace, aby musela být i v náhledu tabulky.
paranoiq:
vypadá to moc dobře. hlavně to vyhledávání a řazení je vyřešeno rozumě. jen mi tam chybí třeba operátor IN.
phpMyAdmin je opravdu moloch a jeho občasné bugy a lenost mě štvou. zvlášť v poslední době mi připadá, že se vývoj točí spíš kolem malovaných ikonek než kolem funkčnosti. věřím že vývoj phpMinAdmina se touhle cestou nevydá.
Jakub Vrána :
Operátor IN jsem přidal (zatím v Subversion).
Těžko říct, kudy se bude ubírat vývoj, já jsem všechny své požadavky víceméně už zapracoval.
error414:
Me se to take moc libi ale dulezita vec pro me chybi.
Aby se vypisoval hlavni dotaz na Db. Napriklad pokud pouziji filter pri vyberu z tabulky. Tak bych rad videl dotaz.
Jak se tak divam do kodu tak to ze je to v jednom souboru si sebou vzalo krutou dan. (write only).
Jinak ten frame v phpmyadminu neskonale toci.
Jakub Vrána :
Výpis dotazu zvážím, ale moc se mi ho tam dávat nechce nebo jen volitelně.
Jak správně pochopil tiso, tak jeden soubor je jen výsledkem kompilace. Můžeš si stáhnout i zdrojové kódy.
Jakub Vrána :
Výpis dotazu jsem přidal spolu s možností jeho editace.
v6ak:
Stáhl jsem si 1.7.0 a žádný SQL příkaz tam nevidím ani při výpisu, ani při úpravě tabulky. Je to škoda, protože pak je PhpMinAdmin nepoužitelný, pokud chci synchronizovat strukturu.
Jakub Vrána :
Je to zatím jen v SVN. Čemu říkáš „synchronizovat strukturu“? Možná by ti mohl pomoci nový export.
v6ak:
To bych musel exportovat data a pak zase importovat. To není ono. Prostě mi jde o výstup v podobě nějakého ALTER TABLE.
v6ak:
Tak to je skvělý. Těším se na 1.8.0. Pak asi zapomenu na PhpMyAdmina. Ještě by mohlo jít nastavit automatické rozbalování, ale není to nutné.
Pavel:
Perfektní hnedle jsem alespoň kliknul na reklamu ať nějak ocením obrovské množství práce co tohle muselo dat.
LLook:
Komu tím prospěješ?
Že se mnoho lidí chová takto, to inzerentům snižuje konverzní poměr a výhodnost investice do této formy reklamy. Čím více lidí bude takto "bohatým brát a chudým děkovat", tím méně výhodné bude inzerovat v Adsense a tím méně investic do toho poteče. V konečném důsledku pak prodělávají všichni - reklamní systém, inzerent i poskytovatel prostoru.
emilk:
a neni misto uploadu by maleho admina lepsi sshcko s jednim tunelem na mysql port?
priste si ten mysql port pritahnout na lokal a pak uz se na nem vyradit?
Jakub Vrána :
Pokud to je na hostingu povolené, tak to je samozřejmě taky schůdná cesta.
Arcao:
Na to existuje řešení ve formě MySQL-PHP tunelu. Ten používá třeba Navicat MySQL od PremiumSoftu. Jen škoda, že je placený.
MySQL-PHP tunel používá i MySQL-Front.
finc:
Mate nejake informace o tom PHP-MySQL tunelu? Nikdy jsem o tomto neslysel.
Jinak, ja se domnivam, ze bez primeho povoleni pripojit se k MySQL z jine IP adresy to nepujde.
Jinak, ktery webhosting dodava ssh?
error414:
ten tunel je prave obejiti toho omezeni s IP. Tunel je realizovan PHP souborem co je na ftp a zprostredkovava komunikaci
klient <==> tunel (php soubor na ftp-pro neho je mysql na localhostu) <==> mysql
Nekolikrat jsem to pouzil a je to pouzitelne.
Luk.yer:
souhlasim, PHP tunel pouzivam bezne a nepocituji ani zadne vetsi lagy. Na FTPko se nahraje ntunnel_mysql.php a v navicatu se pripojit na http tunel ... Mimochodem existuje i lite verze (free) navicatu, je to paradni software
Balud:
Tak tomu říkám práce gurua. Jsem naprostu uchvácen. Díky
Domo:
:( nějak mi to nejde ze sourceforge stáhnout. vždy mi to nabídne prázdný soubor *.php a když chci zdrojové kódy, tak je to zase prádnej *.zip archiv.
Jakub Vrána :
Možná se to zatím nedostalo na všechna zrcadla. Zkus třeba Duesseldorf, Germany.
Honza Odvárko:
SQL command jen s rozhraním MySQL.. to muselo dát práce než byl středník středníkem tam kde má. Bravo.
Jirka:
Já hlavně oceňuju export. Protože kdo někdy zkoušel export u phpMyAdmin mi jistě dá zapravdu, že moc příjemné to není.
Jiri Lenert:
Export by mohl byt jeste lepsi, pokud by exportoval i dany vyber (i do CSV).
Diky.
Jakub Vrána :
CSV export neplánuji. Co máš na mysli „daným výběrem“? Export dat momentálně zobrazených ve výpise (po vyhledávání)?
Jiri Lenert:
Ano, myslel jsem export dat po vyberu.
tomh:
Zcela OT - češtinářské:
Mám rád češtinu tam kde se hodí, ale myslíte si že je vhodné překládat "trigger" na "spoušť"? Mám pocit že to je dost otrocký překlad - nevím jak ve vašem okolí, ale já jsem neslyšel nikoho kdo by triggeru říkal spoušť.
Pravda viděl jsem to napsané v nějakých starých učebních textech, ale podle mě je to v dnešní době dost divné označení. Aspoň pro mě, u toho slova jsem se zarazil a musel chvilku přemýšlet o co jde.
Jakub Vrána :
V odborné literatuře je to docela běžné. Pravda je, že když jsem dělal odbornou korekturu knihy o MySQL, tak jsem si dal tu práci a všech asi 200 výskytů slova spoušť (v různých pádech) jsem nahradil za trigger. Pak jsem se s tím slovem ale setkal i jinde, tak jsem tady použil zase spoušť. Ještě to zvážím, protože to je navíc mnohoznačné slovo (něco spouští nebo pohroma)...
Jakub:
Už Vám někdo řekl, že jste geniální ? :)
MicTech:
super zalezitost, jsem prilis linej psat administrace ke svym webum a phpmyadmin je na pomaly lince hodne spatne reseni :}
Ladis:
Opravdu ultimátní nástroj, díky moc. Co se týká překladu, přimlouval bych se za "trigger", věta "Spoušť byla vytvořena" působí hrozivě.
JiFF:
Sakra Jakube!!! =D Vy jste fakt borec =) Tohle přidávám na seznam programů, za které jsem ochoten zaplatit... (protože vidím práci uvažujícího člověka (ne "programátora").
Jakub Vrána :
Můj PayPal účet je vám plně k dispozici :-).
Fox Axe:
Používám už nějaký ten čas a mám s tím jen ty nejlepší zkušenosti.
Marty:
Těším se na CSS k phpMinAdminovi, pro zachování "minimalističnosti" by mohlo být CSS řešeno jako interní styl v PHP souboru :-)
phpMinAdmin mě přiměl k dopsání adminEnginu, řešení administrace jednotlivých databázových tabulek: http://www.martinvseticka.eu/index.php?se…&page=132
Gringo:
Při vkládání záznamů bych tlačítko "Uložit a vložit" přepsal na "Uložit a vložit další". Chvíli jsem přemýšlel, co to vlastně má dělat.
Jakub Vrána :
OK. Sice tam „další“ nebylo záměrně (protože tlačítko se zobrazuje i při modifikaci záznamu, takže nejde o vložení „dalšího“ záznamu), ale v rámci intuitivnosti používání rozhraní jsem to tam doplnil.
Petr Fidler:
Prográmek může být velmi užitečný, zatím vypadá velmi dobře. Narazil jsem na jedinou drobnost - V databázi máme cca 50 tabulek různě provázaných, schema databáze je potom nepřehledné, čáry jsou velmi husté a nedá se poznat která kam vede. Funguje posunování tabulek, ale linky zůstanou na místě.
Jakub Vrána :
V Subversion už je verze, která čáry zobrazí správně alespoň při načtení ze serveru (pozice tabulek se ukládá do cookie). Na přesouvání čar JavaScriptem ještě zapracuji, ale moc se na to netěším...
HamStet:
Zdravím!
Ten program jsem zkoušel, je to fajn, bohužel můj hoster používá MySQL verze 4.0. a tak to při pokusu zobrazit pohled vypíše:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in myminadmin.php on line 682
Na víc ve výpisu tabulky (která nemá texty kódovány v UTF-8) je zmršená čeština. Taky funkce Export vypíše strukturu tabulek (resp. příkazy CREATE, které by takovou tabulku vytvořily), ne jejich obsah. Je to úmysl nebo chyba v souvislosti s verzí?
Pěkně prosím, dá se (zhruba) vypsat, které vlastnosti MySQL 4.1 (a výše) jsou potřeba aby to šlapalo, pokusil bych se to nějak obejít. Hostera ke změně verze asi nepřesvědčím :(
J.H.
Jakub Vrána :
Problém s verzí 4.0 je v tom, že nepodporuje znakové sady a ani se nedá poznat, v jakém kódování data jsou. Takže by bylo potřeba uživateli dát na výběr, v jakém kódování jsou data uložena, a navíc provádět jejich překódování v PHP (takže se spoléhat na přítomnost iconv nebo mbstring).
Podporu verze 4.0 neplánuji.
RiZe:
phpMinAdmin vypadá fakt skvěle, velký phpMyAdmin se na hostingu kolikrát načítá hrozně dlouho, tohle bych ale viděl na pěknou "fofrovku".
DynDyn:
Super práce! Už jsem si zvykl používat phpMinAdmin pro rychlou práci db. Možná jsem jen našel malý problém.
Mám tabulku:
idneceho si
1 2
2 2
3 2
4 3
5 3
6 3
Dám-li vyhledat záznamy kde si=2 a pak zvolím "upravit" u záznamu idneceho=3, objevi se mi editace zaznamu idneceho=2. Dám-li vyhledat záznam kde idneceho=3 a zvolím-li upravit u tohoto záznamu, zobrazí se mi místo editace formulář pro vložení nového záznamu. Podivné.
Kdyby bylo třeba další info, doplním...
Jakub Vrána :
Byl to problém verze 1.3.0. Ve verzi 1.3.1 už je to opravené.
Hever:
Tento počin bude jistě do historie php programování zapsaný nesmazatelným písmem...
jar:
Díky za program, vypadá úžasně. Jedna chyba, na kterou jsem narazil při pokusu o vložení nového záznamu do interprets:
"Fatal error: session_start(): Failed to initialize storage module: user (path: /tmp/persistent/phpminadmin_ahtuni36) in /home/groups/p/ph/phpminadmin/htdocs/prepend.inc.php on line 2"
Ale na druhý pokus už to proběhlo normálně.
Jakub Vrána :
Je to dáno bohužel nepříliš stabilním hostingem na SourceForge.net. Plánuji demo rozběhnout i na nějakém českém free-hostingu, bohužel komfort vytváření libovolného počtu databází žádný z nich pokud vím nenabízí.
Red_Devil:
A co treba www.otoman.cz ?
Michal Šatal:
nemohlo by ve strukture tabulky byt rovnou videt typ tabulky (innodb a mysql)? V jednom projektu jsou tabulky napul, a blbe se v tom trochu orientuje, co s cim souvisi? Jinak parada a moc diky!
Jakub Vrána :
Je to vidět v editaci struktury tabulky. Přidal jsem to také do title="" v navigaci.
Dundee:
Wow, fakt parádní věc. O dost jednodušší a rychlejší než PhpMyAdmin. Určitě budu používat.
Crempa:
Nalezl jsem chybu, nelze mazat parametry u vlozenych funkci, sice se to tvari ze dojde ke smazani parametru ale pouze se smaze jeho nazev (vyzkouseno na verzi 1.3.0)
Jakub Vrána :
Díky za upozornění, opravil jsem to v SVN.
Crempa:
Diky,
sice jsem myslel procedury, ale i tak jsi to asi koukam nasel.. :-)
Visitor:
Super vec. Ted se mi to hodilo pro pripad kdy na serverech pipni.cz je phpMyAdmin skoro nepouzitelny kvuli mnozstvi serveru a nemomaha mi ani u nich na foru uvadeny tuning.
Ale na jednu vec jsem narazil. Na stejnojmenem serveru vytvareji usery pro databaze ve stylu: "nejake_jmeno.nejaka_domena.cz" a u vas je omezeni pro login na 16 znaku. Samozrejme jsem si to poupravil, ale neni to omezeni zbytecne uz od zacatku?
Jakub Vrána :
To je zvláštní, protože maximální délka uživatelského jména je podle dokumentace 16 znaků. I sloupec mysql.user.User, kam se uživatelská jména ukládají, je char(16). Zkuste schválně zadat jen prvních 16 znaků, jestli se přihlášení podaří.
Visitor:
Prihlaseni se nepovedlo. "Neplatné přihlašovací údaje."
Behem pouzivani jsem narazil na dalsi veci:
- pri prihlaseni dochazi ke stejnemu lagu jako v pripade phpMyAdminu, po prihlaseni je ale prace mnohem sviznejsi.
- kdyz zadam chybny SQL prikaz a MySQL mi vrati chybu tak je z ni rozsypany caj. "Chyba v dotazu: Va -B e syntaxe je n jak divn bl -B zko 'PDATE c_kategorie SET name = "neco" WHERE id = 1' na dku 1"
- pri zadavani novych zaznamu mi tam chybi u datumovych attributu moznost zadat NOW()... jako tomu je v phpMyAdminu. Ale to je nejspise cena za jednoduchost.
- u exportu mi chybi moznost si rict co chci exportovat pripadne export do souboru. Pri X MB databazi ten export do formu neni moc OK :(
- jak tam resite autologout? pri praci se musim dost casto znovuprihlasovat jelikoz me program sam odhlasi (u phpMyAdminu tento problem nemam)
Jinak moc super pocin a zacinam si zvykat ;-)
Jakub Vrána :
Asi si to tedy ohackovali. Limit jsem každopádně z přihlašování odstranil.
Lag způsobuje příkaz SHOW DATABASES. phpMinAdmin jeho výsledek cachuje.
S tím toho asi moc neudělám. Jazyk a kódování chybové hlášky se řídí nastavením locales a na překódovacích funkcích (např. iconv) nechci mít závislost.
Možnost zadat výsledek funkcí zvážím, zatím to ale dělat nebudu.
Exportovat lze buď všechny databáze, jednu databázi nebo jednu tabulku. Mám požadavek na export pouze vyselectovaných dat. Export do souboru řeším pravým kliknutím na odkaz pro export a příkazem Uložit cíl jako.
Autologout se neřeší. Odhlašování bude mít na svědomí session garbage collector PHP.
Díky za zpětnou vazbu i za chválu.
Visitor:
Tak tedy jeste jednou zpetne navazu :)
- ad. lag -> nemohla by tam byt option moznost si rucne napsat kterou databazi chci pouzit a necekat na show databases? Pripadne mit nejaky option konfiguracni soubor na jmeno databaze, stroj ke kteremu se pripojuji, ...? Je to trochu navic nez je myslenka jednoho souboru ale tak pokud to nekdo bude chtit pouzivat staleji tak by to bylo fajn.
- ad. autologout -> jak tedy je to reseno v phpMyAdminu ze on se neodlogovava?
Visitor:
popravde ja taky nevim. jestli to pomuze tak posilam toto z nastaveni:
$cfg['Servers'][$i]['auth_type'] = 'http';
Jinak vsechny odpovedi registruji a jak se k tomu dostanu tak vsechno proverim :). Dik a ahoj...
Jakub Vrána :
HTTP autentizace je uložená u klienta a prohlížeč ji posílá při každém požadavku znovu. Proto nevyprší.
Visitor:
Jeste jeden poznatek z praxe.
Pokud tam napisu nejaky delsi SQL prikaz tak se po provedeni necha na jednom radku a pak je stranka velmi siroka. Mozna by ho to chtelo zalamovat.
Dalsi vec je razeni odkazu na zobrazeni struktury tabulky a jejiho vypisu. Logicky mi prijde opacny. Z leva bych cekal "strukturu" a "vypsani" ale je to naopak :)
BTW: nechces na strankach projektu udelat nejake forum nebo BUG report? at to tu nespamuj(i)/(em). :o)
Jakub Vrána :
U SQL příkazu považuji za klíčové, aby zůstaly zachované konce řádek a mezery. Proto jsem ho uzavřel jednoduše do <pre>. Bohužel přidání stylu white-space: pre-wrap této značce žádoucí zalomení nezpůsobí, takže moc nevím, co s tím.
Vypsání je vlevo proto, že je u všech tabulek stejně dlouhé. Taky to takhle tvoří větu. A taky to má stejně phpMyAdmin, i když ten to má schované do ikony, takže o tom spousta lidí ani neví.
Oboje je na stránkách projektu: http://sourceforge.net/projects/phpminadmin/
Tom:
Jak se připojím na databázi, která běží na jiném portu než 3306? Zkoušel jsem dát za název serveru :3307 ,ale to nefunguje. Můžete mi prosím poradit. Díky.
Jakub Vrána :
Žádná standardní možnost předání portu neexistovala, u výchozí extenze MySQLi to nešlo nijak. Přidal jsem možnost zadat port do samostatného políčka při přihlašování do SVN verze.
Visitor:
Tak zase ja...
Jen maly postreh takze to ma nejakou minority prioritu.
Kdyz upravuji nejaky zaznam tak pri navratu (po ulozeni) se mi vypis vraci na stranku cislo 1. Pokud mam tech stranek 100 tak je obtezujici se porad proklikavat dopredu.
Jakub Vrána :
Tento stav se opravdu neudržuje, stejně jako například vyhledávání a třídění.
Gioel:
ja som si tiez vsimol ze tam je prepinanie po 2, medzi strankami ale zdalo sa mi v pohode zmenit stranku aj pomocou url - &page=4
Gioel:
normalne som z toho prekvapeny.. zda sa mi to super.. hlavne som prekvapeny rychlostou ako sa to zobrazuje a pracuje.. urcite budem pouzivat..
littleoak:
Parada! Vyborna prace! Pouzivam na pipni.cz a frci jako blazen. Opet to oddalilo vytvoreni administrace mych jednoduchych stranek:). Diky moc.
Petr 'PePa' Pavel:
Omlouvám se za "me too" post, ale teď mi phpMinAdmin hodně pomohl. Hosting, na kterém pracuji, nemá phpMyAdmin a instalovat ho jen pro pár dotazů se mi nechtělo.
Mimochodem, moc se mi líbí, jak řešíte favicon! A zvýrazňování syntaxe přes externí Jush. Fakt wicked.
Díky PePa
Radovan:
phpminadmin je super.
Jedina vyhrada ktoru zatial mam je, ze ked je niektora tabulka innodb a este k tomu pomerne velka, tak "SELECT COUNT(*) FROM table" pri vypise tabuliek v databaze je problem.
Jakub Vrána :
Taky jsem si toho všiml, proto jsem to v SVN verzi (budoucí verze 1.10.0) už před časem změnil na přibližný počet ze statistik.
Observer:
Děkuji za skvělý a elegantní nástroj.
Diskuse je zrušena z důvodu spamu.