Přístup k serveru pomocí SSH je nejméně častá a podle mého názoru spolu s podporou pro Git ta nejlepší věc, kterou může hosting nabídnout. Objevuje se i u několika českých poskytovatelů hostingových služeb. Bohužel velice často v podobě omezené jen na pár příkazů pro kopírování souborů.
Již roky používám jako hlavní webhosting HostGator (affiliate odkaz). Můžete na něm provozovat libovolný počet domén a databází, důležité je, abyste se vešli do limitu 250 000 souborů a vaše weby nekonzumovaly více jak 25 % výkonu CPU na serveru po dobu delší než 90 sekund. Ano, na sdíleném hostingu HostGatoru jsou limity, na rozdíl od některých zcestných tvrzení, že je nafukovací. Ovšem jsem za tyto limity rád. Jsou hodně benevolentní a vychytrálkům trochu znepříjemní život. Nutno také říci, že servery HostGatoru jsou velmi dobře dimenzované.
Podpora SSH na HostGatoru zahrnuje všechny základní příkazy, funguje i wget pro stahování souborů a především dvojice příkazů mysql a mysqldump. S nimi můžete databázi nejenom zálohovat a obnovovat, ale hlavně mysql vám nabídne pohled na dění ve vaší databázi a to, jak s ní webová aplikace pracuje.
Tip: Pokud si ještě s linuxovým příkazovým řádkem nerozumíte, koukněte na článek Důležité linuxové příkazy pro webmastery.
Nutno dodat, že většinu příkazů pro práci s mysql a mysqldump, které dále zmiňuji, můžete použít jak v Linuxu nebo Mac OS X, tak v prostředí Windows. Nás zajímá ale hlavně spojení přes SSH na linuxový server s webovou aplikací.
Záloha a obnovení databáze
Následující tip využijete v případě, kdy chcete zálohovat nebo obnovit databázi svého webu, ale ta je již příliš velká k tomu, aby to zvládl nějaký skript v PHP. Navíc je použití příkazového řádku rychlejší.
Záloha databáze tedy bude vypadat následovně:
mysqldump nazev_databaze -u uzivatelske_jmeno -p > zaloha.sql
Po spuštění si server vyžádá zadání hesla a databázi uloží do souboru zaloha.sql. Můžete použít i kombinaci, kdy heslo předáte místo parametru -p jako -pheslo (ano, bez mezery).
Pro obnovu dat z SQL souboru použijete již příkaz mysql, do kterého „naládujete" seznam instrukcí z příslušného souboru. Syntaxe je podobná:
mysql nazev_databaze -u uzivatelske_jmeno -p < zaloha.sql
U tohoto příkazu neběží žádný průběhový ukazatel. Při importu velké databáze tedy neztraťte trpělivost.
Zadání SQL příkazu a práce s databázemi
Příkaz mysql slouží také k tomu, abyste se přihlásili do konzole MySQL a mohli v ní spouštět příkazy týkající se přímo databáze nebo běžné SQL dotazy. Syntaxe pro přihlášení je jednoduchá:
mysql nazev_databaze -u uzivatelske_jmeno -p
Po zadání hesla uvidíte základní informace o verzi databázového serveru.
Pro zobrazení seznamu databází, ke kterým máte s připojovacími údaji přístup, zadejte následující příkaz. Všimněte si, že všechny příkazy v konzole MySQL je nutné ukončovat středníkem.
show databases;
Podobně můžete databázi vytvořit:
create database nazev_databaze;
Pro přepnutí do databáze použijte následující příkaz:
use nazev_databaze;
Ke smazání databáze můžete s největší opatrností použít následující:
drop database nazev_databaze;
Příkazový řádek MySQL a práce s tabulkami
Zobrazení seznamu tabulek v aktuální databázi:
show tables;
Zobrazení informace o sloupcích tabulky:
describe nazev_tabulky;
Smazání tabulky:
drop table nazev_tabulky;
Přidání sloupečku do tabulky - varchar označuje datový typ a následně délku, upravte dle potřeby:
alter table nazev_tabulky add column nazev_sloupce varchar (10);
Zobrazení dat z databáze:
select * from nazev_tabulky;
V příkazovém řádku MySQL můžete používat všechny SQL příkazy, na které jste zvyklí třeba z programování webových aplikací v PHP, tedy JOINy, konstrukce WHERE atd. Veškerý výstup pak dostanete standardně na obrazovku.
Chcete získat SQL příkaz, kterým je vytvořena konkrétní tabulka? Zadejte následující:
show create table nazev_tabulky;
Informace o databázi a procesech
Potřebujete-li získat podrobnější informace o nastavení databáze, použijte v její konzole následující příkaz:
show variables;
Zobrazení chyb:
show errors;
Velmi užitečné zobrazení aktuálně prováděných dotazů:
show processlist;
Zobrazí vám seznam momentálně běžících příkazů a můžete tak zkontrolovat, zda některé nespotřebovávají příliš mnoho času pro zpracování.
Další dva zajímavé příkazy pro zobrazení informací o databázi nebo tabulkách:
show status;
show table status nazev_tabulky;
Výstup příkazů MySQL do souboru
Jak jste viděli na začátku, příkazu mysql je možné předat skript se vstupními příkazy, stejně tak je možné veškerý výstup z nich zase zapisovat do jiného souboru. Takovým příkladem může být následující:
mysql nazev_databaze -u uzivatelske_jmeno -p < prikazy.sql > vystup.txt
Příkaz tedy vyvolá připojení ke konzole MySQL, zpracuje instrukce ze souboru prikazy.sql a veškerý výstup zapíše do souboru vystup.txt.
Zapisování dat na obrazovku i do nějakého pomocného souboru můžete vyvolat i po připojení do konzole. Hodí se to třeba v případě, kdy si chcete poznamenat seznam momentálně běžících příkazů.
Zápis veškerých výstupů jak na obrazovku, tak do souboru nastavíte v konzole zadáním:
tee vystup.txt
Totéž opět zrušíte zadáním příkazu:
notee
Tolik tedy k základní obsluze databáze MySQL přes příkazový řádek. Našlo by se toho jistě mnohem víc, pro začátek si ale jistě vystačíte se získáváním informací pomocí výše uvedených konstrukcí. Podrobnější informace najdete v dokumentaci k MySQL, konkrétně v The MySQL Command-Line Tool.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development 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.
Přidat komentář