|
|
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
Вечер добрый, коллеги! Ситуация следующая: 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), а сам русский текст отображается знаками вопроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 15:29:16 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
Bonishvarik, скорее всего в консоль уже вводите не cp1251, а utf8, как она обычно настроена в современных дистрибутивах. а судя по настройкам, mysql ожидает именно cp1251. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 16:12:38 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
netwind, да в том-то и дело, что и в utf8 пробовал. Результат тот же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 16:16:47 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
netwind, а подключаюсь как через обычную консоль, так и через MS Access 2007 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 16:21:55 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
Bonishvarik, ну. как раз utf8 не надо вводить, если настройки предполагают cp1251. Надо чтобы консоль или другая ваша программа вставляла данные как их ожидает mysql. Или настройки mysql меняйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 16:22:21 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
netwind, я имею в виду, что конфиги на utf8 правил - безрезультатно. И вводил данные в различных вариациях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 19:58:57 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
Bonishvarik, "в консоли", то есть запуская в ubuntu программу /usr/bin/mysql должно работать 100% конечно, с другими приложениями другие особенности. Но добейтесь хотя бы чтобы в консоли вставлялось. Я предлагаю попробовать викинуть init-connect. Это может смущать стандартный способ установки кодировки /usr/bin/mysql и других клиентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 22:04:16 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
Bonishvariknetwind, я имею в виду, что конфиги на utf8 правил - безрезультатно. Надо не конфиги править, а команду set names давать с кодировкой, соответствующей текущей консоли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 13:45:19 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
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. либо 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. это укажет, что клиент работает в кодировке utf-8, например, мой Debian имеет такую кодировку при работе в консоли. автор(Windows, например при работе в консоли использует cp866 несмотря на то, что текстовые файлы тот же блокнот любит создавать в кодировке cp1251 - короче в винде полная путаница.) После этого рекомендую повторить ваш запрос: Код: sql 1. а потом проверить его соответствующим SELECT'ом: Код: sql 1. должно получиться, теперь важно чтобы ваш клиент тоже указывал в какой кодировке он ожидает данные (и пересылает их). Рекомендую поковыряться через Workbench http://dev.mysql.com/downloads/workbench/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2015, 10:33:15 |
|
||
|
Кодировка MySQL
|
|||
|---|---|---|---|
|
#18+
AndrewIncесли это так то с учётом вашей настройки есть подозрение, что папку с таблицами перекодировки в папке /usr/share/mysql MySQL при своём старте не обнаружил и все указания кодировок и collation были проигнорированы вполне реально. это же какая-то мелкая платформа, а не ПК. там, поди, экономят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2015, 11:31:54 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=127&tid=1832792]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
77ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 399ms |

| 0 / 0 |
