Кодировка в MySQL 5.5.28. По умолчанию latin1 нужно utf8

Автор Macintosh, 11 декабря 2012, 00:01:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Macintosh

Всем приветик! Проблемка следующая, до этого стоял у меня Debian 6 и MySQL 5.1.66. Сейчас начал осваивать Debian 7 а там MySQL 5.5.28. Так вот в варианте с версией 5.1.66 было 2 проблемы:
1. По умолчанию было MyISAM а нужно было InnoDB. Решал так: в конфиге my.cnf
Цитировать[mysqld]
default_storage_engine=InnoDB

2. Кодировка по умолчанию была latin1 а нужно было utf8. Решал так: в конфиге my.cnf
Цитировать[mysqld]
skip-character-set-client-handshake
default-character-set=utf8
init-connect='SET NAMES utf8'
default-collation=utf8_general_ci

После чего все было супер, все работало на отлично ))

Что имеем с 5.1.66 теперь проблемы с MyISAM нет, теперь по умолчанию InnoDB, что безумно радует, одной проблемой меньше.
Но с кодировкой проблемы так и остались. Метод который описывал выше теперь не работает. Порылся в сети нашел такой метод.

Цитировать[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

[client]
default-character-set = utf8

Вродибы все отлично на первый взгляд, если смотреть в клиенте mysql то показывает следующее

Цитироватьmysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

В phpmyadmin, тоже показывает что мол все хорошо, у таблиц по умолчанию utf8_general_ci, сама MySQL-кодировка: UTF-8 Unicode (utf8)  в Сопоставление соединения с MySQL utf8_general_ci.

Казалось бы ну вот все супер! А когда PHP пишет в базу данные на кириллице, то в базе кракозябры, а на сайте все выводится нормально.

Помогите разобраться в проблеме.



Сообщение объединено: 11 декабря 2012, 13:11:52

Проблему уже решил сам )
Вот решение, может быть кому-то пригодится.

Цитировать[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
skip-character-set-client-handshake

[client]
default-character-set=utf8

[mysqldump]
default-character-set=utf8