abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 2
    včera 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 0
    včera 10:11 | IT novinky

    V pořadí šestou knihou autora Martina Malého, která vychází v Edici CZ.NIC, správce české národní domény, je titul Kity, bity, neurony. Kniha s podtitulem Moderní technologie pro hobby elektroniku přináší ucelený pohled na svět současných technologií a jejich praktické využití v domácích elektronických projektech. Tento knižní průvodce je ideální pro každého, kdo se chce podívat na současné trendy v oblasti hobby elektroniky, od

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 03:11 | Komunita

    Linux Foundation zveřejnila Výroční zprávu za rok 2025 (pdf). Příjmy Linux Foundation byly 311 miliónů dolarů. Výdaje 285 miliónů dolarů. Na podporu linuxového jádra (Linux Kernel Project) šlo 8,4 miliónu dolarů. Linux Foundation podporuje téměř 1 500 open source projektů.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | Zajímavý článek

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.12.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Nová verze

    OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzi 2.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | IT novinky

    Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.

    Ladislav Hagara | Komentářů: 4
    18.12. 14:44 | IT novinky

    Na lepší pokrytí mobilním signálem a dostupnější mobilní internet se mohou těšit cestující v Pendolinech, railjetech a InterPanterech Českých drah. Konsorcium firem ČD - Telematika a.s. a Kontron Transportation s.r.o. dokončilo instalaci 5G opakovačů mobilního signálu do jednotek Pendolino a InterPanter. Tento krok navazuje na zavedení této technologie v jednotkách Railjet z letošního jara.

    Ladislav Hagara | Komentářů: 6
    18.12. 12:22 | Bezpečnostní upozornění

    Rozšíření webového prohlížeče Urban VPN Proxy a další rozšíření od stejného vydavatele (např. 1ClickVPN Proxy, Urban Browser Guard či Urban Ad Blocker) od července 2025 skrytě zachytávají a odesílají celé konverzace uživatelů s AI nástroji (včetně ChatGPT, Claude, Gemini, Copilot aj.), a to nezávisle na tom, zda je VPN aktivní. Sběr probíhá bez možnosti jej uživatelsky vypnout a zahrnuje plný obsah dotazů a odpovědí, metadata relací i

    … více »
    Ladislav Hagara | Komentářů: 5
    18.12. 05:22 | Zajímavý software

    QStudio, tj. nástroj pro práci s SQL podporující více než 30 databází (MySQL, PostgreSQL, DuckDB, QuestDB, kdb+, …), se stal s vydáním verze 5.0 open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 6
    Kdo vám letos nadělí dárek?
     (24%)
     (0%)
     (8%)
     (0%)
     (4%)
     (4%)
     (12%)
     (32%)
     (16%)
    Celkem 25 hlasů
     Komentářů: 12, poslední dnes 16:06
    Rozcestník

    Správa databází v MySQL - III

    15. 5. 2003 | David Hauzar | Návody | 18874×

    Poslední díl seriálu. Typy tabulek, datová struktura, údržba tabulek programem myisamchk, správa databáze programem mysqladmin, některé systémové funkce.

    Typy tabulek v MySQL

    MySQL nabízí několik typů tabulek. Netransakční (MyISAM, ISAM, MERGE a HEAP) i transakční (BDB, InnoBDB). Netransakční tabulky jsou výkonnější, transakční zase bezpečnější.

    Předvoleným (defaultním) typem tabulek je MyISAM. MyISAM je novější obdoba typu ISAM. Další text se bude týkat výhradně těchto tabulek.

    Datová struktura MySQL

    Data jsou na disku organizována ve formě souborů. Pro každou tabulku (typu MyISAM) jsou vytvořeny tři soubory a to: *.frm, *.myd a *.myi. Soubor *.frm je formátovací soubor a obsahuje datovou strukturu. Soubor *.myd obsahuje data a soubor *.myi obsahuje informace o klíčích a jiných vnitřních křížových odkazech. Tyto soubory najdete většinou v adresáři /var/lib/mysql/Jmeno_Databaze.

    Údržba tabulek pomocí programu myisamchk

    Program myisamchk slouží údržbě (tedy k získávání informací, kontrole, opravám a optimalizaci) tabulek typu MyISAM.

    Syntaxe:

    myisamchk [přepínače] Název_Tabulky

    Před spuštěním příkazu musíte být v adresáři, kde jsou uložena data databáze, ve které se vyskytuje tabulka, se kterou chcete operovat, nebo musíte uvést úplnou cestu k vybrané tabulce.

    Pozor: Pokud používáte program myisamchk, nikdo se nesmí připojit k databázi MySQL. Je proto velmi vhodné vypnout démona mysqld před spuštěním tohoto programu. Je také dobré zálohovat databázi.

    Pokud nevypnete démona mysqld, uložte před spuštěním programu myisamchk do tabulek všechna data z mezipaměti serveru. Uděláte to příkazem:

    mysqladmin flush-tables

    Nejpoužívanější přepínače programu myisamchk
    PřepínačAkce
    -a, --analyze Analyzuje distribuci klíčů. Urychlí některá spojení tabulek.
    -C, --check-only-changed Prověří pouze ty tabulky, které se od poslední kontroly změnily
    -#=přepínače, --debug=přepínače Protokoluje ladění. Často se používá ve tvaru "d:t:o, názevsouboru", kde názevsouboru je název souboru, do něhož je protokol o ladění ukládán.
    -d, --description Vypíše informace o stavu tabulky.
    -e, --extended-check Kopletně prověří vybraný soubor. Obvykle se nepoužívá, protože myisamchk umí najít většinu problémů i bez tohoto přepínače a kompletní prověření může trvat velmi dlouho.
    -f, --force Přepisuje dočasné soubory.
    -i, --information Vypíše statistické informace o dané tabulce.
    -k=počet, --keys-used=počet Používá se s přepínačem -r. Sděluje programu myisamchk, aby před započetím opravy odstranil počet klíčů.
    -l, --no-symlinks Určuje, že myisamchk nebude sledovat symbolické odkazy (implicitně je sleduje).
    -m, --medium-check Rychlejší, ale méně důkladný, než --extended-check. Najde 99,99% chyb.
    -q, --quick Používá se s přepínačem -r. Urychluje proces opravy. Program myisamchk pak opravuje pouze soubory .isd - ne datové soubory.
    -r, --recover Spustí obnovení. Opraví většinu problémů kromě konfliktů jedinečných klíčů.
    -o, --safe_recover Používá starší, pomalejší metodu obnovení.
    -s, --silent Vypíše pouze chyby. -ss vypíše pouze velmi důležité chyby.
    -v, --verbose Režim s podrobným výstupem. -vv spustí režim s ještě podrobnějším výstupem.
    -S, --sort-index Třídí některé indexové bloky, aby se urychlil běh aplikací, často procházejících záznamy.
    -R=index, --sort-records=index Seřadí datové záznamy podle určeného indexu (číslo indexu zjistíte příkazem SHOW INDEX;). Zvýší se tak výkon některých dotazů.
    -u, --unpack Rozbalí soubor zabalený příkazem pack_isam.
    -V, --version Vypíše číslo verze.
    -W, --wait Čeká na uvolnění zamčené tabulky.
    -?, --help Zobrazí úplný seznam přepínačů programu myisamchk

    Ukázky použití programu myisamchk

    • Kontrola tabulek

      1. Najde 99,99% chyb. Nenajde chyby týkající se souboru obsahujícího data:

        myisamchk Jmeno_Tabulky

      2. Najde 99,999% chyb:

        myisamchk -m Jmeno_Tabulky

      3. Tabulku kompletně prověří:

        myisamchk -e Jmeno_Tabulky

      4. Prověří všechny tabulky všech databází (za předpokladu, že data jsou uložena v adresáři /var/lib/mysql):

        myisamchk /var/lib/mysql/*/*.MYI

    • Oprava poškozené tabulky

      1. Běžná oprava:

        myisamchk -r Jmeno_Tabulky

        Pokud předchozí příkaz selže, zkuste starší opravovací metodu, která je o něco účinější, ale o mnoho pomalejší:

        myisamchk --safe-recover Jmeno_Tabulky

      2. Oprava poškozených klíčů

        Spustíte-li příkaz myisamchk pro tabulku s poškozenými klíči, program bude předpokládat, že jsou poškozena i data, a proto je vymaže.

        Pokud si tedy myslíte, že jsou poškozeny klíče, dočasně je odstraňte, opravte tabulku a na závěr je dosaďte znovu.

        Následující příkaz vynuluje klíče, zkontroluje a případně obnoví tabulku:

        isamchk -rqk=0 *.MYI

        A takto znovuobnovíte klíče:

        isamchk -rq

    • Optimalizace tabulky

      1. Uvolnění nevyužitého místa

        Za nějaký čas se může stát, že tabulky budou využívat více místa, než ve skutečnosti potřebují. Následující příkaz prohledá tabulku a na základě zjištěných informací ji vytvoří znova.

        myisamchk -r Jmeno_Tabulky

      2. Další příkazy optimalizující tabulku:

        myisamchk -S Jmeno_Tabulky
        myisamchk -R Jmeno_Tabulky
        myisamchk -a Jmeno_Tabulky

    Nelze-li před zahájením oprav zastavit server MySQL, může se stát, že aplikace používá původní soubory, i když jste je opravili. Opravené soubory se použijí po zadání příkazu:

    mysqladmin reload

    Správa databáze programem mysqladmin

    Program mysqladmin se používá k mnoha činnostem souvisejícím se správou databáze MySQL. Můžete ho použít například ke změně hesla, vytvoření či odstranění databáze, zjištění informací o stavu a verze databáze atd.

    Seznam příkazů programu mysqladmin, jejich přepínačů a krátký popis k nim získáte následujícím příkazem:

    mysqladmin

    Pokud jste již nastavili uživatelské účty a privilegia k databázím, budete muset při spuštění programu zadat přepínače -u a -p, abyste mohli zadat uživatelské jméno a heslo, které vás bude k používání tohoto programu opravňovat. (V UNIXových systémech zadávejte uživatelské jméno jen tehdy, liší-li od uživatelského jména pro přístup do systému UNIX.)

    Vybrané příkazy programu mysqladmin
    PříkazAkce
    password nove-heslo Změní původní heslo na nové.
    flush-hosts Z mezipaměti serveru vyprázdní všechny hostitele.
    flush-logs Vyprázdní mezipaměť protokolování.
    flush-tables Do tabulek uloží všechna data z mezipaměti serveru.
    flush-privileges Do mezipaměti znova načte obsah informačního souboru uživatelských účtů.
    refresh Do mezipaměti znova načte obsah informačního souboru uživatelských účtů, zavře a otevře soubory protokolu.
    status Ukazuje informace o stavu MySQL jako počet sekund, které uplynuly od spuštění služby MySQL, počet spuštěných vláken, počet dotazů, které MySQL přijala od svého spuštění...
    extended-status Vypíše rozšířenou zptávu o stavu serveru.
    version Informace o verzi MySQL, verzi protokolu, informace o připojení
    variables Vypíše všechny dostupné proměnné
    processlist Vypíše informace o tom, kdo dané vlákno spustil, název hostitele, z něhož se uživatel k systému přihlásil, název pracovní databáze vlákna, informace o tom, co procesy vykonávají, ...
    ping Používá se ke zjištění, zda je spuštěn démon MySQL.
    shutdown Vypne server MySQL.

    Některé systémové funkce MySQL

    • DATABASE()

      Vrací název aktuální databáze.

      Následující příkaz vypíše aktuální databázi:

      SELECT DATABASE();

    • USER(), SYSTEM_USER(), SESSION_USER()

      Vrací název aktuálního uživatele databáze včetně názvu hostitele.

    • VERSION()

      Vrací aktuálně používanou verzi služby MySQL.

    • PASSWORD(řetězec)

      Zašifruje zadaný řetězec. Používá se k šifrování uživatelských hesel.

    • ENCRYPT(řetězec[, maska])

      Argument maska určuje metodu šifrování. Pokud žádný neurčíte, MySQL určí metodu náhodně. MySQL používá v systému UNIX systémové volání crypt(). Není-li tato funkce ve vašem systému dostupná, vrátí funkce prázdnou hodnotu.

    • ENCODE(řetězec, heslo), DECODE(řetězec, heslo)

      Funkce ENCODE() kóduje daný řetězec. Výsledkem je binární řetězec.

      Funkce DECODE() naopak dekóduje zakódovaný řetězec pokud jako argument heslo předáte stejné heslo, jako při kódování stejného řetězce.

    • MD5(řetězec)

      Vrací kontrolní součet řetězce. Je to 32 místné hexadecimální číslo.

    • LAST_INSERT_ID([výraz])

      Vrací poslední automaticky generovanou hodnotu zadanou do pole typu AUTO_INCREMENT. Funkce vrací pouze hodnoty vytvořené v aktuálním připojení.

      Výraz výraz musí mít číselný výsledek. Tento výsledek nastaví modifikátor AUTO_INCREMENT. (Tato hodnota bude tedy vrácena při příštím volání funkce LAST_INSERT_ID().)

    Závěr

    V dnešním díle jste se dozvěděli, že v MySQL existuje více typů tabulek. Netransakční typy MyISAM, ISAM, MERGE a HEAP i transakční typy BDB, InnoBDB. Předvoleným typem tabulek je MyISAM.

    Data jsou na disku oganizována ve formě souborů. Pro každou tabulku (typu MyISAM) jsou vytvořeny tři soubory a to: *.frm, *.myd a *.myi.

    Program myisamchk se používá k získávání informací, kontrole, opravám a optimalizaci tabulek typu MyISAM.

    MySQL poskytuje velké množství systémových funkcí.

    Program mysqladmin se používá k mnoha činnostem při správě databází MySQL. Například ke změně hesla, vytvoření či odstranění databáze, zjištění informací o stavu a verzi databáze atd.

    Tímto dílem seriál o MySQL končí. Jsem rád, že jste ho dočetli až sem. Nyní byste měli především dobře rozumět principu relačních databází a být schopni vytvářet i spravovat databáze na slušné úrovni.

    Účel seriálu, co se nevešlo

    Tento seriál se snaží být především srozumitelnou a přehlednou referencí toho nejdůležitějšího, co by měl každý tvůrce databází v MySQL znát.

    Nejsou zde popsány některé pokročilé vlastnosti, jako transakce, nebo věci přímo nesouvisející s tvorbou nebo správou databází, jako podpora přístupu do databáze z programovacích jazyků. Věřím, že pro vás nebude problém doučit se tyto jednotlivosti z manuálu.

    Nejasnosti, chyby, aktualizace a chybějící informace

    Seriál je určen i pro úplné začátečníky. Pokud něčemu v něm popsanému nerozumíte, pravděpodobně chyba není ve vás, ale v textu. Narazíte-li tedy na jakoukoliv nejasnost, napište mi a já se pokusím text upravit.

    Budu také rád, když napíšete, pokud narazíte na chyby, nepřesnoti, neaktuální informace, nebo pokud budete mít pocit, že v seriálu něco důležitého chybí. O všech úpravách v seriálu provedených se dozvíte zde.

    Kde hledat další informace

    Pokud se chcete o MySQL dozvědět více, doporučuji nahlédnout do MySQL manuálu. Dále bych vás chtěl upozornit na seriál o MySQL na serveru linuxzone.cz. Je praktičtěji zaměřený než tento, a tak si v něm můžete procvičit své čerstvě nabyté znalosti.

    Přeji mnoho šťastných chvil strávených s MySQL.

    Související články

    Tvorba databází v MySQL - I (Základní pojmy, návrh databáze)
    Tvorba databází v MySQL - II (Instalace a používání)
    Tvorba databází v MySQL - III (Datové typy)
    Tvorba databází v MySQL - IV (Klíče a fulltext)
    Tvorba databází v MySQL - V (Základní funkce)
    Tvorba databází v MySQL - VI (Datum a čas)
    Správa databází v MySQL - I (Zabezpečení)
    Správa databází v MySQL - II (Import a export)

           

    Hodnocení: 36 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    17.5.2003 13:44 Michal Kec (MiK)
    Rozbalit Rozbalit vše myisamchk z konozle MySQL?
    Chtěl bych se zeptat, zda příkazy zadávané přes myisamchk jsou totéž, jako příkazy check table, analyze table a další, které se dají zadávat přímo v konzoli MySQL. Nikde jsem o tom nenašel zmínku. :( Díky za tenhle seriál!
    17.5.2003 19:02 David Hauzar | skóre: 26 | Vimperk
    Rozbalit Rozbalit vše myisamchk z konozle MySQL?

    Díky za to díky! ;-)

    CHECK TABLE Jmeno_Tabulky; = myisamchk -m Jmeno_Tabulky
    REPAIR TABLE Jmeno_Tabulky;= myisamchk -r Jmeno_Tabulky
    OPTIMIZE TABLE Jmeno_Tabulky;= myisamchk --quick --check-changed-tables --sort-index --analyze Jmeno_Tabulky
    ANALYZE TABLE Jmeno_Tabulky;= myisamchk -a Jmeno_Tabulky;

    Přičemž u příkazu CHECK TABLE můžete zadat tyto přepínače: QUICK | FAST | MEDIUM | EXTENDED | CHANGED.

    U příkazu REPAIR TABLE můžete zadat tyto přepínače: QUICK | EXTENDED.

    Následující příkaz důkadně prověří tabulku:

    CHECK TABLE Jmeno_Tabulky EXTENDED;

    V seriálu jsem o těchto příkazech nepsal, protože toho neumí víc, než program myisamchk. Většina lidí si tak vystačí se znalostí programu myisamchk - a kdo ne, tak si tyto příkazy najde v manuálu.

    Na druhou stranu je pravda, že alespoň zmínit jsem se o nich měl.

    19.5.2003 21:15 Michal Kec (MiK)
    Rozbalit Rozbalit vše myisamchk z konozle MySQL?
    Ptal jsem se proto, že někdy nemusím mít přístup na shell, ale příkazy mohu SQLku posílat jinak. Ty přikazy jsem znal a mátlo mě, že o nich nebyla v seriálu zmínka. Ale tenhle přehled je víc, než vyčerpávající! Ještě jednou díky!
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.