Название: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Dolphin от 16 Ноября 2013, 15:49:15 Прошу помощи.
Перехожу с 45q на N+ и первое, с чем столкнулся не могу добиться корректного переноса полей с русскими буквами. Вместо русских символов - знаки вопроса. Рабочая база крутится под mysql 4.1.22 С такими переменными: Код: mysql> show variables like 'char%'; - Делаю дамп базы в файл; - Копирую дамп на новый комп; - Создаю новую базу (мускул: 5.5.33) и заполняю её данными из дампа. Захожу в phpmyadmin и вижу, что вместо русских символов - знаки вопросов. С админским бубном плясал два дня, кпд=0 :( Пременные на новом мускуле 5.5.33: Код: mysql> show variables like 'char%'; Кодировка таблиц везде: cp1251 У кого какие идеи, может кто-то сталкивался с подобным? Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: ser970 от 16 Ноября 2013, 16:48:04 попробуйте типа
mysqldump -u -p --default-character-set=cp1251 и дама разворачивать тоже с указанием Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Dolphin от 16 Ноября 2013, 19:31:38 попробуйте типа пробовал.mysqldump -u -p --default-character-set=cp1251 и дама разворачивать тоже с указанием В том то и дело, что он в 1251 дампит. Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: ser970 от 16 Ноября 2013, 19:51:24 попробуйте типа пробовал.mysqldump -u -p --default-character-set=cp1251 и дама разворачивать тоже с указанием В том то и дело, что он в 1251 дампит. mysql -u root --password=pass --default-character-set=utf8 < dump.sql ? Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: 0xbad0c0d3 от 16 Ноября 2013, 21:16:34 надо делать дамп с указанием --default-character-set=utf8, тогда экспорт будет сделан в указанной кодировке. а импортить уже как обычно, ну, или с указанием того же utf8
Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: ser970 от 16 Ноября 2013, 21:38:42 надо делать дамп с указанием --default-character-set=utf8, тогда экспорт будет сделан в указанной кодировке. а импортить уже как обычно, ну, или с указанием того же utf8 правильно .я показал как пример . в данном случае надо на cp1251 - должно помочь. Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Dolphin от 16 Ноября 2013, 23:26:52 Код: mysqldump -u -p --default-character-set=cp1251 >bill45.sql Код: mysqldump -u -p --default-character-set=utf8 >bill45.sql не помогло... есть еще идеи? Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Efendy от 17 Ноября 2013, 00:10:04 Понимаешь, в мускуле все немного хитрей. Там есть кодировка в которой хранятся данные, а есть кодировка, с которой работает клиент. То, что у тебя отображаются вопросы - это говорит о том, что у тебя клиент работает в другой кодировке чем думает мускул.
Обрати внимание - по-барабану в какой кодировке хранятся данные. Важно чтобы соответствовала кодировка коннекта. Т.е. биллинг будет корректно работать даже если в мускуле все таблицы будут в cp1251, биллинг просто об этом знать не будет. Он соединился по utf8 и получил данные по utf8. Конечно, желательно чтобы и кодировка хранения тоже была утф8 - мы тогда сможем хранить стопицот причудливых символов, для которых и сделана эта кодировка. Но и в этом нет проблемы, т.к. скрипт перехода конвертит все таблицы в утф8. Ты можешь это проверить: Код: SET NAMES utf8; Короче, ты воюешь с ветрянными мельницами. Дело в настройке phpmyadmin Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: ser970 от 17 Ноября 2013, 11:25:51 Код: mysqldump -u -p --default-character-set=cp1251 >bill45.sql Код: mysqldump -u -p --default-character-set=utf8 >bill45.sql не помогло... есть еще идеи? дай ssh попробую помочь Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Dolphin от 17 Ноября 2013, 15:42:33 Ты можешь это проверить: Код: SET NAMES utf8; Короче, ты воюешь с ветрянными мельницами. Дело в настройке phpmyadmin Тоже вопросительные знаки... Дальше при настройке, ушел от просмотра в phpmyadmin-е, смотрел в консоли мускула. Везде были знаки вопроса. Психанул и приехал на железную консоль, дабы исключить putty :) Все-равно - вопросы... На сервере лежал админский бубен: хттп://buben.biz.ua/katalog/buben-bsd/ (не реклама) С его помощью закоментировал в my.cnf (а сам же правил) Код: [client] ... и все взлетело. Причем и в phpmyadmin. Всем спасибо за помощь. 2ser970: Спасибо за помощь, но хотелось самому выяснить причину... 2Efendy: В доке по установке мускула, есть такой момент: Код: cp /usr/local/share/mysql/my-huge.cnf /etc/my.cnf С дефолтным запуском, как в доке, - мускул запускает конфиг не из /etc/my.cnf, а из /var/db/mysql/my.cnf Подправь... Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Efendy от 17 Ноября 2013, 21:39:11 Цитировать Default options are read from the following files in the given order: Перевожу: опции по умолчанию читаются из следующих файлов в таком порядке: блаблабла./etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf /usr/local/etc/mysql/my.cnf ~/.my.cnf Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Dolphin от 17 Ноября 2013, 22:13:35 /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf /usr/local/etc/mysql/my.cnf ~/.my.cnf Перевожу: опции по умолчанию читаются из следующих файлов в таком порядке: блаблабла.[/quote] Буду знать, спасибо. Нарисовалась другая проблема. Перенес базу на новый комп, с ноудени 49.33. Делал по мануалу: хттп://forum.nodeny.com.ua/index.php?topic=552.msg9835#msg9835 В итоге, вебморда на русском, а русские символы из мускула - все с вопросами. Причем, эти же символы в пхпмайадмин-е вижу на русском нормально. Если через веб-интерфейс создаю, например, админа с русским именем, то в веб интерфейсе его имя уже будет со знаками вопроса, причем и в пхпмайадмине тоже с вопросами. В my.cnf везде указал cp1251. Я уже запутался... Разве НД 49.33 использует не cp1251 при общении с мускулом? Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Dolphin от 17 Ноября 2013, 23:03:31 В догонку...
Header страницы отдается: <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> Кодировка отображения страницы установлена в cp1251. В чем может быть проблема? Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Efendy от 18 Ноября 2013, 00:43:40 А тебе не все равно что показывает 49я версия? тебе ж на н+ переежжать надо?
Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: Dolphin от 18 Ноября 2013, 01:32:52 А тебе не все равно что показывает 49я версия? тебе ж на н+ переежжать надо? Как раз этим и занимаюсь... Название: Re: Проблема с русскими символами при переносе базы mysql 4.1.22 --> 5.5.33 Отправлено: muff от 18 Февраля 2014, 11:14:57 Если возникают проблемы с кодировками и не получается с ходу разобраться, можно воспользоваться сторонними инструментами, например Sypex Dumper.
|