Jak eksportować dane do mysql. Importowanie bazy danych MySQL w konsoli

Pozdrowienia, przyjaciele! 🙂

Dzisiaj postanowiłem kontynuować rozmowę na temat pracy z MySQL w konsoli i zwrócić uwagę na procedurę eksportu bazy danych MySQL.

W tym artykule opowiem o tym, jak zrzucić bazę danych MySQL, a także przesłać dane z MySQL do pliku Excel i formatu csv.

Przyjrzymy się różnym opcjom odzyskiwania informacji z: tworzenia zrzutu jednej lub kilku baz danych, eksportowania danych z poszczególnych tabel i dowolnych wyników WYBIERAĆ upraszanie.

Porozmawiamy również o tym, jak wyprowadzać dane z bazy danych MySQL w konsoli serwera i wierszu poleceń MySQL.

W tym artykule nie będę mówił o tym, jak eksportować dane za pomocą phpMyAdmin i innych narzędzi wizualnych.

Po pierwsze dlatego, że w Internecie jest już wystarczająco dużo materiałów na ten temat. Poza tym jest to materiał wysokiej jakości, którego nie mam ochoty kopiować-wklejać.

Po drugie, sam pokrótce opisałem proces przesyłania informacji z bazy danych MySQL do pliku SQL w jednym z moich artykułów, w którym mówiłem o .

Jeśli więc nie jesteś profesjonalnym programistą lub administratorem systemu, któremu mogą przydać się informacje dotyczące pracy z konsolą, a przyszedłeś jedynie po instrukcję jak wyeksportować bazę danych do phpMyAdmin, możesz ograniczyć się do zapoznania się z informacjami znajdującymi się pod powyższym linkiem .

Chcę, żebyś mnie dobrze zrozumiał: nie chcę Cię w żaden sposób urazić, ale chcę tylko, abyś spędził czas z maksymalną korzyścią dla swojej firmy i dostał to, czego szukałeś.

Na tym kończę część wprowadzającą i przechodzimy do przeglądu poleceń konsoli służących do tworzenia zrzutu bazy danych MySQL, który postanowiłem posortować według ilości zapisywanych danych: zaczynając od eksportu całej bazy, kończąc na poszczególnych tabelach i wynikach dowolne zapytania.

Tworzenie zrzutu bazy danych MySQL za pomocą konsoli

Na samym początku chciałbym dokonać małego wyjaśnienia.

Zrzut bazy danych to plik z zestawem poleceń SQL, który po uruchomieniu umożliwia tworzenie baz danych i tabel oraz wypełnianie ich informacjami. Zrzut jest potrzebny tym, którzy chcą pobrać bazę danych MySQL w celu skopiowania jej na inny serwer lub w obrębie istniejącego.

Ponadto, jeśli ktoś nie wie, kopia zapasowa bazy danych MySQL to w zasadzie jej zrzut wykonywany w określonym przedziale czasu, który w razie potrzeby pozwala na przywrócenie struktury i danych bazy danych.

Eksportuj dane- to po prostu wydobywanie informacji z tabel w formie tekstowej do dalszej pracy z edytorami tekstowymi lub graficznymi.

Dlatego polecenia dla tych działań będą nieco inne.

Aby utworzyć zrzut bazy danych, MySQL ma wbudowane narzędzie o nazwie mysqldump, którego należy używać poza wierszem poleceń MySQL w konsoli serwera lub innej powłoce.

Zatem w przypadku najprostszej i najczęstszej opcji - eksportu danych z konkretnej bazy danych w konsoli MySQL w celu przeniesienia ich na inny serwer lub kopiowania wewnętrznego, należy uruchomić następującą komendę:

Mysqldump -u nazwa użytkownika -p nazwa_bazy danych > nazwa_ścieżki i pliku_zrzutu

To narzędzie może tworzyć zrzuty bazy danych MySQL tylko w postaci plików z poleceniami SQL, więc niezależnie od tego, jakie rozszerzenie wybierzesz dla swojego pliku, jego zawartość będzie taka sama w każdym przypadku. I nie zapomnij sprawdzić uprawnień do zapisu katalogu, w którym będzie się znajdować, przed eksportem informacji z MySQL, aby można było utworzyć plik.

Jeśli nagle zajdzie potrzeba wykonania zrzutu wszystkich baz danych na serwerze, użyj następującej opcji polecenia:

Mysqldump -u nazwa użytkownika -p --all-databases > ścieżka_i_nazwa_pliku_zrzutu

Aby zrzucić tylko kilka określonych baz danych, musisz wywołać mysqldump z następującymi parametrami:

Mysqldump -u nazwa użytkownika -p --databases nazwa_bazy danych1, nazwa_bazy danych2, ... > ścieżka_i_nazwa_pliku_zrzutu

W efekcie w każdym przypadku otrzymasz zrzut bazy danych MySQL zawierający polecenia umożliwiające utworzenie struktury zawartych w niej tabel (pola, ich typy, indeksy, klucze itp.) oraz operacje służące do ich wypełnienia danymi.

Ta opcja nadaje się tylko do przywracania i kopiowania całych baz danych.

Porozmawiamy dalej o tym, jak tworzyć kopie zapasowe niektórych tabel MySQL i uzyskiwać ich dane w czytelnej formie.

Zrzucanie tabeli MySQL i eksportowanie danych

Aby utworzyć zrzut niektórych tabel bazy danych MySQL, będziemy potrzebować tego samego narzędzia mysqldump, wywołany z następującymi parametrami:

