Jak exportovat data do mysql. Vypíšeme databázi MySQL a exportujeme data do konzole. Import SQL souborů do MySQL databází pomocí phpMyAdmin

Často se mě ptají, jak importovat velkou databázi na server Data MySQL. Je známo, že phpMyAdmin má ve výchozím nastavení omezení velikosti importované databáze.

Pokud váš výpis není o mnoho větší než přijatelný limit, můžete jej rozdělit na několik částí a importovat v několika průchodech. To je opodstatněné, pokud je například limit 2 MB a vaše databáze má velikost 5-10 MB. Je jasné, že „rozřezání“ 100MB databáze na 50 částí je poměrně pracný a časově náročný proces.

Existuje několik možností, jak tento problém vyřešit.

Úprava konfigurace webového serveru

Na VDS/VPS s tím nejsou žádné zvláštní problémy, stačí jen opravit konfiguraci. Konkrétně v php.ini zvyšte povolené maximální hodnoty pro soubory nahrané na server, maximální velikost pro soubory přenesené metodou POST:

Post_max_size = 2000 milionů upload_max_filesize = 2000 milionů

Kromě toho, pokud je vaše databáze velmi velká, měli byste zvýšit maximální povolenou dobu provádění skriptu.

Max_execution_time = 32 000 max_input_time = 32 000

A pro každý případ můžete zvětšit velikost povoleného množství paměti RAM:

Memory_limit = 512M

Po provedení změn nezapomeňte restartovat webový server.

Je jasné, že tento způsob není vhodný pro virtuální hosting, protože... neznamená to možnost upravovat konfigurace.

Sypex sklápěč

Můžeš použít software třetích stran. A první aplikací, která stojí za pozornost, je Sypex Dumper.

Vzhledem k tomu, že jsem jej poprvé použil před mnoha lety a oceňuji všechny jeho schopnosti a přednosti, mohu jej s klidem označit jako „Must Have“. Sypex sklápěč - serverová aplikace v PHP, které nevyžaduje instalaci. Stačí jej zkopírovat např. do rootu vašeho webu v adresáři sxd a zavolat v prohlížeči: http://Vaše_stranka/sxd/. Stojí za zmínku, že byste měli nejprve umístit výpis vaší databáze do záložního adresáře. Po inicializaci skriptu se vám zobrazí autorizační panel pro připojení k databázi. Zadejte své uživatelské jméno a heslo. Hostitel a port jsou volitelné, pouze pokud jsou specifické.

Po autorizaci můžete přejít přímo k importu databáze. V terénu "Databáze" bude vybrána databáze, ke které jste připojeni, a v poli "Soubor" uvidíte výpis, který jste dříve nahráli do adresáře Backup.

Ve většině případů žádný další nastavení již nejsou potřeba a import můžete bezpečně spustit kliknutím na tlačítko „Spustit“. Import může v závislosti na velikosti databáze a rychlosti vašeho internetového připojení chvíli trvat. Během importu můžete vidět, do kterých tabulek se importuje tento moment do databáze. Po dokončení skriptu se zobrazí protokol provádění. Vypadá to nějak takto:

To je vlastně vše – databáze je importována!

Řídicí panel

O importu přes konzoli nebudeme uvažovat. Myslím, že lidé, kteří používají konzoli beze mě, vědí, jak importovat jakoukoli databázi. A běžní uživatelé Je lepší tam nejít bez speciálního školení. Protože provádění některých příkazů může vést k vážným následkům, včetně úplného zhroucení serveru.

Konečně

Netroufám si tvrdit, že Sydex Dumper je jediné a správné řešení. Existují další elegantnější metody, které vyžadují, aby uživatel měl určité znalosti a odpovídající přístup k nastavení serveru.

Ale v prostředí sdíleného hostingu bude Sydex Dumper jistě vaším nepostradatelným pomocníkem.

Přihlaste se k odběru mého telegramu a buďte první, kdo obdrží nové materiály, včetně těch, které nejsou na stránce.

