SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.03.2016 22:21:19

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

клиент mysql не слушается указания кодировки в конфигурационном файле

.my.cnf:

Код:

[client]
...
default-character-set=utf8

А в консоли после запуска mysql:

Код:

mysql> SELECT @@character_set_client;
+------------------------+
| @@character_set_client |
+------------------------+
| cp1251                 |
+------------------------+

При этом если в .my.cnf написать какую-нибудь бессмыслицу, то mysql при запуске ругается, т.е. файл он читает.

Никак не пойму, в чем дело sad

Неактивен

 

#2 02.03.2016 23:20:35

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: клиент mysql не слушается указания кодировки в конфигурационном файле

А нет опции skip-character-set-client-handshake на сервере?
http://dev.mysql.com/doc/refman/5.5/en/ … -handshake

Неактивен

 

#3 02.03.2016 23:26:38

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: клиент mysql не слушается указания кодировки в конфигурационном файле

Думаю, что нет. А как проверить из клиента? (посмотреть конфигурацию сервера сейчас нет возможности).

Неактивен

 

#4 02.03.2016 23:30:53

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: клиент mysql не слушается указания кодировки в конфигурационном файле

Проверить, например, так:

rgbeast@may ~ $ mysql --default-character-set=cp866
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 51
Server version: 5.6.24-72.2 Percona Server (GPL), Release 72.2, Revision 8d0f85b

Copyright (c) 2009-2015 Percona LLC and/or its affiliates
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \s
--------------
mysql  Ver 14.14 Distrib 5.6.24-72.2, for debian-linux-gnu (x86_64) using readline 6.3

Connection id:        51
Current database:    data
Current user:        root@localhost
SSL:            Not in use
Current pager:        stdout
Using outfile:        ''
Using delimiter:    ;
Server version:        5.6.24-72.2 Percona Server (GPL), Release 72.2, Revision 8d0f85b
Protocol version:    10
Connection:        Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    cp866
Conn.  characterset:    cp866
UNIX socket:        /var/run/mysqld/mysqld.sock
Uptime:            12 min 39 sec

Threads: 2  Questions: 238  Slow queries: 0  Opens: 106  Flush tables: 1  Open tables: 99  Queries per second avg: 0.313
--------------
 

Неактивен

 

#5 03.03.2016 00:02:00

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: клиент mysql не слушается указания кодировки в конфигурационном файле

Нет, опция --default-character-set не действует:

Код:

> mysql --default-character-set=cp866
Reading table information for completion of table and column names
...
mysql> \s
--------------
mysql  Ver 14.14 Distrib 5.5.40, for FreeBSD10.1 (amd64) using  5.2
...
Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    cp1251
Conn.  characterset:    cp1251

Это явный признак запуска сервера с ключом skip-character-set-client-handshake?

Неактивен

 

#6 03.03.2016 08:05:18

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: клиент mysql не слушается указания кодировки в конфигурационном файле

LazY написал:

Это явный признак запуска сервера с ключом skip-character-set-client-handshake?

Достаточно очевидно, что клиентская кодировка при подключении игнорируется сервером. Такое поведение было в MySQL 4.0, а опцию skip-... ввели для совместимости со старыми скриптами, в которых нет осознанного выбора кодировки ( SET NAMES ). 95% причина именно в этой опции.

Неактивен

 

#7 03.03.2016 11:03:26

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: клиент mysql не слушается указания кодировки в конфигурационном файле

Понял, спасибо.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson