Трансфер на база данни. Прехвърляне на база данни към WordPress със или без плъгини

Здравейте, скъпи и уважавани читатели на моя блог! Днес бих искал да ви разкажа как да прехвърлите mysql база данни на хостинг.

Нека да се лишим от красноречиви и дълги въведения днес, нека да преминем направо към точката.

Какви методи за копиране на база данни в хостинг съществуват?

Мога да кажа с увереност, че определено има много начини за копиране. Но да се опише ирационално и нереалистично сложни процедуриНе искам и няма, защото няма смисъл (едва ли сред читателите се спотайват хора, които искат да си усложнят живота).

Затова ще започнем от прости и достъпни опции за масите, включително:

  1. Експортирайте данни с помощта на интерфейса phpMyAdmin през контролния панел на доставчика.
  2. Копиране на базата данни с помощта на програми на трети страни.

Кой начин е по-добър?

Препоръчвам първия, който се използва от професионални уеб администратори. Единственото нещо, което си струва да запомните, е, че алгоритъмът за инсталиране може да се различава, тъй като всеки хостинг има свой индивидуален контролен панел.

Вторият вариант, въпреки че не създава затруднения, не препоръчвам да го използвате! Доверете се на информацията за вашия уеб ресурс програми на трети странинаистина лоша идея.

Инструкции стъпка по стъпка за създаване на база данни на нов хостинг

Нека започнем с факта, че няма да описвам процедурата за създаване на самата база данни mysql, тъй като най-вероятно, след като сте решили да я импортирате в хостинг, сте се притеснявали да я създадете по-рано. Това означава, че сме готови да започнем изпълнението. общ алгоритъмсъздаване на база данни за хостинг, което включва:

  1. Активиране лична сметкана нает хостинг.
  2. Потърсете в менюто раздела „MySQL“, „База данни“ или меню с подобно име.
  3. Директно създаване на база данни на хостинг.
    За да направите това, щракнете върху бутона „Създаване“. Пишем ново име за базата данни, свързваме потребителя с него (често хостинг доставчикът автоматично създава потребителя, но понякога тази операция трябва да се извърши сами. Следователно, ако това се случи, не забравяйте да активирате най-високо нивоправа за достъп до този акаунт).

Прехвърляне на MySQL базата данни от стария хостинг на вашия компютър

Сега предлагам да преминем към стъпката, която опитните потребители наричат ​​изхвърляне на база данни. По-точно, нека спестяваме текуща базаот стария хостинг на вашия компютър.

Забележка! Изхвърляне- Това функционален файл, чиято цел е да опрости процедурата за прехвърляне на информация от базата данни.

Процедура:

Импортиране на MySQL данни към нов хостинг

  1. По същия начин, както в предишния раздел, отидете на административен панелхостинг.
  2. Избираме базата данни, от която се нуждаем (тази, която създадохме в самото начало).
  3. Щракнете върху раздела „Импортиране“.
  4. Щракнете върху „Преглед“ и посочете местоположението на файла за съхранение, записан преди това на вашия компютър.
  5. Проверяваме дали кодирането е подобно на това, което е приложено при запазване на файла (точка 7 от предишния раздел).
  6. Оставяме всички други настройки непроменени и завършваме процеса на копиране на данни на новия хостинг сървър.

Решаване на възможни проблеми

Уверете се, че преди да започнете да импортирате материали към новия хостинг, няма фрази за заявка „СЪЗДАВАНЕ НА БАЗА ДАННИ“ във файла за съхранение. За да направите това, отворете го произволно текстова програма(можете да използвате Notepad или Word pad) и използвайте Ctrl+F (чрез търсене на текст), за да намерите тези заявки и ако ги намерите, просто ги изтрийте.

Дано всичко е ясно?! Следвайки инструкциите стъпка по стъпка, не би трябвало да имате никакви затруднения.

Дял полезни статиимоят блог в в социалните мрежис приятели, абонирайте се за актуализации и ще се видим скоро!

На Ваше разположение! Абдулин Руслан

Много хора се чудеха как да прехвърлят скриптове с базата данни MySQL данникъм друг хостинг. И така, написах в тази статия как да прехвърлите вашата база данни с помощта на SSH/telnet и PHPMyAdmin.

