Я установил MySQL 5.6 на debian 7.10 из официального репозитория mysql deb:
deb http://repo.mysql.com/apt/debian/ wheezy mysql-5.6
Итак, у меня установлены эти пакеты:
# dpkg -l | grep mysql | awk '{print $2 " " $3}' | column -t
libdbd-mysql-perl 4.021-1+b1
libmysqlclient18:amd64 5.6.30-1debian7
mysql-apt-config 0.7.2-1
mysql-client 5.6.30-1debian7
mysql-common 5.6.30-1debian7
mysql-community-client 5.6.30-1debian7
mysql-community-server 5.6.30-1debian7
mysql-server 5.6.30-1debian7
у меня есть cp1251 локаль, установленная в моей системе:
# locale -a
ru_RU.cp1251
# echo $LANG
ru_RU.cp1251
И моя база данных и подключение к ней были настроены правильно:
# mysql
Server version: 5.6.30-log MySQL Community Server (GPL)
(none)>show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | cp1251 |
| character_set_connection | cp1251 |
| character_set_database | cp1251 |
| character_set_filesystem | binary |
| character_set_results | cp1251 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0,00 sec)
И наверняка мое соединение с замазкой было настроено для использования cp1251 кодирование.
Но консольный клиент mysql из пакета mysql-client = 5.6.30-1debian7 ничего не отображает, пока я набираю нелатинские (не ascii) символы (символы). Так, например, я могу выполнить ВЫБРАТЬ оператор, и его результат отображается правильно:
# mysql database
Server version: 5.6.30-log MySQL Community Server (GPL)
database> SELECT label FROM users LIMIT 1;
+----------------+
| label |
+----------------+
| админ |
+----------------+
1 row in set (0,00 sec)
Но когда я печатаю заявление "ВЫБРАТЬ ярлык ОТ пользователей ГДЕ label = 'админ';" как это:
database> SELECT label FROM users WHERE label='';
+----------------+
| label |
+----------------+
| админ |
+----------------+
1 row in set (0,00 sec)
Ест строку админ, скрывая его от глаз, когда я его набираю, но они все еще там, поэтому запрос завершился с правильным результатом.
Как это исправить?