bagaimana cara menghentikan automysqlbackup melemparkan kesalahan LOCK TABLES?

21

Cara menghentikan skrip cron.daily automysqlbackup - yang telah diinstal dan dikonfigurasikan apt-get install automysqlbackup- melempar kesalahan berikut:

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

Ini pertama kali terjadi (bagi saya) setelah ditingkatkan ke MySQL 5.5 sebagai akibat dari peningkatan ke Ubuntu 12.04 LTS.

iainH
sumber

Jawaban:

32

Bug ini (yang telah diperbaiki automysqlbackup 2.6+debian.2-1) dapat diatasi dengan menghentikan automysqlbackup dari dumping performance_schemadan information_schemadatabase. Ini dapat dilakukan dengan mengedit /etc/default/automysqlbackupsebagai berikut:

Tambahkan pipa tambahan ke grep langkah untuk menghapus performance_schemadan information_schemadari daftar DBNAMES.

Jadi, di baris yang dimulai DBNAMES=, dan setelah | grep -v ^mysql$masukkan

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

sebelum | tr \\\r\\\n ,\sehingga garis akhir akan terlihat seperti

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

Terima kasih untuk Jérôme Drouet.

Atau, jika Anda menggunakan paket automysqlbackup asli dari sourceforge dan bukan paket apt, Anda bisa menambahkan database performance_schema ke database yang dikecualikan Anda dengan memodifikasi baris yang berisi CONFIG_db_exclude di /etc/automysqlbackup/myserver.conf:

# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )
iainH
sumber
Jawaban Anda berhasil. Silakan dan pilih jawaban Anda sebagai yang benar.
Stefan Lasiewski
Ini adalah perbaikan pada OS X (via Homebrew) juga.
Michael Thompson