Несколько раз при перезде на другой хостинг сталкивался с проблемой кодировки базы данных MySQL. Выглядит проблема следующим образом: заливаем сайт, настраиваем, затем восстанавливаем базу данных из дампа и вместо русских букв видим знаки вопроса или вообще непонятные символы. Связано это с тем, что многие хостеры не настраивают сервер для корректной работы с русской кодировкой. Особенно часто такая проблема встречается при переходе на VPS-тарифы, которые дают больше ресурсов, но предполагают и более высокий уровень знаний пользователей.

В большинстве случаев проблема возникает из-за того, что таблицы, которые использует база данных MySQL, созданы в кодировке latin1. Для того, чтобы проверить это, нужно зайти в PHPMyAdmin и прямо на первой странице посмотреть на “Сопоставление соединения с MySQL”.

kak-izmenit-kodirovku-bazy-dannyx-pic2

Если там указано “latin1_swedish_ci” или что-то аналогичное, то русские буквы не будут отображаться.

Чтобы исправить эту проблему нужен доступ к конфигурационному файлу MySQL. Обычно на сервере он находится в директории “etc“:

/etc/my.cnf

Как я уже писал в статье про настройку Apache, желательно, чтобы на сервере был установлен Midnight Commander, любая навигация и изменения с его помощью намного удобнее и проще.

Итак, используя MC или другим доступным способом находим нужный файл и добавляем следующие строки в секцию “[mysqld]“:

default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect=”SET NAMES cp1251″
skip-character-set-client-handshake

Файл, после изменений сохраняем. Теперь нужно перезапустить весь сервер или непосредственно сервер БД MySQL при помощи следующей комманды:

service mysqld restart

Чтобы проверить кодировку необходимо с главного экрана PHPMyAdmin перейти в раздел “Базы данных“, в нижней строке столбца “Сравнение” должно быть значение “cp1251_general_ci“. Так же кодировку можно проверить SQL-запросом:

SHOW VARIABLES LIKE ‘ch%’;

После приведенных выше изменений, русские буквы должны отображаться нормально, если этого не происходит, то возможно проблема кроется уже в настройках php или браузера.

Поделиться в соц.сетях

Похожие записи

Мне нравится!

Нравится