Importowanie bazy danych MySQL
REKLAMA:
Jeśli chcesz się nauczyć tworzyć strony internetowe, a nie masz o tym
pojęcia wejdź na bezpłatny blog
www.VideoWebmaster.pl
Jeśli już potrafisz tworzyć strony internetowe, wejdź na blog z poradami dla
średnio-zaawansowanych webmasterów
www.PomocnikWebmastera.pl
|
Ostatnio miałem pewien problem: chciałem przenieść jeden serwis na inny serwer.
Wszystkie teksty były w bazie danych. Zaimportowałem bazę danych z pliku SQL za pomocą
programu phpMyAdmin a tu zonk - na stronie zamiast polskich liter miałem pytajniki.
Próbowałem różnych rzeczy, w końcu wpadłem na ciekawy pomysł. Podzieliłem plik SQL
na dwa pliki. W pierwszym zapisałem tylko instrukcje do tworzenia tabel. Ten plik
zaimportowałem z programu phpMyAdmin, który ładnie utworzył tabele. Natomiast w drugim
pliku zostawiłem same instrukcje wstawiania wpisu do bazy danych (były same linijki
zaczynające się od słów INSERT INTO). Plik nazwałem 1.sql i wrzuciłem go na serwer
do jakiegoś roboczego katalogu. Utworzyłem również w tym katalogu plik o nazwie
import.php o takiej zawartości:
<?
$db = mysql_connect ("localhost", "USER", "HASŁO");
mysql_select_db ("NAZWA BAZY");
$G=file("1.sql");
for ($a=0; $a<count($G); $a++){
$t=$G[$a];
$x=mysql_query ("$t",$db);
echo((int)$x);
}
unset($a);
mysql_close ($db);
?> |
Ten prosty skrypt odpaliłem z przeglądarki internetowej. Czyta on po jednej linijce i
wysyła do bazy zapytanie. Po odpaleniu pliku należy skasować cały katalog roboczy. U
mnie ta sztuczka pomogła, zamiast krzaczków miałem później ładne polskie ogonki :-).
Takie operacje najlepiej wykonywać w nocy, gdy serwer nie jest przeciążony (w moim
wypadku było to około 10000 nowych rekordów a plik miał 6 MB, więc troszkę serwerek
pomęczyłem).
Uwaga: zazwyczaj na serwerach PHP ma ograniczenie - skrypt nie może
zużywać więcej niż 16MB, ten skrypt ładuje od razu cały plik do pamięci. Jeśli
chcesz zaimportować duy plik PHP, to albo przerób skrypt, aby czytał po 1 linijce z
pliku, albo podziel plik na kilka mniejszych.
wstecz
|