MySQL: ละเว้นข้อผิดพลาดเมื่อนำเข้า?


118

ฉันกำลังนำเข้าฐานข้อมูลขนาดใหญ่พอสมควร .sqlไฟล์ได้เกือบ 1,000,000 เส้นในนั้น ปัญหาคือฉันได้รับข้อผิดพลาดทางไวยากรณ์เมื่อพยายามนำเข้าฐานข้อมูล มันบอกว่า:

ข้อผิดพลาด 1064 (42000) ที่บรรทัด 8428420: คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณสำหรับไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้ '
ข้อผิดพลาดร้ายแรง : เกินเวลาดำเนินการสูงสุด 600 วินาทีใน

โดยปกติฉันจะเปิดไฟล์. sql และแก้ไขข้อผิดพลาด แต่คอมพิวเตอร์ของฉันไม่สามารถเปิดไฟล์นี้ได้

มีวิธีใดบ้างที่ฉันสามารถละเว้นข้อผิดพลาดเมื่อนำเข้าฐานข้อมูล MySQL


1
ใช้ตัวแก้ไขที่ไม่ได้เปิดไฟล์ทั้งหมดลงในหน่วยความจำ (นี่คือปัญหาที่คุณต้องพยายามแก้ไข) และใช้การแสดงผลตามการค้นหาสำหรับการแก้ไขบน Windows ฉันขอแนะนำ Notepad ++ สำหรับงานนี้
Barkermn01

คำตอบ:


286

ใช้แฟล็ก--force( -f) ในการนำเข้า mysql ของคุณ แทนที่จะหยุดคำสั่งที่ละเมิด MySQL จะดำเนินการต่อและเพียงแค่บันทึกข้อผิดพลาดลงในคอนโซล

ตัวอย่างเช่น:

mysql -u userName -p -f -D dbName < script.sql

4
หากใครสงสัยเกี่ยวกับ-Dอิน-D dbNameก็เหมือนกับการระบุ--database=dbName
Aamnah

ฉันได้ทดสอบทั้งสองอย่าง-D dbNameและ--database=dbNameใช้งานได้จริง @Aamnah
tcadidot0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.