Tato lekce se zabývá důležitými otázkami, jako je např export databáze A import databáze MySQL. Můžete se ptát, proč vůbec exportovat databáze? Zpravidla se tak děje za účelem zálohování databáze, aby byla pro každý případ, jak se říká, vždy po ruce. Koneckonců, nikdo není imunní vůči okolnostem vyšší moci, jako jsou nehody hostování, které mohou vést ke ztrátě dat. Dalším příkladem může být útok hackerů, kteří chtějí poškodit váš web. Ve skutečnosti takových příkladů může být mnoho.

Import databáze se používá, když potřebujete „znovu nahrát“ databázi na váš aktuální hosting, nebo při přechodu na jiný hosting. To také v praxi často dělají webmasteři.

Na vlastní pěst export databáze A import databáze- úkoly jsou jednoduché. Stojí za to provést tyto akce jednou, abyste si zapamatovali algoritmus pro jejich implementaci po zbytek svého života. Podívejme se na příkladech, jak se to všechno dělá.

Chcete-li exportovat databázi, musíte přejít na panel administrátora hostingu a poté přejít do sekce databáze - Databáze MySQL.

Vyberte databázi, kterou chceme exportovat (přejděte na phpMyAdmin). V v tomto příkladu databáze se nazývá "cl209038".

1) V prvním případě vyberte „Fast“, ponechte formát SQL a stiskněte tlačítko „OK“. V důsledku toho bude kopie databáze stažena do našeho počítače.

2) Ve druhém případě vyberte „Normální“. Zobrazí se stránka s nastavením exportu databáze. Vyberte všechny tabulky, vyberte úroveň kódování a komprese, jak je uvedeno níže. Zbytek zpravidla není třeba měnit. Klikněte na tlačítko „OK“ a databáze bude exportována do našeho počítače.

To je vše, jak vidíte, export databáze MySQL není obtížný úkol.

Chcete-li importovat databázi, musíte také přejít na panel administrátora hostingu a přejít do sekce s databázemi MySQL. Zde jsou dvě možnosti – buď je potřeba vytvořit novou databázi, nebo exportovat do existující.

Vytvoření databáze bude vyžadováno například v případě, že web přesouváme na jiný hosting. Pokud máme stále stejný hosting a databáze již byla vytvořena, můžete tuto databázi jednoduše vybrat a data do ní „znovu nahrát“. Můžete ho samozřejmě smazat, poté vytvořit nový (prázdný) a nahrát do něj.

1) Databáze již existuje. Vybereme databázi, do které budeme importovat naši kopii databáze. Zobrazí se nabídka importu databáze.

Vyberte soubor kopie databáze, který chcete importovat. V případě potřeby můžete změnit kódování a formát databáze. Dále klikněte na tlačítko „OK“. Po importu nás systém informuje, zda vše proběhlo v pořádku nebo zda se během procesu vyskytly nějaké chyby. Pokud se vyskytnou chyby, můžete zkusit smazat databázi na hostingu, poté vytvořit prázdnou databázi a databázi znovu importovat.

2) Vytvoření nové databáze. Přejděte na panel administrátora hostingu a vyberte sekci s databázemi MySQL. Dostáváme se do správy databáze MySQL.

Zadejte požadovaný název databáze a heslo. Klikněte na tlačítko „Vytvořit“. V důsledku toho by měla být vytvořena nová (prázdná) databáze - do ní budeme muset importovat dříve uloženou kopii naší databáze.

To je vše, co jsem vám chtěl říci o exportu a importu databází MySQL. Pokud máte s těmito otázkami nějaké potíže, napište komentáře k této lekci.

V tomto článku se budeme zabývat dvěma otázkami - jak můžete importovat databáze a jak vyřešit problém s importem velkých databází změnou nastavení v php.ini.

Jak víte, záloha dat je zárukou, že budete moci obnovit svůj web, pokud by náhle z nějakého důvodu došlo k přerušení provozu webu. Jak obnovit web ze zálohy? Existuje několik způsobů, my se podíváme na to, jak můžete importovat databázi mysql do phpMyAdmin. Než zahájíte proces importu databáze, musíte odstranit všechny tabulky z databáze, do které budete importovat soubory.

Chcete-li smazat tabulky, přihlaste se domovská stránka phpMyAdmin a proveďte následující:


2 - klikněte na Označit vše;
3 - z rozbalovací nabídky vyberte Odstranit a klikněte na OK,

Nyní můžete začít importovat databázi mysql. Chcete-li to provést, postupujte takto:

1 - vyberte požadovanou databázi;
2 - otevřete záložku Importovat do horní menu;
3 - najít pomocí Procházet záložní kopie s databází a klepněte na OK.

Pokud jste vše udělali správně, v okně phpMyAdmin se objeví zpráva oznamující, že import byl úspěšný.

Import velkých databází mysql

Webmasteři se často setkávají s problémem importu velkých mysql databází. Problém je způsoben tím, že v PHPMyAdmin je stahování databázového výpisu omezeno velikostí nahrávaného souboru, která by ve výchozím nastavení neměla přesáhnout 2 MB (2 048 KB). Při pokusu o stažení výpisu z velké databáze se zobrazí chybová zpráva: „Velikost stahovaného souboru je pravděpodobně příliš velká...“ atd.

Podívejme se na jeden způsob, jak importovat výpis velké databáze. Limit velikosti importovaného souboru je určen konfigurací PHP. Nastavení konfigurace PHP jsou specifikována v souboru php.ini. To znamená, že pro import velkých databází budeme muset změnit maximální velikost nahrávaných souborů v konfiguračním souboru php.ini.

Kde se nachází soubor php.ini? Cestu k souboru php.ini můžete vypočítat následovně:

  • Vytvořte soubor info.php a vložte do něj následující kód;
  • Nahrajte vytvořený soubor do kořenové složky webu (www, public_html);
  • V adresní řádek prohlížeč, zadejte adresu http://vase_stranky/info.php;
  • V okně, které se otevře, najděte Loaded Configuration File, kde bude uvedena cesta k souboru;

Chcete-li importovat velkou databázi mysql, musíte změnit direktivy php.ini v PHPMyAdmin.

Soubor php.ini byl nalezen, nyní jej zbývá pouze upravit, nebo spíše změnit několik direktiv v souboru, jak je uvedeno níže:

Maximální čas (s) pro úplné načtení skriptu:
max_execution_time = 60
Maximální čas (v sekundách) zadaný pro skript pro přijetí všech dat:
max_input_time = 90
Maximální množství paměti, které smí skript používat:
memory_limit = 128M
Maximální povolená velikost nahrávaných souborů:
upload_max_filesize = 200 milionů
Maximální velikost přenesených dat, kterou PHP přijme:
post_max_size = 180 milionů

Změnou výše uvedených direktiv v php.ini jsme byli schopni importovat přes databáze PHPMyAdmin objem dat až 180 M.

Chcete-li importovat výpis databáze, můžete také použít bezplatná verze Programy Sypex Dumper. Sklápěč je optimalizován pro maximální rychlost práce, stejně jako práce s databázemi o velikosti cca 800 MB.

Při přenosu webu z lokálního serveru na hosting je jedním z povinných postupů export/import databáze. Proto se v tomto článku pokusím co nejpodrobněji popsat proces exportu a importu databáze z lokálního serveru, tedy z webového rozhraní PHPMyAdmin verze 3.2.3 pro hosting.

První věc, kterou musíte udělat, je utéct lokální server, v tomto případě je to Denwer. Po spuštění Denwer musíte otevřít prohlížeč a zadat do řádku prohlížeče: „http://localhost/tools/phpmyadmin“, poté se před vámi otevře okno(Obr. 1)s dříve vytvořenými databází.

Obr. 1

Dále musíme vybrat databázi, kterou budeme exportovat, v mém případě je to databáze s názvem Mybd. Databázi můžete vybrat kliknutím na ni v levé části okna prohlížeče, kde je uvedeno „Vyberte databázi“ (obr. 2).


Obr.2

Po výběru požadované databáze se otevře okno se strukturou databáze. V horním menu je položka "Vývozní" s jehož pomocí vyexportujeme databázi do počítače a následně importujeme na hosting. A tak přejděte na položku „Exportovat“. (obr.3).


Obr.3