Ако имате достъп чрез telnet или SSH до двата сървъра, тогава последователността на вашите действия ще бъде както следва:
Влезте чрез telnet/SSH в изходния сървър. Експортирайте съдържанието на вашата база данни със следната команда:

mysqldump -uВашето влизане -pВашата парола _mysql Вашата база данни > baza.sql

След изпълнение на тази команда, цялото съдържание на вашата база данни ще бъде записано във файла baza.sql.

След това трябва да качите получения файл с вашата база данни на сървъра на получателя. Това може да се направи в същата telnet/SSH сесия ftp команда, или като използвате всеки клиент, който предпочитате (първо изтеглете файла baza.sql на вашия компютър и след това го качете на сървъра на получателя). След като файлът на вашата база данни е на сървъра на получателя, влезте в този сървър чрез telnet/SSH. Можете да качите вашата база данни на сървъра на получателя, като изпълните следната команда:

mysql -uВашето влизане -pВашата парола _mysql Вашата база данни< baza.sql

(пароли и данни за влизане и имена на бази данни, разбира се, трябва да посочите, че са валидни за сървъра на получателя). В резултат на това ще прехвърлите вашата база данни от един сървър на друг, без никакви загуби.

Описаната по-горе техника може да се използва в случаите, когато имате достъп до двата сървъра чрез telnet или SSH и в случаите, когато вашата база данни е доста голяма (няколко десетки хиляди записа). В случаите, когато нямате достъп до сървърите (или един от тях) чрез telnet или SSH или не знаете как да работите в екипна среда Unix и използвайте telnet или SSH клиент, тогава можете да използвате следния метод:
На изходния сървър отидете на скрипта за работа с MySQL бази данни (Като правило това е PHPMyAdmin). Изберете базата данни, предназначена за прехвърляне, и в нейните свойства посочете „Преглед на дъмп на база данни (схема)“ (Трябва да се отбележи, че конкретни именаелементите от менюто може да се различават от споменатите тук поради факта, че различни сървъриможе да се използва различни версиипрограма и затова е много препоръчително да се запознаете със съответната документация). Поставете отметки в квадратчетата за елементите, от които се нуждаете: „Само структура“, „Структура и данни“, „Само данни“ и поставете отметка в квадратчето „Изпращане“. Когато щракнете върху бутона „Отиди“ след известно време ще бъдете помолени да качите файл - това ще бъде съдържанието на вашата база данни. Когато файлът се изтегли на вашия компютър.

От автора:Роднини наскоро дойдоха на гости. И така, за няколко дни те първо изчерпаха целия хранителен запас, след това „компостираха“ целия нервен запас и накрая изгориха музикалния запас ( музикален център). Като цяло, далеч от опасността, реших бързо да прехвърля базата данни MySQL. Ако и вие се окажете в тази ситуация, не забравяйте да прочетете тази статия.

Бърз метод за експортиране

Нека започнем с общ преглед на phpMyAdmin. За да прехвърлите база данни, първо трябва да създадете неин дубликат. Програмата има специална функционалност за това. Нека да разгледаме по-отблизо този процес:

Първо можете да изберете от списъка вляво необходимата база даннии след това отидете в раздела на менюто „Експортиране“. Ако използвате тази опция, тогава ще бъде извършена MySQL миграция таблица по таблица. За да направите това, задайте „Метод на експортиране“ на „Нормално“ и изберете елементите за експортиране в „Таблици“.

Ако трябва да експортирате цялата база данни (с всички таблици), веднага отидете на „Експортиране“. Само че тук вече не оперираме с таблици, а с бази данни. В „Метод за експортиране“ също задаваме „Нормално“. След това изберете желаната база данни и в секцията „Изход“ изберете опцията „Запазване на изхода във файл“.

Следващата стъпка е да зададете формата, в който ще бъде запазено копието на базата данни. Изберете стойността „SQL“ от съответния списък. Това ще гарантира, че копието може да се използва на повечето платформи. Но ако ще прехвърлите базата данни на бетонна основа, тогава можете да изберете подходящия формат тук: PHP масив, CSV, PDF и други.

