Импортирайте MySQL бази данни. Експортиране и импортиране на база данни в PHPMyAdmin

24.03.2023

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


трябва да отидете на PHPMyAdmin и да щракнете върху базата данни, която ви интересува. След това ще видите всички таблици в него и без да влизате в тях, щракнете върху бутона на менюто, наречен експортиране. Пред вас ще се появи следната страница: Съветвам ви да изберетебърз начин експортиране и също така посочете във формата SQL


. След това можете да щракнете върху OK. Пред вас ще се появи прозорец, в който ще бъдете помолени да запазите файла.
Записвате файла на мястото, от което се нуждаете, основното е да запомните къде сте го записали, защото това е много важно за нас. Що се отнася до нормалния метод за експортиране. Можете също да го използвате, ако имате нужда от него, има многодопълнителни настройки , които можете да посочите при експортиране. Например, изберете необходимите таблици от базата данни, посочете кодирането и много други. Ако се интересуватетази настройка
, можете да го гледате. Но няма да навлизаме по-дълбоко в тази обстановка.
След като запазите файла на вашия компютър, ще ви помоля да изтриете базата данни. Няма да ви обяснявам как да направите това, защото вече сме минали през това. Не се страхувайте да изтриете, ние ще върнем всичко на мястото му с вас. Време е да се заеметеимпортиране на база данни


. Отидете в менюто за импортиране.


Избираме преглед на вашия компютър и посочваме пътя до нашия файл. И щракнете върху OK. Както можете да видите, пред вас се появи грешка. Не се тревожете, цялата работа е, че ние не импортирахме самата база данни, а само всички нейни таблици. Затова първо създайте база данни, влезте в нея и щракнете върху бутона за импортиране, след като сте направили всичко по-горе. С натискане на бутона ok всичко ще се получи и ако сте направили всичко правилно, не трябва да се появяват грешки. Както можете да видите, нашата таблица се появи отново на мястото си и всички данни в нея бяха запазени. Сега разбирате каква чудесна възможностекспортиране и импортиране на база данни в PHPMyAdmin . В крайна сметка, ако загубите за един ден всичките си постижения за много години, благодарение натози файл

Можете да върнете всичко. С това се сбогувам с вас и до скоро.

Днес ще продължа да ви запознавам с работата с MySQL в конзолата и командния ред на MySQL.

Вече съм писал статии за това как да извършвам основни действия с MySQL данни през конзолата и как да архивирам MySQL базата данни, както и да експортирам информацията, съхранявана в нея.

Логичното продължение на тази история ще бъде възстановяването на базата данни и съхраняваната в нея информация с помощта на операции за импортиране на база данни MySQL данни. И което е важно, ще продължим да правим това с помощта на инструмента на всички истински разработчици - чрез конзолата.

Ако имате нужда от инструкции за импортиране на база данни чрез phpMyAdmin, тогава можете да ги намерите в статията за. В настоящата статия нямам желание да го описвам отново, особено след като днешният материал ще бъде посветен изключително на импортирането на базата данни MySQL през конзолата.

Но преди да започнем да разглеждаме методите и инструментите, няколко думи за това какво е импортиране на MySQL база данни, какво представлява и как най-добре да го направите?

Импортиране на MySQL база данни: какво и защо?

Импортирането на MySQL база данни е операция, която запълва базата данни с информация. В този случай източникът на данни е дъмп файл - моментна снимка на друга база данни, автоматично създадена по време на операцията за експортиране, или специално подготвен SQL скрипт.

Импортиране, както и експортиране на MySQL база данни, има два вида информация, съхранявана в базата данни:

  1. структурата на базата данни, нейните таблици и данните, съхранявани в тях (обикновено наричани дъмп на база данни);
  2. просто данни, съхранени в таблица или събрани с помощта на ИЗБЕРЕТЕзаявки.

Тази статия ще обсъди и двете опции.

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

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

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

