Настройка MySQL


Установка всего программного обеспечения как MySQL, так и прочих пакетов (PHP, Phpmyadmin) была произведена на самом начальном этапе, - если помните, делали мы это командой: apt-get install apache2 php5 php5-mysql mysql-server phpmyadmin - см. подробнее->>>.

На какую процедуру пришлось убить больше всего времени при настройке MySQL, так это настройка кодировки. При извлечении информации из базы средствами PHP русские слова отображаются как вопросительные знаки - ????????????????. Здесь существует проблема с кодировкой, так как загружаемая MySQL из репозитория Linux (Ubuntu 13.04) имеет кодировку UTF8 вперемешку с latin1, таким образом, любая из кодировок (cp1251 или utf8) при извлечении из MySQL будет отображаться коряво.

Если вам необходимо настроить кодировку cp1251, то первый способ, который легко отыскать в интернете и дающий решение данной проблемы – это просто в скрипт PHP, который у вас извлекает контент из базы, добавить вот такую строку:

 mysql_query("SET NAMES cp1251");  

Если не устраивает вариант, предусматривающий правку скритов, то необходимо править конфигурационный файл MySQL, в этой связи, прежде чем был найден ответ, была перепробована масса всяких вариантов, большинство из которых, вероятно, подходили для ранних версий Linux Ubuntu, но они не работают для UBUNTU 13.04.


default-character-set=cp1251 – не работает


Будем править конфигурационный файл my.cnf, который находится в каталоге /etc/mysql/my.cnf. Причем, если просто в my.cnf (путь - /etc/mysql/my.cnf ) [mysqld] заменить на такой вариант:
[mysqld]
default-character-set=cp1251

сохраняемся и перегружаемся:
service mysql restart

тогда при подключении к phpmyadmin мы получаем вот такую ошибку:
#2002 Невозможно подключиться к серверу MySQL

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


Рабочая конфигурация my.cnf MySQL


Выбираем другой алгоритм. Для начала входим в MySQL через phpmyadmin. На домашней странице в phpmyadmin видим заголовок «Основные настройки», в подразделе «Сопоставление кодировки соединения с MySQL» выбираем UTF8_UNICODE_ci.

Далее проверим конфигурацию MySQL. В phpmyadmin выберем вкладку SQL и пошлем туда запрос вида:
SHOW VARIABLES LIKE 'char%';
в ответ имеем:

Variable_name

Value

character_set_client utf8
character_set_connection utf8

character_set_database

latin1

character_set_filesystem binary
character_set_results utf8

character_set_server

latin1

character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

Видим в приведенной конфигурации в двух местах значения latin1, которые необходимо исправить в зависимости от того, какая кодировка вам нужна. Допустим, мы будем заменять на cp1251, поэтому в конфигурационном файле my.cnf, который находится в каталоге /etc/mysql/my.cnf, ищем модуль [mysqld] и меняем его на:

[mysqld]
skip-character-set-client-handshake
character_set_client=cp1251
character_set_server=cp1251

Делаем рестарт MySQL (перезагрузку необходимо делать всегда после внесения каких-либо изменений):  service mysql restart

В phpmyadmin снова посылаем SQL - запрос вида:
SHOW VARIABLES LIKE 'char%';

Получаем ответ, исходя из которого видим, что наша конфигурация MySQL поменялась:

Variable_name

Value

character_set_client utf8
character_set_connection utf8

character_set_database

cp1251

character_set_filesystem binary
character_set_results utf8

character_set_server

cp1251

character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

У нас latin1 поменялись на cp1251, соответственно сразу после приведения конфигурации MySQL к указанному виду, из базы у нас извлекается все корректно, наконец-то видим русские слова. Вот пример нашего текста, извлекаемого из БД MySQL.

От кодировки БД MySQL теперь переходим к настройкам кодировки сообщений, которые у нас с сайта отправляются на электронную почту, см. PHP отправка на e-mail >>>



  • Главная
  • Предисловие
  • ISPmanager
  • FTP-доступ
  • Прикрепить Домен
  • PhpMyAdmin
  • MySQL
  • Sendmail
  • Port 22
  • Mysqldump
  • Обратная связь


  • Яндекс цитирования Рейтинг@Mail.ru