V okně, které se otevře, musíte provést nějaká měření (obr. 4), konkrétně: v bloku „Export“ je třeba kliknutím na položku vybrat všechny databázové tabulky "Vybrat vše" a zaškrtněte políčko vedle položky SQL, tato položka je zodpovědná za typ souboru, který bude exportován. Také musíte zaškrtnout políčko vedle "Uložit jako soubor", který zajistí uložení databáze do souboru. Není třeba měnit žádná další nastavení, stačí stisknout tlačítko "Jít".

Obr.4

Nyní, pokud jste udělali vše správně, soubor databáze by se měl stáhnout do vašeho počítače. Pomocí tohoto souboru naimportujeme databázi na hosting.

Také musíte změnit kódování souboru na UTF-8 bez kusovníku, abyste změnili kódování, které používám textový editor Poznámkový blok++(Stažení ) . Pomocí tohoto programu otevřete soubor databáze a v menu "kódování" Vybrat „Převést na UTF-8 bez kusovníku“ (obr. 5), poté uložte a zavřete.


Obr.5

Hezký den, kolegové :)

Dnes vám budu nadále představovat práci s MySQL v konzoli a příkazovém řádku MySQL.

Už jsem psal články o tom, jak provádět základní akce s MySQL daty přes konzoli a dělat zálohy MySQL databáze a také export informací v něm uložených.

Logickým pokračováním tohoto příběhu bude obnova databáze a informací v ní uložených pomocí operací importu databáze MySQL. A co je důležité, budeme v tom pokračovat pomocí nástroje všech opravdových vývojářů – prostřednictvím konzole.

Pokud potřebujete návod na import databáze přes phpMyAdmin, pak jej najdete v článku o. V aktuálním článku to nechci znovu popisovat, zejména proto, že dnešní materiál bude věnován výhradně importu databáze MySQL přes konzoli.

Než však začneme zkoumat metody a nástroje, pár slov o tom, co je import databáze MySQL, jaké to je a jak to nejlépe provést?

Import databáze MySQL: co a proč?

Import databáze MySQL je operace, která naplní databázi informacemi. V tomto případě je zdrojem dat soubor výpisu – snímek jiné databáze, automaticky vytvořený během operace exportu, nebo speciálně připravený SQL skript.

Import, stejně jako export databáze MySQL, jsou v databázi uloženy dva typy informací:

  1. struktura databáze, jejích tabulek a dat v nich uložených (běžně nazývané výpis databáze);
  2. jednoduše data uložená v tabulce nebo shromážděná pomocí VYBRATžádosti.

Tento článek se bude zabývat oběma možnostmi.

Chcete-li obnovit databázi MySQL s její strukturou a všemi uloženými informacemi z výpisu, jak již bylo zmíněno, potřebujete soubor výpisu databáze, což je textový soubor s libovolnou příponou (lze jej předem zabalit do archivu, aby se zmenšila velikost) obsahující SQL příkazy k vytvoření samotné databáze a tabulek a také k jejich naplnění informacemi.

Proto, abyste mohli obnovit databázi MySQL z výpisu, musíte provést příkazy obsažené v souboru.

Pro pravidelnou obnovu dat nejsou takové komplikace nutné. Stačí mít k dispozici testovací soubor, ve kterém budou informace strukturovány stejně jako v databázové tabulce: počet sloupců s informacemi odpovídá počtu atributů záznamu tabulky.

Pro tyto účely bude vhodný běžný txt soubor, ve kterém budou data oddělena, nebo soubory vytvořené ve speciálních tabulkových editorech ( Microsoft Office Excel, OpenOffice atd.) s vynikajícím rozšířením: xls, csv, odt atd.

Tyto formáty jsou ještě výhodnější, protože Při jejich vytváření jsou oddělovače dat přidány automaticky editory a není třeba je zadávat samostatně, jako v případě běžného textového souboru.

Přidávání dat do MySQL: Nástroje

O nástrojích pro import databáze MySQL mohu říci, že dnes jsou k dispozici tři.

Uvedu je, počínaje nejnižší úrovní a konče nejvyšší úrovní (z pohledu použití všech druhů shellů a doplňků):

  1. Serverová konzole a příkazový řádek MySQL;
  2. Skripty napsané v programovacích jazycích, které umožňují zaznamenávat data v MySQL pomocí jazykových nástrojů;
  3. Hotové programy, které poskytují vizuální rozhraní pro práci s databází (stejný phpMyAdmin, MySQL WorkBench, MySQL Manager atd.).

