Tôi có một kịch bản php mà phân tích các file XML và tạo ra một tập tin SQL lớn mà trông giống như sau:Làm thế nào để nhập khẩu file LỚN sql vào bảng mysql
INSERT IGNORE INTO table(field1,field2,field3...)
VALUES ("value1","value2",int1...),
("value1","value2",int1)...etc
Tệp này thêm lên là hơn 20GB (I đã thử nghiệm trên một tệp 2.5GB nhưng nó cũng không thành công).
Tôi đã thử lệnh như: root
mysql -u -p tên_bảng < /var/www/bigfile.sql
này làm việc trên các tập tin nhỏ hơn, nói khoảng 50MB. nhưng nó không hoạt động với một tệp lớn hơn.
tôi đã cố gắng:
mysql> source /var/www/bigfile.sql
Tôi cũng đã cố gắng mysqlimport nhưng điều đó sẽ không xử lý đúng cách, ngay cả tập tin của tôi.
tôi tiếp tục nhận được một lỗi mà nói
ERROR 2006 (HY000): MySQL server has gone away
xảy ra xấp xỉ. 30 giây sau khi tôi bắt đầu thực hiện.
Tôi đặt allow_max_packet thành 4GB nhưng khi xác minh nó bằng SHOW VARIABLES, nó chỉ hiển thị 1GB.
Có cách nào để thực hiện việc này mà không lãng phí thêm 10 giờ nữa không?
tại sao tôi không nghĩ về điều đó ... – nick
chỉ cần nhập 2,5 GB trong khoảng 5 phút. cám ơn vì sự gợi ý! – nick
Ngoài ra hãy xem cài đặt 'max_allowed_packet = 16M' trong my.cnf - đặt nó thành thứ gì đó rất lớn như 16M sẽ cho phép chèn lớn hơn –