Mysqldump -u nazwa użytkownika -p nazwa_bazy danych nazwa_tabeli1, nazwa_tabeli2, ... > ścieżka_i_nazwa_pliku_zrzutu

Wywołując mysqldump, możesz określić wymagane tabele jako wartość parametru --stoły, gdy używany jest parametr --bazy danych zostaną zignorowane:

Mysqldump -u nazwa użytkownika -p --databases nazwa_bazy danych1, nazwa_bazy danych2 --tables nazwa_tabeli1, nazwa_tabeli2, ... > ścieżka_i_nazwa_pliku_zrzutu

Powyższy przykład wyświetli następujący błąd:

Mysqldump: Wystąpił błąd: 1049: Nieznana baza danych „nazwa_bazy_danych1” podczas wybierania bazy danych

Jak widać, użyta zostanie tylko najnowsza baza danych z listy. W zasadzie takie zachowanie jest dość logiczne, ponieważ Określone tabele mogą nie pojawiać się we wszystkich bazach danych.

OK, otrzymaliśmy zrzut tabel bazy danych MySQL. Można go wykorzystać do ich przywrócenia lub skopiowania wraz z konstrukcją.

A co jeśli potrzebujesz po prostu przechowywać w nich informacje i to najlepiej w czytelnej formie, aby móc je przesłać do menadżera i obejrzeć w zwykłym edytorze tekstu lub arkusza kalkulacyjnego? MySQL ma również do tego narzędzia.

Możliwość wezwania narzędzia pomoże nam w realizacji naszych planów mysql z konsoli z określonymi parametrami:

Mysql -u nazwa_użytkownika -p nazwa_bazy danych -e "WYBIERZ * Z nazwa_tabeli"

To polecenie pozwoli nam wykonać zapytanie do wymaganej bazy danych i wyprowadzić wynik do konsoli bez wchodzenia do wiersza poleceń MySQL.

Cóż, aby nie wysyłać danych do konsoli, ale zapisać je do pliku, musisz uzupełnić polecenie w następujący sposób:

Mysql -u nazwa użytkownika -p -e "WYBIERZ * Z nazwa_tabeli" > ścieżka_i_pliku

Dzięki tym konstrukcjom możemy uzyskać nie tylko dane zapisane we wszystkich polach tabeli, ale także w konkretnych. Aby to zrobić, po prostu zamień symbole wieloznaczne (*) na wymagane, oddzielone przecinkami.

W rezultacie wynikiem będzie zwykły plik tekstowy, który będzie zawierał nazwy pól w formie nagłówka oraz informacje o nich dla wszystkich rekordów. Można go otworzyć w zwykłym edytorze tekstu, niezależnie od rozdzielczości, jaką nadasz podczas jego tworzenia.

Jeśli chcesz wyeksportować dane z bazy MySQL w formacie xls lub csv, aby wynikowy plik poprawnie wyświetlał się w edytorach arkuszy kalkulacyjnych, to trochę później podpowiemy Ci, jak to zrobić :)

Tworzenie kopii zapasowych i wyprowadzanie danych z bazy danych MySQL za pomocą zapytań

Rozmawialiśmy o tym, jak zrzucić bazę danych MySQL - jedną lub kilka, a także pojedyncze tabele. Ale czasami w praktyce zdarzają się przypadki, gdy trzeba wyeksportować zbiór danych, który nie jest ograniczony do jednej tabeli. Lub musisz wybrać tylko niektóre dane z tabeli.

Deweloperzy projektów korporacyjnych szczególnie często spotykają się z tym, gdy menedżerowie proszą ich o podanie wszelkiego rodzaju danych statystycznych. Lub gdy chcesz wykonać kopię zapasową określonej części tabeli, aby szybko ją przywrócić.

Do tworzenia kopii zapasowych będziemy potrzebować tego samego narzędzia mysqldump, który będzie musiał zostać wywołany w ten sposób:

Mysqldump -u nazwa_użytkownika -p nazwa_bazy danych nazwa_tabeli --gdzie „wyszukiwanie” > nazwa_pliku_ścieżki i_zrzutu

W rezultacie otrzymamy plik z poleceniami SQL umożliwiającymi utworzenie tabeli z całą jej strukturą, która po utworzeniu zostanie wypełniona informacjami wybranymi za pomocą zapytania wyszukiwania.

Jeśli potrzebujemy tylko zapisać dane w jednej lub kilku tabelach, będziemy musieli zmodyfikować polecenie użyte w poprzednim przypadku podczas pobierania wszystkich danych z tabeli, z pewnymi wyjaśnieniami:

Mysql -u nazwa_użytkownika -p -e "WYBIERZ * Z nazwa_tabeli GDZIE szukaj" > ścieżka_i_nazwa_pliku

Jak rozumiesz, oprócz różnych wyjaśnień określonych we wniosku za pomocą dyrektywy GDZIE, możesz użyć innych konstrukcji SQL: DOŁĄCZYĆ, UNIA itp.

Możesz zbierać dowolne statystyki :)

Tę samą czynność można wykonać również podczas pracy z wierszem poleceń MySQL za pomocą następującego polecenia:

WYBIERZ * Z tabeli_bazy_danych GDZIE wyszukiwanie W PLIKU WYJŚCIOWYM "ścieżka_i_nazwa_pliku";

To polecenie zostało specjalnie zaprojektowane do tworzenia plików z wynikami próbkowania. Co więcej, wyniki można nie tylko eksportować do plików, ale także zapisywać do zmiennych, a dane wyjściowe można formatować na różne sposoby.