По-долу в секциите „Опции за форматиране“ и „Опции за запазване на данни“ можете да конфигурирате повече „ “ параметри за прехвърляне на базата данни MySQL. Но няма да се спираме подробно на техния преглед. Ако не сте запознати с някой от тях, тогава е по-добре да не променяте (ненужно) зададени стойностипо подразбиране. Тук можете да конфигурирате максимална съвместимост с по-стари версии на СУБД и как ще се запазват таблиците. Можете да експортирате само данни или структури. Ще копираме изцяло таблиците (опцията „структура и данни“).

След като зададете всички параметри за създаване на копие на базата данни, щракнете върху „Ok“ в долната част. В резултат на това получаваме дублирана база данни, която лесно може да бъде прехвърлена на друг сървър. По подразбиране създаденият файл се записва в папката за изтегляне на вашия браузър.

Ние внасяме

С помощта на phpMyAdmin можете не само да създавате копия на целия сървър, бази данни и отделни таблици. Програмата ви позволява лесно да прехвърляте MySQL данни към друг екземпляр на СУБД. Изпълнението на този процес е в много отношения подобно на експортирането на база данни. phpMyAdmin може да свързва както отделни таблици към базата данни, така и няколко бази данни към сървъра наведнъж. За да прикачите таблици отляво в списъка, изберете желаната база данни и след това отидете в раздела „Импортиране“.

За да прикачите база данни (или няколко бази данни) към сървъра, незабавно отидете в посочения раздел. След това в секцията „Импортиран файл“ отметнете елемента „Преглед на вашия компютър“ и чрез Explorer посочете местоположението на файла с база данни.

Тук трябва да посочите кодирането, в което се представят данните в импортирания източник. Трябва да сте по-внимателни с този параметър, в противен случай ще получите истински „йероглифи“ вместо редове в таблиците и ще трябва да наемете роден японски или китайски, за да ги дешифрирате. А в нашата област има истински недостиг от тях.

Най-често използваното кодиране е UTF-8, което е инсталирано по подразбиране. Следователно, дори и да не знаете точно кой се използва в преносимия MySQL база данни, тогава трябва да опитате това кодиране. Във всеки случай винаги можете да изтриете импортираната база данни и след това да я „качите отново“ с различно кодиране.

Също така бързам да разочаровам „ревностните“ фенове на phpMyAdmin. Тази помощна програмаПодходящ само за експорт-импорт на малки бази данни (до 2 “метра”). Тази стойност е напълно достатъчна за частично (поетапно) прехвърляне на сървъра, което може да не е съвсем удобно и може да забави целия процес за дълго време.

В секцията „Форматиране“ задайте стойността на „SQL“. Ако е необходимо, включете режима на съвместимост. И също така изключете автоматично създаванеключови стойности за колони с нулева стойност(зависи от структурата на таблицата на импортирания източник). И за да завършите импортирането, щракнете върху „Ok“.

Ако възнамерявате да прехвърлите MySQL база данни от резервно копие, не забравяйте да изтриете „оригиналния“ източник от сървъра, преди да започнете импортирането. В противен случай ще получите съобщение за грешка, защото базата данни вече съществува.

Ако процесът е бил успешен, програмната система ще покаже съответно съобщение.

Алтернативен софтуер

Обещах по пътя изучаване на MySQLви представя различни софтуерза администриране на СУБД. По този начин можете да разширите своите „професионални“ хоризонти и да изберете програмата, която най-добре отговаря на вашите нужди и вид дейност.

Днес ще тестваме възможностите MySQL миграцияизползвайки мощно многофункционално приложение, разработено от създателите на СУБД. Можете да изтеглите MySQL Workbench от официалния ресурс на компанията. Няколко дистрибуции на трети страни (и връзки към тях), които ще са необходими за администриране на СУБД с помощта на тази платформа, също са описани подробно.

Повтарям още веднъж: въпросният инструмент има мощна функционалност, така че ще разгледаме само този, който е предназначен за импортиране и експортиране на отделни бази данни в SQL формат. За да направите това, стартирайте програмата, щракнете върху иконата на желаната връзка (ако има няколко от тях).

