Jak zatrzymać automysqlbackup rzucanie błąd LOCK TABLES?

21

Jak zatrzymać skrypt cron.daily automysqlbackup - zainstalowany i skonfigurowany od apt-get install automysqlbackup- zgłaszający następujący błąd:

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

To pierwszy raz (dla mnie) po aktualizacji do MySQL 5.5 w wyniku aktualizacji do Ubuntu 12.04 LTS.

iainH
źródło

Odpowiedzi:

32

Ten błąd (który został naprawiony automysqlbackup 2.6+debian.2-1) można obejść, powstrzymując automysqlbackup przed zrzucaniem baz danych performance_schemai information_schema. Można to zrobić, edytując /etc/default/automysqlbackupw następujący sposób:

Dodaj dodatkową rurkę do kroku grep, aby usunąć performance_schemai information_schemaz listy DBNAMES.

Tak więc w linii, która się zaczyna DBNAMES=i po | grep -v ^mysql$wstawieniu

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

przed | tr \\\r\\\n ,\takim, jak powinna wyglądać ostatnia linia

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 ,\ `

Dzięki Jérôme Drouet.

Alternatywnie, jeśli korzystasz z oryginalnego pakietu automysqlbackup z sourceforge, a nie pakietu apt, możesz dodać bazę danych performance_schema do swoich wykluczonych baz danych, modyfikując wiersz zawierający CONFIG_db_exclude w pliku /etc/automysqlbackup/myserver.conf:

# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )
iainH
źródło
Twoja odpowiedź działa. Śmiało, wybierz poprawną odpowiedź.
Stefan Lasiewski
Jest to również poprawka w OS X (przez Homebrew).
Michael Thompson,