powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Кодировка MySQL
10 сообщений из 10, страница 1 из 1
Кодировка MySQL
    #39033267
Bonishvarik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вечер добрый, коллеги!
Ситуация следующая: Raspbian, на нем стоит сервер Mysql. Конфиг ниже
root@bonik-srv:/etc/mysql# sed '/#/d' 'my.cnf'



[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set=cp1251


[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
character-set-server=cp1251
collation-server = cp1251_general_ci
init-connect="SET NAMES cp1251"
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover = BACKUP
query_cache_limit = 1M
query_cache_size = 16M
expire_logs_days = 10
max_binlog_size = 100M



[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
default-character-set=cp1251
[isamchk]
key_buffer = 16M

!includedir /etc/mysql/conf.d/


При попытке внести в таблицу русский текст mysql> insert into status values (4,'фаыва'); вылетает сообщение типа Query OK, 1 row affected, 1 warning (0.01 sec), а сам русский текст отображается знаками вопроса
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39033321
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bonishvarik, скорее всего в консоль уже вводите не cp1251, а utf8, как она обычно настроена в современных дистрибутивах. а судя по настройкам, mysql ожидает именно cp1251.
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39033326
Bonishvarik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind, да в том-то и дело, что и в utf8 пробовал. Результат тот же
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39033334
Bonishvarik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind, а подключаюсь как через обычную консоль, так и через MS Access 2007
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39033336
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bonishvarik, ну. как раз utf8 не надо вводить, если настройки предполагают cp1251. Надо чтобы консоль или другая ваша программа вставляла данные как их ожидает mysql.
Или настройки mysql меняйте.
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39033509
Bonishvarik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind, я имею в виду, что конфиги на utf8 правил - безрезультатно. И вводил данные в различных вариациях.
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39033556
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bonishvarik, "в консоли", то есть запуская в ubuntu программу /usr/bin/mysql должно работать 100%
конечно, с другими приложениями другие особенности. Но добейтесь хотя бы чтобы в консоли вставлялось.
Я предлагаю попробовать викинуть init-connect. Это может смущать стандартный способ установки кодировки /usr/bin/mysql и других клиентов.
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39033946
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bonishvariknetwind, я имею в виду, что конфиги на utf8 правил - безрезультатно.
Надо не конфиги править, а команду set names давать с кодировкой, соответствующей текущей консоли.
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39034316
AndrewInc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bonishvarik,

Сталкивался не раз с такой проблемой особенно на debian (ubuntu и его клоны как правило нормально настраивают кодировки).
В вашем случае следует подключится в консоли (командой mysql) и проверить параметры работы mysql-сервера, например так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
andrew@SRV:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 31535
Server version: 5.5.38-1~dotdeb.0 (Debian)

Copyright (c) 2000, 2014, 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.5.38, for debian-linux-gnu (x86_64) using readline 6.1

Connection id:          31535
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.5.38-1~dotdeb.0 (Debian)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/run/mysqld/mysqld.sock
Uptime:                 52 days 10 hours 18 min 23 sec

Threads: 1  Questions: 2236273  Slow queries: 1  Opens: 1978  Flush tables: 1  Open tables: 400  Queries per second avg: 0.493
--------------

mysql>
Я подозреваю, что у Вас
либо Server characterset: latin1
либо Db characterset: latin1
если это так то с учётом вашей настройки есть подозрение, что папку с таблицами перекодировки в папке /usr/share/mysql MySQL при своём старте не обнаружил и все указания кодировок и collation были проигнорированы
проверьте указанную папку, что она есть что в ней есть папка charsets и, кстати, у меня строка
lc-messages-dir = /usr/share/mysql
в разделе [mysqld] файла /etc/mysql/my.cnf закоментарена
при этом кодировки работают :)

Подключитесь из командной строки, как я писал выше, и дайте команду
Код: sql
1.
set charset utf8;


это укажет, что клиент работает в кодировке utf-8, например, мой Debian имеет такую кодировку при работе в консоли. автор(Windows, например при работе в консоли использует cp866 несмотря на то, что текстовые файлы тот же блокнот любит создавать в кодировке cp1251 - короче в винде полная путаница.)
После этого рекомендую повторить ваш запрос:
Код: sql
1.
insert into status values (5,'из консоли под кодировкой utf8');


а потом проверить его соответствующим SELECT'ом:
Код: sql
1.
SELECT * FROM status;


должно получиться, теперь важно чтобы ваш клиент тоже указывал в какой кодировке он ожидает данные (и пересылает их).
Рекомендую поковыряться через Workbench http://dev.mysql.com/downloads/workbench/
...
Рейтинг: 0 / 0
Кодировка MySQL
    #39034325
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewIncесли это так то с учётом вашей настройки есть подозрение, что папку с таблицами перекодировки в папке /usr/share/mysql MySQL при своём старте не обнаружил и все указания кодировок и collation были проигнорированы

вполне реально. это же какая-то мелкая платформа, а не ПК. там, поди, экономят.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Кодировка MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]