Eksport i import MySQL baze
Pošto mi se sprema promena hosta (Goran zna o čemu pričam) naleteo sam na sledeći problem. Kada sam eksportovao svoju bazu na postojećem hostu, probao sam da je importujem na localhost (XAMPP server), čisto da se upoznam sa procesom pošto ga ranije nisam obavljao, desi mi se to da se characterset pojebe totalno.
U pitanju je baza moje instalacije Textpatterna i znaimljivo mi je to što svaki sledeći unos ne prihvata naše karaktere, nego nastavlja da cepa upitnike. Kod eksporta baze nisam (barem mislim da nisam) imao opciju izbora enkodinga baze, ali je sama baza u latin1. Pri importu sam probao i latin1, latin2 i utf sa istim rezultatima. Da li neko zna u čemu je problem i kako se rešava? |
Ostavi kod dump-a kao zip, ili ga stavi na www.pastebin.com ako nije prevelik pa ću pogledati.
Značilo bi mi ako mi kažeš koje su verzije i enkodinzi remote i local MySQL servera. |
vrlo moguce da ti se razlikuju verzije mysql servera (najverovatnije da kod kuce imas 4.1.x a na hostu 4.0.x). ja licno nisam imao problema sa charset podrskom, mada je ta podrska bolja u 4.1 nego u 4.0. koji charset koriste char polja u tabelama?
|
jedan je 4.1.3 valjda a drugi je 4.1.0. Nego čačkao sam nešto po textpatternu i tu se kolju charsetovi. trebalo bi da se ili poklapaju ili da jedan od njih bude utf8.
Evo i članka koji sam našao na temu: http://wion.com/journal/moving-a-liv...a-local-server mada on ne objašnjava kako da ispravim to. Pretpostavljam da je u samoj bazi problem? |
Upravo je to i bio problem zextra - ja sam to rešavao sledećim hackom.
1. Uvezem dump 2. Izvezem samo strukturu. 3. Izmenim originalni dump tamo gde treba i to radi. Naravno, ne bi bilo loše da je sama baza u koju uvoziš tabele (čak je veoma poželjno) bude i sama utf-8 enkodirana. PS: Kako uvoziš dump? Ako je preko phpmyadmin, da li si ga podesio da on sam koristi utf-8 kao default enkoding konekcije? |
Citat:
|
Ja sam tvoj dump uvezao bez problema, vidim sva naša slova. Jesi li siguran da je problem do baze, a ne softvera koji njoj pristupa?
Nego, što imaš toliki broj html entiteta u bazi? PS: Sad sam nešto gledao - imaš prilično "debelu" bazu :) |
Pojma nemam, nijesam ništa "čačkao", to je textpatternova baza.
Pihhh, sad imaš privatno moj blog :) Uvozim ga kroz PHPMyAdmin, odem na SQL>dam lokaciju .txt fajla, kažem da je gzippovan, postavim encoding na utf i on mi napravi haos. Može biti da je do XAMPPa? |
Dragane jesi uspio rjesiti ovaj problem? imam slican..doma mi je bilo sve OK al kad sam uplodovala stranicu umjesto nasih slova pojve se ?. ustvari umjesto č.š je ok :)
|
Imao sam taj problem, ali je nekim cudom nestao. Goran i ja smo nesto cackali, i niko nije nista uradio u sustini i svi karakteri su odjednom bili prikazani kako treba, ja sam samo malo procackao encoding u configu textpatterna (promenio, uploadovao, ucitao stranicu, vratio na staro, uploadovao, ucitao stranicu i sve je bilo ok.).
Od tada sam vise puta radio export/import baze, ali je sve bilo ok, mislim da je problem pravila verzija TXPa 4.0.2, od kako samo upgradeovao na 4.0.3 nema problema. |
KAd smo kod toga, ja sam primetio nesto vezano za PHPMyAdmin. Nedavno smo postavljali neki sajt na srpskom i koristili PHPMyADmin koji koristim samo kada moram, naravno nastao je haos sa nasim karakterima iako je sve lepo setovano i encoding i language i sve zivo. Onda sam uzeo sa neki svojim scriptom, koji koristim vec skoro 10 godina uz sitne prepravke, uradio import i sve je bilo super.
Ono sto NECU da kazem je da je PHPMyAdmin krsh, ali ono sto hocu da kazem je da ocigledno ima problem sa UTF-8. |
Ima problema samo kada je cela stvar loše konfigurisana (a to uglavnom nije do phpMyAdmina, on samo pokušava da radi po knjizi). Da bi koristio Unicode stavi collation na utf8_unicode_ci i nakon konektovanja reci MySQL da želiš Unicode: SET NAMES 'utf8'.
Ako su u bazi latin1 podaci, a phpMyAdminu kažeš da koristi Unicode normalno da ćeš dobiti papazjaniju. Možda je ključno pitanje ovde kako latin1 prebaciti u Unicode pošto treba da se odradi import. Ti se na žalost nisam previše bavio, imao sam tu sreću da mi prethodni podaci nisu bili bitni pa se nisam morao cimati :D |
Citat:
|
ajde mozda i meni nekim cudom sve proradi :)
Dragane hvala |
1 Prilog(a)
Jedna slika, 'iljadu reči.
1. Pravilno konfigurisan phpMyAdmin + pravilno uneseni podaci 2. Pravilno konfigurisan phpMyAdmin + malo zeznuti podaci U prvom slučaju su podaci unošeni u unicode kolonu i character set konecije je utf8. U drugom slučaju su unicode podaci unošeni u latin1 kolonu uz latin1 konekciju (ekvivalenta situacije je kada podatke unosiš u verziju baze koja nema podršku za unicode - MySQL < 4). Skripta je u oba slučaja radila kako treba jer PHP sam po sebi ne pravi razliku (možda se čini kao feature, ali je u stvari veliki propust)! Međutim, phpMyAdmin pravi tako da podaci koji navodno rade u određenoj skripti ne rade jer su nepravilni - pogrešni. Kompletna poenta: da ne bi dobijao kuke i kvake u phpMyAdminu i podaci i phpMyAdmin treba da budu pravilno podešeni. Ako si imao takvih problema to je jasan znak da nešto ne valja. Eksperti za MySQL i dokumentacija mogu dati više detalja... Mene su na rešenje naveli drugi (lepa stvar kod open source projekta je što ne moraš ti da kopaš za svim informacija, neko dođe i u dve prostoproširene ti objasni taman toliko koliko je dovoljno da nešto odradiš kako treba). Od tada nema nikakvih problema ni sa importom ni sa exportom. Sve radi kako treba... |
A najjednostavnije je objasnjenje nemojte koristiti phpmyadmin jer on pravi sranja koja u sustini i ne moraju da se ispravljaju, meni se desavalo da mi on prikaze papazjaniju a kada skriptu pokrenem ona normalno iz baze ucita sve nase karaktere bez ikakvih problema.
Znaci sto Goran kaze to je jedan veliki krsh, ali je zgodan za brzo pregledanje i moze se srediti da bude male velicine za upload na server (ako ne postoji). |
Citat:
|
ehh kad bi bilo tako "Simple" :)
|
Ja sam ovih dana imao slične probleme sa importom MySQL UTF-8 baze uz phpMyAdmin. Sve deluje ok, podesim encoding i baze ali kad izvučem podatke na stranu dobijem kuke-i-kvake.
Rešio sam na ovaj način: kad uspostavim konekciju ka bazi a pre bilo kojeg SQL upita uradim mysql_query("SET NAMES 'utf8'", $konekcijaKaBazi)... i stvar radi. Možda nekom i ovo pomogne. |
Vreme je GMT +2. Trenutno vreme je 16:34. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.