Lỗi mysqldump 2013


18

Tôi đã cài đặt cơ sở dữ liệu, tôi muốn sao lưu trong mysql. Vấn đề mysqldumpkhông thành công khi xuất bảng 'maia_mail'

# mysqldump -u root -p maia > maia.sql
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `maia_mail` at row: 15

Nó chạy trong ít hơn 30 giây và bị lỗi như trên.

Tổng kích thước của DB là 1,3 GB với bảng maia_mail là 1,0 GB

Trong my.cnftôi có những bộ này:

[mysqld]
max_allowed_packet      = 1300M
[mysqldump]
max_allowed_packet      = 1300M

Xin tư vấn hay cho một số hướng dẫn về cách đổ cơ sở dữ liệu?


Dung lượng trống 170GB. Nó cũng giống nhau cho dù tôi kết xuất với máy db là bật hay từ xa
garfink

bản sao của email để dữ liệu varchar chủ yếu
garfink

1300M là một thay đổi gần đây, vấn đề tồn tại khi nó được đặt thành 16M mặc định. Máy chủ cũng đã được khởi động lại sau khi thay đổi thành 1300M.
garfink

Tôi đặt lại về mặc định 16M. kết quả đổ lỗi trong cùng một lỗi 2013 trên hàng 15
garfink

Câu trả lời:


13

Tôi có thể dễ dàng đề xuất thay đổi cài đặt InnoDB có thể là một tay nhỏ chỉ để làm cho một mysqldump hoạt động. Bạn có thể không thích những gì tôi đề xuất, nhưng tôi tin đó là lựa chọn tốt nhất (duy nhất) của bạn. Nó đi từ đây:

SUGGESTION # 1: Vô hiệu hóa các phần chèn mở rộng

Cài đặt mặc định cho mysqldump sẽ bao gồm việc kết hợp hàng trăm hoặc hàng nghìn hàng trong một INSERT duy nhất. Điều này được biết đến như là một INSERT mở rộng. Nó đang gây ra một số lỗi vượt quá chỉ max_allowed_packet .

Tôi đã trả lời một bài đăng trở lại Sep 01, 2011( máy chủ MySQL đã biến mất việc cản trở việc nhập các bãi rác lớn ) nơi tôi đã thảo luận về việc làm tương tự để nhập một mysqldump lớn. Tôi tin rằng việc vô hiệu hóa INSERT mở rộng cũng sẽ giúp tạo ra một mysqldump rắc rối.

mysqldump -u root --skip-extended-insert -p maia > maia.sql

Tin xấu: Điều này không tạo ra lệnh INSERT cho mỗi hàng. Điều này chắc chắn sẽ tăng thời gian cần thiết để thực hiện mysqldump. Do đó, nó cũng sẽ tăng theo thời gian để tải lại (có thể theo hệ số 10 - 100.

Tôi đã thảo luận skip-extended-inserttrước đây

SUGGESTION # 2: Kết xuất dữ liệu nhị phân dưới dạng hex (TÙY CHỌN)

Để làm cho dữ liệu nhị phân của mysqldump trở nên dễ di chuyển hơn, hãy kết xuất dữ liệu đó theo hệ thập lục phân

mysqldump -u root --skip-extended-insert --hex-blob -p maia > maia.sql

Tin xấu: Nó sẽ làm bùng nổ mysqldump thêm một chút

HÃY THỬ MỘT LẦN !!!

Lưu ý bên: Kích thước tối đa của max_allowed_packet là 1G


5

Tôi cũng đã gặp lỗi tương tự trong khi cố gắng kết xuất cơ sở dữ liệu 12 GB. Tôi đã làm những thay đổi sau đây để làm cho nó hoạt động.

  1. được định cấu hình max_allowed_packet thành 1024M
  2. cấu hình net_read_timeout thành 7200
  3. đã định cấu hình net_write_timeout thành 7200

Lưu ý: Tôi biết giá trị hết thời gian quá cao (7200 giây tức là 20 giờ). Nhưng tôi đã cố tình chỉ để loại trừ bất kỳ cơ hội nào. Tôi đang trong quá trình tìm kiếm một giá trị thời gian chờ tối ưu.


2
Đối với những người dùng khác: đây là cài đặt trên máy chủ, không phải trong tệp cấu hình mysqldump. Ngoài ra, 7200 giây là 2 giờ, không phải 20.
Đánh dấu

đặt net_read_timeout toàn cầu = 120; đặt toàn cầu net_write_timeout = 900; làm việc cho tôi
kasi

2

Chỉ cần bao gồm các mục sau trên tệp cấu hình my.ini (Windows) hoặc my.cnf (Linux) của bạn.

[mysqld]
max_allowed_packet=1024M 

[mysqldump]
max_allowed_packet=1024M 
net_read_timeout=3600 
net_write_timeout=3600

2
Các phần nên được cách khác xung quanh.
Ngừng làm hại Monica

1

Hãy chắc chắn rằng bạn có đủ bộ nhớ để kết xuất. Vui lòng tiếp tục kiểm tra bộ nhớ trong khi lấy kết xuất, ví dụ: sử dụng lệnh như thế này:

free -mt

Nếu bạn hết bộ nhớ trong khi lấy, bạn sẽ nhận được

mysqldump: Lỗi 2013: Mất kết nối


1

Tôi đã tìm thấy:

--max-allowed-packet=1G --net-buffer-length=32704

... làm cho nó hoạt động ở nơi mà trước đây nó không (đáng tin cậy), mặc dù thay đổi thời gian chờ đọc / ghi ròng, các thủ tục TCP, v.v.

Các max_allowed_packetcài đặt một mình không làm cho nó hoạt động, vì vậy có thể không cần thiết nếu net_buffer_lengthđược sử dụng. - ralph-bolton

Sửa đổi max-allowed-packetnet-buffer-lengthcó vẻ tốt hơn nhiều so với việc vô hiệu hóa các phần chèn mở rộng. - Kristofer

Xem thêm Điều gì max_allowed_packet đủ lớn và tại sao tôi cần thay đổi nó?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.