Myslím, že pořadí nástrojů u nikoho nevyvolá žádné otázky, protože... Nástroje programovacího jazyka zpravidla pracují na základě příkazů konzole MySQL a programy jsou založeny na skriptech nebo pracují přímo s MySQL z příkazové řádky.

Tak či onak je konzole ve všem na špici a zbývající nástroje jsou ve skutečnosti její emulátory.

Použití konzole při importu dat do MySQL tedy umožňuje obejít různá omezení daná nastavením programovacích jazyků na webový server a programy samotné (které mimochodem nelze vždy změnit).

Díky tomu můžete nejen rychleji načíst databázi MySQL přes konzoli, ale také tuto operaci v zásadě umožnit, protože Skripty a programy mají tendenci přerušovat import při dosažení maximální doby provádění skriptu nebo se vůbec nespustí kvůli velikosti stahovaného souboru.

Myslím, že každý, kdo se někdy pokusil nahrát velký výpis do databáze MySQL přes phpMyAdmin, rozumí, o čem mluvím.

Často jsou tyto limity příčinou chyb při importu databáze MySQL, které při používání konzole nikdy neuvidíte.

Samozřejmě nejsou konstantní a lze je změnit, ale to je další bolest hlavy, která mimochodem nemusí být pro běžné uživatele řešitelná.

Doufám, že jsem vás motivoval k importu databáze MySQL přes konzoli (jak její struktury, tak jednotlivých dat).

A v této pozitivní notě přecházíme k dlouho očekávané praxi a zvažujeme metody a příkazy pro konzolový přenos dat do databáze.

Jak obnovit databázi MySQL z výpisu přes konzolu?

Chcete-li tedy nasadit výpis MySQL z konzoly, existují dva způsoby:

  1. pomocí příkazu in příkazový řádek MySQL;
  2. v samotné konzole serveru.

Začněme popořadě.

Abychom tedy mohli importovat výpis databáze MySQL do existujícího úložiště přes , musíme jej nejprve spustit a vybrat požadovanou databázi, do které nahrajeme náš výpis.

Implementace těchto akcí je podrobně popsána ve výše uvedeném článku, takže pokud potřebujete jejich popis, vezměte je odtud, protože Nechci je duplikovat pro druhé kolo.

Po provedení výše uvedeného zadejte do prostředí MySQL následující příkaz:

Zdrojová cesta_a_výpis_název_souboru;

Zbývá nám jen prostudovat zprávy v konzoli o průběhu operací obsažených ve výpisu.

Bez předchozího přepnutí na požadovanou databázi lze po připojení k serveru MySQL v konzole importovat výpis pomocí následujícího příkazu:

Mysql -u uživatelské jméno -p název_databáze< путь_и_имя_файла_дампа

To je vše. Hlavní věc je počkat na dokončení importu, pokud je soubor velmi velký. Dokončení výpisu lze posoudit podle toho, kdy bude konzola serveru opět dostupná.

Ve skutečnosti je to nevýhoda tato metoda oproti předchozímu, protože v prvním je možné sledovat operace prováděné s databází při importu, ve druhém nikoli.

Pokud je soubor s výpisem paměti zabalen do archivu, bude nutné jej při stahování současně rozbalit.

V Linuxu to lze provést takto:

Gunzip > [název_archivního_souboru.sql.gz] | mysql -u -p

V Windows standardní V konzoli není žádná utilita pro rozbalení archivu, takže ji bude nutné nainstalovat dodatečně.

Jak vidíte, import MySQL výpisu přes konzoli je velmi jednoduchá operace, která se provádí jedním příkazem. K provedení tohoto postupu tedy nemusíte být vývojář.

Pokud najednou nevíte, jak spustit konzolu serveru, můžete tyto informace najít v článku o příkazovém řádku MySQL, odkaz na který jsem již zveřejnil dříve.

Mimochodem, pomocí popsaných metod je také možné importovat tabulku MySQL, nikoli celou databázi. V tomto případě musí výpis, který nahrajete, obsahovat operace jeho vytvoření a naplnění daty.

