Skocz do zawartości
mhost

Latin2 W Mysql

Polecane posty

Witam niedawno kupiłem dedyka i zauwazylem ze jak wgrywam bazy sobie ze starego serwera to zamiast polskich znaków mam znaki zapytania np. zamiast żółw to mam ???w zmieniałem juz wersje phpmyadmin nawet na taka sama jak mialem na starym serwerze ale to chyba nie od tego ... w phpmyadmin widac wszystko ok poprzestawialem w phpmyadmin na latin2

 

a zeby na stronce podziałały polskie znaki musze wpisac

 

mysql_query("set charset latin2");

 

a to jest uciazliwe bo mam na serwerze ponad 100 stron :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zamiast phpmyadmina zmień baze danych na taka jak miałeś i powinno być ok. Najlepiej importować Bazę w formacie kompresowanym (gz). To co prubujesz nie uda ci sie napewno. Nowy mysql jakoś przestal w cywilizowany sposób wspierać ISO.

 

Swoją drogą ciekawy jestem jak ten problem rozwiązują inni webmasterzy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Swoją drogą ciekawy jestem jak ten problem rozwiązują inni webmasterzy.

 

Ja na moim roboczym serwerze (freebsd bez panela administracyjnego) mam mysql 4.1 i aby wlaczyc poprawne kodowanie moj plik my.cnf ma poniższą zawartość:

 

[mysqld]
character-sets-dir=/usr/local/share/mysql/charsets
default-character-set=latin2
default-collation=latin2_general_ci
init_connect='SET character_set_connection=latin2; SET
character_set_client=latin2; SET character_set_results=latin2;'

 

Nietrzeba zmieniać nic w istniejących już stronach.

 

 

ed

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak robią administratatorzy (root) a nie webmasterzy którzy nie mają dostepu do systemu. Mnie ciekawi jak przebrnąć na zwykłym hostingu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

nie moge znalezc my.cnf ... mam directadmina ale w /etc nie mam tego pliku ...

 

jak wpisuje whereis my.cfn niema nic ...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

U mnie była podobna sprawa - zmieniłem i już pokazuje polskie znaki. Ale najprawdopodobniej to co masz w bazach danych będziesz musiał edytować ręcznie. Przynajmniej ja musiałem tak robić. Kilkukrotnie wgrywałem bazy spakowane i nie , ale to nie dawało rezultatu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ja mam Debian 3.1 sarge + DirectAdmin nie moge odnalezc pliku konfiguracyjnego my.cnf albo my.conf :D dlatego nie moge dodac tego wpisu ... pomocy

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Stawiam na źle wykonany eksport. Ewentualnie znaki były trzymane w złym kodowaniu. Wyeksportuj plik .sql ze starego, dowolny edytor, zapisz w kodowaniu docelowym, import na nowej bazie.

Zamiast:

SET character_set_connection=latin2; SET

character_set_client=latin2; SET character_set_results=latin2;

SET NAMES latin2; - ustwia od razu wszystko.

A najlepiej trzymać w utf8. Przynajmniej ludzie nie mieli by problemów gdy nie potrafią sobie inaczej poradzić.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

--

-- Struktura tabeli dla `sauna`

--

 

CREATE TABLE `sauna` (

`id` int(1) NOT NULL auto_increment,

`txt` longtext NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=2 ;

 

 

 

fragment mojego eksportu - wiec watpie zeby to byla wina eksportu

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To że tabela ma latin2 nie oznacza że dane w takim kodowaniu były zapisane. Zrób to co napisałem wcześniej z przekodowaniem w edytorze.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ale bezsensem jest abym edytował kazdy plik dump-u moich baz danych gdzie mam ich około 100 i to ie z jednego serwera tylko z roznych zupelnie innych. Z tego wynika ze to nie zrzuty są źle wykonane tylko cos z baza danych jest nie tak. Wrzucam sobie ten dump na inny serwer i jest ok ...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli kupiłeś dedyka to chyba to nie będziesz tego robił co chwila?

a) mysqldump z odpowiednią opcją (na źródłowym)

b) iconv

Ale skoro napisałeś w 1 poście że po dodaniu "set..." działa to w takim razie nie ustawia się kodowanie dla połączenia. Jeszcze jeden haczyk jaki mi przychodzi do głowy: set names nie działa dla roota. Żeby coś więcej powiedzieć musiałbym zobaczyć kod strony (wysyłasz chociaż odpowiednie nagłówki? Może znaki z mysql są dobrze a reszta źle?)).

Zrób jeszcze "find / my.cnf" ewentualnie my.ini. W dalszym ciągu nie napisałeś jaka to konkretnie wersja 4.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

mysq 4.1.10- znalazlem takie pliki ....

 

 

my-huge.cnf

my-large.cnf

my-medium.cnf

my-small.cnf

 

pliki sa w katalogu

 

/usr/local/mysq

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam,

Ja mam podobny problem jednak w serwerach gdzie: Zmienne systemowe serwera MySQL ustawione są nastepująco:

 

character set client utf8

(Wartość globalna) latin1

character set connection latin2

(Wartość globalna) latin1

character set database latin1

character set results utf8

(Wartość globalna) latin1

character set server latin1

character set system utf8

character sets dir /usr/local/mysql-standard-4.1.10-pc-linux-gnu-i686/share/mysql/charsets/

collation connection latin2_general_ci

(Wartość globalna) latin1_swedish_ci

collation database latin1_swedish_ci

collation server latin1_swedish_ci

 

 

Chciałbym tereaz się dowiedzieć osób, które mają pojęcie o zarzadzaniu serwerami - czy zmiana tych ustawien na bardziej sprzyjające nam (PL) tj. latin2 czy UTF8 - jest jednoznaczne z posypaniem bazy danych w innych kontach, które juz działają na tych ustawieniach?

 

Bardzo byłbym wdzięczny za odpowiedź, w tej chwili widzę bardzo dużo serwerów z takimi ustawieniami a autorski CMS nie bardzo sobie radzi z kodowaniem. Jedyne co udałomi się zrobić w tej sprawie - to tylko taka zmiana ustawien nawet nie bardzo zmiana w CMS'ie tutaj pomaga...

 

Dzięki

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czytając Wasze posty podam mój sposób na poradzenie sobie z polskimi znakami. Do robienia kopii nie używam phpMyadmina. Korzystam ze skryptu Link. Skrypt nie korzysta z żadnych funkcji dump mysqla. Poprostu zapisuje w takiej postaci znaki jak widac na stronie. Jeśli na stronie której chcemy zrobic kopię widać poprawnie polskie znaki to w kopii też będa poprawne. Do wgrania kopii na inny serwer uzywam bigdumpa Link. Najpierw plik utworzony przez wcześniejszy skrypt wgrywam na docelowy serwer przez ftp, a potem uruchamiam bigdumpa. Bazę 10MB wgrywa pół minuty. Miałem właśnie kiedyś podobny problem ze znakami i męczyłem się myadminem 2dni, aż wykorzystałem wyżej opisaną metodę. Pozdrawiam Michał.

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ę


×