Jeśli tak jest w Twoim przypadku, pełną listę parametrów i opcji wywoływania tego polecenia znajdziesz tutaj - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

Na zakończenie mojej krótkiej wycieczki do mysqldump chciałbym przedstawić wariant wywołania polecenia z listą parametrów w celu utworzenia zoptymalizowanego zrzutu bazy danych i tabel MySQL, przywrócenia bazy danych i poszczególnych tabel, z których zajmie to mniej czasu niż w przypadku zwykły telefon:

mysqldump -u nazwa_użytkownika -h host_lub_IP_serwer_MySQL -p --no-autocommit --opt nazwa_bazy danych > ścieżka_i_nazwa_pliku_zrzutu;

Na potrzeby eksperymentu użyłem tej opcji, aby zrzucić bazę danych MySQL o rozmiarze 143 MB. Kolejne przywracanie trwało 59 sekund w porównaniu do 1 minuty i 3 sekund, gdy baza danych została przywrócona ze zrzutu utworzonego przez wywołanie mysqldump bez specjalnych parametrów.

Zgadzam się, że to drobnostka. Dzieje się tak jednak tylko w przypadku określonej ilości danych. Jeśli zastosujesz tę technikę podczas tworzenia zrzutu większego niż 1 GB, różnica będzie bardziej znacząca.

Jeśli spotkasz się z taką sytuacją, nie zapomnij najpierw zarchiwizować zrzutu bazy danych MySQL. Najlepszy jest tar.gz. Wtedy powrót do zdrowia zajmie jeszcze mniej czasu.

Eksportuj dane z MySQL do plików Excel i CSV

Nie bez powodu połączyłem w jednym bloku informacje o wyprowadzaniu informacji z MySQL do tych dwóch formatów, ponieważ... są bardzo podobne, używa się ich w przybliżeniu w ten sam sposób (do strukturyzacji informacji w formie tabel) i wywoływane będą te same polecenia do eksportu.

Jak wiadomo jedyną istotną różnicą pomiędzy tymi formatami jest to, że rozszerzenia xls i xlsx posiadają pliki utworzone w programie Microsoft Office Excel, który działa tylko pod Windowsem, natomiast pliki csv są bardziej uniwersalne i operacje na nich możliwe są w wielu edytorach.

Nie oznacza to, że xls nie otworzy się nigdzie poza Microsoft Office Excel. Ten sam OpenOffice potwierdza coś przeciwnego.

Aby jednak było to możliwe, wsparcie to musi być obecne w oprogramowaniu. Pliki csv można odczytać nawet w zwykłym edytorze tekstu, takim jak Notatnik, jednak ten formularz nie będzie w pełni czytelny.

Zacznę od tego, że wyniki zapytań SQL można eksportować jedynie do plików xls lub csv, z którymi nauczyliśmy się pracować wcześniej, ponieważ Niemożliwe będzie wyprowadzenie całej bazy danych do jednego pliku w jednej operacji.

Po pierwsze, nie jest to optymalne, ponieważ... otwarcie takiego pliku jest mało prawdopodobne, jeśli w bazie danych przechowywana jest duża ilość informacji. Po drugie, nie jest jasne, jak podzielić informacje zawarte w pliku na tabele i pola.

Nie, oczywiście można to zrobić, ale jest mało prawdopodobne, że uda się to zrobić jednym poleceniem i w ogóle jest mało prawdopodobne, aby ktokolwiek zrobił to w konsoli. Myślę, że do tych celów potrzebne będzie specjalne oprogramowanie lub przynajmniej skrypt.

Jeśli nagle wiesz jak wyeksportować informacje z całej bazy MySQL do jednego lub kilku plików xls w konsoli na raz, to napisz o tym w komentarzach. Myślę, że lektura na ten temat będzie przydatna dla wielu osób.

Jeśli więc mówimy o eksportowaniu danych z MySQL do xls i csv, można to zrobić bezpośrednio w konsoli serwera za pomocą narzędzia mysql lub w pracy, z którą przedstawiłem Cię w moim poprzednim artykule.

Zacznijmy od porządku.

Możesz eksportować dane z bazy danych MySQL do formatów csv i xls bezpośrednio w konsoli serwera za pomocą poniższych poleceń.

NA Linuksa systemy:

Mysql -u nazwa_użytkownika -d nazwa_bazy danych -p -e "WYBIERZ * Z tabeli_bazy_danych;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > ścieżka_i_nazwa_pliku. csv

W zasadzie, jeśli jest to absolutnie konieczne, możesz użyć tego polecenia do eksportu danych MySQL do pliku Excel. Ale szczerze mówiąc, nie miałem z tym do czynienia w praktyce i nie mam pojęcia, co ostatecznie wyjdzie, bo… Obecnie pracuję na Windowsie. Jeśli używasz tego polecenia pod Linuksem, napisz w komentarzach o wynikach swojej pracy. Myślę, że informacja zainteresuje każdego.

NA Okna:

Niestety eksport danych z tabel MySQL do pliku CSV za pomocą powyższego polecenia nie zadziała w tym przypadku, ponieważ Windows, w przeciwieństwie do Linuksa, nie ma wbudowanego polecenia konsoli do pracy z wątkami, takiego jak sed w Linuksie.

Oczywiście możesz go zainstalować, ale jest to zbyt kłopotliwe. Alternatywnie możesz użyć CygWin— Emulator konsoli Linux dla systemów Windows.

Dobrze, jeśli masz już go zainstalowanego. W przeciwnym razie eksport danych z bazy MySQL wybraną metodą sprawi nam zbyt wiele kłopotów.

