Podczas przenoszenia dużego serwisu, zawsze towarzyszy temu nutka stresu – czy bez problemu uda się przenieść pliki oraz bazę na nowy hosting. W zależności od panelu naszego nowego serwera, możemy poprzez FTP wgrywać godzinami długą kolejkę plików, lub spakować do archiwum je, a następnie wgrać na FTP poprzez panel, a na końcu je szybko rozpakować. Ta opcja zdecydowanie jest najszybsza, ale nie każdy serwer pozwala na takie udogodnienie. Jeszcze przy dużych plikach, jest ryzyko przekroczenia oczekiwania czasu serwera, tzw “time out”. Wtedy musimy dzielić paczki, aby zmieścić się w dostępnym limicie, co generalnie wszystko utrudnia – ale jest możliwe.

Gorzej temat wygląda przy wgrywaniu dużej bazy danych. Mam na myśli taką ważącą już ponad 1GB lub więcej. Poprzez domyślny panel phpmyadmin’a, nie uda nam się wgrać tak dużej bazy. Możemy próbować wgrać taką bazę skryptem PHP zamieszczonym na naszym serwerze FTP, jednak tu jesteśmy również narażeni na przekroczenie czasu serwera. Dzielenie bazy na małe kawałki nie jest najlepszym pomysłem, gdyż musimy robić to ręcznie. Pominięcie chociażby jednego znaku z bazy, może zakończyć się błędnym działaniem serwisu internetowego.

Dlatego w dniu dzisiejszym przetestujemy rozwiązanie, które nie jest zagrożone limitami czasowymi i pozwala wgrać wszystko co odpowiednio przygotujemy.

Przygotowanie się do wgrania bazy danych poprzez SSH

Wgranie dużej bazy danych zaczniemy od przygotowania się do operacji. Jeżeli nie słyszeliście wcześniej o SSH, to proponuje w Internecie zaciągnąć trochę informacji czym to jest. W kolejnym kroku musimy się upewnić, że dostęp SSH do panelu naszego serwera mamy włączony. Możemy to sprawdzić w ustawieniach konta hostingowego, lub poprzez kontakt z administratorem serwera.

Kolejna sprawa to stworzenie bazy danych MySQL, do której będziemy wgrywać przygotowany zrzut bazy, oczywiście i ja takową sobie przygotowałem – abyśmy razem dokonali takiego wgrania. Jeżeli jednak jesteście tutaj, to na pewno już taką posiadacie.

W pierwszym kroku, wgrywamy z poziomu FTP bazę:

Mając przygotowanie teoretyczne, możemy przejść do praktyki. Program do obsługi połączenia SSH jaki wybierzecie nie ma aż tak dużego znaczenia, ja zdecydowałem się na program „PuTTy”. Nie jest zbyt rozbudowany wizualnie, jednak robi dokładnie to czego od niego oczekujemy – a w tej sytuacji to najważniejsze. Proponuje go ściągnąć bezpośrednio ze strony twórcy, aby nie narażać się na infekcje komputera.

W ten sposób przechodzimy do najbardziej emocjonującej części naszej operacji, wgrywanie zrzutu bazy. Na tym etapie na pewno bywa stresująco, gdyż czas leci, a serwis nasz lub naszego klienta dalej nie działa. Na pocieszenie dodam, że w trybie SSH nie ma czegoś takiego jak Time Out, znany problem przy wgrywaniu bazy również poprzez phpmyadmin’a.

Przygotujcie sobie gdzieś z boku w notatniku dane logowania FTP oraz dane do bazy danych, przydadzą się.

Wgrywamy bazę danych wykorzystując SSH

W pierwszej kolejności uruchamiamy nasz program i logujemy się do serwera. Potrzebujemy do tego IP zewnętrzne serwera (lub domenę) oraz dane do logowania:

W kolejnym oknie podajemy login oraz hasło, tutaj proponuje je wpisać ręcznie. Jeżeli wszystko zrobimy poprawnie, zostaniemy przywitani jak poniżej:

Teraz ostatni punkt naszej wycieczki krajoznawczej, musimy wpisać odpowiednią komendę, która wykona wgranie bazy z FTP.

Zapytanie powinno wyglądać w ten sposób:

mysql -u użytkownik_bazy -p nazwa_bazy < plik.sql

Oczywiście za pola domyślne powyżej, zmieniamy na nasze, a na końcu podajemy ścieżkę gdzie znajduje się baza danych.

Bardzo ważna sprawa, o której wcześniej nie wspomniałem. Baza musi być rozpakowana, z formatem *.sql. Każdy format spakowania, będzie przez skrypt odrzucany.

Po podaniu poprawnej ścieżki, zostaniemy poproszeni jak wyżej o hasło do bazy danych. Podajemy je i naciskamy przycisk enter, w tej chwili czekamy, gdyż trwa wgrywanie. Niestety nie będzie komunikatów o postępach, czy zakończonym wgrywaniu. Jedyną informacją będzie, gdy po pewnym czasie skrypt przejdzie do nowej linijki i będzie czekać na dalsze instrukcje. Będzie to oznaczać, że zakończył poprzednie polecenie.

Możemy w panelu Direct Admina podejrzeć, ile zajmuje nasza baza i porównać z pierwowzorem. Tutaj baza testowa ważyła jedynie 6MB, jak widać wszystko się zgadza.

Gratulacje! Udało się 😊

Teraz pozostało już tylko w plikach serwisu internetowego podać dostęp do nowej bazy i przetestować działanie serwisu. Pamiętajcie na nowym serwerze ustawić odpowiednią wersję PHP dla naszego serwisu. Domyślnie bardzo często ustawiona jest najnowsza wersja, serwis niekoniecznie musi ją obsługiwać, co objawiać może się serią błędów.

Podsumowanie

Wgrywanie dużego serwisu na serwer nie jest najprzyjemniejszą czynnością, sporo mamy kłód pod nogami. Jednak nie jest to niemożliwe i jak pokazuje ten artykuł – jak najbardziej wykonalne. Mam nadzieje, że udało się to wam bez dodatkowych problemów.

Jeżeli macie inne pytania odnośnie tworzenia stron internetowychadministracji stron internetowych lub pozycjonowaniem stron śmiało piszcie do nas.

Mateusz Adamski

Mateusz Adamski

Frontend Developer, Specjalista SEO. Od 2009 roku zajmuję się pozycjonowaniem oraz optymalizacją stron internetowych. Od 2012 roku specjalizuję się w tworzeniu stron i sklepów internetowych opartych na systemach CMS WordPress oraz Prestashop. Posiadam dobrą znajomość HTML5, CSS3, Bootstrap. Dysponuję również dużym doświadczeniem z programami Adobe Photoshop, Dreamweaver oraz CorelDRAW. Prywatnie jestem dużym fanem fotografii oraz motoryzacji. Od 2013 roku udzielam się jako klubowicz oraz moderator ogólnopolskiego klubu motoryzacyjnego. Masz jakieś pytania? Napisz do nas.