Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 27 May 24 11:30:58, всего сообщений: 10756
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 5970 из 10756 ===================================== RU.UNIX.BSD =
От   : Eugene Grosbein                  2:5006/1           07 Sep 17 16:02:17
Кому : Victor Sudakov                                      07 Sep 17 16:02:17
Тема : Re: mysqldump и кодировка
FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+71d78b2c
На   : area://RU.UNIX.BSD?msgid=2:5005/49+59b0c447
= Кодировка сообщения определена как: IBM866 =================================
Ответ: area://RU.UNIX.BSD?msgid=2:5005/49+59b2047e
Ответ: area://RU.UNIX.BSD?msgid=2:5005/49+59b251c0
==============================================================================
07 сент. 2017, четверг, в 09:51 NOVT, Victor Sudakov написал(а):

VS> "less /var/db/mysql/ask_1/wp_comments.MYD" показывает внутри таблицы вполне
VS> читаемый текст в UTF-8. А вот сдампить эту базу корректно никак не могу.
VS> Пробовал:
VS> mysqldump --default-character-set=utf8 -r /var/tmp/test.sql ask_1 wp_comments
VS> mysqldump --default-character-set=latin1 -r /var/tmp/test.sql ask_1 wp_comments
VS> внутри /var/tmp/test.sql получается бнопня. Правда разная бнопня в зависимости
VS> от значения ключа default-character-set.

Это обычное дело, когда приложения создают базы данных/таблицы,
не специфицируя кодировку и наследуя системный дефолт, который
у тебя может быть совсем не тот, что был у разработчика приложения.

В итоге данные лежат фактически в одной кодировке, а MySQL думает,
что в другой. Вот это "думает" можно достаточно легко увидеть,
как и системные дефолты:

mysql> show variables like 'char%';
mysql> show variables like 'collation%';

Их легко поменять в my.cnf, но это не повлияет на "уже кривые" таблицы.
Для их починки гарантированно работает такой путь:

1) При помощи show table status \G и/или show create table/mysqldump
выяснить, что думает MySQL о кодировке данных. Затем снова сдампить
данные при помощи:

mysqldump --create-options --skip-set-charset --default-character-set=latin1,
где вместо latin1 подставить кодировку, которая приписана к данным в
таблицах - таким образом, получим дамп без перекодированных данных (бнопни),
но с неправильной кодировкой в CREATE TABLE, которую затем меняем
тупо sed-ом в дампе. И не забыв поправить в my.cnf дефолты сервера,
заливаем дамп обратно.

Eugene
--- slrn/1.0.2 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.111648 секунды