Ale wypakowanie informacji do pliku xls to tylko 5 kopiejek :) Bardzo łatwo jest go uruchomić w następujący sposób, który osobiście wypróbowałem:

Mysql -u nazwa_użytkownika -d nazwa_bazy danych -p -e "WYBIERZ * Z tabeli_bazy_danych;" > ścieżka_i_nazwa_pliku.xls

Ten plik otworzył się w programie Microsoft Office Excel bez żadnych problemów. Jedyną rzeczą jest to, że podczas otwierania na ekranie wyświetlał się komunikat ostrzegający, że rzeczywisty format otwieranego pliku różni się od określonego rozszerzenia.

Ale po potwierdzeniu akcji dokument otworzył się bez trudności - wszystkie informacje zostały podzielone na komórki w formie, w jakiej były zapisane w samej tabeli.

Nie wiem, może jeśli wykonasz jakieś konkretne czynności w programie Microsoft Office Excel, w przyszłości pojawią się problemy, nie kopałem tak głęboko; Przynajmniej kiedy normalnie przeglądałem dane, nie zauważyłem niczego niezwykłego.

Jeśli napotkasz jakiekolwiek problemy podczas korzystania z pliku xls wyeksportowanego z MySQL, czy to w tym programie, czy w innych, daj mi znać w komentarzach.

Opisaną powyżej metodą można w zasadzie wyeksportować zawartość bazy danych MySQL do pliku csv. Ale wtedy dane z różnych pól tabeli zostaną zapisane masowo, bez ograniczników, co może nie być dobrze wyświetlane w różnych programach do pracy z tabelami, które zwykle działają z plikami csv.

OpenOffice swoją drogą to nie obchodzi :) Automatycznie ograniczył informacje uzyskane w ten sposób, że wyeksportowaliśmy zawartość bazy MySQL do xls. Nie wiem jak on to robi, ale polecam :)

Otóż ​​ten sam Microsoft Office Excel wyświetlał wszystkie informacje odpowiadające jednemu rekordowi w tabeli, zapisując je w jednej komórce bez żadnych ograniczników. Myślę, że inni edytorzy tabel zrobią to samo.

Dlatego eksportując bazę danych MySQL do plików csv należy to zrobić oddzielając informacje znakami specjalnymi zrozumiałymi dla redaktorów.

A potem stopniowo zbliżyłem się do drugiej metody eksportu danych MySQL do formatów csv i xls, czyli wykorzystania wiersza poleceń MySQL.

Aby więc w ten sposób wyeksportować dane MySQL do pliku csv potrzebujemy następującego polecenia:

