Zakładając, że nie można dalej zwiększyć rozmiaru pamięci, istnieje kilka opcji.
Jeśli nie znasz linii poleceń i naprawdę chcesz pozostać przy imporcie w stylu GUI, możesz użyć BigDump ( http://www.ozerov.de/bigdump/ ). Użyłem go raz, ale minęło trochę czasu. Z tego, co pamiętam, pobierzesz plik o nazwie bigdump.php (z kilkoma instrukcjami) i umieścisz go na swoim serwerze internetowym w katalogu z plikiem zrzutu MySQL DB, który jest zbyt duży, aby go zaimportować przez PHPMYADMIN. Następnie przejdź do niego za pomocą przeglądarki - coś w rodzaju http://twoja-strona.com/bigdump.php .
Jeśli znasz linię poleceń i używasz systemu Linux, możesz użyć takiego kodu:
mysql -u NAZWA UŻYTKOWNIKA -p DATABASENAME <NAZWA_PLIKU.sql
Baza danych i użytkownik (z uprawnieniami do bazy danych) muszą jednak istnieć przed uruchomieniem tej komendy. Uwaga: Skopiowałem powyższe polecenie z innego źródła. Zawsze wykonuję zrzuty i przywracam w następujący sposób: DUMP: mysqldump -u DB_USER -h DB_HOST -pDB_PASSWORD DB_NAME | gzip -9 > DB_NAME.sql.gz
RESTORE:gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME
- Wreszcie, co najboleśniejsze, możesz zrzucić pojedyncze tabele lub grupy tabel na wystarczająco małe zrzuty. Następnie przywracaj te pojedyncze zrzuty pojedynczo za pomocą PHPMYADMIN.
Instrukcje FTP i PRZYWRACANIA:
Pobierz FileZilla tutaj: http://filezilla-project.org/download.php?type=client
Zazwyczaj możesz przesłać FTP na swój serwer (zwłaszcza host współdzielony), używając tego samego loginu i hasła, jak w przypadku SSH (logowanie z wiersza poleceń). Tylko upewnij się, że poprawnie skonfigurowałeś połączenie z serwerem w FileZilla.
Po podłączeniu domyślną ścieżką będzie prawdopodobnie folder $ HOME (na komputerach nix). Jeśli nie planujesz robić dużo FTP, po prostu zrzuć tam, co chcesz. Zawsze możesz przenieść go z wiersza poleceń.
Jeśli zrzucisz FTP MySQL Dump do folderu $ HOME, wówczas polecenie PRZYWRACANIA dla bazy danych o nazwie mydb i pliku zrzutu db o nazwie mydb.sql.gz (w folderze $ HOME) będzie:
gunzip < $HOME/mydb.sql.gz | mysql -u DB_USER -pDB_PASSWORD mydb
gdzie oczywiście trzeba zmienić DB_USER i DB_PASSWORD na użytkownika i hasło ustawione dla DB.
Zapamiętaj:
- Baza danych musi już istnieć (ale być pusta) przed wykonaniem polecenia PRZYWRACANIA
- DB_USER i DB_PASSWORD muszą być skonfigurowane dla DB przed poleceniem RESTORE (możesz to zrobić z PHPMYADMIN - zakładka Uprawnienia)
- Po skonfigurowaniu DB_USER z PHPMYADMIN domyślnie zezwala się tylko DB_USER na dostęp do DB z localhost (serwer, na którym DB jest hostowany). Zakładam, że jest to w porządku dla twojej dotacji na sytuację. Gdy przejdziesz do bardziej zaawansowanych DUMP-ów i PRZYWRACANIA, możesz chcieć to zrobić całkowicie z innej maszyny, co nie jest trudne, ale wymaga podania kilku dodatkowych informacji i DB_USER z odpowiednimi uprawnieniami.
FTP DB i PRZYWRÓĆ go ... Krok po kroku
- Znajdź skompresowany plik zrzutu MySQL na pulpicie (przykład: C: \ Web \ DB \ Dumps \ mydb.sql.zip)
- Pobierz i zainstaluj FileZilla
- W FileZilla przejdź do File-> Site Manager i kliknij przycisk Nowa strona (lewa dolna ćwiartka GUI). Ustaw hosta na domenę (Przykład: dest.com), która znajduje się na serwerze DESTINATION. Ustaw protokół na FTP lub SFTP (to zależy od twojego hostingu, zapytaj ich). Ustaw użytkownika i hasło (przykład: użytkownik = przyznanie, hasło = hasło przyznania) - jeśli protokołem FTP jest SFTP, powinien działać dowolny zestaw prawidłowych danych logowania SSH.
- (W FileZilla) Kliknij Połącz (najbardziej dolny lewy przycisk)
- (W FileZilla) Po połączeniu ze zdalnym serwerem (powinien to być serwer DESTINATION), skorzystaj z lewej strony FileZilla, aby przejść do katalogu, w którym znajduje się plik zrzutu znajdujący się w kroku 1. (Ścieżka do komputera lokalnego znajduje się po lewej stronie, mniej więcej w połowie drogi i jest oznaczona jako Witryna lokalna:. W naszym przykładzie pole tekstowe obok Witryna lokalna brzmiałoby C: \ Web \ DB \ Dumps.)
- (W FileZilla) Zlokalizuj etykietę witryny zdalnej: bezpośrednio po prawej stronie witryny lokalnej :.
- (W FileZilla) Nie ma technicznego powodu, dla którego nie można umieścić DB DUMP w folderze, w którym otwiera się FileZilla. Prawdopodobnie domyślnie będzie to katalog $ HOME. Jeśli nie masz żadnego powodu, aby umieścić zrzut DB w określonym katalogu - na przykład do własnych celów organizacyjnych - pozostaw ścieżkę w witrynie zdalnej w spokoju. Zapisz tę ścieżkę (Linux Przykład: / usr / grant).
- (W FileZilla) Znajdź plik na komputerze lokalnym w lewej połowie FileZilla tuż pod drzewem pokazanym pod lokalną witryną: etykieta znaleziona w kroku 5. Kliknij dwukrotnie ten plik, a FileZilla prześle go na FTP do twojej zdalnej strony.
- W PHPMYADMIN na serwerze DESTINATION utwórz nową bazę danych (wpisz mydb w polu tekstowym Utwórz nową bazę danych i kliknij przycisk Utwórz).
- (W PHPMYADMIN) Wybierz mydb z menu po lewej stronie.
- (W PHPMYADMIN) Kliknij kartę Uprawnienia (w prawym górnym rogu). Na tej stronie kliknij Dodaj nowego użytkownika.
- (W PHPMYADMIN-> Uprawnienia-> Dodaj nowego użytkownika) Podaj nazwę użytkownika (Przykład: mydb_grant) i hasło (Przykład: mydb_password). Z rozwijanego menu Host wybierz Lokalny. Upewnij się, że przycisk opcji „Przyznaj wszystkie uprawnienia do bazy danych” jest zaznaczony. Następnie kliknij Idź (w prawym dolnym rogu ekranu).
- SSH do serwera DESTINATION.
- (W terminalu SSH) Przejdź do katalogu zapisanego w kroku 7. Używając polecenia typu -
cd $HOME
lub cd /usr/grant
. (Na maszynach z systemem Linux $ HOME jest zmienną środowiskową, która będzie równa coś / usr / grant).
- (W terminalu SSH) Wykonaj następującą komendę:
gunzip < /usr/grant/mydb.sql.gz | mysql -u mydb_grant -pmydb_password mydb
(nie ma spacji między -p a hasłem, ponieważ tak właśnie musi być, to nie jest literówka).
Po wykonaniu tego ostatniego polecenia przywrócono DB. Nie polecam używania nazwy użytkownika DB i hasła, które podałem, po prostu zastąp je bezpieczniejszymi własnymi wyborami.
DUMP i RESTORE na różnych serwerach bez FTP
Jeśli chcesz pominąć FTP i nie masz nic przeciwko ponownemu wykonaniu DUMP, możesz to zrobić w ten sposób:
- Zaloguj się do serwera DESTINATION (gdzie chcesz, aby rezydowała DB - nazwiemy to destination.com)
- Utwórz DB, użytkownika i odpowiednie uprawnienia, jak wspomniano powyżej, na serwerze DESTINATION
- Upewnij się, że uprawnienia na serwerze SOURCE pozwalają SOURCE_DB_USER na zdalny dostęp do bazy danych - albo zezwalaj na dostęp z dest.com lub z% (% - wszyscy i wszędzie, jeśli mają odpowiednią nazwę użytkownika i hasło)
- Na serwerze DESTINATION uruchom:
mysqldump -u SOURCE_DB_USER -h source.com -pSOURCE_DB_PASSWORD mydb| gzip -9 > $HOME/mydb.sql.gz
gdzie source.com jest serwerem SOURCE (gdzie obecnie rezyduje DB)
- Następnie (na serwerze DESTINATION) uruchom:
gunzip < $HOME/mydb.sql.gz | mysql -u DEST_DB_USER -pDEST_DB_PASSWORD mydb
To powinno być wszystko, co musisz zrobić, aby przenieść bazę danych z jednego serwera na inny. Zastrzeżeniem jest to, że robiłem to tylko na moim dedykowanym Ubuntu (ze standardowym LAMP) i serwerach VPS Dreamhost (które, jak sądzę, uruchamiają CentOS, ale mogę się mylić).