За тези цели е подходящ и обикновен. txt файл, данните в които ще бъдат разделени, или файлове, създадени в специални редактори на електронни таблици (Microsoft Office Excel, OpenOffice и др.) с отлично разширение: xls, csv, odt и др.

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

Добавяне на данни към MySQL: Инструменти

По отношение на инструментите за импортиране на MySQL база данни, мога да кажа, че днес има три от тях.

Ще ги изброя, започвайки от най-ниското ниво и завършвайки с най-високото ниво (от гледна точка на използването на всички видове черупки и добавки):

  1. Сървърна конзола и MySQL команден ред;
  2. Скриптове, написани на езици за програмиране, които ви позволяват да записвате данни в MySQL с помощта на езикови инструменти;
  3. Готови програми, които предоставят визуален интерфейс за работа с базата данни (същият phpMyAdmin, MySQL WorkBench, MySQL Manager и др.).

Мисля, че редът на инструментите няма да предизвика въпроси у никого, защото... Езиковите инструменти за програмиране като правило работят на базата на конзолни команди на MySQL, а програмите се основават на скриптове или работят директно с MySQL от командния ред.

По един или друг начин, конзолата е в челните редици на всичко, а останалите инструменти са всъщност нейните емулатори.

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

Благодарение на това можете не само да заредите MySQL база данни през конзолата по-бързо, но и да направите тази операция принципно възможна, т.к. Скриптовете и програмите са склонни да прекъсват импортирането, когато е достигнато максималното време за изпълнение на скрипта или изобщо не стартират поради размера на изтегления файл.

Мисля, че всеки, който някога се е опитвал да зареди дъмп в MySQL база данни голям размерчрез phpMyAdmin те разбират за какво говоря.

Често тези ограничения са причина за грешки при импортиране на MySQL база данни, които никога няма да видите, когато използвате конзолата.

Те, разбира се, не са постоянни и могат да се променят, но това е допълнително главоболие, което между другото може да не е разрешимо за обикновените потребители.

Надявам се, че съм ви мотивирал да импортирате MySQL базата данни през конзолата (както нейната структура, така и индивидуални данни).

И на тази положителна бележка, преминаваме към дългоочакваната практика и разглеждаме методи и команди за конзолно прехвърляне на данни към базата данни.

Как да възстановя MySQL база данни от дъмп чрез конзолата?

Така че, за да разположите MySQL дъмп от конзолата, има два начина:

  1. използвайки командата in команден ред MySQL;
  2. в самата сървърна конзола.

Да започнем по ред.

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

Изпълнението на тези действия е описано подробно в статията към която има връзка по-горе, така че ако имате нужда от описание за тях, вземете ги от там, т.к. Не искам да ги дублирам за втория кръг.

След като направите горното, въведете следната команда в MySQL Shell:

Изходен път_и_име_на_файл за изхвърляне;

Всичко, което остава за нас, е да проучим съобщенията в конзолата за напредъка на операциите, съдържащи се в дъмпа.

Без първо превключване към желаната база данни, след свързване към MySQL сървъра в конзолата, дъмпът може да бъде импортиран със следната команда:

Mysql -u потребителско име -p име_база_данни< путь_и_имя_файла_дампа

Това е. Основното нещо е да изчакате импортирането да приключи, ако файлът е много голям. Завършването на дъмпа може да се прецени по това кога сървърната конзола отново е достъпна.

Всъщност това е недостатъкът този методв сравнение с предишния, т.к в първия е възможно да се наблюдават операциите, извършени върху базата данни по време на импортиране, но във втория не е така.

Ако дъмп файлът е опакован в архив, тогава при изтеглянето той ще трябва да бъде разопакован едновременно.

В Linux това може да стане по следния начин:

Gunzip > [име_на_архивен_файл.sql.gz] | mysql -u -p

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

Както можете да видите, импортирането на MySQL dump през конзолата е много проста операция, която се изпълнява с една команда. Така че не е нужно да сте разработчик, за да извършите тази процедура.

