Próbowałem zaimportować duży plik sql przez phpMyAdmin ... Ale nadal wyświetlał błąd
„Serwer MySql zniknął”
Co robić?
mysql
phpmyadmin
FrancisMV123
źródło
źródło
max_allowed_packet
. Trochę prymitywnie, ale jeśli to zadziała, możesz znaleźć rozsądną wartość.Odpowiedzi:
Jak stwierdzono tutaj :
Edytować:
Zauważ, że pliki opcji MySQL nie mają już swoich poleceń jako komentarzy (na przykład w php.ini). Więc należy wpisać dowolną zmianę / dostrojenia w
my.cnf
lubmy.ini
i umieścić je wmysql/data
katalogu lub na którykolwiek z pozostałych ścieżek pod właściwą grupę opcji, takich jak[client]
,[myslqd]
itd Na przykład:Następnie uruchom ponownie serwer. Aby uzyskać ich wartości, wpisz klienta mysql:
źródło
SHOW VARIABLES
zapytanie MySQL), a importowany plik miał kilka bardzo dużych rekordów. Otworzyłem plik my.ini ( działałem w systemie Windows) i ustawiłem wartość na:max_allowed_packet = 64M
zrestartowałem MySQL i ponownie uruchomiłem import.wait_timeout
liniiDla mnie to rozwiązanie nie zadziałało, więc wykonałem
w moim kliencie SQL.
Jeśli nie można tego zmienić przy działającej usłudze MYSql, należy zatrzymać usługę i zmienić zmienną w pliku „my.ini”.
Na przykład:
źródło
php.ini
załatwiło sprawę , na testowej maszynie XAMPP w systemie Windows musiałem zmodyfikować zarówno plik (jak sugeruje @GBD w odpowiedzi), jak i plik konfiguracyjny MySQL,my.ini
aby działał.SHOW variables LIKE 'max_allowed_packet'
max_allowed_packet
w jednym kliencie, a następnie zaimportowanie dużego.sql
pliku w innej sesji będzie działać dobrze.Jeśli pracujesz na XAMPP, możesz naprawić problem MySQL Server zniknął problem z następującymi zmianami.
otwórz plik my.ini Lokalizacja my.ini to (D: \ xampp \ mysql \ bin \ my.ini)
zmień następujące wartości zmiennych
źródło
Jeśli korzystasz z wartości domyślnych, masz dużo miejsca na zoptymalizowanie konfiguracji mysql.
Pierwszym krokiem, który zalecam, jest zwiększenie pakietu max_allowed_packet do 128M.
Następnie pobierz skrypt MySQL Tuning Primer i uruchom go. Zapewni rekomendacje dla kilku aspektów twojej konfiguracji dla lepszej wydajności.
Zobacz także, jak dostosować wartości limitu czasu zarówno w MySQL, jak i PHP.
Jak duży (rozmiar pliku) jest importowany plik i czy możesz go zaimportować przy użyciu klienta wiersza polecenia mysql zamiast PHPMyAdmin?
źródło
Jeśli używasz MAMPa w OS X, musisz zmienić
max_allowed_packet
wartość w szablonie MySQL.Można go znaleźć na: Plik> Edytuj szablon> MySQL my.cnf
Następnie wyszukaj
max_allowed_packet
, zmień wartość i zapisz.źródło
Rozwiązałem problem z tym krótkim plikiem /etc/mysql/my.cnf:
źródło
[mysqld]
Innym powodem może być brak pamięci. Sprawdź / var / log / messages i upewnij się, że plik my.cnf nie jest skonfigurowany tak, aby mysqld przydzielił więcej pamięci niż ma to urządzenie.
Twój proces mysqld może zostać zabity przez jądro, a następnie ponownie uruchomiony przez proces „safe_mysqld”, nawet nie zdając sobie z tego sprawy.
Skorzystaj z góry i obserwuj przydzielanie pamięci podczas pracy, aby zobaczyć, jaki jest twój zapas.
wykonaj kopię zapasową pliku my.cnf przed jego zmianą.
źródło
Miałem ten błąd i inne powiązane, gdy importowałem przy 16 GB pliku SQL. Dla mnie, edytuj plik my.ini i ustaw następujące (w oparciu o kilka różnych postów) w sekcji [mysqld]:
Jeśli korzystasz z systemu Windows, przejdź do panelu sterowania, usług i spójrz na szczegóły MySQL, a zobaczysz, gdzie znajduje się my.ini. Następnie po edycji i zapisaniu pliku my.ini uruchom ponownie usługę mysql (lub uruchom ponownie komputer).
Jeśli używasz HeidiSQL, możesz również ustawić niektóre lub wszystkie z nich za pomocą tego.
źródło
Zaktualizowałem „max_allowed_packet” do 1024M, ale nadal nie działało. Okazuje się, że mój skrypt wdrażania działał:
Pamiętaj, aby wyraźnie podać większą liczbę z wiersza poleceń, jeśli przekazujesz ją w ten sposób.
źródło
Jeśli Twoje dane obejmują
BLOB
dane:Zauważ, że import danych z wiersza poleceń wydaje się dławić danymi BLOB, co powoduje błąd „serwer MySQL zniknął”.
Aby tego uniknąć, utwórz ponownie mysqldump, ale z
--hex-blob
flagą:http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_hex-blob
który zapisuje plik danych z wartościami szesnastkowymi zamiast binarnymi wśród innych tekstów.
PhpMyAdmin ma również opcję „Zrzuć kolumny binarne w notacji szesnastkowej (na przykład„ abc ”staje się 0x616263)”, co działa dobrze.
Zauważ, że istnieje od dawna błąd (od grudnia 2015 r.), Co oznacza, że
GEOM
kolumny nie są konwertowane: wykonać kopię zapasową tabeli za pomocą kolumny GEOMETRY za pomocą mysqldump? więc użycie programu takiego jak PhpMyAdmin wydaje się być jedynym obejściem (wspomniana powyżej opcja poprawnie konwertuje kolumny GEOM).źródło
Jeśli awaria zajmuje dużo czasu, powiększ
wait_timeout
zmienną.Jeśli zawiedzie od razu, powiększ
max_allowed_packet
zmienną; nadal nie działa, upewnij się, że polecenie jest poprawnym SQL. Mój miał niezauważalne cytaty, które wszystko popsuły.Ponadto, jeśli jest to wykonalne, rozważ ograniczenie liczby wstawień pojedynczego polecenia SQL do, powiedzmy, 1000. Możesz utworzyć skrypt, który tworzy wiele instrukcji z jednego polecenia, poprzez ponowne wprowadzenie INSERT ... części co n wstawień.
źródło
dostałem podobny błąd .. aby rozwiązać ten problem, wystarczy otworzyć plik my.ini .. w linii nr 36 zmień wartość maksymalnego dozwolonego rozmiaru pakietu, tj. max_allowed_packet = 20 mln
źródło
Upewnij się, że proces mysqld nie uruchamia się ponownie z powodu menedżerów usług, takich jak systemd.
Miałem ten problem z włóczęgami z centos 7. Poprawki konfiguracji nie pomogły. Okazało się, że to systemd, który zabijał usługę mysqld za każdym razem, gdy zabierał za dużo pamięci.
źródło
Miałem podobny błąd dzisiaj, gdy duplikowanie bazy danych (serwer MySQL zniknął ...), ale kiedy próbowałem zrestartować mysql.server restart, dostałem błąd
Tak to rozwiązałem: otworzyłem Aplikacje / Narzędzia / i uruchomiłem Monitor aktywności
wtedy był w stanie rozwiązać problem z błędem
źródło
Robię kilka dużych obliczeń, które wymagają połączenia mysql, aby pozostać długo i z dużymi danymi. Miałem do czynienia z tym problemem „odejdź MySQL”. Próbowałem więc zoptymalizować zapytania, ale to mi nie pomogło, a następnie zwiększyłem limit zmiennych mysql, który jest domyślnie ustawiony na niższą wartość.
wait_timeout max_allowed_packet
Do granic tego, co kiedykolwiek Ci odpowiada, powinna być Dowolna liczba * 1024 (bajty). możesz zalogować się do terminala za pomocą polecenia „ mysql -u nazwa użytkownika - p ” i możesz sprawdzić i zmienić te limity zmiennych.
źródło
Dla wspólnego hostingu GoDaddy
Na współdzielonych kontach hostingowych GoDaddy trudno jest ulepszyć pliki PHP.ini itp. Jest jednak inny sposób i dla mnie to zadziałało idealnie. (Właśnie pomyślnie przesłałem plik tekstowy .sql o wielkości 3,8 MB, zawierający 3100 wierszy i 145 kol.. Korzystając z polecenia IMPORT w phpMyAdmin, otrzymywałem przerażający serwer MySQL, który zniknął , i nie ma żadnych dalszych informacji.)
Odkryłem, że Matt Butcher miał właściwą odpowiedź. Podobnie jak Matt, próbowałem wszelkiego rodzaju sztuczek, od eksportowania baz danych MySQL w kawałkach wielkości kęsa, po pisanie skryptów, które dzielą duży import na mniejsze. Ale oto, co zadziałało:
(1) CPANEL ---> PLIKI (grupa) ---> KOPIA ZAPASOWA
(2a) W sekcji „Częściowe kopie zapasowe” ...
(2b) W sekcji „Pobierz
kopię zapasową bazy danych MySQL” (2c) Wybierz bazę danych i pobierz kopię zapasową (ten krok jest opcjonalny, ale mądry)
(3a) Bezpośrednio po prawej stronie 2b, pod nagłówkiem „Przywróć kopię zapasową bazy danych MySQL”
(3b) Wybierz plik importu .SQL z dysku lokalnego
(3c) Prawdziwe szczęście będzie twoje (wkrótce ....) Moje zajęło 5 sekund
Uwagi:
a. Jeśli nie masz pewności, jak utworzyć plik importu .SQL, użyj phpMyAdmin, aby wyeksportować tabelę i zmodyfikować tę strukturę pliku.
ŹRÓDŁO: Matt Butcher 2010 Artykuł
źródło
Jeśli zwiększenie
max_allowed_packet
nie pomaga.Podczas importowania
.sql
pliku do mojej bazy danych przez Sequel Pro otrzymywałem ten sam błąd co Ty .Błąd nadal występował po podniesieniu
max_allowed_packet
do,512M
więc zamiast tego uruchomiłem import w wierszu poleceń za pomocą:Dał następujący błąd:
Znalazłem kilka pomocnych pytań StackOverflow:
W moim przypadku mój
.sql
plik był trochę uszkodzony lub coś takiego. Zrzut MySQL, który otrzymujemy, jest dostarczany w dwóch plikach zip, które muszą zostać połączone razem, a następnie rozpakowane. Myślę, że rozpakowywanie zostało początkowo przerwane, pozostawiając plik z dziwnymi znakami i kodowaniem. Pobranie nowego zrzutu MySQL i rozpakowanie go poprawnie działało dla mnie.Chciałem tylko dodać to tutaj, na wypadek gdyby inni stwierdzili, że zwiększenie
max_allowed_packet
zmiennej nie pomogło.źródło
Żadne z rozwiązań dotyczących rozmiaru pakietu lub przekroczenia limitu czasu nie miało dla mnie znaczenia. Musiałem wyłączyć ssl
https://dev.mysql.com/doc/refman/5.7/en/encrypted-connections.html
źródło
Mam ten sam problem z
W pliku \ xampp \ mysql \ bin \ my.ini programu phpmyadmin otrzymujemy tylko
który jest tylko dla mysqldump -u root -p nazwa_db. Rozwiązałem problem, zastępując powyższy kod na
źródło