ฉันจะหยุดข้อผิดพลาดการล็อก LOCK TABLES โดยอัตโนมัติได้อย่างไร


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) สามารถแก้ไขได้โดยหยุด automysqlbackup จากการทุ่มตลาด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 ,\ `

ขอบคุณJérôme Drouet

อีกทางหนึ่งถ้าคุณใช้แพคเกจ automysqlbackup ดั้งเดิมจาก sourceforge และไม่ใช่ apt-package คุณสามารถเพิ่มฐานข้อมูล 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' )

คำตอบของคุณใช้ได้ผล ไปข้างหน้าและเลือกคำตอบของคุณเป็นคำตอบที่ถูกต้อง
Stefan Lasiewski

นี่คือการแก้ไขใน OS X (ผ่าน Homebrew) เช่นกัน
Michael Thompson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.