Načítání dat do databáze MySQL ze souboru v konzole

Mluvili jsme o obnově databáze MySQL z výpisu v konzole. Nyní je čas zjistit, jak můžete stejným způsobem importovat data ze souborů, včetně xls a csv, do databáze MySQL.

Pro tento úkol máme opět stejné dva nástroje jako v předchozím případě: příkazový řádek MySQL a konzoli serveru.

Začněme recenzi znovu popořadě.

Chcete-li tedy importovat soubor v příkazovém řádku MySQL, spustíme jej znovu a přejdeme do databáze, do které budou data načtena.

NAČTE DATOVÝ INFILE "cesta_a_jméno_souboru_výpisu" DO TABULKY `databázová_tabulka` SLOUPCE UKONČENÉ "," UZAVŘENÉ "\"" ŘÁDKY UKONČENÉ "\n";

Nezapomeňte, že pokud byl server MySQL spuštěn s volbou --secure-file-priv(což se často stává, když pomocí MySQL distribuce zahrnuté v sestavách WAMP/MAMP), pak musí být název souboru specifikován s přihlédnutím k systémové proměnné secure_file_priv.

Abychom mohli importovat databázi MySQL do konzole serveru bez přechodu do prostředí MySQL Shell, budeme potřebovat tento nástroj mysqlimport, který je součástí distribuce MySQL, a jeho následující volání:

mysqlimport –u uživatelské_jméno –p název_databáze název_a_cesta_k_importnímu_souboru

Tato utilita je analogický s příkazem SQL NAČÍST DATOVÝ VSTUPNÍ SOUBOR, pouze pro příkazový řádek. Nabízí se ale otázka, proč potom mezi parametry jeho volání není tabulka, do které se budou data ze souboru načítat?

Faktem je, že mysqlimport prostě fyzicky nemá tento parametr. Místo toho se v názvu importovaného souboru musí objevit název tabulky, do které budou data načtena.

Tito. pokud chcete importovat z Excelové tabulky do tabulky MySQL uživatelů, pak by měl být zavolán váš soubor users.xls.

Přípona importovaného souboru, jak již bylo zmíněno, může být jakákoliv.

S mysqlimport si také můžete stáhnout více xls soubory nebo csv v MySQL. Aby se data dostala na místo určení, musí se stejně jako v předchozím příkladu shodovat i názvy souborů a databázových tabulek.

Pokud najednou sloupce v importovaném souboru nejsou ve stejném pořadí jako sloupce databázové tabulky, pak pro upřesnění jejich pořadí musíte použít volbu —columns v následujícím tvaru:

Mysqlimport –u user_name –p database_name --columns column1, column2, ... name_and_path_to_import_file

Přirozeně jsem ve svých příkladech neuvažoval úplný seznam parametry mysqlimport, protože některé z nich jsou velmi specifické a v praxi se používají velmi zřídka.

Pokud se s nimi chcete seznámit, jejich úplný seznam je k dispozici zde - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Funkce načítání dat do databáze MySQL z výpisu

Pokud chcete, aby proces importu velké databáze MySQL probíhal rychleji, musíte vytvořit výpis databáze pomocí speciální možnosti příkazy mysqldump, o kterých jsem psal ve svém předchozím článku o exportu databáze MySQL, odkaz na který jsem zveřejnil v textu dříve.

Samotné příkazy pro import databáze MySQL bohužel takové možnosti nemají.

Jediná věc je, že pro zvýšení rychlosti při načítání velkého výpisu databáze můžete použít následující funkci.

1. Otevřete soubor s výpisem paměti (nejlépe v správci souborů, protože běžné editory mohou být velkými soubory jednoduše zahlceny).

2. Na začátek souboru napište následující řádky:

SET kontroly cizího_klíče = 0; SET UNIQUE_CHECKS = 0; SET AUTOCOMMIT = 0;

Poznámka! Mohou tam již být nebo zakomentovány (mnoho programů, které vytvářejí výpisy, je může přidat automaticky)

3. Na konec souboru zapíšeme obrácené akce:

