2013-01-04 10 views
12

Otrzymałem duży plik kopii zapasowej mysql BARDZO. Jest to ~ 630 MB ... Chyba ktoś pomyślał, że to dobry pomysł, aby przechowywać obrazy w bazie danych ... W każdym razie, muszę jakoś przywrócić dane w MySQL. Ale nie mogę tego zrobić z powodu rozmiaru pliku.Importuj duży plik .sql do MySQL

Najpierw próbowałem zrobić to za pomocą MySQL Workbench. Ale gdy próbuję zaimportować plik, pojawia się następujący błąd:

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

Następnie próbowałem zrobić to za pomocą wiersza polecenia. Wszedłem w cmd następujące:

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

że w końcu daje mi następujące ostrzeżenie:

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

domyślać, że jest także ze względu na duży rozmiar pliku?

Nie mam innych pomysłów na przywrócenie danych. Czy to nadal możliwe?

+0

otworzyć go za pomocą edytora tekstu i podzielić plik w części. Zwróć uwagę, że zachowujesz poprawną składnię. – P1nGu1n

+0

Jak długo to trwa, zanim odejdzie? Odtworzyłem plik 1,2 GB sql przy użyciu klienta mysql, więc jest to zdecydowanie możliwe. –

+1

Nie jestem ekspertem MySQL, ale znalazłem ten artykuł, który odnosi się do ustawień limitu czasu w pliku konfiguracyjnym, które mogą być przyczyną problemu z uwagi na rozmiar pliku ... http://thenitai.com/2010/10/31/a-solution-to-mysql-error-2006-hy000-mysql-server-gone-away/ – bUKaneer

Odpowiedz

11

Zwiększenie wartości wait_timeout i/lub interactive_timeout powinno pomóc. Najpierw sprawdzić aktualną wartość:

C:\> mysql -hlocalhost -uroot -proot 

mysql> SHOW VARIABLES LIKE 'wait_timeout'; 

Jeśli jest bardzo niska (np 30 sekund), a następnie zwiększać ją (np 5 minut):

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

następnie uruchomić plik SQL:

mysql> \. database.sql 
+2

Zmieniłem również "interactive_timeout" na coś dużego. Ale to z 'wait_timeout' nie wyszło mi na przeszkodzie. Później zmieniłem również "connect_timeout" z "10" na "10000" i to mi się udało. – w00

+0

To działa dla mnie –

3

Miałem plik zrzutu 3.5G, próbowałem go zaimportować za pomocą PhpMyAdmina i MySql, ale bez powodzenia. Więc po prostu wykorzystywane do konsoli, aby go uruchomić

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

i działa świetnie