як я зупиняю automysqlbackup, кидаючи помилку БЛОКОВІ ТАБЛИЦІ?


21

Як зупинити сценарій cron.daily automysqlbackup - як встановлено та налаштовано з apt-get install automysqlbackup- викидає таку помилку:

 mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 
'debian-sys-maint'@'localhost' for table 'cond_instances' when using LOCK TABLES

Це вперше сталося (для мене) після оновлення до MySQL 5.5 як наслідок оновлення до Ubuntu 12.04 LTS.

Відповіді:


32

Цю помилку (яку було виправлено automysqlbackup 2.6+debian.2-1), можна вирішити, зупинивши автоматичне завантаження з демпінгу performance_schemaта information_schemaбаз даних. Це можна зробити, відредагувавши /etc/default/automysqlbackupтак:

Додайте додаткову трубку для кроку grep для видалення performance_schemaта information_schemaзі списку DBNAMES.

Отже, у рядку, який починається DBNAMES=, і після | grep -v ^mysql$вставки

| grep -v ^performance_schema$ | grep -v ^information_schema$

перед | tr \\\r\\\n ,\таким, що повинен виглядати фінальний рядок

DBNAMES=`mysql --defaults-file=/etc/mysql/debian.cnf --execute="SHOW DATABASES" | awk '{print $1}' | grep -v ^Database$ | grep -v ^mysql$ | grep -v ^performance_schema$ | grep -v ^information_schema$ | tr \\\r\\\n ,\ `

Завдяки Йерому Друу.

Крім того, якщо ви використовуєте оригінальний пакет automysqlbackup з sourceforge, а не apt-пакет, ви можете додати базу даних performance_schema до виключених баз даних, змінивши рядок, який містить CONFIG_db_exclude у вашому /etc/automysqlbackup/myserver.conf:

# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )

Ваша відповідь працює. Вперед і виберіть свою відповідь як правильну.
Стефан Ласєвський

Це виправлення і в OS X (через Homebrew).
Майкл Томпсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.