SET kontroly cizího_klíče = 1; SET UNIQUE_CHECKS = 1; SET AUTOCOMMIT = 1;

Mimochodem, tyto příkazy pomohou nejen urychlit proces importu, ale také jej umožní.

Faktem je, že pokud jste se někdy podívali na soubor výpisu pro import databáze MySQL, možná jste si všimli, že operace nastavení struktury načtených tabulek vypadá takto:

DROP TABLE, POKUD EXISTUJE `klienti`; CREATE TABLE `klienti` (...);

Tito. v databázi se vyhledá tabulka se stejným názvem jako ta, která se importuje, a pokud je nalezena, je smazána a vytvořena znovu.

A pokud je najednou existující tabulka propojena cizími klíči s ostatními, celé načítání se nezdaří.

Proto je také zakázání kontroly existence cizích klíčů a dalších výbornou zárukou úspěšného dokončení procesu importu databáze MySQL.

Funkce importu csv do databáze MySQL a dalších souborů

Při načítání dat do databáze MySQL z textové soubory Možná budete také muset zakázat cizí klíče.

Navíc na rozdíl od předchozí situace v tomto případě nebude možné do souboru zapisovat direktivy, protože Příkazy SQL v něm nebudou přijaty a provedeny.

V předchozím článku o exportu databáze MySQL jsem již zmínil, jak to provést pomocí následující operace na příkazovém řádku MySQL:

SET FOREIGN_KEY_CHECKS=0;

Nezmínil jsem se tam však o systémové proměnné MySQL FOREIGN_KEY_CHECKS má dva významy: globální a sessional (pro aktuální relaci).

Globální hodnota proměnných MySQL je platná pro jakoukoli akci na serveru MySQL, dokud není restartován. Poté budou hodnoty proměnných resetovány a budou jim přiřazeny výchozí hodnoty.

Hodnota session systémové proměnné MySQL je nastavena pouze po dobu trvání relace uživatele se serverem MySQL. Relace nebo relace začíná, když se klient připojí k serveru, kdy je mu přiřazena jedinečná id připojení a končí po odpojení od serveru, k čemuž může dojít kdykoli (například kvůli vypršení časového limitu).

Proč jsem se rozhodl si to zapamatovat?

Protože při provádění příkazů k načtení souboru do databáze MySQL přes konzolu serveru, aniž bych přešel do prostředí MySQL, jsem zjistil, že zakázání kontroly cizího klíče pomocí výše popsané metody nefunguje.

Konzole stále zobrazovala chybovou zprávu způsobenou přítomností cizích klíčů v tabulce.

A vzniklo z toho důvodu, že výše uvedený příkaz zakázal kontrolu existence cizích klíčů v rámci relace, a ne globálně, což lze kromě uvedené metody provést také následovně:

SET SESSION název_proměnné = hodnota_proměnné; SET @@session.název_proměnné = hodnota_proměnné; SET @@název_proměnné = hodnota_proměnné;

Ve výše uvedených příkazech je proměnná jasně označena jako session.

Oh, protože jsem nakládal csv soubor do tabulky MySQL přes serverovou konzoli, bez přímého připojení MySQL server, pak nebyla vytvořena relace, ve které by fungovala moje hodnota proměnné relace.

Nakonec jsem nastavil FOREIGN_KEY_CHECKS na globální a import byl úspěšný.

Můžete to udělat jedním z následujících způsobů:

SET GLOBAL název_proměnné = hodnota_proměnné; SET @@global.název_proměnné = hodnota_proměnné;

Po změně hodnot je dobré zkontrolovat hodnoty proměnné a ověřit, že se změny projevily. Chcete-li zobrazit hodnoty relace a globální hodnoty současně, použijte následující příkaz:

SELECT @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;

Tímto končí dnešní článek o importu databáze MySQL. Podělte se o své dojmy a vlastní vývoj v komentářích. Myslím, že mnohé budou zajímat vaše zkušenosti.

Uvidíme se znova! 🙂

P.S.: pokud potřebujete webové stránky nebo potřebujete provést změny na stávajících, ale není na to čas ani chuť, mohu nabídnout své služby.

Více než 5 let zkušeností profesionální vývoj webových stránek. Pracovat s PHP, OpenCart,