Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: IamJJJ в Mar 22, 2011, 20:48



Титла: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: IamJJJ в Mar 22, 2011, 20:48
Здравейте,

След като направя бекъп на базата ми данни от phpmyadmin-а на CentOS VPS и го изтегля на моят компютър кирилицата идва като на йероглифи .. какво да направя, че след като искам да си направя бекъп да идва както си е кирилицата, а не на йероглифи ?

Благодаря предварително.

Поздрави.


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: romeo_ninov в Mar 22, 2011, 21:38
Да ползвате същата кодова таблица, която е на оригиналната база


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: n00b в Mar 22, 2011, 22:42
+1 @ninov

Айде гледайте малко и collation-ите на таблиците. То само import/export не става. Трябва и акъл!


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: IamJJJ в Mar 22, 2011, 23:05
Ами, добре, но аз самия бекъп като го изтегля ми идва на йероглифи ... от самия сървър бекъпа идва така при export-a .. това имах впредвид как да го оправя ?


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: bonbon в Mar 22, 2011, 23:45
+1 @ninov

Айде гледайте малко и collation-ите на таблиците. То само import/export не става. Трябва и акъл!

Все забравям че това е БЪЛГАРСКИ форум и тук само ЗНАЕЩИ и МОЖЕЩИ пишат. :)

На въпроса:
Не ползвам CentOS,  ползвам Debian, но би трябвало да е едно и също.

С тази комадна:
mysqladmin -p_паролата-ти variables | grep character_set
ще разбереш с какъв character_set (набор от символи) работи mysql-сървъра по default.

Когато правиш копие на БД,  задай този character_set

Напр:
mysqldump -p_паролата-ти -името-на-базата-данниc --default-character-set=-character_set–по–default > име-на-фаил.


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: IamJJJ в Mar 23, 2011, 00:04
Пренаписах си ги в самия dump файл преди пак да го ресторна на БГ (кирилица), но сега в phpmyadmin-a ми ги показва както трябва на кирилица, но в сайта са ми на въпросителни ???????? от какво може да е това сега ?


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: n00b в Mar 23, 2011, 00:23
Може да е от много работи:
1. mysql_query("SET CHARACTER SET utf8 "); или там какъвто да е чарсета да се оправи
2. някъде не е зададено в html-то или по-скоро apache с какъв енкодинг идват данните

Всъщност това е грандиозен проблем на php/mysql и кирилицата в частност (koi-r, windows-1251, cp866 и т.н.). Затова е измислен Unicode.


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: Naka в Mar 23, 2011, 11:44
Ами просто си backup-ни данните в utf8.

аз използвам
mysqldump ..... --skip-extended-insert --default-character-set=utf8 ......

Това ще създаде txt файл който е кодиран в utf8 и понеже е кодиран в utf8 винаги ще се чете. Трикът е mysqldump се съобразява с това в каква кодировка са ти таблиците (или даже колоните) и при експорта  ги конвентира вътрешно.


Например ако си имал таблица в cp1251 става следното:

[(таблицата)cp1251]  ---cp1251--конвентиране-в-utf8----mysqldump--> [файл в utf8]

в самият файл обаче mysqldump записва с каква кодировка е била таблицата(колоната) и при обратното възтановяване става точно обратният процес и таблицата ти ще бъде възтановена с ориналната кодировка и оригиналните данни.

Хубавото на цялата работа е че може базата ти да има таблици, колони с различни кодировки т.е да е мешаница с кодировки и всичко се запазва.



Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: IamJJJ в Mar 23, 2011, 14:51
Правя го така както казахте, но в самия phpmyadmin кирилицата ми се показва на йероглифи и то при изтеглянето става както си е било ... всъщност трябва да оправя да се показват на кирилица в phpmyadmin-a ?

Показва: collation latin1_swedish_ci в phpmyadmin-a


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: Naka в Mar 23, 2011, 15:30
Показва: collation latin1_swedish_ci в phpmyadmin-a

Не трябва да е така. A други промелниви дава ли?
character_set_client, character_set_results, character_set_connection ?

Тези трите трябва да ти показват utf8.

Както и да е: командите SET NAMES utf8 и опцията --default-character-set=utf8
са еквивалентни. И двете правят тези три променливи (character_set_client, character_set_results, character_set_connection) да покават utf8.

не знам как работи phpmyadmin. :'(

Мисля че ако character_set_results покава utf8 би трябвало да ти изплюе utf8 данни.

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html





Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: IamJJJ в Mar 23, 2011, 15:45
Имам чуството, че няма да мога да изтегля читав бекъп, защото в сайта всичко си показва както трябва да е на кирилица, но всичко в phpmyadmin-а е на йероглифи и каквото и да правя за да изтегля бекъп с кирилица, всеки път излиза на йероглифи :(


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: Naka в Mar 23, 2011, 15:46
Имам чуството, че няма да мога да изтегля читав бекъп, защото в сайта всичко си показва както трябва да е на кирилица, но всичко в phpmyadmin-а е на йероглифи и каквото и да правя за да изтегля бекъп с кирилица, всеки път излиза на йероглифи :(
някъде не можеш ли да зададеш
mysql_query("SET NAMES 'utf8'") ;


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: IamJJJ в Mar 23, 2011, 15:52
Къде имаш впредвид да го задам ? Пробвах с php файл, пробвах през конзолата да изтегля бекъпа в utf8, но все излиза с йероглифи .. и като sql query го зададох от phpmyadmin-a ..


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: Naka в Mar 23, 2011, 16:00
Къде имаш впредвид да го задам ? Пробвах с php файл, пробвах през конзолата да изтегля бекъпа в utf8, но все излиза с йероглифи .. и като sql query го зададох от phpmyadmin-a ..

Ами в кода на phpmyadmin. Някъде непосредствено след mysql_connect() и mysql_select_db()

Щом имаш конзола защо не ползваш mysqldump? или си напиши скрипт който да ползва mysqldump. Той винаги работи правилно. Знаеш ли в каква кодировка са ти данните в BD? Поне трябва да разбираш какво става.




Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: IamJJJ в Mar 23, 2011, 16:07
default-a на phpmyadmin-a е UTF-8, таблиците вътре са различни, но да кажем повечето са с latin1_swedish_ci и когато примерно напиша нещо в сайта на кирилица то си го показва както трябва, но като го погледна в phpmyadmin-a седи на йероглифи ...


Титла: Re: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?
Публикувано от: IamJJJ в Mar 23, 2011, 16:17
Добре, има ли вариант след като примерно имам такъв бекъп с йероглифите, да го ресторна на някоя дата база и да го оправи примерно някакси ?


EDIT:

Имам mysql_query("SET NAMES $mysql_charset"); в файловете на тракера, в сайта като пиша на кирилица си излиза супер, но в phpmyadmin-а .. не! :(

Как да направя така, че всичко на кирилица където е сега в базата данни да се появява и в phpmyadmin-а на кирилица както е в сайта ?