Jak uložit sql databázi. Jak rychle migrovat databázi MySQL pomocí aplikací Jak obnovit databázi MySQL

Kvůli přechodu na nový hosting jsem se musel naučit základy migrace databáze MySQL. Mimochodem, používám MaxSiteCMS jako CMS pro svůj blog. Pořídil jsem si nový hosting, respektive virtuální dedikovaný server od společnosti Adman.

Již delší dobu používám svůj vlastní skript k vytváření záloh webu a databáze MySQL. O kterém jsem psal v článku. Ale zatím jsme neměli možnost zúročit výsledky odvedené práce. Což mě samozřejmě nezlobilo, jelikož předchozí hosting fungoval správně a obnova dat nebyla potřeba.

Jak uložit databázi MySQL

Dovolte mi připomenout, že jej nelze zkopírovat pouhým přepsáním nějakého souboru.
A chcete-li uložit výpis, musíte v konzole provést následující:

Mysqldump -u uživatelské jméno -p název databáze > databasebackup.sql

Jak obnovit databázi MySQL

Vzhledem k tomu, že jsem již měl záložní kopii databáze, předchozí pokyny pro mě nebyly užitečné. A k obnovení musíte použít příkaz:

Mysql -u username -p newdatabasename< databasebackup.sql

Použití panelu DirectAdmin; pomocí webového rozhraní phpMyAdmin; Použití skriptu Sypex Dumper; Pomocí příkazového řádku serveru

Metoda č. 1: Export pomocí panelu DirectAdmin

V panelu DirectAdmin je sekce, ve které se provádí kontrola nad databázemi, sekce MySQL Management. Tato část zobrazuje seznam uživatelských databází a hlavních ovládacích prvků:

vytváření a mazání databáze;

editace databáze (rozhraní phpMyAdmin);

obnovení poškozené databáze;

kontrola databázových tabulek;

optimalizace databázových tabulek;

import databáze;

správa uživatelů databáze;

export databáze;

V tento moment přesně nás to zajímá poslední bod. U každé databáze je odkaz „Stáhnout“.

V takovém případě vás prohlížeč vyzve k uložení do místní počítač soubor<имя базы>.gz, v tomto příkladu je to soubor user_database.gz. Soubor je poskytován v komprimované podobě jako archiv gz.

Metoda č. 2: Export pomocí webového rozhraní phpMyAdmin.

phpMyAdmin je webová aplikace s otevřeným zdrojový kód, napsaný v PHP a je webovým rozhraním pro správu MySQL DBMS. phpMyAdmin umožňuje spravovat MySQL server prostřednictvím prohlížeče, provádět SQL dotazy a prohlížet obsah databází a tabulek. Aplikace je mezi webovými vývojáři velmi oblíbená, protože umožňuje spravovat MySQL DBMS pomocí uživatelsky přívětivého rozhraní, bez nutnosti používat složité SQL dotazy k provádění jednoduchých úkolů.

Chcete-li přejít do webového rozhraní phpMyAdmin, vyberte příslušnou položku na panelu Direct Admin:

Pro přístup k phpMyAdmin musíte zadat přihlašovací jméno a heslo uživatele databáze, které jste zadali při vytváření databáze. První věc, kterou musíme po přihlášení do rozhraní phpMyAdmin udělat, je vybrat ze seznamu databázi, která nás zajímá:

Podívejme se na každý bod podrobněji.

1. Export. Tato položka nám umožňuje vybrat tabulky, které je třeba zahrnout do zálohy databáze. Ve výchozím nastavení budou do zálohy zahrnuty všechny tabulky.

2. Formát záložní kopie. Na výběr je několik formátů záloh, včetně v tomto případě zvolíme typ SQL. Zbývající metody se používají k provádění specifických úkolů a používají se velmi zřídka.

3. Velmi důležitý bod- zaškrtávací políčko „Uložit jako soubor“. Pokud je toto zaškrtávací políčko zaškrtnuté, budete vyzváni ke stažení záložní kopie. V opačném případě se na obrazovce zobrazí textová verze záložní kopie ve formě dotazů MySQL.

