Unknown system variable lc_messages

Обновлено Обновлено: Опубликовано Опубликовано:

Описание

При попытке подключиться к MySQL с помощью phpMyAdmin выскакивает ошибка «Unknown system variable 'lc_messages'».

Такая же ошибка появляется при вводе SQL-запроса:

> SET lc_messages = 'ru_RU';

Причина

Несоответствие версий phpMyAdmin и MySQL.

Для MySQL 5.5 нужно использовать phpMyAdmin версии 4.4.x и выше. Для MySQL 5.1 — phpMyAdmin 4.0.x.

Решение

Решение проблемы заключается в приведении в соответствие версий СУБД и phpMyAdmin. Для начала, мы должны понять какая версия MySQL установлена, а затем — либо обновить одну из программ, либо понизить версию phpMyAdmin (чтобы не трогать MySQL).

Узнаем версию MySQL

Выполняем команду:

mysql -V

В ответ мы получим, примерно, следующее:

mysql  Ver 14.14 Distrib 5.5.31, for FreeBSD9.1 (amd64) using  5.2

В данном примере используется версия 5.5.31, а значит для решения проблемы нужно обновить phpMyAdmin. В вашем случае может быть обратная ситуация, например, если версия MySQL будет 5.1.

Если нужно обновить или понизить версию phpMyAdmin

В случае использования свежей СУБД необходимо обновить phpMyAdmin. В случае использования устаревшего сервера баз данных, мы можем принять решение его не трогать — вместо этого просто использовать устаревшую версию phpMyAdmin. Так или иначе, набор действий, примерно, одинаковый.

1. Сначала находим каталог с phpMyAdmin. Путь до него можно найти в конфигурационном файле веб-сервера. Основные пути расположения phpMyAdmin:

  • /usr/share/phpmyadmin
  • /var/www/phpmyadmin
  • /usr/local/www/phpmyadmin

2. Переносим содержимое каталога phpmyadmin в другую папку, например:

mv /usr/share/phpmyadmin /usr/share/old.phpmyadmin

3. Скачиваем нужную версию phpmyadmin с официального сайта.

4. Распаковываем содержимое архива в каталог хранения phpmyadmin.

Подробнее Как обновить phpMyAdmin.

Если нужно обновить MySQL

Необходимо обновить MySQL одним из нижеописанных способов.

Способ 1 (системными средствами)

В Linux на основе RPM, например, CentOS или Red Hat:

$ sudo yum update mysql

В Linux на основе DEB, например, Ubuntu или Debian:

$ sudo apt-get update mysql-server

В UNIX на основе BSD, например, FreeBSD:

# pkg upgrade mysql-server

Способ 2 (переустановкой mysql)

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

Временное решение

Есть метод, с помощью которого можно быстро устранить проблему без необходимости обновлять программное обеспечение. Он не совсем правильный, так как подразумевает внесение правок в исходный код phpmyadmin.

Однако, если есть необходимость быстро решить проблему, то открываем следующий файл:

vi /usr/share/phpmyadmin/libraries/common.inc.php

* где путь /usr/share/phpmyadmin в вашем случае может быть другим.

И комментируем строки:

#if (PMA_MYSQL_INT_VERSION < $cfg['MysqlMinVersion']['internal']) {
#  PMA_fatalError(
#    __('You should upgrade to %s %s or later.'),
#    array('MySQL', $cfg['MysqlMinVersion']['human'])
#  );
#}

* в данном примере строки уже закомментированы (знак # в начале строки).

После открываем другой файл:

vi /usr/share/phpmyadmin/libraries/classes/DatabaseInterface.php

И также комментируем следующие строки:

#if (! empty($locale)) {
#  $this->query("SET lc_messages = '" . $locale . "';", $link, self::QUERY_STORE);
#}

В чем была проблема?

Если вам удалось решить проблему, поделитесь своим опытом для других. Что помогло:

* в процентах показаны результаты ответов других посетителей.

5.9%
17.6%
52.9%
23.5%
0%

# CentOS # Linux # MySQL # Ubuntu # Базы данных
Дмитрий Моск — частный мастер
Помогла ли вам эта статья?

Да            Нет