Ваш надежный
хостинг партнер
(495) 797-8-500

8-800-700 40 36

У Вас нет выбранных услуг.



Новости компании, технические статьи

Решаем проблемы с MYSQL 27.07.2017

Решаем проблемы с MYSQL

В случае с корректно работающими VSD создать базу не составит большого труда и не отнимет много времени. Для этого в левом меню ISPmanager через раздел «БД» необходимо перейти на вкладку создать и заполнить соответствующие поля с созданием сложных паролей. Однако существует множество нюансов и проблем со стартом базы данных MySQL, решение которых мы рассмотрим ниже.

В меню отсутствует раздел «Базы данных»

В данном случае существует два возможных пути разрешения этой проблемы:

  • В случае если на сервере не запущен сервер БД MySQL:
  1. проверяем статус активности сервиса через меню «Сервисы» в панели ISPmanager. Далее пробуем перезапуск при помощи соответствующих кнопок на панели;
  2. Если первый вариант не помог, перезапускаем БД из консоли посредством команды etc/init.d/mysql restart (вариант для Debian, Ubuntu, Centos6). Для Centos7 команда будет systemctl restart mariadb.
  • В случае, когда возникают проблемы с подключением к БД, открываем в меню пункт «Серверы БД», после чего переходим в свойства двойным клико, и ничего не меняя, жмем «ОК». Таким образом информация о MySQL в панели управления обновится автоматически. После этого остается обновить страницу, на которой должен появиться пункт меню «БД».

Возможные проблемы и пути их решения

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

Ошибка 1: Table './site/content' is marked as crashed and should be repaired

Данное сообщение, как правило, возникает на самом сайте, или в логах. По сути, его смысл состоит в том, то таблица для одной из баз данных «битая» и требует восстановления. Для решения проблемы нужно подключиться по SHH к серверу и далее выполнить следующую команду для проверки всех БД на возможные ошибки:

mysqlcheck --repair --analyze --optimize --all-databases -u <USER> –p<PASSWORD>

Если при выполнении этой команды вылетает ошибка, ключи необходимо прописать раздельно:

mysqlcheck --repair --all-databases -u<USER1> –p<PASSWORD01>

mysqlcheck --analyze --all-databases -u<USER1> –p<PASSWORD01>

mysqlcheck --optimize --all-databases -u<USER1> –p<PASSWORD01>

В данном случае «USER1» является именем пользователя текущей БД или же пользователя с правами root, а «PASSWORD01» - замена пароля root от MySQL-БД. Пароль можно просмотреть, перейдя в меню ISPmanager в пункт серверных настроек, и отыскав там серверы БД с последующим переходом двойным кликом к MySQL.

Также можно исправить конкретную БД командой:

mysqlcheck --repair --analyze --optimize<DB> -u<USER> -p<PASSWORD>

В данном случае вместо «BD» указываем базу данных, которую необходимо отремонтировать.

Ошибка 2: mysql_connect() [function.mysql-connect]: Access denied for user 'user_xxx'@'localhost' (using password: YES)

Зачастую причиной такой ошибки становится указание в настройках сайта неверного пароля и/или логина, которые требуются для подключения к БД. Для решения данной проблемы необходимо посмотреть в панели администратора на сайте название БД, пользовательское имя/логин и пароль. Далее заходим в ISPmanager в пункт серверных настроек, кликаем базу данных >пользователя и далее в графе ввода пароля прописать пароль, предусмотренный для админ-панели.

Ошибка 3 (на сайте): не получается подключиться к БД

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

  • Unable to connect to the database: Could not connect to database…
  • Возникла ошибка при подключении сервера баз данных MySQL
  • Error connect to mysql
  • Can't connect to local MySQL server

В данном случае подключаемся к серверу по SSH и выполняем:

/etc/init.d/mysqld restart # для перезапуска MySQL-БД (Debian, Centos6)

systemctl restart mariadb #для перезагрузки MySQL в Centos7

ps axuw | grep mysql #посредством этой команды выводится список процессов MySQL-БД.

Если при выполнении команды ничего не произошло, значит MySQL не запускается.

Далее необходимо убедиться в том, что ISPmgr включен пункт mysqld в разделе «Services». Если на панели IPSmgr отсутствует пункт «БД», значит, вы не создали ни одного БД-сервера. В таком случае нужно просто создать новый сервер.

Ошибка 4: Невозможно запустить MySQL ни из консоли, ни через сервисы

В данном случае при попытке запустить MySQl из консоли могут вылетать следующие ошибки:

/usr/local/etc/rc.d/mysql-server restart

mysql not running? (check /var/db/mysql/peroksid.ispvds.com.pid).

Starting mysql.

cant connect to local mysql server throught socket /var/run/mysqld/mysql.d.sock

/etc/init.d/mysql start

Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

В данном случае необходимо проверить свободное место на рабочем диске, выполнив команду: df –h (для получения общих сведений о диске), du –hs /* (для определения пространства, занимаемого конкретными директориями). Если места на диске действительно не хватает, следует удалить ненужные файлы. Зачастую логи сайта имеют свойство разрастаться, занимая полезное дисковое пространство (чаще с этой проблемой сталкиваются новички в системном администрировании). Именно по этой причине MySQL не способна нормально функционировать, по аналогии с Exim, Apache и др.

После чистки пространства диска перезапускаем MySQL:

  • /etc/init.d/mysqld restart - для перезапуска под Debian и Centos6;
  • ystemctl restart mariadb - перезагрузка в Centos7.

Если в данном случае проблема не обусловлена нехваткой свободного места, то в логах вы получите примерно следующие записи:

130929 06:16:05 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql

130929 6:16:05 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.

130929 6:16:05 [Warning] option 'max_allowed_packet': unsigned value 5824839680 adjusted to 1073741824

Unknown suffix '-' used for variable 'sort_buffer_size' (value '--read_buffer_size=256K')

130929 6:16:05 [Warning] option 'sort_buffer_size': unsigned value 0 adjusted to 32776

130929 6:16:05 [ERROR] /usr/local/libexec/mysqld: Error while setting value '--read_buffer_size=256K' to 'sort_buffer_size'

130929 6:16:05 [ERROR] Aborting

Здесь нужно просмотреть все записи с пометкой ERROR. Так, например, пометка Error while setting value '--read_buffer_size=256K' to 'sort_buffer_size' означает, что в конфигурации my.cnf директива 'sort_buffer_size прописана некорректно. Это лишь один из примеров ошибок – они могут быть самыми разными. От конкретной ошибки зависит дальнейший алгоритм действий. Примеров очень много, потому не будем останавливаться на этом вопросе более подробно.


Возврат к списку