Ако изведнъж не знаете как да стартирате сървърната конзола, можете да намерите тази информация в статията за командния ред на MySQL, връзката към която вече публикувах по-рано.

Между другото, с помощта на описаните методи също е възможно да импортирате MySQL таблица, а не цялата база данни. В този случай дъмпът, който качвате, трябва да съдържа операциите по създаването му и попълването му с данни.

Зареждане на данни в MySQL база данни от файл в конзолата

Говорихме за възстановяване на MySQL база данни от дъмп в конзолата. Сега е моментът да разберете как можете да импортирате данни от файлове, включително xls и csv, в MySQL база данни по същия начин.

За тази задача отново имаме същите два инструмента, както в предишния случай: командния ред на MySQL и конзолата на сървъра.

Нека започнем прегледа отново по ред.

И така, за да импортираме файл в командния ред на MySQL, ние го стартираме отново и отиваме в базата данни, в която ще бъдат заредени данните.

ЗАРЕДЕТЕ ДАННИ ВЪВ ФАЙЛ "path_and_name_of_dump_file" В ТАБЛИЦА `database_table` КОЛОНИ, ЗАВЪРШВАНИ С "," ОГРАДЕНИ С "\"" РЕДОВЕ, ЗАВЪРШВАНИ С "\n";

Не забравяйте, че ако MySQL сървърът е стартиран с опцията --secure-file-priv(което често се случва при използване на MySQL дистрибуции, включени в WAMP/MAMP сборки), тогава името на файла трябва да бъде указано, като се вземе предвид системната променлива защитен_файл_priv.

За да импортираме MySQL база данни в сървърната конзола, без да влизаме в MySQL Shell, ще ни е необходима помощната програма mysqlimport, включен в разпределението на MySQL, и следното му извикване:

mysqlimport –u потребителско_име –p име_на_база данни име_и_път_към_импортен_файл

Тази помощна програма е аналог на SQL командата ЗАРЕДЕТЕ ВХОДЯЩ ФАЙЛ С ДАННИ, само за командния ред. Но възниква въпросът защо тогава сред параметрите на неговото извикване не е таблицата, в която ще се заредят данните от файла?

Факт е, че mysqlimport просто физически няма този параметър. Вместо това името на таблицата, в която ще бъдат заредени данните, трябва да се появи в името на импортирания файл.

Тези. ако искате да импортирате таблица на Excel в таблица на MySQL потребители, тогава вашият файл трябва да бъде извикан потребители.xls.

Разширението на импортирания файл, както вече беше споменато, може да бъде всичко.

С mysqlimport можете също да заредите множество xls или csv файлове в MySQL наведнъж. За да могат данните да достигнат местоназначението си, имената на файловете и таблиците на базата данни, както в предишния пример, също трябва да съвпадат.

Ако внезапно колоните в импортирания файл не са в същата последователност като колоните на таблицата на базата данни, тогава, за да изясните реда им, трябва да използвате опцията —columns в следната форма:

Mysqlimport –u потребителско_име –p име_на_база данни --колони колона1, колона2, ... име_и_път_към_импортен_файл

Естествено, в моите примери не взех предвид пълен списък mysqlimport параметри, защото някои от тях са много специфични и се използват изключително рядко в практиката.

Ако искате да се запознаете с тях, пълният им списък е достъпен тук - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Характеристики на зареждане на данни в MySQL база данни от дъмп

Ако искате процесът на импортиране на голяма MySQL база данни да върви по-бързо, тогава трябва да създадете дъмп на база данни, като използвате специални опции на командата mysqldump, за която писах в предишната ми статия за експортиране на MySQL база данни, връзката към която беше публикувано в текста по-рано.

За съжаление самите команди за импортиране на бази данни MySQL нямат такива опции.

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

1. Отворете дъмп файла (за предпочитане в файлови мениджъри, защото обикновените редактори могат просто да бъдат затрупани от големи файлове).