В новия прозорец, който се отваря вляво в панела „Навигатор“, изберете желания раздел (за експорт или импорт). Импортирам дублирана база данни, създадена с помощта на phpMyAdmin.

За да прехвърлите MySQL данни, преминете през елемента „Импортиране на данни“. В раздела със същото име в секцията „Опции за импортиране“ изберете втората опция (посочена на снимката).

Тъй като нямаме никакви схеми, кликваме върху „Стартиране на импортирането“ в долната част. Следващият раздел „Прогрес на импортирането“ показва състоянието на процеса на прехвърляне посочен файл. Тази опция може да бъде полезна при импортиране големи обемиданни.

След като прехвърлянето на MySQL приключи, db1 ще се появи в списъка с бази данни, чийто дубликат създадохме с помощта на phpMyAdmin.

Е, докато „криех“ моята MySQL база данни, всичките ми роднини бяха напуснали. Тъй като бях зает и нямаше кой да попълни запасите от храна в хладилника. Ето как моята любима СУБД ме спаси от „свързано“ нещастие. За което много й благодаря.

Имате ли MS база данни SQL сървър, който трябва да бъде прехвърлен на друг физически компютър. Вече сте направили резервно копие и щастливо започвате да възстановявате. Но тогава се оказва, че на компютъра, където трябва да прехвърлите базата данни, повече Стара версия MS SQL сървър. Препълване на стекави уверява, че всичко е лошо. Но наистина ли е така?

Разбира се, прехвърлянето на базата данни от повече нова версиякъм стария - това не е класически и не е най-правилният сценарий на работа. Но често базите данни се създават по такъв начин, че да поддържат всички по-нови версии на SQL, като се започне с някои, например 2008 R2, т.к. Директната съвместимост на MS SQL е повече от отлична. И, например, вашият клиент вече е инсталирал MS SQL 2016 и имате MS SQL 2014 на вашия тестов сървър за разработка и искате да разгърнете базата данни на вашия клиент, за да разберете къде той е объркан с данните.

Microsoft се отрече от проблема - те казват, че го нямат обратна съвместимост, и това е. Архивиранесъздадени на по-нов сървър не могат да бъдат възстановени на по-стар сървър. Да, имат инструменти като DTS, копиране на база данни, експорт-импорт и т.н. Но те са толкова неудобни и тромави, че не е особено удобно да се направи нормален трансфер на голяма база данни с много таблици, използвайки ги. Във всеки случай на мен лично не ми се получи.

Да, можете да генерирате SQL скриптове за цялата база данни, включително данните. Но представете си, че имате куп blob полета с големи данни във вашата база данни и като цяло размерът на цялата база данни е 500+ GB. Можете ли да си представите колко време ще отнеме един такъв скрипт, колко време ще отнеме да се генерира и изпълни.

Ограничение номер едно е, че имате нужда от достъп чрез MS SQL Студио за управлениекъм двата сървъра - стар и нов. Ако това не е възможно, тогава трябва да е възможно на машината, от която искате да прехвърлите базата данни, да инсталирате версията на SQL, към която искате да прехвърлите базата данни, за да прехвърлите базата данни първо към тази версия локално, и след това го плъзнете през резервно копие или директно през *df файловете на базата данни (чрез отделяне/прикачване) на нова кола (SQL версиясървър" и в този случай вече ще съвпадне).

Друго ограничение е, че ще ви е необходим скрипт за схемата на базата данни (всички обекти, включително таблици, индекси, ограничения, съхранени процедури, тригери и т.н.) без данни и инструкциите за създаване на ограничения на чужд ключ трябва да влизат в този скрипт на самия край, отделно от скрипта за създаване на самите таблици.

Ще опиша накратко самия алгоритъм за пренос на данни. Всички действия се извършват в сесия на Management Studio, свързана към сървъра, на коятотрябва да преместите базата данни.

1) На новия сървър създайте празна база данни със същите файлове и файлови групи като прехвърлената база данни.

