UWAGA! PONIŻSZY ARTYKUŁ MA CHARAKTER ARTYKUŁU BETA!
ZNACZY TO, ŻE OPISANY PONIŻEJ SPOSÓB MA PRAWO NIE ZADZIAŁAĆ W TWOIM PRZYPADKU!
|
JEŻELI UDA CI SIĘ PRZENIEŚĆ SWOJĄ BAZĘ DANYCH PRZY POMOCY TEGO ARTYKUŁU, DAJ NAM O TYM ZNAĆ.
W E-MAILU ZAWRZYJ NASTĘPUJĄCE INFORMACJE:
- wersja MySQL
serwera źródłowego
- wersja MySQL serwera docelowego
- kodowanie źródłowej bazy danych
- kodowanie docelowej bazy danych
|
JEŻELI PODCZAS IMPORTU, EKSPORTU BĄDŹ CZYSZCZENIA KTÓREJKOLWIEK BAZY DANYCH
POJAWI SIĘ KOMUNIKAT BŁĘDU, SKONTAKTUJ SIĘ Z NASZYM ADMINISTRATOREM.
NIE ZASZKODZI TEŻ WPIERW POSZUKAĆ SAMEMU PRZYCZYNY =)
|
Jeżeli masz doświadczenie z zarządzaniem bazami danych MySQL (i komputerami w ogóle), poniższą instrukcję uznasz za aż nazbyt szczegółową, pełną rzeczy oczywistych, itd. Miej jednak na uwadze, że dla wielu użytkowników usług hostingu jest to czarna magia i nawet tak szczegółową instrukcję mogą uznać za zbyt ogólnikową.
Jeżeli znajdziesz w tym artykule jakieś błędy, literówki, nieścisłości, przeinaczenia, etc., daj nam znać: admin@windows-hosting
.pl
W tym artykule pojawiają się następujące terminy:
źródłowa baza danych - baza danych MySQL, z której dane są kopiowane
docelowa baza danych - baza danych MySQL, do której dane są kopiowane
Procedura kopiowania bazy danych składa się z kilku etapów:
krok 0: zainstalowanie narzędzi do instalowania (opcjonalne)
krok 1: ustalenie, w jakim kodowaniu jest docelowa baza danych
krok 2: eksport źródłowej bazy danych do pliku tekstowego (pliku .sql)
krok 3: utworzenie kopii zapasowej docelowej bazy danych (na wszelki wypadek)
krok 4: wyczyszczenie docelowej bazy danych
krok 5: import do docelowej bazy danych
KROK 0: Zainstalowanie narzędzi do instalowania (opcjonalne) - jeżeli masz u siebie zainstalowany lokalny serwer MySQL, najprawdopodobniej masz już zainstalowane wszystkie potrzebne narzędzia. Jeżeli tak, możesz ten krok pominąć.
Jeżeli jesteś użytkownikiem systemu Windows...
1. Pobierz narzędzia do zarządzania bazą danych MySQL:
http://sunsite.informatik.rwth-aachen.de/mysql/Downloads/MySQL-5.0/mysql-essential-5.0.51b-win32.msi
2. Uruchom pobrany plik .msi i Kliknij Next >

Zaznacz Custom i kliknij na Next >

Kliknij na białej ikonie z symbolem dysku obok MySQL Server i z listy, która się pojawi, wybierz This feature will not be available

To samo zrób przy Client Programs > MySQL Server Instance Config. Efekt końcowy powinien być taki jak na obrazku poniżej. Kliknij na Next >

Kliknij na Install

Rozpocznie się proces instalacji, który może chwilę potrwać.

Wybierz Skip Sign-Up i kliknij na Next >

Kliknij na Finish

Gratulacje! Właśnie zainstalowałem narzędzia, którymi posłużysz się do przeniesienia bazy danych MySQL.
KROK 1: Ustalenie, w jakim kodowaniu jest docelowa baza danych - bez wiedzy, w jakim kodowaniu działa docelowa baza danych, nie da się prawidłowo wyeksportować źródłowej bazy danych.
Teraz trzeba ustalić w jakim kodowaniu jest baza danych, do której przenosisz swoją bazę (tzw. docelowa baza danych). Aby to zrobić...
1. Zaloguj się do phpMyAdmina docelowej bazy danych.
2. W ramce po lewej stronie wybierz docelową bazę danych.
3. W ramce po prawej stronie wybierz zakładkę Operacje
4. Spójrz teraz na dół. Powinieneś tam zobaczyć pole opisane jako Metoda porównywania napisów.
a) tak wygląda ono, jeżeli kodowanie docelowej bazy danych to utf8:

