CzytajÄ…c różne fora czÄ™sto natrafiam na tematy zwiÄ…zane z kwestiÄ… importu dużych baz mysql. UżywajÄ…c do tego phpmyadmin (standardowo) pojawia siÄ™ problem z ograniczeniami lub timeoutem. Jednak jest na to bardzo prosty sposób, a raczej skrypt napisany przez Alexey’a Ozerova, można go pobrać klikajÄ…c tutaj.

Poniżej krótka instrukcja użycia narzędzia:

Rozpakowujemy archiwum i otwieramy bigdump.php dowolnym edytorem php. Skaczemy do linkijki #40 i uzupełniamy dane bazy:

$db_server = ‘localhost’; //najczęściej localhost lub inny podany przez providera hostingu
$db_name = ”; //nazwa bazy
$db_username = ”; //użytkownik
$db_password = ”; //hasÅ‚o

W kolejnych kilku linijkach uzupełniamy pola:

$csv_insert_table = ”; // OPCJONALNIE - żródÅ‚o tabel jeÅ›li importujemy plik .csv
$ajax = true; // użycie AJAX (true/false): jeśli tak import bez odświeżania strony
$filename = ”; // nazwa pliku importowanego (np.’import.sql’)
$linespersession = 3000; // Liczba linijek importowanych podczas jednej sesji
$delaypersession = 0; // Czas przerwy pomiędzy sesjami w milisekundach
// Działa tylko przy włączonym javascript. Zapobiega przeciążaniu serwera.

Możemy także ustawić zestaw znaków, który bÄ™dzie używany przy imporcie (powinien być taki sam w jakim zakodowany jest plik importowany, np.’utf8′) w linijce #65

$db_connection_charset = ”;

Plik zapisujemy i wrzucamy na serwer razem z importowanym plikiem.
W przeglądarce odpalamy http://[adres_url]/bigdump.php i postępujemy zgodnie z instrukcjami na ekranie aż do pojawienia się infomacji o sukcesie i wtedy otwieramy piwko i nie męczymy for zbędnymi tematami:)

Ważne:

  • pamiÄ™taj o odpowiednim eksporcie bazy danych, tzn. nie należy używać rozszerzonych dodaÅ„ (extended inserts) - należy odznaczyć tÄ… opcjÄ™ przy eksporcie z phpmyadmin
  • jeÅ›li otrzymujesz timeout error zmniejsz $linespersession w pliku bigdump.php
  • jeÅ›li podczas importu serwer mysql padnie należy ustawić odpowiednio duży $delaypersession w w pliku bigdump.php

Powodzenia !!