Найдены грабли - в debian/testing (и наверное не только) mysqld собран с default charset latin1, что приводит к потере данных при загрузке дампов в utf8 независимо от настроек конкретной базы.
Лекарство:
character_set_server = utf8
collation_server = utf8_general_ci
в разделе [mysqld] в /etc/mysql/my.cnf
о баге доложил, номер еще не получил.
January 15 2007, 14:55:09 UTC 5 years ago
January 15 2007, 15:09:22 UTC 5 years ago
January 15 2007, 15:51:19 UTC 5 years ago
недавно бекапился с 5.1 и заливал данные в 5.0 -- всё отлично отработало.
а что кодировка latin1 по-умолчанию -- то конечно обидно, но вряд ли тут кто что сделает...
January 15 2007, 20:25:19 UTC 5 years ago
January 15 2007, 20:39:52 UTC 5 years ago
===
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `bbbb` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
USE `bbbb`;
DROP TABLE IF EXISTS `alias`;
CREATE TABLE `alias` (
`id` int(11) NOT NULL auto_increment,
`email` int(11) NOT NULL,
`destination` char(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email_2` (`email`,`destination`),
KEY `email` (`email`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
===
как видиш везде явно прописано в какой кодировке таблицы создавать
January 15 2007, 23:35:42 UTC 5 years ago
пока не прописал вышепроцитированное в my.cnf - не работало.
January 15 2007, 23:41:49 UTC 5 years ago
%-(
January 15 2007, 23:45:30 UTC 5 years ago
January 15 2007, 23:46:04 UTC 5 years ago
January 15 2007, 23:49:15 UTC 5 years ago
January 15 2007, 23:48:27 UTC 5 years ago
January 16 2007, 08:11:16 UTC 5 years ago
PS: Mandriva Linux.
January 16 2007, 08:42:36 UTC 5 years ago
Система "из коробки" должна работать с любой возможной кодировкой базы.
January 16 2007, 08:46:14 UTC 5 years ago
Deleted comment
January 16 2007, 11:58:38 UTC 5 years ago
пока mysqld был с latin1, нифига не помогало.
Deleted comment
January 16 2007, 12:06:12 UTC 5 years ago
какие параметры компиляции mysql?
Deleted comment
January 16 2007, 12:15:22 UTC 5 years ago
сейчас соберу новый vps, протестирую
Deleted comment
January 16 2007, 12:23:50 UTC 5 years ago
можно попросить ИСЧЕРПЫВАЮЩИЙ список действий, которые надо сделать для заливки дампа из старого mysql (был в 1251, сконверчен в utf8 через iconv)?
January 16 2007, 14:14:26 UTC 5 years ago
C ним дефолтный чарсет именно такой.
Баг ли это?..
January 16 2007, 14:18:21 UTC 5 years ago
Anonymous
April 15 2007, 10:53:52 UTC 5 years ago
опять кодировки
1. Это не баг - обходится так:== my.cnf ==
[mysqld]
init-connect="SET NAMES utf8"
==
2. Вопрос есть еще такой - ранее мускул стоял по умолчанию, с latin1 и юзеры понасоздавали баз в latin1. Теперь поставили этот SET NAMES utf8 и старые базы, которые сделаны были в latin1 стали неправильно читаться - ???? вместо букв. Как-то это можно обойти, кроме как перезапустить мускул с latin1, слить дамп, все latin1 в дампе перебить на utf8 и залить обратно, уже в utf8? Хотелось бы сделать тоже самое, но не перезапуская mysql в latin1.