2) Използвайки скрипта на схемата на базата данни, ние създаваме всички обекти на базата данни (таблици, индекси, изгледи, тригери, съхранени процедури и функции), но без да създаваме ограничения на външен ключ. Не можете да създадете FK на този етап, защото те ще пречат на вмъкването на данни.

3) Свързваме базата данни, от която ще прехвърляме данни като Linked Server, за да можем да използваме повиквания към старата база данни в заявки към новата база данни.

EXEC sp_addlinkedserver @server=N"LinkedServerAlias", @srvproduct=N"", @provider=N"SQLNCLI", @datasrc=N"LinkedServerHost\LinkedServerName"; EXEC sp_addlinkedsrvlogin "LinkedServerUser", "false", null, "RealUser", "RealUserPassword";
4) Защото структурите на базата данни са еднакви, ще използваме вградената съхранена процедура sp_msforeachtable, която ви позволява да изпълните заявка за всяка таблица на базата данни, за да генерирате скрипт за прехвърляне на данни от стара базакъм нов чрез заявка като

INSERT INTO ? ИЗБЕРЕТЕ * ОТ?
sp_msforeachtable замества въпросителния знак с името на всяка таблица и изпълнява заявката няколко пъти (по веднъж на таблица).

Тук попаднах най-много голям бройрейк.

A) Проблем номер едно е, че за таблици с IDENTITY полета трябва да извикате:

SET IDENTITY_INSERT ON; --INSERT INTO ... (самото вмъкване); SET IDENTITY_INSERT OFF;
b) Проблем номер две е, че на таблици, които нямат IDENTITY полета, направете това обажданее невъзможно, така че е необходимо динамично да се определи дали таблицата има колона IDENITY или не.

Това може да стане с тази заявка:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME="SomeTable") AND (COLUMNPROPERTY(object_id("dbo.SomeTable"), COLUMN_NAME, "IsIdentity") = 1)
в) Проблем номер три е, че както се оказа, в режим IDENITY_INSERT ON не можете да направите

ВМЪКНЕТЕ В ... ИЗБЕРЕТЕ * ОТ ...
, но трябва да посочите конкретни полета.

Можете да изброите полетата на таблицата в ред, като използвате следната заявка:

SELECT SUBSTRING((SELECT ", " + QUOTENAME(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = "SomeTable" ORDER BY ORDINAL_POSITION FOR XML path("")), 3, 200000);
4) Генерирайте скрипт за вмъкване за всички таблици:

Процедура за генериране на скрипт

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= ""АКО СЪЩЕСТВУВА (изберете * от INFORMATION_SCHEMA.COLUMNS, където (TABLE_NAME=""""" + @Name + "" " """) И (COLUMNPROPERTY(object_id(""""dbo.""+@Name+"""""), COLUMN_NAME, """"IsIdentity"""") = 1)) SET IDENTITY_INSERT "" + @ name + "" ON; "" +@command; SET @command=@command+";"" + ""IF EXISTS (изберете * от INFORMATION_SCHEMA.COLUMNS, където (TABLE_NAME=""""" + @Name + "" """") И (COLUMNPROPERTY(object_id(""""dbo.""+@Name+"""""), COLUMN_NAME, """"IsIdentity"""") = 1)) SET IDENTITY_INSERT "" + @name + "" OFF;""; ПЕЧАТ (@команда); --EXEC(@команда); // Ако премахнете коментара, скриптът ще се изпълни незабавно, а не просто ще се покаже на екрана "


5) Изпълнете генерирания скрипт за прехвърляне на данни

6) Изпълнете скрипта, за да създадете всички ограничения на външния ключ (вече е възможно).

7) Готово! Прехвърлихте базата данни от новия SQL сървър на стария, въпреки че това се смяташе за невъзможно. Освен това прехвърлянето се извършва само един път и половина по-бавно от скоростта на пренос на данни по мрежата, т.е. доста бързо.

8) Почистване след себе си (деактивиране на свързан сървър):

EXEC sp_droplinkedsrvlogin "LinkedServerUser", null; sp_dropserver "Псевдоним на LinkedServer";
Ограничения на метода.