WYBIERZ * Z tabeli_bazy danych DO PLIKU WYJŚCIOWEGO "ścieżka_i_nazwa_pliku.csv" POLA ZAKOŃCZONE PRZEZ "", ZAŁĄCZONE PRZEZ """ LINIE ZAKOŃCZONE PRZEZ "\n";

W wyniku jego wykonania otrzymasz plik csv w ścieżce określonej podczas wywołania, który poprawnie otworzy się w większości nowoczesnych edytorów arkuszy kalkulacyjnych. Na wszelki wypadek przypominam, że polecenie to należy uruchomić dopiero po połączeniu się z bazą danych MySQL.

To polecenie doskonale nadaje się również do eksportowania danych MySQL do pliku xls w celu prawidłowego wyświetlenia w programie Microsoft Office Excel. Tylko w tym przypadku nie potrzebujemy separatorów, ponieważ będą zakłócać podział informacji na komórki:

WYBIERZ * Z tabeli_bazy_danych DO PLIKU WYJŚCIOWEGO "ścieżka_i_nazwa_pliku.xls";

Jednak w praktyce nie wszystko jest tak proste jak opisałem. Podczas uruchamiania polecenia może pojawić się następujący błąd w konsoli, który uniemożliwia ukończenie eksportu:

BŁĄD 1290 (HY000): Serwer MySQL działa z opcją --secure-file-priv, więc nie może wykonać tej instrukcji

Jest to spowodowane tym, że Twój serwer MySQL został uruchomiony z opcją --bezpieczny-plik-prywatny. Osobiście spotkałem się z tym problemem ponieważ do pracy w konsoli wykorzystuję dystrybucję MySQL znajdującą się w zestawie WAMP OpenServer, która z kolei uruchamia w ten sposób serwer MySQL.

Istnieją dwa sposoby rozwiązania problemu:

  • Zmień parametry uruchamiania serwera MySQL
  • Zmień ścieżkę do końcowego pliku eksportu MySQL

Pierwsza metoda wydała mi się zbyt skomplikowana, bo... Musiałbym zagłębić się w konfigurację OpenServera, która nie została przeze mnie napisana ze wszystkimi zaistniałymi okolicznościami 🙂 Dlatego zdecydowałem się pójść drugą ścieżką. Jeśli napotkasz podobny problem, powtórz za mną.

Najpierw musisz przejść do wiersza poleceń MySQL i uruchomić jedno z następujących poleceń:

POKAŻ ZMIENNE, TAKIE JAK „secure_file_priv”; WYBIERZ @@GLOBAL.secure_file_priv;

Wynikiem wykonania obu będzie wartość zmiennej globalnej MySQL bezpieczny_plik_priv, który zawiera ścieżkę do katalogu, za pośrednictwem którego można wykonać operacje eksportu i importu danych MySQL (w przyszłości link do artykułu o imporcie danych).

Te. podczas używania poleceń Wczytaj dane I WYBIERZ... DO PLIKU OUT eksportowane i importowane pliki mogą znajdować się wyłącznie w tym katalogu.

W moim przypadku ta zmienna była generalnie ustawiona na ZERO, ponieważ Ja, jak już mówiłem, do pracy w konsoli wykorzystuję narzędzia MySQL z dystrybucji zawartej w OpenServer. Wartość ta wskazywała, że ​​operacje eksportu i importu danych MySQL przy użyciu określonych poleceń zostały całkowicie zamknięte.

Jak się później okazało, jest to częsta sytuacja przy korzystaniu z pudełkowych serwerów WAMP i MAMP.

Niestety w moim przypadku nie udało się zastosować zwykłych metod zmiany wartości zmiennych globalnych MySQL:

SET nazwa_zmiennej = wartość;

W rezultacie w konsoli zobaczyłem tylko następujący błąd:

BŁĄD 1238 (HY000) w linii 1: Zmienna „secure_file_priv” jest zmienną tylko do odczytu.

W rezultacie, aby zmienić wartość zmiennej bezpieczny_plik_priv i otworzyć operacje eksportu i importu, musiałem przejść do pliku konfiguracyjnego MySQL mysql.ini, który znajduje się w katalogu głównym dystrybucji MySQL lub można uzyskać do niego dostęp w inny sposób, jeśli MySQL jest dołączony do twojego WAMP/LAMP/ Budowa serwera MAMP.

Nawiasem mówiąc, jeśli chcesz zmienić ścieżkę do katalogu bufora wymiany plików, musisz zrobić to samo.

W moim przypadku ta zmienna istniała już w konfiguracji, tylko w formie komentarza:

Secure-file-priv = "%dprogdir%\\userdata\\temp"

Jeśli go nie masz, napisz go od zera w sekcji (przynajmniej dla mnie tam się znajdował).

Odkomentowałem to i zdecydowałem się użyć go w formie, w jakiej został napisany. Te. podczas eksportowania danych z MySQL i importowania ich z powrotem moje pliki będą teraz przechowywane w katalogu c:\openserver\dane użytkownika\temp\.

Po zmianie konfiguracji (nawiasem mówiąc, dowolnej) nie zapomnij zrestartować serwera lub osobnej usługi, której ustawienia edytowałeś, jeśli to możliwe, aby zmiany odniosły skutek!

Dla pewności po ponownym uruchomieniu serwera MySQL wyświetl zmienną jeszcze raz bezpieczny_plik_priv i skopiuj jego wartość do schowka.

I teraz musimy wywołać komendę tak jak na początku, jedynie przed nazwą pliku, w którym będą zapisane informacje z bazy MySQL, wpiszmy ścieżkę zapisaną w zmiennej, którą zmieniamy, w postaci:

WYBIERZ * Z tabeli_bazy danych DO PLIKU WYJŚCIOWEGO "bezpieczna_wartość_pliku\nazwa_pliku.csv";

Następnie w moim przypadku zadziałało eksportowanie danych z MySQL.

Ważny punkt! Jeśli pracujesz z MySQL w systemie Windows, nie zapomnij zmienić „\” na „/” podczas określania ścieżki do pliku, w przeciwnym razie błąd zostanie --bezpieczny-plik-prywatny nadal będzie się pojawiać.

Na tym kończy się artykuł o tym, jak zrzucić bazę danych MySQL i jej tabele, a także dane wyjściowe z tabel MySQL do różnych formatów. Napisz swoje recenzje w komentarzach i podziel się ze wszystkimi opcjami skryptu, z których najczęściej korzystasz w praktyce.

Jeśli artykuł Ci się spodobał, możesz podziękować autorowi, publikując go ponownie w sieciach społecznościowych lub finansowo, korzystając z poniższego formularza, abyś mógł zapłacić za podstawowy hosting.

Życzę wszystkim powodzenia i do zobaczenia ponownie! 🙂

P.S.: jeśli potrzebujesz strony internetowej lub chcesz dokonać zmian w istniejącej, ale nie masz na to czasu ani ochoty, mogę zaoferować swoje usługi.

Ponad 5 lat doświadczenia profesjonalne tworzenie stron internetowych. Pracować z PHP

W tym artykule rozważymy dwa pytania - jak zaimportować bazy danych i jak rozwiązać problem z importem dużych baz danych, zmieniając ustawienia w php.ini.

Jak wiadomo, kopia zapasowa danych to gwarancja, że ​​będziesz w stanie przywrócić swoją witrynę, jeśli nagle z jakiegoś powodu działanie witryny zostanie zakłócone. Jak przywrócić stronę internetową z kopii zapasowej? Jest kilka sposobów, przyjrzymy się, jak zaimportować bazę danych mysql do phpMyAdmin. Przed rozpoczęciem procesu importu bazy danych należy usunąć wszystkie tabele z bazy, do której zamierzasz importować pliki.

Aby usunąć tabele, zaloguj się na stronę główną phpMyAdmin i wykonaj następujące kroki:


2 - kliknij Zaznacz wszystko;
3 – z rozwijanego menu wybierz Usuń i kliknij OK,

Teraz możesz rozpocząć importowanie bazy danych mysql. Aby to zrobić, wykonaj następujące kroki:

1 - wybierz żądaną bazę danych;
2 - otwórz zakładkę Import w górnym menu;
3 - poprzez Przeglądaj znajdź kopię zapasową w bazie danych i kliknij OK.

Jeśli wszystko zrobiłeś poprawnie, w oknie phpMyAdmin pojawi się komunikat informujący, że import się powiódł.

Importowanie dużych baz danych MySQL

Webmasterzy często spotykają się z problemem importowania dużych baz danych mysql. Problem wynika z tego, że w PHPMyAdmin pobieranie zrzutu bazy danych jest ograniczone rozmiarem przesyłanego pliku, który domyślnie nie powinien przekraczać 2MB (2048 KB). Podczas próby pobrania zrzutu dużej bazy danych pojawia się komunikat o błędzie: „Rozmiar pobieranego pliku jest prawdopodobnie zbyt duży...” itp.

Przyjrzyjmy się jednemu ze sposobów importowania zrzutu dużej bazy danych. Limit rozmiaru pliku importu jest określony przez konfigurację PHP. Ustawienia konfiguracyjne PHP są określone w pliku php.ini. Oznacza to, że aby zaimportować duże bazy danych, będziemy musieli zmienić maksymalny rozmiar przesyłanych plików w pliku konfiguracyjnym php.ini.

Gdzie znajduje się plik php.ini? Możesz obliczyć ścieżkę do pliku php.ini w następujący sposób:

  • Utwórz plik info.php i umieść w nim następujący kod;
  • Prześlij utworzony plik do folderu głównego witryny (www, public_html);
  • Wpisz adres http://twoja_strona/info.php w pasku adresu swojej przeglądarki;
  • W oknie, które zostanie otwarte, znajdź Załadowany plik konfiguracyjny, gdzie zostanie wskazana ścieżka do pliku;

Aby zaimportować dużą bazę danych mysql, musisz zmienić dyrektywy php.ini w PHPMyAdmin.

Znaleziono plik php.ini, teraz pozostaje tylko go edytować, a raczej zmienić kilka dyrektyw w pliku, jak pokazano poniżej:

Maksymalny czas (s) pełnego załadowania skryptu:
maksymalny czas_wykonania = 60
Maksymalny czas (w sekundach) określony dla skryptu na odebranie wszystkich danych:
maksymalny_czas_wejściowy = 90
Maksymalna ilość pamięci, jaką może wykorzystać skrypt:
limit_pamięci = 128M
Maksymalny dozwolony rozmiar przesyłanych plików:
upload_max_filesize = 200M
Maksymalny rozmiar przesyłanych danych jaki zaakceptuje PHP:
post_max_size = 180M

Zmieniając powyższe dyrektywy w php.ini, mogliśmy zaimportować bazy danych o wielkości do 180 M poprzez PHPMyAdmin.

Możesz także skorzystać z darmowej wersji Sypex Dumper, aby zaimportować zrzut bazy danych. Wywrotka jest zoptymalizowana pod kątem maksymalnej prędkości działania, a także pracy z bazami danych o wielkości około 800 megabajtów.

Kiedy dopiero zaczynasz tworzyć stronę internetową, zwykle robisz to na serwerze lokalnym. Gdy będzie gotowy, należy go przenieść na zdalny serwer. Kopiowanie plików nie jest trudne, ale oto jak to zrobić importuj bazę danych na zdalny serwer? Po prostu o jak zaimportować bazę danych do PHPMyAdmin, wyjaśnię Ci w tym artykule.

Jest wiele sposobów import bazy danych Opowiem jednak o tym, który moim zdaniem jest najprostszy i z którego sama korzystam.

Krok 1

Pierwszą rzeczą, którą musisz zrobić, to baza danych eksportu z Twojej bieżącej lokalizacji (konkretnie z serwera lokalnego). Naszym celem jest zdobycie Zapytanie SQL nasza baza danych. Aby to zrobić, musisz wykonać następujące czynności:

Krok 2

Drugi i ostatni krok to wykonanie Zapytanie SQL, który skopiowałeś, do PHPMyAdmin, który znajduje się na serwerze, na którym potrzebujesz importuj bazę danych. Aby to zrobić, wykonaj następujące kroki:

W rezultacie wszystkie Twoje tabele ze wszystkimi rekordami zostaną utworzone na nowym serwerze.

Jak widać, proces eksportowanie i importowanie bazy danych w PHPMyAdmin uproszczone do minimum, więc nie będzie z tym żadnych problemów.

Na koniec chciałbym dać Ci jeszcze jedną radę. Faktem jest, że bardzo często zdarza się sytuacja, kiedy jest to potrzebne nie importuj całej bazy danych, ale na przykład tylko jeden stół. Wtedy zasada jest absolutnie taka sama, tylko przy eksporcie trzeba wybrać nie tylko bazę danych, ale także tabelę do eksportu. A następnie ponownie w górnym menu kliknij „ Eksport„. Wtedy wszystko jest takie samo import bazy danych.

Dzień dobry Kochani, dziś dowiemy się jak zrobić... Dlaczego jest to potrzebne, możesz zapytać. Przede wszystkim eksport bazy danych należy to robić okresowo, aby w sytuacjach awaryjnych nie stracić ważnych informacji. Eksport będzie małym plikiem, w którym będą przechowywane wszystkie informacje o bazie danych. Dla eksport bazy danych musisz wejść do PHPMyAdmin i kliknąć interesującą Cię bazę danych. Następnie zobaczysz w nim wszystkie zawarte w nim tabele i bez wchodzenia w nie kliknij przycisk menu o nazwie Eksportuj. Pojawi się przed Tobą następująca strona:


Radzę wybrać metodę szybkiego eksportu, a także określić format SQL-a. Następnie możesz kliknąć OK. Pojawi się przed tobą okno, w którym zostaniesz poproszony o zapisanie pliku.


Zapisujesz plik w potrzebnej lokalizacji, najważniejsze jest, aby pamiętać, gdzie go zapisałeś, ponieważ jest to dla nas bardzo ważne.
Jeśli chodzi o normalną metodę eksportu. Możesz go również użyć, jeśli tego potrzebujesz, istnieje wiele dodatkowych ustawień, które możesz ustawić podczas eksportu. Na przykład wybierz niezbędne tabele z bazy danych, określ kodowanie i wiele więcej. Jeśli interesuje Cię to ustawienie, możesz je obejrzeć. Ale nie będziemy wchodzić głębiej w to ustawienie.
Po zapisaniu pliku na komputerze poproszę Cię o usunięcie bazy danych. Nie będę Ci wyjaśniał, jak to zrobić, ponieważ już przez to przeszliśmy. Nie bój się usunąć, przywrócimy wszystko na swoje miejsce razem z Tobą.
Czas się zająć import bazy danych. Przejdź do menu importu.


Wybieramy przegląd Twojego komputera i wskazujemy ścieżkę do naszego pliku. I kliknij OK. Jak widać, pojawił się przed tobą błąd. Nie przejmuj się, chodzi o to, że nie zaimportowaliśmy samej bazy danych, a jedynie wszystkie jej tabele. Dlatego najpierw utwórz bazę danych, wejdź do niej i kliknij przycisk importu, wykonując wszystkie powyższe czynności. Naciskając przycisk OK, wszystko się ułoży, a jeśli zrobiłeś wszystko poprawnie, nie powinny pojawić się żadne błędy.


Jak widać nasza tabela pojawiła się ponownie na swoim miejscu, a wszystkie zawarte w niej dane zostały zapisane. Teraz rozumiesz, co za wspaniała okazja eksportuj i importuj bazę danych w PHPMyAdmin. W końcu, jeśli w ciągu jednego dnia stracisz całą swoją wieloletnią pracę, dzięki temu plikowi możesz wszystko odzyskać. Tym się żegnam i do zobaczenia wkrótce.

Bazy danych (lub w skrócie DB) w większości witryn mają rozmiar (wagę) kilkudziesięciu MB (megabajtów). Początkowy rozmiar bazy danych na początku różnych projektów zależy od struktury samej witryny (CMS), ale później ich waga wzrasta wraz z każdym pojawieniem się nowego rekordu.

Zapisy mogą obejmować informacje o rejestracji użytkownika, komentarze, wiadomości osobiste, produkty, aktualności i inne dane przechowywane w bazie danych serwisu.

Miałem okazję pracować z kilkoma serwisami, których wielkość bazy danych przekraczała 500 MB (magabajty), a na niektórych sięgała nawet 2 GB (gigabajty). Ponieważ bazy danych tej wielkości są trudne do przeniesienia standardowymi metodami (ze względu na ograniczenia hostingu i przeglądarki), podzielę się z Tobą kilkoma działającymi metodami, które pomogą Ci rozwiązać tego typu problemy (migracja dużych baz danych).

Eksportuj (pobieraj) duże bazy danych MySQL za pomocą Sypex Dumper

Zacznijmy więc rozważania nad rozwiązaniem bieżących problemów od łatwiejszej opcji, a mianowicie od gotowego rozwiązania.

„Sypex Dumper” to oprogramowanie napisane w języku PHP, które umożliwia pracę z bazami danych bez użycia phpMyAdmin. Zalety wywrotki Sypex obejmują:

  1. Wielojęzyczny (obsługuje wiele języków).
  2. Istnieje darmowa wersja skryptu (dla naszych celów to wystarczy).
  3. Wysoka szybkość realizacji zadań.
  4. Praca z dużymi bazami danych.
  5. Wygodny i intuicyjny interfejs.
  6. I wiele innych ciekawych „żetonów”.

Tego właśnie będziemy używać do pobierania (przenoszenia) dużych baz danych.

Aby wyeksportować (otrzymać, pobrać) bazę danych określonej witryny do dalszego wykorzystania, musisz wykonać następujące czynności.

1. bezpłatnie z naszej strony internetowej.

2. sxd w dogodny dla Ciebie sposób.

3. Następnie przejdź pod wskazany adres (Gdzie twoja_witryna.ru Wejść».

4. Na stronie, która się otworzy (jeśli autoryzacja przebiegła pomyślnie), kliknij raz sekcję „ Eksport» w górnym menu. Jeżeli dla użytkownika dostępnych jest kilka baz danych, z rozwijanej listy wybierz tę, którą wyeksportujemy (pobierzemy). Możesz pozostawić resztę ustawień bez zmian i kliknąć przycisk „ Wykonać».


Chcę zauważyć, że w razie potrzeby można wyeksportować nie całą bazę danych, ale tylko niektóre jej tabele.

5. Po zakończeniu procesu zapisywania bazy danych (można to zrozumieć po pasku postępu), możesz pobrać potrzebną bazę danych, klikając odpowiedni przycisk.


Ponadto wszystkie wyeksportowane bazy danych będą po drodze przechowywane w Twojej witrynie internetowej /sxd/kopia zapasowa/. Jeśli zapisanie bazy danych nie powiedzie się, sprawdź, czy folder kopia zapasowa Uprawnienia do zapisu to 777.

To kończy eksport (pobieranie) bazy danych.

Import (pobieranie) dużych baz danych MySQL poprzez Sypex Dumper

Powyżej wyjaśniliśmy Ci, jak uzyskać niezbędną bazę danych; teraz musisz przenieść ją (zaimportować) do innego projektu i w tym celu wykonujemy następujące czynności.

1. bezpłatnie z naszej strony internetowej.

2. Rozpakuj archiwum i prześlij folder na stronę internetową sxd w dogodny dla Ciebie sposób.

3. Do folderu /sxd/kopia zapasowa/ załaduj wcześniej otrzymaną (pobraną) bazę danych.

4. Następnie przejdź pod wskazany adres http://twoja_strona.ru/sxd/index.php(Gdzie twoja_witryna.ru– domena Twojej witryny), po czym otworzy się przed Tobą formularz wprowadzania danych. Wskaż w nim dane użytkownika, który ma uprawnienia do zarządzania potrzebną Ci bazą danych i kliknij „ Wejść».

5. Na stronie, która się otworzy (jeśli autoryzacja przebiegła pomyślnie), kliknij raz sekcję „ Import» w górnym menu. Jeżeli dla użytkownika dostępnych jest kilka baz danych, z listy rozwijanej wybierz tę, do której będziemy importować (ładować) dane. Możesz pozostawić pozostałe ustawienia bez zmian i kliknąć przycisk „ Wykonać».


Chcę zauważyćże możesz zaimportować nie całą bazę danych, ale tylko niektóre jej tabele, jeśli zajdzie taka potrzeba.

6. Po zakończeniu procesu importowania (ładowania) bazy danych (można to zrozumieć po pasku postępu) zadanie można uznać za zakończone.


Eksportuj (pobieraj) duże bazy danych MySQL za pośrednictwem terminala SSH

SSH to protokół sieciowy umożliwiający zdalne (za pomocą specjalnych poleceń) zarządzanie systemem lub serwerem. W systemie Windows istnieje wiele programów do pracy z tym protokołem, z których najpopularniejszym jest „PuTTY”.

W niektórych witrynach hostingowych, takich jak na przykład, terminal jest wbudowany bezpośrednio w panelu sterowania. Nie idźmy daleko i rozważmy problem opisany w tytule na jego przykładzie. To jest nic nie warteże opisane poniżej operacje można wykonać w oddzielnym kliencie SSH.

1. Uruchom Terminal. To wygląda tak:


2. Jeśli łączysz się z serwerem poprzez obcy program, zaloguj się do niego wpisując odpowiednie dane (możesz je uzyskać w panelu sterowania swojego hostingu lub u swojego dostawcy usług hostingowych).

drugi- Ten:

Mysqldump -u NAZWA UŻYTKOWNIKA -p BAZA DANYCH > kopia zapasowa.sql

bezpośrednio sam eksport, gdzie:

NAZWA UŻYTKOWNIKA– login użytkownika mającego dostęp do bazy danych.

BAZA DANYCH– nazwa bazy danych, którą chcemy wyeksportować.

kopia zapasowa.sql– nazwa pliku, w którym zostanie zapisana baza danych oraz ścieżka do . W tym projekcie baza danych zostanie zapisana w katalogu głównym hostingu.

4. w trzecim krokuWchodzić"na klawiaturze. notatka

Gdy serwer będzie ponownie gotowy do przyjmowania poleceń przez SSH, będzie to oznaczać, że eksport bazy danych został zakończony i będzie można ją pobrać poprzez FTP lub poprzez menedżera plików hostingu.

Proces eksportu (i importu) nie jest transmitowany w SSH, więc jeśli Twoja baza danych jest dość duża, bądź cierpliwy, ponieważ odpowiedź z serwera możesz otrzymać dopiero po ponad 20 minutach.

Import (pobieranie) dużych baz danych MySQL poprzez terminal SSH

Dowiedzieliśmy się już, czym jest SSH powyżej, a teraz zacznijmy się zastanawiać, jak zaimportować wcześniej pobraną bazę danych do innego projektu.

1. Do korzenia twojego hosting, pobierz wcześniej pobraną bazę danych w wygodny dla siebie sposób.

2. Połącz się ze swoim hostingiem/serwerem przez SSH.

więc zdecydowanie idziemy do katalogu głównego hostingu i drugi- Ten:

W ten sposób otrzymujemy pełną listę plików i katalogów bieżącego katalogu. Zadbajmy o to, aby wśród nich znalazła się nasza wcześniej pobrana baza danych.

4. Jeśli wszystko jest w porządku i baza jest na swoim miejscu, wprowadź końcową komendę:

Mysql -u NAZWA UŻYTKOWNIKA -p BAZA DANYCH< backup.sql

NAZWA UŻYTKOWNIKA– login użytkownika mającego dostęp do bazy danych.

BAZA DANYCH– nazwa bazy, do której będziemy importować dane.

kopia zapasowa.sql– nazwa pliku, który zostanie pobrany i ścieżka względem . W tym projekcie baza danych zostanie zaimportowana z katalogu głównego hostingu.

5. Po wprowadzeniu polecenia zostaniesz poproszony o podanie hasła dla określonego użytkownika w czwartym kroku. Wpisz swoje hasło i kliknij „ Wchodzić"na klawiaturze. notatkaże wpisanie hasła w terminalu SSH nie jest wyświetlane, czyli niezależnie od tego, czy wpiszesz hasło, czy je wkleisz, zawsze na jego miejscu będzie pusta spacja.

Następnie, gdy serwer będzie ponownie gotowy do przyjmowania poleceń przez SSH, będzie to oznaczać, że import bazy danych został zakończony i można kontynuować pracę nad projektem.