4. Šablona názvu souboru. Ve výchozím nastavení bude název souboru následující:<имя базы>.<формат файла>, v našem příkladu je to user_database.sql.

5. Komprese. Tato položka umožňuje vybrat metodu komprese souboru:

bez komprese, tzn. soubor ve formátu sql, velikost souboru bude odpovídat velikosti databáze;

zip, tzn. soubor ve formátu archivu.zip, velikost souboru se zmenší archivací záložní kopie;

gzip, tj. soubor ve formátu .gz, velikost souboru se zmenší archivací záložní kopie;

Po výběru všech požadované parametry Stačí kliknout na tlačítko „OK“ a počkat, až bude záloha připravena. Pokud je databáze velká, může příprava zálohy nějakou dobu trvat. Nakonec budete vyzváni k uložení záložního souboru databáze do místního počítače.

Metoda č. 3: Export pomocí skriptu Sypex Dumper.

Sypex Dumper je software(PHP skript), pomocí kterého můžete rychle a snadno vytvořit záložní kopii (zálohu, výpis) databáze MySQL a v případě potřeby také obnovit databázi ze záložní kopie. Oficiální stránky skriptu: http://sypex.net/. Na webu si můžete zdarma stáhnout skript Sypex Dumper a přečíst si dokumentaci pro práci s tímto produktem. Sypex Dumper umožňuje pracovat s databázemi téměř libovolné velikosti. Na to, jak skript funguje, se podíváme na příkladu Sypex Dumper Lite 1.0.8, tato verze skriptu se používá nejsnáze.

Stáhněte si samotný skript, rozbalte archiv a nahrajte soubor dumper.php na svůj server do adresáře public_html. Aby skript fungoval správně, budete muset vytvořit adresář pro ukládání záloh databáze (dumps). Chcete-li vytvořit adresář, přejděte do Správce souborů na panelu Direct Admin, přejděte do adresáře public_html a vytvořte nový záložní adresář.

Přejděme přímo k práci se skriptem Sypex Dumper. Skript je volán z adresní řádek prohlížeč: http://example.com/dumper.php, kde example.com je vaše doména. Skript vás vyzve k zadání uživatelského jména a hesla. Budete muset zadat přihlašovací jméno uživatele databáze a heslo uživatele databáze, které jste zadali při vytváření databáze.

Poté vás skript vyzve k výběru akce s databázemi: „Zálohování / Vytvoření záložní kopie databáze“ a „Obnovení / obnovení databáze ze záložní kopie“. Zajímá nás první bod.

Položka „DB“ vám umožňuje vybrat požadovanou databázi ze seznamu vašich databází. Filtr tabulky umožňuje určit tabulky, které budou zahrnuty do zálohy. Více detailní informace O filtrech se dozvíte na stránkách vývojáře skriptu Sypex Dumper. V položce „Metoda komprese“ můžete určit, zda se při vytváření záložní kopie (sbalený soubor s příponou .gz) použije komprese Gzip, nebo zda bude záložní kopie uložena ve formátu .sql. Položka Úroveň komprese se používá pouze v případě, že je zvolena metoda komprese Gzip. Čím vyšší je hodnota tohoto parametru, tím menší bude velikost souboru.

Po výběru všech možností zálohování klikněte na Použít. Začne vytváření záložní kopie, samotný proces se zobrazí na obrazovce monitoru:

Po dokončení procesu vám bude poskytnut protokol vytvoření zálohy a také nabídka ke stažení souboru zálohy. Pokud chcete pokračovat v práci se skriptem Sypex Dumper, klikněte na tlačítko „Return“. Za zmínku stojí skutečnost, že záloha vytvořená tímto skriptem bude uložena v adresáři záloh, který jsme vytvořili dříve, tzn. Není nutné stahovat záložní kopii, lze ji uložit na serveru v adresáři záloh.

Metoda č. 4: Export pomocí skriptu Sypex Dumper.

