Skocz do zawartości
Zaloguj się, aby obserwować  
mass2as

Odtworzenie backupu - czy da się uratować polskie znaki?

Polecane posty

Witam serdecznie. Mam serwer, na którym robił mi się codziennie backup bazy MySQL za pomocą komendy:

 

mysqldump -h localhost -u root -phaslo nazwabazy --compatible=mysql40 | gzip > /nazwabazy.sql.gz

 

Dzisiaj nastał dzień, w którym to byłem zmuszony do skorzystania z backupu. Niestety po załadowaniu bazy w PHPMyAdmin brakuje polskich znaków, zamiast nich są pytajniki ( ? ). Wiem że jest to bardzo zła oznaka i prawdopodobnie utraciłem całą bazę danych, jednakże proszę o pomoc, może ktoś wie co może być przyczyną. Byłem święcie przekonany że backup robiony w ten sposób będzie w 100% OK, i nie będzie problemu z jego odtworzeniem. Posiadam kopię 5 kopii z 5 poprzednich dni.

 

Po rozpakowaniu pliku na komputerze (pod Windowsem) i otwarciu np. w Wordpadzie, albo w Notepad++ nie ma niestety polskich znaków, są wspomniane pytajniki, może to wina programów którymi otwieram bazę? Może da się ją jeszcze uratować?

 

PS. Proszę także o podanie sposobu na tworzenie dobrego backupu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jest jeszcze kilka baz. A może zainstalować na innym serwerze VPS bazę i tam spróbować? Jakie kodowanie mam wymusić w my.cnf ?

 

PS. Proszę o podanie sposobu na wykonywanie prawidłowej kopii bazy danych, tak aby kopie innych baz na moim serwerze wykonywały się prawidłowo.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli faktycznie otwierasz plik jakimś edytorem tekstowym np. Notepad2, który obsługuje różne kodowania i masz zawsze pytajniki to przypuszczam, że podczas wykonywania backupu zmienna default-character-set jest ustawiona na kodowanie np. latin1 a w bazie są dane utf-8 lub inne.

Odzyskanie bazy z literkami pl nie będzie możliwe.

W my.cnf jest sekcja [mysqldump] w której określamy kodowanie dla połączenie z apliakcją mysqldump za pomocą zmiennej default-character-set polecam ustawienia na

default-character-set=utf8

 

Możesz robiąc backup wymusić to za pomocą --default-character-set=utf8 (mysqldump --help)

 

Komenda do kopii podana przez Damiana jest jak najbardziej OK.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Za wszelką cenę chciałbym odzyskać bazę. Spróbuję tego wymuszenia jeszcze na innym, pustym serwerze mysql.

 

No ale tak jak piszesz w pliku tekstowym z backupem masz już pytajniki to nic nie pomoże. A to wymuszeni dotyczy wykonania zrzutu danych z bazy danych do pliku.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok, dziękuje za pomoc. Więc straciłem bazę.

 

Czy da się tworzyć prawidłowe backupy bez wymuszania kodowania?

 

Chciałbym dodać te komendy do crontaba.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość RuFiK

zrzuć poprawnie baze:

 

mysqldump --default-character-set=latin2 -u user -p baza -h gfh.pll > baza.sql

a potem

mysql -u login -p -h sql.domena.pl nazwa_bazy < kopiabazy.sql

 

ps. jak zle wkonasz kopiebazy danych, to pozniej to sie ciagnie za toba.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki za pomoc.

 

A jeszcze jedno pytanko, czy tworzenie kopii całego katalogu /var/lib/mysql jest dobrym pomysłem? Wydaje mi się że wtedy polskie znaki muszą się ostać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×