1) Подобен методНяма да е възможно да се прехвърлят таблици, които имат колони от типа XML.
Вероятно има много други ограничения, защото... в базата данни, която прехвърлих по подобен начин, много функции на SQL сървъра не бяха използвани. Можете да пишете за ограниченията в коментарите и аз ще допълня статията с тях.

Благодаря за вниманието! Дано помогне на някого.

16 май

Наскоро възникна въпросът за прехвърляне на уебсайт от един хостинг на друг. При сайтове, използващи само html и css без бази данни, не би трябвало да има затруднения. Танцът с тамбура започва, когато сте горд собственик на уебсайт с база данни. Днес има огромно мнозинство от такива сайтове в Интернет.

Можем да прехвърлим самите файлове на сайта чрез редовно копиране от хостинг на хостинг

За да прехвърлим база данни от един сървър на друг имаме нужда от:
1. Изтеглете дъмпа на базата данни на вашия компютър (операция за експортиране).

2. Качете дъмпа на базата данни на хостинг сървъра (операция за импортиране).

Това може да се направи няколко пъти различни начини. Някои CMS дори ви позволяват да извършвате тези операции вътрешно. Можете също да използвате MySQL dumper на база данни. Но най-познатият и често срещан метод за мигриране на бази данни е прехвърлянето с помощта на инструментите на контролния панел на базата данни, което бих искал да разгледам в тази статия.

1. Експортирайте базата данни от сървъра на вашия компютър.

Трябва да отидем на сървъра, на който в момента се намира базата данни, която трябва да прехвърлим, и от лявата страна на менюто в списъка с бази данни да изберете тази, която трябва да прехвърлите.

Трябва да отидете на " Експортиране" и изберете като " Експортен метод» — Нормално — показва всички възможни настройки.

След това трябва да обърнете внимание на полетата:
1. В раздела Таблици трябва да бъдат избрани всички таблици, които трябва да бъдат импортирани. Може да има ситуация, когато някои таблици няма да са необходими по време на импортиране за прехвърляне на бази данни. В този случай можете да премахнете отметката от тези таблици, които не са необходими, като изберете необходимите имена на таблици с Клавиш Ctrlна клавиатурата. (ВАЖНО! Ако не сте опитен потребителбази данни - по-добре е да изберете всички таблици. )
2. Трябва да изберете опцията „Запазване на изхода във файл“.
3. Запомнете кодировката, която е зададена в полето - File encoding.
4. Не е нужно да докосвате останалите точки, ако не знаете защо са необходими.
5. Щракнете върху OK, след което запазете файла на вашия компютър.

2. Импортирайте базата данни от вашия компютър на сървъра.

1. Проверяваме разширението на базата данни за запазени пъпеши на нашия компютър. Трябва да е „.sql“. Ако при запазване на базата данни е зададена опцията - архивирайте я (zip, gzip, bzip) - първо трябва да извлечете базата данни от архива.
2. Дъмпът на нашата база данни не трябва да съдържа заявки като « СЪЗДАВАНЕ НА БАЗА ДАННИ, /*!40101 SET @OLD» . Можете да проверите липсата или наличието на такава заявка, като отворите дъмпа на базата данни с Notepad или друг текстов редактор. Ако подобно исканеприсъства - трябва да изтриете този ред и да запишете отново файла. По правило той се намира в първите 15 реда на дъмпа на базата данни.
3. Трябва да се уверите, че в бъдещата база данни няма създадени таблици. За да направите това, отидете и изберете вашата база данни в менюто отляво в списъка с бази данни. От лявата страна на менюто можете да видите съобщението „Няма намерени таблици в базата данни“. Ако има таблици, трябва да ги изтриете.

След като изпълните всички тези стъпки, можете спокойно да отидете в раздела „Импортиране“, в който, като щракнете върху бутона „Преглед“, изберете запазения дъмп на базата данни от вашия компютър. В полето „Кодиране на файла:“ изберете кодирането, в което е създадена тази база данни.

Не е необходимо да правите допълнителни настройки. Кликнете Добреи изчакайте импортирането на базата данни да приключи.

Базата данни беше успешно прехвърлена и след това нашият сайт ще работи на новия хостинг (при положение, че всички други операции по прехвърлянето на сайта вече са извършени).