automysqlbackup LOCK TABLES hatasını atmayı nasıl durdurabilirim?


21

Automysqlbackup's cron.daily betiği - yüklenip yapılandırıldığı gibi apt-get install automysqlbackup- aşağıdaki hatayı alamaz :

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

Bu ilk (benim için) Ubuntu 12.04 LTS'ye yükseltilmesinin bir sonucu olarak MySQL 5.5'e yükselttikten sonra gerçekleşti.

Yanıtlar:


32

Bu hata (düzeltildi automysqlbackup 2.6+debian.2-1), automysqlbackup performance_schemave information_schemaveritabanlarını boşaltmasını engelleyerek giderilebilir . Bu, /etc/default/automysqlbackupaşağıdaki gibi düzenleyerek yapılabilir :

Kaldırmak performance_schemave information_schemaDBNAMES listesinden grep adımına ek bir boru ekleyin.

Yani, başlayan satırda DBNAMES=ve | grep -v ^mysql$ekleme sonrası

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

Bundan önce | tr \\\r\\\n ,\son satır gibi görünmesi gerekir

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

Jérôme Drouet'e teşekkürler.

Alternatif olarak, özgün automysqlbackup paketini aptfor paketinden değil sourceforge'dan kullanırsanız, /etc/automysqlbackup/myserver.conf dosyanızda CONFIG_db_exclude içeren satırı değiştirerek, çıkarılan veritabanlarınıza performance_schema veritabanını ekleyebilirsiniz:

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

Cevabınız işe yarıyor. Devam edin ve cevabınızı doğru cevap olarak seçin.
Stefan Lasiewski

Bu, OS X'teki (Homebrew üzerinden) yapılan düzeltmedir.
Michael Thompson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.