2. Напишете следните редове в началото на файла:

SET Foreign_key_checks = 0; SET UNIQUE_CHECKS = 0; SET AUTOCOMMIT = 0;

Обърнете внимание! Те може вече да са там или да са коментирани (много програми, които правят дъмпове, могат да ги добавят автоматично)

3. В края на файла записваме обратните действия:

SET Foreign_key_checks = 1; SET UNIQUE_CHECKS = 1; SET AUTOCOMMIT = 1;

Между другото, тези команди ще помогнат не само за ускоряване на процеса на импортиране, но и ще го направят възможно.

Факт е, че ако някога сте разглеждали дъмп файла за импортиране на MySQL база данни, може би сте забелязали, че операцията по настройка на структурата на заредените таблици изглежда така:

ПУСКАНЕ НА ТАБЛИЦА, АКО СЪЩЕСТВУВА `клиенти`; CREATE TABLE `клиенти` (...);

Тези. извършва се търсене в базата данни за таблица със същото име като тази, която се импортира, и ако се намери такава, тя се изтрива и създава наново.

И ако изведнъж съществуваща таблицаще бъде свързан чрез външни ключове с други, тогава цялото изтегляне ще бъде неуспешно.

Следователно деактивирането на проверката за наличие на външни ключове и други също е отлична гаранция за успешното завършване на процеса на импортиране на MySQL база данни.

Характеристики на импортиране на csv в MySQL база данни и други файлове

Когато зареждате данни в MySQL база данни от текстови файлове, може също да се наложи да деактивирате чужди ключове.

Освен това, за разлика от предишната ситуация, в този случай няма да е възможно да напишете директиви във файла, защото SQL командите в него няма да се приемат и изпълняват.

В предишна статия за експортиране на MySQL база данни вече споменах как да направите това, като използвате следната операция в командния ред на MySQL:

SET FOREIGN_KEY_CHECKS=0;

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

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

Стойността на сесията на системната променлива MySQL се задава само за продължителността на сесията на потребителя с MySQL сървъра. Сесия или сесия започва, когато клиент се свърже със сървъра, в който момент му се присвоява уникален ID на връзката, и завършва при прекъсване на връзката със сървъра, което може да се случи по всяко време (например поради изчакване).

Защо реших да запомня това?

Тъй като при изпълнение на команди за зареждане на файл в MySQL база данни през сървърната конзола, без да влизам в MySQL Shell, открих, че деактивирането на проверката на външния ключ чрез описания по-горе метод не работи.

Конзолата все още показваше съобщение за грешка, причинено от наличието на външни ключове в таблицата.

И това възникна поради причината, че горната команда забрани проверката на съществуването на външни ключове в рамките на сесията, а не глобално, което в допълнение посочения метод, може да се направи и по следния начин:

SET SESSION име_на_променлива = стойност_на_променлива; SET @@session.variable_name = променлива_стойност; SET @@име_на_променлива = стойност_на_променлива;

В горните команди променливата е ясно маркирана като сесия.

И тъй като зареждах csv файл в MySQL таблица през сървърната конзола, без директна връзка към MySQL сървъра, не беше създадена сесия, в която стойността на моята променлива на сесията да работи.

В крайна сметка зададох FOREIGN_KEY_CHECKS на глобални и импортирането беше успешно.

Можете да направите това по един от следните начини:

SET GLOBAL име_на_променлива = стойност_на_променлива; SET @@global.variable_name = променлива_стойност;

След промяна на стойностите е добра идея да прегледате стойностите на променливата, за да проверите дали промените са влезли в сила. За да покажете сесия и глобални стойности едновременно, използвайте следната команда:

ИЗБЕРЕТЕ @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;

Това завършва днешната статия за импортиране на MySQL база данни. Споделете вашите впечатления и собствените си разработки в коментарите. Мисля, че мнозина ще се заинтересуват от вашия опит.

