• Přenos databáze MySQL na jiný server. Přenos databáze do WordPressu s pluginy i bez nich

    Soubory našich stránek byly úspěšně nahrány na hosting. Neztrácejme čas a přeplánujme stávající základna data (DB) z LAN na server.

    Chcete-li to provést, přejděte na PhpMyAdmin. Kdo zapomněl, kde to je, podívejte se.

    Vidíme naši databázi (mebelip) a klikneme na jméno.

    Otevřelo se před námi okno se spoustou dat, které začátečníkovi neříká absolutně nic. Ale teď to nepotřebujeme.

    Stačí kliknout na záložku "Export".


    Dovolte mi připomenout, že ve výchozím nastavení se OpenServer otevře v prohlížeči Chrome. Proto v levém dolním rohu vidíme stažený soubor. Pamatujte, kam jste to uložili, brzy to budeme potřebovat.

    Klikneme na to.


    Pro zajímavost se můžete podívat, jaké „tajné“ informace v něm jsou. Otevírá se jednoduchým poznámkovým blokem.


    Všechno s lokální server hotovo. Přejděte na panel administrátora svého hostitelského účtu.

    Zde nás zajímá karta "MySQL".


    Stiskněte tlačítko „Přidat Uživatel MySQL". Ve výchozím nastavení již byla vytvořena. Doporučuji však vytvořit novou, konkrétně pro tento web.

    V budoucnu, když zde budete mít více než jeden web, pomůže to předejít nejasnostem.


    Objeví se vyskakovací okno, v němž předepíšeme uživatelské jméno. Skládá se ze dvou částí, první je host1234567 (čísla budou vaše), nezměněná část, ale do druhé zapisujeme naše informace.

    Pro mě pro další pohodlí to bude "meb". Nenechám se tedy zmást a s jistotou budu vědět, že se jedná o web o nábytku.

    Můžete si nastavit své vlastní heslo.


    Vidíme, že se to objevilo Nový uživatel, ale není k němu připojena žádná databáze.

    Nyní vytvoříme samotnou databázi.

    Klikněte na záložku "MySQL Database".


    Tlačítko "Přidat databázi MySQL".

    Do vyskakovacího okna zadejte název. Pro pohodlí je lepší napsat stejná data jako v uživatelském jménu.


    K uživateli, kterého jsme předtím vytvořili, je připojena databáze.

    Tuto informaci si někam zapište, tzn. uživatelské jméno a databázi a heslo, pokud jste je změnili. To vše bude potřeba v další lekci.

    Klikněte na "phpMyAdmin".


    Vlevo klikněte na výchozí databázi.


    Najdeme ten náš nově vytvořený a otevřeme ho stejným způsobem.


    Nahoře najděte záložku "Import" - klikněte.

    16. května

    Nedávno se objevila otázka převodu webu z jednoho hostingu na druhý. S weby pouze na html a css bez databází by neměly být žádné potíže. Tanec s tamburínou začíná, když jste šťastný majitel databázový web. Nyní je takových stránek na internetu drtivá většina.

    Samotné soubory stránek můžeme přenést pomocí běžného kopírování z hostingu na hosting

    Abychom mohli přenést databázi z jednoho serveru na druhý, potřebujeme:
    1. Stáhněte si výpis databáze do počítače (operace Export).

    2. Nahrajte výpis databáze na hostitelský server (operace Import).

    Můžete to udělat s několika různé způsoby. Některé CMS dokonce umožňují provádět tyto operace interně. Můžete také použít dumper databáze MySQL. Nejznámějším a nejběžnějším způsobem přenosu databází je však přenos pomocí ovládacího panelu databáze, o kterém bych se chtěl v tomto článku zamyslet.

    1. Exportujte databázi ze serveru do počítače.

    Musíte jít na server, na kterém se aktuálně nachází databáze, kterou potřebujeme přenést, a na levé straně nabídky v seznamu databází vybrat tu, kterou je třeba přenést.

    Musíte jít do " Vývozní» a vyberte jako « Metoda exportu» — Normální — zobrazí všechna možná nastavení.

    Poté musíte věnovat pozornost polím:
    1. V záložce tabulky musí být vybrány všechny tabulky, které mají být importovány. Může nastat situace, kdy některé tabulky nebudou potřeba při importu k přenosu databází. V tomto případě můžete odebrat výběr z těch tabulek, které nejsou potřeba, zvýrazněním potřebných názvů tabulek pomocí upnutého klávesa Ctrl na klávesnici. (DŮLEŽITÉ! Pokud nejste zkušený uživatel databáze - je lepší vybrat všechny tabulky. )
    2. Vyberte možnost "Uložit výstup do souboru".
    3. Pamatujte na kódování, které se nastavuje v poli - Kódování souboru.
    4. Zbývajících položek se nemusíte dotýkat, pokud nevíte, proč jsou potřeba.
    5. Klepněte na tlačítko OK a uložte soubor do počítače.

    2. Import databáze z počítače na server.

    1. Zkontrolujeme rozšíření uložené databáze melounů na našem počítači. Mělo by to být '.sql'. Pokud byla položka zadána při ukládání databáze - archivovat ji (zip, gzip, bzip ) - musíte nejprve extrahovat databázi z archivu.
    2. Náš výpis databáze by neměl obsahovat dotazy jako « VYTVOŘIT DATABÁZI, /*!40101 SET @STARÝ» . Nepřítomnost nebo přítomnost takového požadavku můžete ověřit otevřením výpisu databáze pomocí poznámkového bloku nebo jiného textový editor. Pokud takový požadavek existuje, měli byste tento řádek smazat a soubor znovu uložit. Zpravidla se nachází v prvních 15 řádcích výpisu databáze.
    3. Musíte se ujistit, že v budoucí databázi nebyly vytvořeny žádné tabulky. Chcete-li to provést, přejděte na a vyberte svou databázi v nabídce vlevo v seznamu databází. Na levé straně nabídky můžete vidět zprávu "V databázi nebyly nalezeny žádné tabulky." Pokud existují tabulky, musíte je odstranit.

    Po splnění všech těchto bodů můžete bezpečně přejít na záložku "Import", ve které kliknutím na tlačítko "Procházet" vybereme uložený výpis databáze z počítače. V poli "Kódování souboru:" vyberte kódování, ve kterém byla tato databáze vytvořena.

    Není třeba provádět žádná další nastavení. Klikněte OK a počkejte na dokončení importu databáze.

    Základna byla úspěšně převedena a poté bude naše stránka fungovat na novém hostingu! (Za předpokladu, že všechny ostatní operace převodu stránek již byly provedeny).

    Mnozí přemýšleli o tom, jak přenést skripty s databází MySQL na jiný hosting. V tomto článku jsem tedy napsal, jak přenést vaši databázi pomocí SSH / telnet a PHPMyAdmin "a.

    Pokud máte přístup telnet nebo SSH k oběma serverům, bude pořadí vašich akcí následující:
    Telnet/SSH na původní server. Exportujte obsah databáze pomocí následujícího příkazu:

    mysqldump -uYourLogin -pYourPassword _mysql YourDatabase > baza.sql

    Po provedení tohoto příkazu se veškerý obsah vaší databáze uloží do souboru baza.sql.

    Poté musíte výsledný soubor s vaší databází nahrát na server příjemce. To lze provést ve stejné relaci telnet/SSH pomocí příkazu ftp nebo pomocí libovolného klienta, kterému dáváte přednost (nejprve si stáhněte soubor baza.sql do svého počítače a poté jej nahrajte na server příjemce). Poté, co je soubor vaší databáze na serveru příjemce, přejděte na tento server přes telnet/SSH. Svou databázi můžete nahrát na přijímající server spuštěním následujícího příkazu:

    mysql -uYourLogin -pYourPassword _mysql YourDatabase< baza.sql

    (hesla a přihlašovací údaje a názvy databází, samozřejmě musíte zadat platná pro přijímající server). V důsledku toho přenesete databázi z jednoho serveru na druhý bez jakékoli ztráty.

    Výše popsanou techniku ​​lze použít v případech, kdy máte přístup na oba servery přes telnet nebo SSH a v případech, kdy je vaše databáze poměrně velká (několik desítek tisíc záznamů). V případech, kdy nemáte přístup k serverům (nebo jednomu z nich) přes telnet nebo SSH, nebo nevíte, jak pracovat týmové prostředí Unix a použijte klienta telnet nebo SSH, můžete použít následující techniku:
    Na zdrojovém serveru přejděte na skript pro práci s databázemi MySQL (obvykle je to PHPMyAdmin). Vyberte databázi, kterou chcete přenést, a v jejích vlastnostech zadejte "Zobrazit výpis databáze (schéma)" (Je třeba poznamenat, že konkrétní tituly položky nabídky se mohou lišit od zde uvedených, protože je lze použít na různých serverech různé verze program, a proto je velmi žádoucí seznámit se s příslušnou dokumentací). Zaškrtněte položky, které potřebujete: „Pouze struktura“, „Struktura a data“, „Pouze data“ a zaškrtněte položku „Odeslat“. Když po chvíli stisknete tlačítko "Go", budete vyzváni k nahrání souboru - to bude obsah vaší databáze. Když je soubor stažen do počítače.

    Máte databázi MS SQL Server, kterou je třeba migrovat do jiné fyzický počítač. Již jste provedli zálohu a šťastně začněte obnovovat. Pak se ale ukáže, že na počítači, kam chcete databázi přenést, více než stará verze MS SQL Server. Stack Overflow vás ujišťuje, že věci jsou špatné. Ale je tomu skutečně tak?

    Samozřejmě přesunutí základny z více nová verze do starého - to není klasický a ne nejsprávnější scénář práce. Často jsou ale databáze vytvářeny tak, že podporují stále nové a nové verze SQL, počínaje některými např. od 2008 R2, protože. přímá kompatibilita s MS SQL je více než vynikající. A například váš klient již nainstaloval MS SQL 2016 a vy máte na svém testovacím serveru pro vývoj nainstalovaný MS SQL 2014. A chcete rozšířit databázi vašeho klienta, abyste zjistili, kde má s daty zmatek.

    Microsoft tento problém popřel – říkají, že nemají zpětnou kompatibilitu, a to je vše. záloha vytvořené na novějším serveru nelze obnovit na starší server. Ano, mají nástroje jako DTS, copy base, export-import atd. Jsou ale tak nepohodlné a těžkopádné, že pomocí nich není příliš vhodné provádět běžný přenos velké databáze s mnoha tabulkami. Každopádně mně osobně se to nepovedlo.

    Ano, můžete generovat SQL skripty pro celou databázi včetně dat. Představte si ale, že máte v databázi spoustu polí blob s velkými daty a obecně je velikost celé databáze 500+ GB. Představte si, jak dlouho bude takový skript trvat, jak dlouho bude vygenerován a spuštěn.

    Omezení číslo jedna je, že potřebujete přístup přes MS SQL Management Studio k oběma serverům – starému i novému. Pokud to není možné, mělo by být možné na počítači, ze kterého chcete přenést databázi, nainstalovat verzi SQL, do které chcete databázi přenést, abyste databázi přenesli nejprve do této verze lokálně a poté jej přetáhněte přes zálohu nebo přímo přes databázové soubory *df (přes Detach/Attach) na nový počítač (verze SQL Serveru se v tomto případě již bude shodovat).

    Dalším omezením je, že budete potřebovat skript databázového schématu (všech objektů, včetně tabulek, indexů, omezení, uložených procedur, spouštěčů atd.) bez dat a pokyny pro vytvoření omezení cizího klíče v tomto skriptu musí jít na adresu úplně konec, oddělený od skriptu pro tvorbu samotných tabulek.

    Stručně popíšu samotný algoritmus přenosu dat. Všechny akce se provádějí v relaci Management Studio připojené k serveru, na kterých musíte přesunout základnu.

    1) Na novém serveru vytvořte prázdnou databázi se stejnými soubory a skupinami souborů jako migrovaná databáze.

    2) Pomocí skriptu databázového schématu vytvoříme všechny databázové objekty (tabulky, indexy, pohledy, spouštěče, uložené procedury a funkce), ale bez vytváření omezení cizího klíče. V této fázi je nemožné vytvořit FK, protože budou rušit vkládání dat.

    3) Databázi, ze které budeme data přenášet, připojíme jako Linked Server „a, abychom mohli požadavky do staré databáze použít v dotazech na novou databázi.

    EXEC sp_addlinkedserver @server=N"LinkedServerAlias", @srvproduct=N"", @provider=N"SQLNCLI", @datasrc=N"LinkedServerHost\LinkedServerName"; EXEC sp_addlinkedsrvlogin "LinkedServerUser", "false", null, "RealUser", "RealUserPassword";
    4) Protože databázové struktury jsou stejné, použijeme vestavěnou uloženou proceduru sp_msforeachtable, která umožňuje provést dotaz na každou databázovou tabulku a vygenerovat skript přenosu dat z stará základna na nový prostřednictvím žádosti jako

    VLOŽ DO ? VYBRAT * Z ?
    Místo otazníku nahradí sp_msforeachtable název každé tabulky a spustí dotaz vícekrát (jednou na tabulku).

    Tady jsem narazil na nejvíc velký počet hrábě.

    A) Problém číslo jedna je, že pro tabulky s poli IDENTITY musíte volat:

    SET IDENTITY_INSERT ON; --INSERT INTO ... (vloží se); SET IDENTITY_INSERT OFF;
    b) Problém číslo dvě je, že na tabulkách, které nemají pole IDENTITY, nelze toto volání provést, takže je třeba dynamicky určit, zda tabulka má sloupec IDENTITY či nikoli.

    To lze provést pomocí dotazu, jako je tento:

    SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME="SomeTable") AND (COLUMNPROPERTY(object_id("dbo.SomeTable"), COLUMN_NAME, "IsIdentity") = 1)
    c) Problém číslo tři je, že, jak se ukázalo, v režimu IDENITY_INSERT ON nemůžete

    VLOŽIT DO ... VYBRAT * Z ...
    , ale musíte uvést konkrétní pole.

    Pole tabulky můžete vypsat v řádku pomocí následujícího dotazu:

    SELECT SUBSTRING((SELECT ", " + QUOTENAME(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = "SomeTable" ORDER BY ORDINAL_POSITION FOR XML path("")), 3, 200000);
    4) Vygenerujte vkládací skript pro všechny tabulky:

    Postup generování skriptu

    EXEC sp_msforeachtable N" DECLARE @command varchar(MAX); DECLARE @name varchar(200); SET @name=""?""; SET @name = SUBSTRING(@name, 8, LEN(@name)-8); SET @command = """"; SELECT @command= SUBSTRING((SELECT "", "" + QUOTENAME(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = """" + @name + """" ORDER BY ORDINAL_POSITION FOR XML path("""")), 3, 200000); SET @command = ""INSERT INTO ""+ @name +"" (""+ @command + "") SELECT "" + @command + "" FROM "" + ""LinkedServerAlias.SourceDatabase."" + ""?""; SET @command= ""POKUD EXISTUJE (vyberte * z INFORMATION_SCHEMA.COLUMNS kde (TABLE_NAME="""""" + @Name + "" """") A (COLUMNPROPERTY(object_id(""""dbo.""+@Name+"""""), COLUMN_NAME, """"Identity"""") = 1)) NASTAVIT IDENTITY_INSERT "" + @name + "" ON; "" +@command; SET @command=@command+"";"" + ""POKUD EXISTUJE (vyberte * z INFORMAČNÍHO SCHÉMATU.COLUMNS kde (TABLE_NAME="""""" + @Name + """""") A (COLUMNPROPERTY(object_id(""""dbo.""+@Name+"""""), COLUMN_NAME, """"IsIdentity"""") = 1)) SET IDENTITY_INSERT " " + @jméno + "" VYPNUTO;""; PRINT (@příkaz); --EXEC(@příkaz); // Bez komentáře bude skript spuštěn okamžitě a ne pouze zobrazen na obrazovce "


    5) Spusťte vygenerovaný skript přenosu dat

    6) Spusťte skript a vytvořte všechna omezení cizího klíče (teď můžete).

    7) Hotovo! Provedli jste migraci databáze z nové SQL server ve starém, i když se to považovalo za nemožné. Navíc přenos probíhá pouze jedenapůlkrát pomaleji, než je rychlost přenosu dat po síti, tzn. docela rychle.

    8) Uklidíme po sobě (vypne propojený server):

    EXEC sp_droplinkedsrvlogin "LinkedServerUser", null; sp_dropserver "LinkedServerAlias";
    Omezení metody.

    1) Tato metoda nebude moci přenášet tabulky, které mají sloupce typu XML.
    Určitě existuje mnoho dalších omezení, tk. databáze, kterou jsem tímto způsobem přenesl, nevyužívala mnoho funkcí SQL serveru. O omezeních můžete psát do komentářů a já jimi článek doplním.

    Děkuji za pozornost! Doufám, že to někomu pomůže.

    Jaké jsou způsoby?

    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 nevěřte obsahu svých stránek programy třetích stran, kromě toho od nepochopitelný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 kompetentně přenášet databáze MySQL bez ztráty nebo poškození dat.

    Vytvořte databázi na novém hostingu

    Pokud chcete migrovat 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 liší pro každého z poskytovatelů hostingu, ale vychází z jednoho obecného algoritmu:

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

    2 - V něm klikněte 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 momentálně je prázdná.

    Export databáze ze starého hostingu

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

    2 - Vlevo v rohu vyberte svou databázi (tu, kterou se chystáte exportovat do počítače, abyste ji později mohli 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ý z nich 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 svého 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 phpMyAdmina na nový hosting.

    2 - V něm vybíráme požadovanou základnu data (vytvořili jsme je na začátku článku a zůstalo prázdné).

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

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

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

    6 - Neměňte nic jiného, ​​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 pomocí libovolného textového editoru (nejlépe Notepad++) a pomocí Ctrl+A vyhledejte tyto dotazy. Pokud ji 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 jsou - vyberte je a odstraňte.