Archiwum kategorii ‘Bazy danych’

Import dużej bazy danych SQL

sobota, 12 Grudzień 2009

Ile razy próbowaliście przenieść (importować) bazę danych na serwer za pomocą phpMyAdmin i okazywała się za duża? W większości firm hostingowych maksymalny rozmiar importowanej bazy jest ograniczony i wynosi około 5-16MB, jednak już przy plikach większych niż 5MB serwer potrafi zwrócić błąd 500 – “wewnętrzny błąd serwera”.

Jak temu zaradzić? Jest prosty sposób :)

Istnieje taki programik pozwalający importować bazę danych nie z dysku naszego komputera, lecz bezpośrednio z serwera. Nazywa się BigDump.
Można go pobrać ze strony http://www.ozerov.de/bigdump.php (pierwszy link pod napisem “Download”). Skrypt zajmuje jedynie 9KB.

Po pobraniu, rozpakowujemy w dowolne miejsce i edytujemy plik bigdump.php (możemy to zrobić nawet notatnikiem).

Musimy edytować konfiguracje naszego serwera bazy danych (Database configuration) w pliku bigdump.php

Krok 1:

Edytujemy pola (wiersze 40-43)

$db_server = ”;
$db_name = ”;
$db_username = ”;
$db_password = ”;

Między cudzysłowem ” należy wpisać ustawienia serwera bazy danych. W kolejności: host serwera, nazwa bazy danych, nazwa użytkownika, hasło.

Przykładowa konfiguracja:

$db_server = ‘localhost’;
$db_name = ‘nazwa_bazy_danych’;
$db_username = ‘nazwa_użytkownika’;
$db_password = ‘hasło’;

(host serwera w przypadku firehost.pl jest inny niż localhost: sql.firehost.pl)

Krok 2:

edytujemy w pliku bigdump.php wartość (wiersz 65):

$db_connection_charset = ”;

przykładowe wartości kodowania: utf8, latin1, latin2, cp1251, koi8r (należy wpisać właściwą dla importowanej bazy danych między cudzysłowem)

Krok 3:

Zapisujemy plik na naszym dysku. Następnie razem z bazą danych (którą chcemy importować) wysyłamy na serwer np przez FTP (nie będę tłumaczył jak to zrobić) do dowolnie wybranej lokalizacji.

Na przykład mamy stronę www.naszastrona.pl. Przez FTP tworzymy podkatalog baza danych tak by jego adres był: www.naszastrona.pl/baza_danych. Tam przenosimy wszystkie pliki (bigdump.php oraz plik bazy danych (w formacie .sql)).

Krok 4:

Uruchamiamy skrypt.

np. www.naszastrona.pl/baza_danych/bigdump.php

Naszym oczom powinna ukazać się:

bigdump.jpg

Baza danych którą wysyłaliśmy na serwer jest dostępna. Klikamy start import i czekamy.

import-duzej-bazy-danych.jpg

Trwa to kilka chwil. Baza zaimportowana.

Eksport, import bazy MySQL przy użyciu phpMyAdmin

sobota, 12 Grudzień 2009

Ile osób próbowało przenieść bazę danych z jednego serwera na inny i miało z tym problem ze względu na kodowanie polskich znaków? Ostatnio przenosiłem jedną z baz na nowy serwer i poszukałem rozwiązania tego problemu. Podejrzewam, że wiele początkujących programistów ma podobny kłopoty. Problem polega na tym, że jeśli tabela w MySQL posiada kodowanie latin1 lub latin2, a tekst w polach utf8, to baza “zamyka” utf8 wewnątrz latinX. Tekst wyświetla się prawidłowo w phpMyAdmin, ale jest problem z przeniesieniem bazy. Na szczęście jest na to prosta rada. Wystarczy po wyeksportowaniu bazy do pliku dodać na początku linijkę: SET NAMES ‘utf8′; lub też inną sugerowaną stronę kodową, zamiast utf8. Po imporcie tak zmodyfikowanego pliku wszystko powinno śmigać.