mysql.proc หยุดทำงานไม่สามารถทำ mysqldump ได้หรือไม่?


9

เนื่องจากปัญหาบางอย่างกับ InnoDB ฉันจะถ่ายโอนฐานข้อมูลทั้งหมดไปยังเซิร์ฟเวอร์ใหม่:

mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server          

กระบวนการดัมพ์หยุดทำงานโดยมีข้อผิดพลาด:

59.9kB assword: 59.9kB 
ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should 
    be repaired
 228MB 
mysqldump: Got errno 32 on write

ฉันใช้คำสั่งต่อไปนี้เพื่อซ่อมแซมตารางทั้งหมดในฐานข้อมูลทั้งหมด:

mysqlcheck --auto-repair --all-databases

เมื่อฉันตรวจสอบmysql.procสถานะฉันจะได้รับ:

mysql> check table mysql.proc;
+------------+-------+----------+----------+
| Table      | Op    | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status   | OK       |
+------------+-------+----------+----------+
1 row in set (0.02 sec)

อย่างไรก็ตามฉันยังคงได้รับข้อผิดพลาดเดียวกันเมื่อเรียกใช้mysqldumpคำสั่งอีกครั้ง

ฉันมีขั้นตอนการจัดเก็บประมาณ 2,000 รายการ นั่นเป็นสาเหตุของข้อผิดพลาดหรือไม่?


2
คุณซ่อมปลายทางด้วยหรือไม่
Philᵀᴹ

คือ59.9kB assword: 59.9kBอะไร นั่นเป็นส่วนหนึ่งของข้อความแสดงข้อผิดพลาดหรือไม่?
Max Vernon

@quanta ทำ ...
Philᵀᴹ

@MaxVernon: เป็นส่วนของ data piping ผ่านpvก่อนป้อนรหัสผ่านบนโฮสต์ปลายทาง
quanta

คำตอบ:


3

ข้อผิดพลาดนี้:

ข้อผิดพลาด 145 (HY000) ที่บรรทัด 2970: ตาราง './mysql/proc' ถูกทำเครื่องหมายว่าขัดข้องและควรได้รับการซ่อมแซม 228MB mysqldump: มี errno 32 เมื่อเขียน

... แสดงว่าปัญหากำลังเขียนไม่อ่านดังนั้นทำการซ่อมแซมในฐานข้อมูลปลายทาง


8

ฉันเพิ่งมีปัญหาเดียวกันนี้ได้รับการแก้ไขโดยการออกคำสั่งสมมติว่าข้อมูล mysql dir อยู่ใน / var / lib / mysql / mysql

myisamchk -q -r / var / lib / mysql / mysql / proc

ที่มา: http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html


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