Importowanie dużych baz mysql
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 !!
Witam
Jak podłączyć bazę danych do konta znajdującą sie na innym serwerze??
Pozdrawiam
Adrian
Ustawić odpowiedni adres serwera MySQL = mysql_connect(„adres_serwera_mysql”, „uzytkownik”, „haslo”)
Wpisałem adres serwera MySQL czyli costam.cal.pl ale nie działa, a gdy wpisuje to zamiast localhost na serwerze cal.pl to wtedy działa, co zrobić żeby działo to również na innym serwerze??
Pozdrawiam
Adrian
Być może cal.pl blokuje dostęp do mysql z innych serwerów, proponuje skontaktować się z ich BOK-iem. Pozdrawiam.
A gdzie mam mieć tą bazę którą chce zimportować na serwer? Mam ją wrzucić na serer do katalogu gdzie mam ten plik bigdump.php? Wiem że to pytanie wyda się wam śmieszne ale jestem zielony w tym temacie i nie moge sobie poradzić żeby zgrać moją baze (pand 200mb)
Witam, a ja mam pytanie czy da się jeszcze jakoś w tym bigdump nie importować bazę, a uzupełnić już istniejącą. Chodzi mi o to iż posiadam galerie zdjęć z zaimportowanymi zdjęciami że stare. I potrzebuję wgrać opisy tych zdjęć które mam importowane że starej galerii. I chce po prostu te 2 bazy połączyć (porównując nazwę zdjęcia)