b) a tak jeśli jest to kodowanie latin2:

5. Zapisz sobie gdzieś na boku jakie jest kodowanie docelowej bazy danych, ta informacja zaraz się przyda.
Wiesz już w jakim kodowaniu pracuje docelowa baza danych.
KROK 2: Eksport źródłowej bazy danych do pliku tekstowego (pliku .sql) - ten plik trzeba będzie potem zaimportować do docelowej bazy danych
Teraz pora wykonać eksport źródłowej bazy danych do pliku tekstowego.
Aby to zrobić...
1. Uruchom wiersz poleceń (kliknij na Start > Uruchom...), wpisz cmd i wciśnij na klawiaturze Enter.
2. Powinno się wyświetlić czarne okienko.
3. Wpisz cd c:\Program Files\MySQL\MySQL Server 5.0\bin i wciśnij na klawiaturze Enter. Efekt powinien być taki:

4. Zerknij do swoich notatek i sprawdź jakie jest kodowanie docelowej bazy danych:
a) jeżeli jest to utf8 wpisz:
mysqldump --default-character-set=utf8 -h adres_serwera_bazy_danych -u nazwa_użytkownika -p -e nazwa_bazy_danych > nazwa_bazy_danych.sql
przykładowo (serwer: mysql.top100.net.pl, nazwa bazy: baza01, nazwa użytkownika: user01):
mysqldump --default-character-set=utf8 -h mysql.top100.net.pl -u user01 -p -e baza01 > baza01.sql
b) jeżeli jest to latin2 wpisz:
mysqldump --default-character-set=latin2 -h adres_serwera_bazy_danych -u nazwa_użytkownika -p -e nazwa_bazy_danych > nazwa_bazy_danych.sql
przykładowo (serwer: mysql.top100.net.pl, nazwa bazy: baza01, nazwa użytkownika: user01):
mysqldump --default-character-set=latin2 -h mysql.top100.net.pl -u user01 -p -e baza01 > baza01.sql
UWAGA: Jeżeli korzystasz z programu mysqldump pakietu MySQL Server 4.0, w opcji --default-character-set nie możesz użyć wartości utf8!
Jeżeli spróbujesz użyć wartości utf8, otrzymasz poniższy komunikat błędu:
mysqldump: Character set 'utf8' is not a compiled character set and is not specified in the [...] file
|
UWAGA: Jeżeli korzystasz z programu mysqldump pakietu MySQL Server 4.0, lub zainstalowałeś pakiet MySQL Server w innym katalogu niż domyślnie zaproponowany przez Instalatora, do polecenia mysqldump musisz dodać dodatkową opcję --character-sets-dir, np.:
jeżeli zainstalowałeś pakiet MySQL Server w folderze d:\serwery\mysql 4.0, pełne polecenie mysqldump będzie wyglądać następująco:
mysqldump --character-sets-dir="d:\serwery\mysql 4.0\share\charsets" --default-character-set=latin2 -h adres_serwera_bazy_danych -u nazwa_użytkownika -p -e nazwa_bazy_danych > nazwa_bazy_danych.sql
Jeżeli nie dodasz tej wartości, lub podana wartość będzie nieprawidłowa, otrzymasz poniższy komunikat błędu:
mysqldump: Character set 'latin2' is not a compiled character set and is not specified in the [...] file
|
gdzie:
adres_serwera_bazy_danych = adres serwera MySQL źródłowej bazy danych
nazwa_użytkownika = nazwa użytkownika MySQL źródłowej bazy danych
nazwa_bazy_danych = nazwa źródłowej bazy danych
5. Wciśnij Enter.
Po bliżej nieokreślonym czasie proces eksportu źródłowej bazy danych zostanie ukończony.
Jeżeli nie wyświetli się żaden tekst, znaczy to, że proces eksportu bazy danych został ukończony pomyślnie.
Jeżeli wyświetli się jakiś tekst, będzie to najpewniej komunikat błędu.
W takim wypadku...
Dysponujesz teraz bazą danych w formie pliku .sql. Trzeba go teraz zaimportować do docelowego serwera. Aby to zrobić, należy wpierw usunąć wszystkie tabele z docelowej bazy danych.
KROK 3: Utworzenie kopii zapasowej docelowej bazy danych (na wszelki wypadek) - trzeba wyeksportować zawartość docelowej bazy danych do pliku tekstowego.
Jeżeli coś pójdzie nie tak, przynajmniej będzie można przywrócić poprzednią zawartość docelowej bazy danych.
Aby wyeksportować bieżącą zawartość docelowej bazy danych, wpisz następujące polecenie w wierszu poleceń (w czarnym okienku):
mysqldump --default-character-set=kodowanie
-h adres_serwera_bazy_danych
-u nazwa_użytkownika
-p nazwa_bazy_danych
> nazwa_bazy_danych
_kopia.sql
gdzie:
kodowanie = kodowanie docelowej bazy danych (ustalone w kroku 1)
adres_serwera_bazy_danych = adres serwera MySQL docelowej bazy danych
nazwa_użytkownika = nazwa użytkownika MySQL docelowej bazy danych
nazwa_bazy_danych = nazwa docelowej bazy danych
przykładowo (serwer:
mysql.top100.net.pl, nazwa bazy:
baza01, nazwa użytkownika:
user01, kodowanie:
latin2):
mysqldump --default-character-set=latin2 -h mysql.top100.net.pl -u user01 -p baza01 > baza01_kopia.sql
Jeżeli nie wyświetli się żaden tekst, znaczy to, że proces przygotowania kopii zapasowej docelowej bazy danych został ukończony pomyślnie.
Jeżeli wyświetli się jakiś tekst, będzie to najpewniej komunikat błędu.
W takim wypadku...
Masz teraz gotową kopię zapasową (backup) docelowej bazy danych. Jeżeli z jakiegoś powodu zajdzie potrzeba przywrócenia poprzedniej zawartości docelowej bazy danych (np. ponieważ import zrzutu bazy danych nie powiedzie się), będziesz mógł skorzystać z tej kopii.
KROK 4: Wyczyszczenie docelowej bazy danych - przed zaimportowaniem przygotowanego uprzednio zrzutu bazy danych (plik .sql), trzeba usunąć całą bieżącą zawartość docelowej bazy danych. Bez tego, podczas importu mogą pojawić się błędy, które przerwą ten proces.
Aby wyczyścić bieżącą zawartość docelowej bazy danych...
1. Wejdź do phpMyAdmina docelowej bazy danych (jeżeli nie znasz adresu, zapytaj naszego
Administratora)
2. W ramce po lewej stronie wybierz docelową bazę danych
3. W ramce po prawej stronie zjedź na sam dół i kliknij na
Zaznacz wszystkie
4. Następnie z rozwijanej listy po prawej stronie (ma wartość:
Zaznaczone) wybierz
Usuń
5. Zostanie wyświetlona lista tabel, które zostaną usunięte. Potwierdź, klikając na
Tak
Jeżeli wyświetli się jakiś tekst (bodaj na czerwono), będzie to najpewniej komunikat błędu.
W takim wypadku...
Baza danych jest już czysta, można do niej bez obaw importować bazę danych.
KROK 5: Import do docelowej bazy danych - ostatni krok, import zrzutu źródłowej bazy danych (pliku .sql) do docelowej bazy danych
Teraz pora wykonać import bazy danych, z przygotowanego uprzednio pliku.
Aby to zrobić, wpisz następujące polecenie w wierszu poleceń (w czarnym okienku):
mysql -h adres_serwera_bazy_danych -u nazwa_użytkownika -p nazwa_bazy_danych < nazwa_bazy_danych.sql
gdzie:
adres_serwera_bazy_danych = adres serwera MySQL docelowej bazy danych
nazwa_użytkownika = nazwa użytkownika MySQL docelowej bazy danych
nazwa_bazy_danych = nazwa docelowej bazy danych
przykładowo (serwer:
mysql.top100.net.pl, nazwa bazy:
baza01, nazwa użytkownika:
user01, plik zrzutu bazy danych:
baza01.sql):
mysql -h mysql.top100.net.pl -u user01 -p baza01 < baza01.sql
i wciśnij Enter.
Rozpocznie się proces importu bazy danych.
Jeżeli proces ten zostanie ukończony pomyślnie, nie wyświetli się żaden komunikat.
Jeżeli wyświetli się jakiś tekst, będzie to najpewniej komunikat błędu.
W takim wypadku...
KONIEC: Baza danych została przeniesiona.