ไม่สามารถสำรองตาราง mysql ด้วย mysqldump คำสั่ง SELECT, LOCK TABL ถูกปฏิเสธสำหรับ 'cond_instances' [ปิด]


15

ฉันมีปัญหาในการทำงานmysqldumpในฐานะผู้ใช้รูท mysql เมื่อฉันพยายามสำรองข้อมูลmysqlตารางฉันได้รับข้อผิดพลาดนี้:

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

ใครเคยเห็นว่ามาก่อนหรือไม่ ฉันเคยเห็นการอ้างอิงถึง mysql ของฉันและ mysqldump ของฉันเป็นรุ่นที่แตกต่างกัน แต่เมื่อฉันเรียกใช้ซึ่งพวกเขาอยู่ในไดเรกทอรีเดียวกัน

ฉันใช้ MySQL 5.5.8


1
คุณยังคงได้รับข้อผิดพลาดถ้าคุณทำงานmysqldumpกับ--skip-add-locks?
Martin

1
อ่าซ่อมได้แล้ว ฉันเพิ่งรู้ว่ามันไม่ใช่ตาราง mysql มันเป็นตาราง performance_schema ซึ่งฉันเห็นในเอกสารบางอย่างต้องใช้ --skip-add-lock
bryan kennedy

ฉันมีปัญหาเดียวกัน ... ฉันใช้automysqlbackupฉันเพิ่งเพิ่มพารามิเตอร์--single-transactionและทุกอย่างทำงานได้อย่างถูกต้อง
isccarrasco

บางทีปัญหาอาจเป็นตัวพิมพ์ผิดหรือเปล่า? "LOCK TABL" อาจเป็น "LOCK
Table

คำตอบ:



20

--skip-add-lock ไม่ทำงาน:

# mysqldump -u root -p`cat mysqlRoot.txt` --databases performance_schema --routines --quote-names --skip-add-locks > mysql_performance_schema

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

คุณต้องการ --skip-lock-tables แทน


1
สิ่งนี้แก้ไขได้สำหรับฉัน ฉันแก้ไข automysqlbackup ที่ปฏิบัติการได้ (ในการติดตั้งของฉันใน / usr / local / bin) เพื่อแก้ไขการประกาศ opt และ opt_fullschema เพื่อเพิ่มใน --skip-lock-tables config ใหม่คือ opt = ('--quote-names' '--opt' '--skip-lock-tables') และ opt_fullschema = ('--all-database' '--routines' '--no- data '' --skip-lock-tables ')
Ted Pennings

12

(ฉันรู้ว่านี่มา 8 เดือนแล้ว)

นี่ไม่ใช่ปัญหาของการล็อคและการแก้ปัญหาที่นำเสนอเพียงแค่ข้ามปัญหาจริง:

5.5 mysqldumpแอพลิเคชันไม่ควรส่งออกperformance_schemaฐานข้อมูลในสถานที่แรก

จากประสบการณ์ที่ผ่านมาฉันขอแนะนำmysqldumpโปรแกรมที่คุณใช้เป็นเวอร์ชัน5.1 จะบอกได้อย่างไร ปัญหา:

mysqldump --version

5.1ลูกค้าไม่ทราบถึงการดำรงอยู่ของ "อนาคต" ของperformance_schemaและดังนั้นจึงพยายามที่จะถ่ายโอนข้อมูล มันไม่รู้ว่าไม่ควร

ลองและค้นหารุ่น5.5และใช้สำหรับการถ่ายโอนข้อมูลโดยไม่ต้องเพิ่มการล็อกที่แนะนำและสิ่งนี้จะทำงานได้ดี


2
การใช้เวอร์ชั่น 5.5 และปัญหายังคงมีอยู่
artfulrobot

1
mysqldump Ver 10.13 Distrib 5.5.32, สำหรับ debian-linux-gnu (x86_64) มีปัญหาเดียวกัน ...
Piku

2
หากคุณใช้ automysqlbackup เหมือนผู้ใช้บางคนด้านบนคุณต้องเพิ่ม 'performance_schema' ในพารามิเตอร์ CONFIG_db_exclude ใน automysqlbackup.conf ของคุณ
Matija Nalis

ฉันเห็นด้วยกับ Shlomi ด้านบนว่าการข้ามการล็อกข้ามปัญหาจริงเท่านั้น สิ่งนี้ช่วยฉันได้: askubuntu.com/questions/134670/…
เวิร์กโฟลว์

0

ตามที่กล่าวไว้โดย Shlomi Noach, performance_schema ไม่ควรทำการสำรองข้อมูล

วิธีง่าย ๆ ในการแก้ไขปัญหานี้คือการตั้งค่าต่อไปนี้ในไฟล์ปรับแต่งของคุณ:

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