заметки на полях

Блокнот разработчика

Currently browsing mysql

MySQL различные UTF – utf8_bin и utf8_general_ci

Чем же отличаются эти два collate для таблиц?
utf8_bin – использует сравнения по двоичным значениям каждого символа
utf8_general_ci – использует сравнения на основе языковых особенностей и игнорирует регистр символов.

Для наглядности приведем небольшой эксперимент.

CREATE TABLE  peoples (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
first_name VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
last_name VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE = INNODB CHARACTER SET utf8;

INSERT INTO  peoples (first_name, last_name) VALUES ('Петя',  'Иванов'), ('андрей',  'иванов'), ('Иван',  'Петров'), ('Андрей',  'Сидоров');
INSERT INTO  peoples (first_name, last_name) VALUES ('Петр',  'Большой'), ('Пётр',  'Большои');

Read more »

mysqldump и проблемы с кодировкой

Делая дамп совершенно обычным способом

1
mysqldump ads -u <user> -p > dump.sql

Заметил маленькую неприятность, что дамп получается со сбитыми кодировками. Добавление к параметра

--default-character-set=utf8

облегчения не принесло и не возымело надо сказать вообще никакого эффекта. После небольшого периода гугления выяснилось, что дело не в утилите mysqldump, а в настройках кодировок на сервере. Read more »