Tato metoda je dostupná pouze uživatelům, kteří mají přístup k SSH (Secure SHell, dálkové ovládání operační systém). Chcete-li exportovat zálohu databáze, musíte se k serveru připojit přes SSH (například pomocí ssh klienta Putty, pokud máte OS Windows, nebo pomocí terminálu, pokud máte OS Linux).

Po připojení k příkazový řádek stačí spustit následující příkaz:

mysqldump -uUSER -pPASS DBNAME > /cesta/k/dump.sql

Kde "-u" je parametr, který určuje uživatelské jméno databáze pro připojení (USER), "-p" je parametr, který určuje heslo uživatele databáze pro připojení (PASS), DBNAME je název databáze, "/cesta/k /dump.sql" - úplná cesta k souboru zálohy databáze. Podívejme se na příkaz pomocí našeho příkladu. Řekněme, že záložní soubor je umístěn v adresáři domains/example.com/public_html/backup (kde exapmle.com je název vaší domény), uživatelské jméno databáze je „user_user“, heslo je „Ide2eib6?, databáze jméno je „user_database“, název záložní kopie - dump.sql, soubor zálohy je umístěn na cestě domains/example.com/public_html/backup/.

V tomto případě bude příkaz pro import databáze vypadat takto:

mysqldump -uuser_user -pIde2eib6 user_database > domains/example.com/public_html/backup/dump.sql

Pokud po provedení tohoto příkazu operační systém nehlásí chyby exportu, což znamená, že záloha byla úspěšně exportována. Na velikosti zálohy databáze nezáleží.

Uvažované metody jsou univerzální a umožňují vyřešit jakýkoli problém exportu databáze.

Poslední aktualizace: 31. 10. 2015

Ukládání souborů do databáze

Podívejme se, jak můžeme ukládat soubory, zejména soubory obrázků, do databáze. Chcete-li to provést, přidejte do databáze novou tabulku Obrázky se čtyřmi sloupci: Id (primární klíč a identifikátor, je typu int), FileName (bude ukládat název souboru a je typu nvarchar), Title (uloží soubor title a je také typu nvarchar) a ImageData (bude obsahovat data binárního souboru a je typu varbimary(MAX)).

Definujme kód, ve kterém se budou data načítat do tabulky:

Soukromá statická void SaveFileToDatabase() ( string connectionString = @"Zdroj dat=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; pomocí (SqlConnection connection = new SqlConnection(connectionString)) ( connection.Open(); příkaz SqlCommand = new SqlCommand(); command.Connection = connection; command.CommandText = @"INSERT INTO Images VALUES (@FileName, @Title, @ImageData)"; command.Parameters.Add("@FileName", SqlDbType.NVarChar, 50 ); command.Parameters.Add("@Title", SqlDbType.NVarChar, 50); command.Parameters.Add("@ImageData", SqlDbType.Image, 1000000); // cesta k souboru ke stažení string filename = @ " C:\Users\Eugene\Pictures\cats.jpg"; // název souboru string title = "(!JAZYK:Kočky"; // получаем короткое имя файла для сохранения в бд string shortFileName = filename.Substring(filename.LastIndexOf("\\")+1); // cats.jpg // массив для хранения бинарных данных файла byte imageData; using (System.IO.FileStream fs = new System.IO.FileStream(filename, FileMode.Open)) { imageData = new byte; fs.Read(imageData, 0, imageData.Length); } // передаем данные в команду через параметры command.Parameters["@FileName"].Value = shortFileName; command.Parameters["@Title"].Value = title; command.Parameters["@ImageData"].Value = imageData; command.ExecuteNonQuery(); } } !}

Po spuštění tohoto programu se v databázi objeví odpovídající záznam:

Načítání souborů z databáze

V předchozím tématu jsme se podívali na to, jak přidat soubor do databáze. Nyní provedeme opačnou operaci – získejte soubor z databáze. Nejprve definujme třídu souborů, která zjednoduší práci s daty:

Veřejná třída Obrázek ( public Image(int id, řetězec název souboru, název řetězce, bajtová data) ( Id = id; FileName = název souboru; Title = title; Data = data; ) public int Id ( get; private set; ) public string FileName ( get; private set; ) public string Title ( get; private set; ) public byte Data ( get; private set; ) )

Poté v kódu programu definujeme následující metodu:

Soukromé statické void ReadFileFromDatabase() ( string connectionString = @"Zdroj dat=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; Seznam obrázky = nový seznam (); using (SqlConnection connection = new SqlConnection(connectionString)) ( connection.Open(); string sql = "SELECT * FROM Images"; SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader = command.ExecuteReader(); while( reader.Read()) ( int id = reader.GetInt32(0); string název_souboru = reader.GetString(1); string title = reader.GetString(2); byte data = (byte)reader.GetValue(3); Obrázek obrázku= new Image(id, filename, title, data); obrázky.Přidat(obrázek); ) ) // uložte první soubor ze seznamu if(images.Count>0) ( pomocí (System.IO.FileStream fs = new System.IO.FileStream(images.FileName, FileMode.OpenOrCreate)) ( fs.Write( obrázky. Data, 0, images.Data.Length); Console.WriteLine("Obrázek "(0)" uložen", images.Title); ) ) )

V této metodě pomocí SqlDataReader získáváme hodnoty z databáze a používáme je k vytvoření objektu Image, který je následně přidán do seznamu. A na konci se podíváme, jestli jsou v seznamu prvky, pak vezmeme první prvek a uložíme ho na místní počítač. A po uložení se soubor stažený z databáze objeví v naší programové složce.

Od autora: Nedávno přišli na návštěvu příbuzní. Takže za pár dní nejprve vyčerpali celou zásobu jídla, pak „zkompostovali“ celou nervovou zásobu a nakonec spálili zásobu hudby (hudební centrum). Obecně jsem se rozhodl rychle přenést databázi MySQL. Pokud jste se v této situaci také ocitli, pak si tento článek určitě přečtěte.

Rychlý způsob exportu

Začněme přehledem phpMyAdmin. Chcete-li přenést databázi, musíte nejprve vytvořit její duplikát. Program má k tomu speciální funkce. Pojďme se na tento proces podívat blíže:

Nejprve můžete vybrat požadovanou databázi v seznamu vlevo a poté přejít na záložku nabídky „Export“. Pokud použijete tuto možnost, provede se přenos MySQL tabulka po tabulce. Chcete-li to provést, nastavte „Metodu exportu“ na „Normální“ a vyberte prvky exportu v „Tabulkách“.

Pokud potřebujete exportovat celou databázi (se všemi tabulkami), přejděte okamžitě na „Export“. Jen zde již neoperujeme s tabulkami, ale s databázemi. V „Metodě exportu“ nastavíme také „Normální“. Poté vyberte požadovanou databázi a v části „Výstup“ vyberte možnost „Uložit výstup do souboru“.

Dalším krokem je nastavení formátu, ve kterém bude kopie databáze uložena. Vyberte hodnotu „SQL“ z odpovídajícího seznamu. To zajistí, že kopii bude možné použít na většině platforem. Pokud ale budete databázi přenášet na konkrétní bázi, pak zde můžete vybrat vhodný formát: pole PHP, CSV, PDF a další.

Níže v částech „Možnosti formátu“ a „Možnosti ukládání dat“ můžete nakonfigurovat další parametry „ “ pro přenos databáze MySQL. Ale nebudeme se podrobně zabývat jejich recenzí. Pokud žádné z nich neznáte, je nejlepší neměnit (zbytečně) výchozí hodnoty. Zde můžete nakonfigurovat maximální kompatibilitu se staršími verzemi DBMS a způsob ukládání tabulek. Můžete exportovat pouze data nebo struktury. Tabulky kompletně zkopírujeme (volba „struktura a data“).

Po nastavení všech parametrů pro vytvoření kopie databáze klikněte v dolní části na „OK“. Výsledkem je duplicitní databáze, kterou lze snadno přenést na jiný server. Ve výchozím nastavení se vytvořený soubor uloží do složky pro stahování vašeho prohlížeče.

Dovážíme

Pomocí phpMyAdmin můžete nejen vytvářet kopie celého serveru, databází a jednotlivých tabulek. Program umožňuje snadný přenos dat MySQL do jiné instance DBMS. Provedení tohoto procesu je v mnoha ohledech podobné exportu databáze. phpMyAdmin umí připojit jak jednotlivé tabulky k databázi, tak několik databází k serveru najednou. Chcete-li připojit tabulky vlevo v seznamu, vyberte požadovanou databázi a poté přejděte na kartu „Importovat“.

Chcete-li připojit databázi (nebo několik databází) k serveru, okamžitě přejděte na zadanou kartu. Poté v části „Importovaný soubor“ zaškrtněte možnost „Procházet počítač“ a pomocí Průzkumníka označte umístění souboru databáze.

Zde je třeba zadat kódování, ve kterém jsou data v importovaném zdroji prezentována. S tímto parametrem byste měli být opatrnější, jinak získáte místo řádků v tabulkách skutečné „hieroglyfy“ a na jejich rozluštění si budete muset najmout rodilého Japonce nebo Číňana. A těch je v našem okolí opravdu nedostatek.

Nejčastěji používané kódování je UTF-8, které je standardně nainstalováno. Proto, i když přesně nevíte, které kódování se používá v přenosné databázi MySQL, stojí za to vyzkoušet toto kódování. V každém případě můžete importovanou databázi vždy smazat a poté ji „znovu nahrát“ s jiným kódováním.

Také spěchám zklamat „horlivé“ fanoušky phpMyAdmin. Tato utilita Vhodné pouze pro export-import malých databází (do 2 „metrů“). Tato hodnota je zcela dostačující pro částečný (po etapách) přenos serveru, který nemusí být úplně pohodlný a může celý proces zdržet na dlouhou dobu.

V sekci „Format“ nastavte hodnotu na „SQL“. V případě potřeby zapněte režim kompatibility. Zakážeme také automatické vytváření hodnoty klíče pro sloupce s hodnotou null (v závislosti na struktuře tabulky importovaného zdroje). A import dokončíte kliknutím na „OK“.

Pokud se chystáte přenést databázi MySQL ze zálohy, nezapomeňte před zahájením importu smazat „původní“ zdroj ze serveru. V opačném případě se zobrazí chybová zpráva, protože databáze již existuje.

Pokud byl proces úspěšný, programový systém zobrazí odpovídající zprávu.

Alternativní software

Slíbil jsem, že vám představím různé software pro správu DBMS. Můžete si tak rozšířit své „profesionální“ obzory a vybrat si program, který nejlépe vyhovuje vašim potřebám a typu činnosti.

Dnes otestujeme možnosti migrace MySQL pomocí výkonné aplikace s bohatými funkcemi vyvinuté tvůrci DBMS. MySQL Workbench si můžete stáhnout z oficiálního zdroje společnosti. Podrobně je také popsáno několik distribucí třetích stran (a odkazy na ně), které budou vyžadovány pro správu DBMS pomocí této platformy.

Ještě jednou opakuji: dotyčný nástroj má výkonnou funkcionalitu, takže budeme uvažovat pouze ten, který je určen pro import a export jednotlivých databází ve formátu SQL. Chcete-li to provést, spusťte program, klikněte na ikonu požadovaného připojení (pokud jich existuje několik).

V novém okně, které se otevře vlevo na panelu „Navigátor“, vyberte požadovanou kartu (pro export nebo import). Importuji duplicitní databázi vytvořenou pomocí phpMyAdmin.

Chcete-li přenést data MySQL, přejděte přes položku „Import dat“. Ve stejnojmenné záložce v části „Možnosti importu“ vyberte druhou možnost (na obrázku).

Protože nemáme žádná schémata, klikneme v dolní části na „Spustit import“. Další záložka „Progres importu“ zobrazuje stav procesu přenosu zadaný soubor. Tato možnost může být užitečná při importu velkého množství dat.

Po dokončení přenosu MySQL se v seznamu databází objeví db1, jehož duplikát jsme vytvořili pomocí phpMyAdmin.

No, zatímco jsem „schovával“ svou databázi MySQL, všichni moji příbuzní odešli. Protože jsem byl zaneprázdněn a nebyl nikdo, kdo by doplnil zásoby potravin v lednici. Takto mě můj oblíbený DBMS zachránil před „příbuzným“ neštěstím. Za což jí moc děkuji.

Jaké metody existují?

1 - pomocí rozhraní phpMyAdmin.

2 - pomocí ovládacího panelu poskytovatele hostingu.

3 - pomocí programu třetí strany.

Který způsob je lepší?

Doporučujeme první, protože... jeho schéma je jednoduché a používá ho většina webmasterů. Nedoporučujeme používat třetí metodu! Nikdy nedůvěřujte obsahu svých stránek programy třetích stran, navíc od neznámých vývojářů. Můžete také použít druhou metodu, ale její algoritmus je velmi odlišný a závisí na ovládacím panelu hostitele. Proto podrobně zvážíme první možnost a řekneme vám, jak správně přenášet databáze MySQL bez ztráty nebo poškození dat.

Vytvoření databáze na novém hostingu

Pokud chcete přenést databázi MySQL, pak již databázi máte a víte, jak ji vytvořit. V každém případě se tento proces u každého poskytovatele hostingu liší, ale vychází z jednoho obecného algoritmu:

1 - Hledáme sekci „MySQL“, „Databáze“ nebo něco podobného.

2 – Klikněte v něm na „Vytvořit“.

3 - Zadejte název databáze, připojte k ní uživatele (většinou je uživatel databáze již vytvořen, pokud ne, vytvořte jej a nastavte nejvyšší práva) a zadejte heslo k databázi.

4 - Databáze byla vytvořena, ale je stále prázdná.

Export databáze ze starého hostingu

Nyní použijeme to, čemu se říká výpis databáze. Tito. Uložme aktuální databázi ze serveru do vašeho počítače. K tomu potřebujeme rozhraní phpMyAdmin, které musíte najít osobní účet poskytovatele hostingu, který hostí váš aktuální web. Opět neexistuje jediný algoritmus, takže zde je obecné schéma:

2 - V levém rohu vyberte svou databázi (tu, kterou se chystáte exportovat do počítače a poté přenést na jiný hosting).

4 - Můžete být požádáni, abyste vybrali způsob exportu „Normální“ (mnoho nastavení) nebo „Rychlý“ (málo nastavení). Nezáleží na tom, které si vyberete, hlavní věcí je změnit pouze ta nastavení, která popisujeme níže.

5 - Musíte vybrat všechny stoly kliknutím na tlačítko „Vybrat vše“.

7 - Pro každý případ si zapamatujte kódování, ale nedotýkejte se ho.

8 - Klikněte na „OK“ a uložte soubor z databáze do počítače. Uložený soubor má obvykle příponu .sql.

Import databáze na server nového hostitele

1 - Stejným způsobem hledáme phpMyAdmin na novém hostingu.

2 - V něm vyberte požadovanou databázi (vytvořili jsme ji na začátku článku a zůstala prázdná).

3 - Klikněte na záložku „Importovat“.

4 - Klikněte na „Procházet“ a vyberte databázi uloženou ve vašem počítači.

5 - Zkontrolujte, zda kódování odpovídá tomu, ve kterém jste uložili databázi.

6 – Nic jiného neměňte, klikněte na „OK“ a vaše databáze bude importována na nový hosting.

jaké jsou problémy?

1 - Při importu databáze by neměla obsahovat dotazy jako „ VYTVOŘIT DATABÁZI, /*!40101 SET @STARÝ" Chcete-li zkontrolovat jejich přítomnost, otevřete soubor databáze v počítači s libovolným textový editor(Nejlepší je Notepad++) a pomocí Ctrl+A vyhledejte tyto dotazy. Pokud je najdete, jednoduše je smažte a zkuste databázi importovat znovu.

2 - Při importu musí být databáze umístěná na novém hostiteli prázdná, pokud v ní již nějaké tabulky existují, vyberte je a odstraňte.