SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.02.2007 01:43:06

Insane
Участник
Зарегистрирован: 12.02.2007
Сообщений: 1

Проблема с кодировкой бэкапа

Есть проблема с кодировкой бэкапа. Бэкап один, больше нету. Бэкапился Dumper'ом.

Вот кусок бэкапа:

CREATE TABLE `dle_category` (
  `id` smallint(5) NOT NULL auto_increment,
  `parentid` smallint(5) NOT NULL default '0',
  `posi` smallint(5) NOT NULL default '1',
  `name` varchar(50) NOT NULL default '',
  `alt_name` varchar(50) NOT NULL default '',
  `icon` varchar(200) NOT NULL default '',
  `skin` varchar(50) NOT NULL default '',
  `descr` varchar(200) NOT NULL default '',
  `keywords` text NOT NULL,
  `news_sort` varchar(10) NOT NULL default '',
  `news_msort` varchar(4) NOT NULL default '',
  `news_number` smallint(5) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;

Как бы мне это кроказябры в бэкапе превратить в нормальный русский язык? Вопрос жизни и смерти. Пробовал пользоваться "Штирлицом", но данная софтина не помогла решить мне эту проблему sad  . Помогите пожалуйста, люди добрые.

Неактивен

 

#2 05.03.2007 01:35:28

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Проблема с кодировкой бэкапа

Судя по написанному Вами куску, Ваши данные находятся в кодировке UTF8.

Вы можете преобразовать их, например, с помощью программы recode:
shell> recode utf8..latin1 mydump.sql
После этого преобразования, данные в резервной копии будут находиться
в изначальной кодировке на сервере (koi8r или cp1251).

Подробнее о преобразовании кодировок и восстановлении данных, Вы можете
прочитать в статье "Обновление сервера 3.23 и 4.0" (последний раздел).

Неактивен

 

#3 24.11.2007 00:59:42

Mikhail111
Участник
Зарегистрирован: 24.11.2007
Сообщений: 5

Re: Проблема с кодировкой бэкапа

Столкнулся с той же самой проблемой, пробовал делать shell> recode utf8..latin1 d0.sql, выдает ошибку:
recode: d0.sql failed: Invalid input in step `UTF-8..ISO-8859-1'

Отредактированно Mikhail111 (24.11.2007 01:00:17)

Неактивен

 

#4 24.11.2007 02:38:27

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Проблема с кодировкой бэкапа

Возможно, какие-то символы не перекодируются, попробуйте
recode -f utf8..latin1 filename

Неактивен

 

#5 24.11.2007 18:51:34

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Проблема с кодировкой бэкапа

Возможно, у Вас есть BLOB-данные в базе. recode уничтожит BLOB-данные, поэтому таблицы, в которых такие данные есть нужно дампить и перекодировать отдельно.

Неактивен

 

#6 24.11.2007 19:49:54

Mikhail111
Участник
Зарегистрирован: 24.11.2007
Сообщений: 5

Re: Проблема с кодировкой бэкапа

Да действительно теперь русский текст стал читаем. Только не удается импортировать бэкап, выдает ошибку:
#1253 - COLLATION 'latin1_general_ci' is not valid for CHARACTER SET 'koi8r'
Если заменить latin1 на koi8r или cp1251 то выдает ошибку:
Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/html/phpMyAdmin-2.10.3-all-languages/libraries/string.lib.php on line 112

Неактивен

 

#7 24.11.2007 23:30:32

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Проблема с кодировкой бэкапа

Попробуйте просто убрать упоминания COLLATION

Неактивен

 

#8 25.11.2007 00:45:40

Mikhail111
Участник
Зарегистрирован: 24.11.2007
Сообщений: 5

Re: Проблема с кодировкой бэкапа

Тогда пишет: Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/html/phpMyAdmin-2.10.3-all-languages/libraries/string.lib.php on line 112

Неактивен

 

#9 25.11.2007 01:23:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Проблема с кодировкой бэкапа

Вы перекодировали данные, а метаданные не изменили. Проверьте, что во всех
таблицах у Вас правильные метаданные (CHARSET и COLLATION).

Неактивен

 

#10 25.11.2007 15:39:01

Mikhail111
Участник
Зарегистрирован: 24.11.2007
Сообщений: 5

Re: Проблема с кодировкой бэкапа

Подскажите пожалуйста какие значения надо поставить в CHARSET и COLLATION, если база читается в русском шрифте.

Неактивен

 

#11 25.11.2007 17:06:38

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Проблема с кодировкой бэкапа

COLLATION не указывайте вообще, выберется по умолчанию для текущей кодировки. Если читается в windows notepad, то CHARSET=CP1251, если в linux-консоли, то см. locale, обычно koi8r (может быть utf8)

Неактивен

 

#12 26.11.2007 19:42:16

Mikhail111
Участник
Зарегистрирован: 24.11.2007
Сообщений: 5

Re: Проблема с кодировкой бэкапа

Все равно выдает ошибку, создается только 2 таблицы:
Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /var/www/html/phpMyAdmin-2.10.3-all-languages/libraries/string.lib.php on line 112

Ответ MySQL: 
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ip_low2` tinyint(3) unsigned NOT NULL default '0',
  `ip_high2` tinyint(3) unsi' at line 5

Неактивен

 

#13 26.11.2007 20:35:34

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Проблема с кодировкой бэкапа

PHPmyadmin - зло, видимо у Вас обрезается ввод из-за ограничения апача на размер передаваемого файла. Попробуйте использовать MySQL Adminitrator или консоль mysql

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson