Назад | Перейти на главную страницу

Клиент консоли MySQL не отображает нелатинские символы

Я установил 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)

Ест строку админ, скрывая его от глаз, когда я его набираю, но они все еще там, поэтому запрос завершился с правильным результатом.

Как это исправить?