Duomenų bazės koduotės tvarkymas

PDFSpausdintiEl. paštas

Ketvirtadienis, 16 Birželis 2011 23:14 Parašė Rimvydas Peržiūrų: 666

( 6 Balsai )

Būna įvairių situacijų (po perkėlimo į kitą hostą, naujų komponentų įdiegimo, serverio programinės įrangos versijos atnaujinimo ir t.t.)  tinklapyje vietoje lietuviškų raidžių matome įvairius ženklus. Situacija paprasta ir aiški - pasikeitė duomenų bazės lentelių koduotė. Kad tvarkingai rodytų lietuviškas raides, turi būti nustatyta utf8_general_ci koduotė. Pasitikrinkime, kaip yra. Atsidarę duomenų bazę phpMyadmin programa matome, kad dalies ar visų lentelių koduotė yra kita. Pats paprasčiausias variantas imti lenteles ir po vieną konvertuoti (pakeisti) į mums reikiamą. Visa tai puiku, kai duomenų bazė nedidelė ir lentelių nedaug. Per kokį gerą pusvalandį ir susitvarkysime, bet ką daryti jei DB didelė ir lentelių šimtai?

Paieškojus internete galima rasti įvairių konvertavimui skirtų skriptų - vieni jų veikia, kiti ne, čia jau laimės reikalas kaip pasiseks. Aš tokiu atveju atlieku paprastus ir nesudėtingus veiksmus, kurių pagalba per keletą minučių viskas būna sutvarkyta. Kiek kartų bandžiau - nepavedė, viskas veikia. Paimkime pavyzdį. Mano atveju
koduotė yra utf8_unicode_ci ir ją reikia pakeisti į utf8_general_ci.
Taigi atliekame sekančius veiksmus:
1.    Atidarome duomenų bazę phpMyadmin programa ir atliekame DB eksportą.
2.    Programa Notepad++ atsidarome parsisiųstą duomenų bazę.
3.    Įjungiame paieškos režimą, įrašome  utf8_unicode_ci ir spaudžiame “Ieškoti
Visų esamame dokumente”

4.    Atidarome kortelę “Replace” , laukelyje “Replace with” įrašome utf8_general_ci ir spaudžiame “Pakeisti visus esamame dokumente”.

Uždarome paieškos langą ir išsaugome dokumentą. Dabar per phpMyadmin importuojame pakoreguotą duomenų baze ir viskas. Žiūrim, ką turim.
DĖMESIO: BŪTINAI PASILIKITE ORIGINALIOS DB KOPIJĄ. Nesėkmės atvejų bus galima atkurti seną DB versiją ir bandyti kitus konvertavimo būdus.


Aptarkite šį straipsnį forume
Norėdami dalyvauti diskusijoje turite prisijungti arba užsiregistruoti .

Joomla123.lt is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.
The Joomla!® name is used under a limited license from Open Source Matters in the United States and other countries.