Автор Тема: Бекъп на база данни от CentOS VPS при което става на йероглифи .. Съвет ?  (Прочетена 2742 пъти)

IamJJJ

  • Участници
  • ***
  • Публикации: 9
    • Профил
Здравейте,

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

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

Поздрави.
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Да ползвате същата кодова таблица, която е на оригиналната база
Активен

0x2B|~0x2B

n00b

  • Напреднали
  • *****
  • Публикации: 1248
  • Distribution: OSX
  • Window Manager: 10.6, 10.8, 10.9
  • Live to hack, hack to live.
    • Профил
+1 @ninov

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

mobilio - професионални мобилни приложения

IamJJJ

  • Участници
  • ***
  • Публикации: 9
    • Профил
Ами, добре, но аз самия бекъп като го изтегля ми идва на йероглифи ... от самия сървър бекъпа идва така при export-a .. това имах впредвид как да го оправя ?
Активен

bonbon

  • Напреднали
  • *****
  • Публикации: 112
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
    • WWW
+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 > име-на-фаил.
Активен

IamJJJ

  • Участници
  • ***
  • Публикации: 9
    • Профил
Пренаписах си ги в самия dump файл преди пак да го ресторна на БГ (кирилица), но сега в phpmyadmin-a ми ги показва както трябва на кирилица, но в сайта са ми на въпросителни ???????? от какво може да е това сега ?
Активен

n00b

  • Напреднали
  • *****
  • Публикации: 1248
  • Distribution: OSX
  • Window Manager: 10.6, 10.8, 10.9
  • Live to hack, hack to live.
    • Профил
Може да е от много работи:
1. mysql_query("SET CHARACTER SET utf8 "); или там какъвто да е чарсета да се оправи
2. някъде не е зададено в html-то или по-скоро apache с какъв енкодинг идват данните

Всъщност това е грандиозен проблем на php/mysql и кирилицата в частност (koi-r, windows-1251, cp866 и т.н.). Затова е измислен Unicode.
« Последна редакция: Mar 23, 2011, 00:25 от n00b »
Активен

mobilio - професионални мобилни приложения

Naka

  • Напреднали
  • *****
  • Публикации: 3308
    • Профил
Ами просто си backup-ни данните в utf8.

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

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


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

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

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

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

Активен

Perl - the only language that looks the same before and after encryption.

IamJJJ

  • Участници
  • ***
  • Публикации: 9
    • Профил
Правя го така както казахте, но в самия phpmyadmin кирилицата ми се показва на йероглифи и то при изтеглянето става както си е било ... всъщност трябва да оправя да се показват на кирилица в phpmyadmin-a ?

Показва: collation latin1_swedish_ci в phpmyadmin-a
« Последна редакция: Mar 23, 2011, 15:08 от IamJJJ »
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3308
    • Профил
Показва: 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



Активен

Perl - the only language that looks the same before and after encryption.

IamJJJ

  • Участници
  • ***
  • Публикации: 9
    • Профил
Имам чуството, че няма да мога да изтегля читав бекъп, защото в сайта всичко си показва както трябва да е на кирилица, но всичко в phpmyadmin-а е на йероглифи и каквото и да правя за да изтегля бекъп с кирилица, всеки път излиза на йероглифи :(
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3308
    • Профил
Имам чуството, че няма да мога да изтегля читав бекъп, защото в сайта всичко си показва както трябва да е на кирилица, но всичко в phpmyadmin-а е на йероглифи и каквото и да правя за да изтегля бекъп с кирилица, всеки път излиза на йероглифи :(
някъде не можеш ли да зададеш
mysql_query("SET NAMES 'utf8'") ;
Активен

Perl - the only language that looks the same before and after encryption.

IamJJJ

  • Участници
  • ***
  • Публикации: 9
    • Профил
Къде имаш впредвид да го задам ? Пробвах с php файл, пробвах през конзолата да изтегля бекъпа в utf8, но все излиза с йероглифи .. и като sql query го зададох от phpmyadmin-a ..
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3308
    • Профил
Къде имаш впредвид да го задам ? Пробвах с php файл, пробвах през конзолата да изтегля бекъпа в utf8, но все излиза с йероглифи .. и като sql query го зададох от phpmyadmin-a ..

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

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


Активен

Perl - the only language that looks the same before and after encryption.

IamJJJ

  • Участници
  • ***
  • Публикации: 9
    • Профил
default-a на phpmyadmin-a е UTF-8, таблиците вътре са различни, но да кажем повечето са с latin1_swedish_ci и когато примерно напиша нещо в сайта на кирилица то си го показва както трябва, но като го погледна в phpmyadmin-a седи на йероглифи ...
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Centos 5.1
Настройка на програми
svetoslav27 4 4940 Последна публикация Mar 10, 2008, 01:06
от dedmin
Настройки на centos
Настройка на програми
pipo101 12 4457 Последна публикация May 08, 2008, 01:06
от pipo101
CentOS mp3 поддръжка ?
Настройка на програми
SK0RP10N 2 2350 Последна публикация Feb 22, 2009, 09:16
от SK0RP10N
Проблем с пускането на инернета в CentOS 5.3
Настройка на програми
bazu 5 2601 Последна публикация Apr 04, 2009, 20:58
от bazu
Проблем с инсталациятана на Centos 5.3
Настройка на програми
maina_pld 14 3423 Последна публикация Aug 10, 2009, 15:02
от foxb