Выдаёт ошибку: mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE ...'
При попытке сделать дамп базы данных с помощью команды mysqldump, получаем ошибку вида:
mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE ...'
далее могут самые разнообразные сообщения и коды ошибок, объясняющие первую часть, но все они как правило имеют одну причину. Причина заключается в недостаточном количестве файлов, которые может открыть сервер MySQL или MariaDB. Проверить это очень просто. Запустите командно-строчную утилиту mysql и выполните команду:
mysql> show variables like '%open_files%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 1024 | +------------------+-------+ 1 row in set (0.00 sec)
Как видите, всего 1024 файла, чего совершенно недостаточно при большом количестве таблиц и/или баз данных. Это значение нужно увеличить, но теперь встаёт интересный вопрос как же это сделать?
Первым делом, необходимо указать нужное значение в конфигурационном файле. Для MySQL это /etc/my.cnf. Для MariaDB это /etc/my.cnf.d/server.cnf. Необходимо добавить нужную директиву:
[mysqld] ... open_files_limit = 32000
Но этого ещё недостаточно! Ведь ограничение на количество одновременно открытых файлов накладывается операционной системой.
В CentOS 5 и CentOS 6 всё просто. Создаёте (если его конечно нет) файл /etc/sysconfig/mysqld и помещаете туда строчку:
ulimit -n 32000
После чего выполните команду на перезапуск MySQL:
# service mysqld restart
или
# service mariadb restart
А вот в CentOS 7 с MariaDB и в дистрибутивах, основанных на systemd нас ждёт весёлое развлечение:
- Создайте каталог /etc/systemd/system/mariadb.service.d/
- Разместите в нём файл limits.conf следующего содержимого:
[Service] LimitNOFILE=32000
- Выпоните команду для перечитывания конфигурации службы systemd:
# systemctl --system daemon-reload
- И наконец перезапустите MariaDB командой:
# systemctl restart mariadb
Вот собственно и всё. Вы можете убедиться, что всё сработало как надо выполнив в утилите mysql команду:
mysql> show variables like '%open_files%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 32000 | +------------------+-------+ 1 row in set (0.00 sec)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 1685 просмотров