Содержание
Applicable to:
- Plesk for Linux
Symptoms
On a Plesk for Linux server, the Plesk interface is inaccessible or Plesk Installer fails to start:
CONFIG_TEXT: ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directory
MariaDB/MySQL fails to start:
# service mariadb start
Starting mariadb (via systemctl): Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
[FAILED]
Cannot access MySQL server via command line:
# mysql
Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2 "No such file or directory").
The following error is found in the output of the command journalctl -xe or in the MariaDB/MySQL log file:
CONFIG_TEXT: [ERROR] Can’t init tc log
Cause
Corrupted log file tc.log in the MariaDB/MySQL data directory.
Resolution
Note: This article is intended for use by server administrators. In case there is no administrative access to the Plesk interface or administrative SSH access to the server, please contact the server administrator or server provider.
I’ve tried every solution on the Internet but my MariaDb server continue to fail, continue to betray me, continue to destroy my tiny DevOps world. My attempts to smooth the situation included all sorts of satisfaction: changing permissions, configs, removing log files, upgrading / reinstalling, moving her internal files up and around, removing other DBMS, removing everything except her but. she has never been resisting so much for so long. My last and only hope for you guys to light the way through such critical moment in our relationships.
I’m using vagrant and the problem is in datadir option — when I use default path everything is ok but when I change it to vagrant shared folder Maria does not even start. I have copied all the /var/lib/mysql files to new folder.
I have Windows host, Centos guest and my configurations are:
Ordnung muß sein. Ordnung über alles (18+)
Инструменты пользователя
Инструменты сайта
Боковая панель
Навигация
Линкшэринг
Добавить новую страницу
Вы не можете добавлять страницы
Содержание
Ошибки
Can’t init tc log
MySQL “Got an error reading communication packet” errors
#1524 — Plugin ‘unix_socket’ is not loaded
Can’t create a new thread (errno 11)
Ошибка Can’t create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS -dependent bug
Лимиты установленные для MySQL в файле /etc/security/limits.conf будут переопределены файлом /etc/security/limits.d/90-nproc.conf . Поэтому задавать лимиты нужно в 90-nproc.conf или создать отдельный файл 91-mysql.conf
#1698 — Access denied for user ‘root’@’localhost’
Не работает phpmyadmin под root’ом. Для MySQL 127.0.0.1 и localhost это разные хосты.
Добавляем отдельного пользователя для администрирования
что-то там с sudo и unix_socket, не разбирался пока, но вариант рабочий.
mysqldump: Couldn’t execute ‘show events’
Ошибка mysqldump: Couldn’t execute ‘show events’: Cannot proceed because system tables used by Event Scheduler were found damaged at server start после перехода на MariaDB с MySQL 56 на cPanel сервере
mysql_upgrade по рекомендациям тоже не работает с ошибкой mysqldump: Got error: 1102: Incorrect database name ‘#mysql50#.config’" when selecting the database
И мне помог не cPanel, а Plesk
В /var/lib/mysql/ был каталог с точкой в имени.
Чтобы его найти выполним команду
Решение
Удалить/перенести каталог в другой место, выполнить mysql_upgrade.
#1214 — The used table type doesn’t support FULLTEXT indexes
Индексы FULLTEXT поддерживаются в таблицах InnoDB только начиная с MYSQL 5.6, поэтому попробуйте обновить MYSQL и после этого изменить команду таблицы
Waiting for table metadata lock
No directory, logging in with HOME=/
Подобная ошибка была в Debian с репозиторием dotdeb.
Надо поправить /etc/passwd
Должно быть так
Can’t create thread to kill server (errno= 11)
Скорее всего на сервере недостаточно памяти для выбранных настроек в my.cnf .
Т.е. key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections в итоге получается больше чем RAM на сервере.
Решение — уменьшить max_connections и другие параметры исходя из доступных ресурсов.
Can’t create a new thread (errno 11)
Ошибка похожа на Can’t create thread to kill server и также связана с лимитами.
В данном случае нужно увеличить количество открытых файлов и количество процессов ( nofile и nproc ).
По-умолчанию open files равен 1024.
Проверим, чтобы удостовериться
Добавляем в файл /etc/security/limits.conf
Либо устанавливаем лимит только для mysql
Нашёл рекомендацию добавить лимиты в отдельный файл 99-mysql.conf в каталоге /etc/security/limits.d/
unknown variable ‘default-tmp-storage-engine=MyISAM’
Вот такая ошибка может возникнуть если бездумно копировать из разных блогов советы бывалых админов
default-tmp-storage-engine появился только в MySQL 5.6 и если использовать опцию в версии 5.5, то MySQL не запустится.
Host ‘a.b.c.d’ is blocked because of many connection errors; unblock with ‘myscladmin flush-hosts’
Ошибка возникает после 10 (по-умолчанию) неудачных соединений с базой.
Fatal error: Uncaught exception ‘Exception’ with message ‘Error: Can’t open file: ‘./ocr/oc_product.frm’ (errno: 24)
В логе mariadb.log нечто подобное
Решение — см. запись ниже open-files-limit в MariaDB
Текущее использование открытых файлов можно посмотреть так:
InnoDB: mmap(137363456 bytes) failed; errno 12
Решение — уменьшить innodb_buffer_pool_size или добавить RAM.
Правильный UTF-8
а потом трахбах и deprecated
#1146 — Table ‘data_dictionary.CHARACTER_SETS’ doesn’t exist
И опять убунта. Что за чудо система. Не даёт скучать. Сиди чини её нескончаемые баги. Впрочем ничего нового.
И всё начинает работать. До следующего адового бага. Продакшен реди итиху мать.
/usr/sbin/mysqld: Error on realpath() on ‘/var/lib/mysql-files’ (Error 2)
Баг после апгрейда встретился только в Ubuntu
ЕМНИП нужно просто создать каталог /var/lib/mysql-files
‘ERROR 1214 (HY000) at line 784: The used table type doesn’t support FULLTEXT indexes ‘
FULLTEXT INDEX раньше работал только с MyISAM. С версии 5.6 доступен в InnoDB.
Так что либо апгрейд либо ALTER TABLE `yourtable` ENGINE = MyISAM;
Got an error from unknown thread, /builddir/build/BUILD /storage/myisam/mi_write.c:226
Также в логах может быть что-то вроде Incorrect key file for table ‘xyz.MYI’; try to repair it
Казалось бы следует сделать mysqlrepair –auto-repair . Но обычно это не помогает.
Скорее всего нет инодов или кончилось место или недоступен tmpdir в mysql.
Проверяем df -i и df -h . Также проверяем значение tmpdir в my.cnf
mysqldump: Got error: (Errcode: 24) when using LOCK TABLES
Узнал о крутой утилите perror. По коду ошибки покажет, что не так.
Ну и по ошибке выше — попробуйте добавить опцию —single-transaction к mysqldump
Error Number: 1364
Через tcpdump выловил ошибку в php-fpm
Виной всему старый код и новый (5.7) MySQL.
Быстрый фикс — выключить так называемый strict mode
Для этого нужно добавить в my.cnf
Можно также вынести в отдельный файл /etc/mysql/conf.d/disable_strict_mode.cnf
Проверить sql_mode
#1030 — Got error -1 from storage engine
При попытке выполнить SQL запрос в phpmyadmin получаем ошибку #1030 — Got error -1 from storage engine
Вероятно включен innodb_force_recovery в файле my.cnf .
Проверяем логи. Если есть нечто подобное
то значит так оно и есть. Выключаем innodb_force_recovery и всё снова работает.
error: ‘Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES)’
Смотрим пароль пользователя debian-sys-maint в файле /etc/mysql/debian.cnf
Выполняем 2 SQL запроса, чтобы вернуть гражданину debian-sys-maint его привилегии
Перезапускаем MySQL сервер
open-files-limit в MariaDB
Systemd самостоятельно контролирует, сколько файлов служба (в нашем случае mariadb-server) может открыть, независимо от того, что вы настроили в /etc/my.cnf или в /etc/security/limits.conf .
И вносим следующие правки
Данные новшества однако документированы. Так что надо просто внимательнее читать release notes и changelog.
Unable to lock ./ibdata1, error: 11
Решение в сети, которое якобы некоторым помогает
увы не помогает.
Бытует мнение, что виной всему Apparmor т.к. нигде кроме Ubuntu ошибка эта не встречалась
Можно попробовать добавить в /etc/apparmor.d/usr.sbin.mysqld
надо проверить
unknown option ‘—skip-locking’
Опцию –skip-locking убрали в MySQL 5.5.
Решение: заменить skip-locking на skip-external-locking