Ще се видим отново! 🙂

P.S.: ако имате нужда от уеб сайт или трябва да направите промени във вече съществуващ, но нямате време или желание за това, мога да предложа услугите си.

Повече от 5 години опит професионално развитиесайтове. Работа със PHP, OpenCart,

При мигриране на сайт от локален сървърза хостинг една от задължителните процедури е експорт/импорт на базата данни (база данни). Ето защо в тази статия ще се опитам да опиша възможно най-подробно процеса на експортиране и импортиране на база данни от локален сървър, тоест от уеб интерфейса PHPMyAdminверсия 3.2.3 за хостинг.

Първото нещо, което трябва да направите, е да стартирате локален сървър, в този случай Denwer. След като стартирате Denwer, трябва да отворите браузъра си и да въведете в реда на браузъра: „http://localhost/tools/phpmyadmin“, след което ще се отвори прозорец пред вас(фиг.1)с предварително създадени бази данни.

Фиг.1

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


Фиг.2

След като изберете желаната база данни, ще се отвори прозорец със структурата на базата данни. IN горно менюима смисъл "Експортиране"с помощта на които ще експортираме базата данни на компютър и след това ще я импортираме в хостинга. И така, отидете на елемента „Експортиране“. (фиг.3).


Фиг.3

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

Фиг.4

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

Освен това трябва да промените кодирането на файла на UTF-8 без BOM, за да промените кодирането, което използвам текстов редактор Notepad++(Изтегляне) . С помощта на тази програма отваряте файла с база данни и в менюто "Кодиране"изберете „Конвертиране в UTF-8 без BOM“ (фиг. 5), след това запазете и затворете.


Фиг.5

Когато току-що започнете да създавате уебсайт, обикновено го правите на локален сървър. Когато е готов, ще трябва да се премести отдалечен сървър. Копирането на файлове не е трудно, но ето как импортиране на база данникъм отдалечен сървър? Почти как да импортирате база данни в PHPMyAdmin, ще ви обясня в тази статия.

Има много начини импортиране на база данниЩе ви кажа обаче това, което според мен е най-простото и това, което използвам самият аз.

Стъпка 1

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

Стъпка 2

Втората и последна стъпка е да направите SQL заявка, който сте копирали, към PHPMyAdmin, който се намира на сървъра, където ви трябва импортиране на база данни. За да направите това, изпълнете следните стъпки:

В резултат на това всички ваши таблици с всички записи ще бъдат създадени на новия сървър.

Както можете да видите, процесът експортиране и импортиране на база данни в PHPMyAdminопростени до минимум, така че няма да има проблеми с това.

Накрая искам да ви дам още един съвет. Факт е, че много често има ситуация, когато имате нужда не импортирайте цялата база данни, но например само една маса. Тогава принципът е абсолютно същият, само че при експортиране трябва да изберете не само базата данни, но и таблицата за експортиране. И след това отново в горното меню кликнете върху " ЕкспортиранеТогава всичко е същото импортиране на база данни.

Тази процедура включва прехвърляне на данни от една база данни (A) в друга (B). По правило база данни B се намира на хостинга (или в Денвър), а база данни A се намира на компютъра на потребителя и е файл с разширение sql. База данни A има друго име - Dump.

Как да импортирам база данни?

Импортиране на MySQL база данни чрез SSH

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

mysql -uUSERNAME -pUSERPASSWORD DBNAME< DUMPFILENAME.sql

mysql --user=ПОТРЕБИТЕЛСКО ИМЕ --password=ПОТРЕБИТЕЛСКА ПАРОЛА DBNAME< DUMPFILENAME.sql

Вместо думи, написани с главни букви, заместваме:
USERNAME - потребителско име на база данни, например uhosting_databaseuser;

USERPASSWORD - потребителска парола на базата данни, например Rjkweuik12;

DBNAME - име на базата данни, в която ще се извърши импортирането, например uhosting_databasename

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