2013-01-04 15 views
12

Tôi đã được cấp một tệp sao lưu mysql lớn VERY lớn. Đó là ~ 630 MB ... Tôi đoán ai đó nghĩ rằng đó là một ý tưởng tốt để lưu trữ hình ảnh trong một cơ sở dữ liệu ... Dù sao, tôi cần phải khôi phục lại dữ liệu bằng cách nào đó trong MySQL. Nhưng tôi không thể làm cho nó được thực hiện vì các tập tin.Nhập tệp .sql lớn vào MySQL

Lúc đầu, tôi đã cố gắng làm điều đó với MySQL Workbench. Nhưng khi tôi cố gắng nhập tệp, nó cung cấp cho tôi lỗi sau:

Could not allocate xxxxx bytes to read file C:\backup.sql

Sau đó, tôi đã cố gắng làm điều đó thông qua dấu nhắc lệnh. Tôi bước vào sau trong cmd:

C:\> mysql -u user -pPassword database < C:\backups.sql 

Đó cuối cùng mang lại cho tôi những cảnh báo sau đây:

ERROR 2006 (HY000) at line 68230: MySQL server has gone away

Guess đó cũng là vì filesize lớn?

Tôi không có ý tưởng nào khác về cách khôi phục dữ liệu. Điều đó vẫn có thể bằng cách nào đó?

+0

mở nó bằng cách sử dụng soạn thảo văn bản và chia tập tin trong các bộ phận. Chú ý bạn giữ một cú pháp hợp lệ. – P1nGu1n

+0

Mất bao lâu trước khi nó _game xa_? Tôi đã khôi phục tập tin sql 1.2 GB sqt bằng cách sử dụng mysql client vì vậy nó chắc chắn là có thể. –

+1

Im không phải là một chuyên gia MySQL nhưng tìm thấy bài viết này có liên quan đến thời gian ra các thiết lập trong tập tin cấu hình mà có thể là nguyên nhân của vấn đề của bạn cho kích thước của tập tin ... http://thenitai.com/2010/10/31/a-solution-to-mysql-error-2006-hy000-mysql-server-đã-biến-đi/ – bUKaneer

Trả lời

11

Tăng wait_timeout và/hoặc interactive_timeout sẽ giúp ích. Đầu tiên kiểm tra giá trị hiện tại:

C:\> mysql -hlocalhost -uroot -proot 

mysql> SHOW VARIABLES LIKE 'wait_timeout'; 

Nếu đây là rất thấp (ví dụ: 30 giây), sau đó tăng nó (ví dụ 5 phút):

mysql> SET SESSION wait_timeout = 300; 
mysql> SET SESSION interactive_timeout = 300; 

Sau đó thực thi tập tin SQL của bạn:

mysql> \. database.sql 
+2

Tôi cũng đã thay đổi 'interactive_timeout' thành một cái gì đó lớn. Nhưng điều đó với 'wait_timeout' đã không làm điều đó cho tôi. Sau đó tôi cũng đã thay đổi 'connect_timeout' từ '10' thành' 10000' và điều đó đã giúp tôi. – w00

+0

Nó phù hợp với tôi –

3

Tôi đã có một tệp kết xuất 3.5G, tôi đã cố nhập nó bằng PhpMyAdmin và MySql workbench nhưng không thành công. Vì vậy, tôi chỉ sử dụng bàn điều khiển để chạy nó

# mysql -u user_name -pYour_passwd your_db < your_dump.sql 

và nó hoạt động tuyệt vời