В меню отсутствует раздел «Базы данных»
В данном случае существует два возможных пути разрешения этой проблемы:
- В случае если на сервере не запущен сервер БД MySQL:
- проверяем статус активности сервиса через меню «Сервисы» в панели ISPmanager. Далее пробуем перезапуск при помощи соответствующих кнопок на панели;
- Если первый вариант не помог, перезапускаем БД из консоли посредством команды 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 прописана некорректно. Это лишь один из примеров ошибок – они могут быть самыми разными. От конкретной ошибки зависит дальнейший алгоритм действий. Примеров очень много, потому не будем останавливаться на этом вопросе более подробно.