Dzielenie i kompresowanie pliku SQL: SQL Splitter
Twój plik SQL jest zbyt duży, by zaimportować go w phpMyAdmin? SQL Splitter skompresuje go do .sql.gz lub podzieli między pełnymi instrukcjami na części mniejsze niż 1,9 MB, na przykład community-db.sql o rozmiarze 98 KB po kompresji do .sql.gz ma 20 KB. Za darmo, bez rejestracji i przesyłania danych: twój plik pozostaje w przeglądarce.
Autor: Justin Schuessler
Na własnym serwerze VPS możesz importować duże zrzuty przez konsolę, bez limitu przesyłania plików w phpMyAdmin.
Twój plik pozostaje w przeglądarce: nie jest nigdzie przesyłany ani zapisywany.
Przykładowy wynik
Jak SQL Splitter dzieli zrzut
Najpierw narzędzie sprawdza, czy skompresowany plik mieści się w Twoim limicie. Jeśli nie, dzieli go między pełnymi instrukcjami i dołącza nagłówek zrzutu do każdej części. Przykład to mały zrzut mysqldump z docelowym rozmiarem 40 KB, dzięki czemu powstaje kilka części; wynik dla Twojego pliku może być inny.
Przykład · Dane wejściowe: community-db.sql, 98 KB, 56 instrukcji, 2 tabel, wyzwalacz, procedura i widok
- Plik SQL
- 98 KB
- Jako .sql.gz
- 20 KB
- 4,9 razy mniejszy
- Części poniżej 40 KB
- 3
- Wykryto problemy z importem
- 9
- DEFINER, CREATE DATABASE/USE, sortowania MySQL 8
community-db-part-001.sql 28 KB 17 Instrukcje players, scorescommunity-db-part-002.sql 40 KB 3 Instrukcje scorescommunity-db-part-003.sql 32 KB 18 Instrukcje scoresDlaczego to narzędzie?
SQL Splitter, którego części naprawdę da się zaimportować
Wiele narzędzi dzieli pliki według wierszy lub megabajtów, rozcinając przy tym wyzwalacze, procedury lub rekordy. To narzędzie odczytuje zrzut tak jak klient mysql.
Najpierw skompresuj, potem podziel
Zrzuty SQL zawierają dużo powtarzającego się tekstu i po kompresji do .sql.gz często stają się wielokrotnie mniejsze. phpMyAdmin importuje je bezpośrednio. Narzędzie najpierw oblicza rozmiar skompresowanego pliku. Jeśli mieści się on w twoim limicie, nie musisz dzielić pliku.
Podział tylko między pełnymi instrukcjami
Parser rozpoznaje ciągi znaków z sekwencjami ucieczki, komentarze z --, # i /* */, wiersze /*!40101 … */ z mysqldump oraz bloki DELIMITER. Średnik w ciągu znaków lub bloku DELIMITER nie rozdziela instrukcji.
Duże instrukcje INSERT są dzielone między wierszami
Jeśli instrukcja INSERT z wieloma wierszami jest większa niż jedna część, zostaje rozbita na kilka instrukcji INSERT z tym samym nagłówkiem, zawsze między dwoma rekordami. Jeśli pojedynczy rekord jest zbyt duży, narzędzie podaje jego numer i tabelę.
Każdą część można zaimportować osobno
Zestaw znaków, tryb SQL, strefa czasowa i wyłączenie sprawdzania kluczy obcych z nagłówka zrzutu znajdują się w każdej części, a na końcu wszystko jest przywracane. Zachowywane są też aktywne USE i DELIMITER.
Poprawki importu do zaznaczenia
DEFINER, CREATE DATABASE i USE, sortowania MySQL 8 oraz wiersze replikacji: narzędzie pokazuje, ile razy występują, i zmienia tylko to, co zaznaczysz. Poprawki działają również bez dzielenia.
Działa w przeglądarce, także z plikami o rozmiarze setek MB
Zrzuty często zawierają dane klientów. Plik jest przetwarzany strumieniowo w Web Workerze i nie opuszcza Twojego komputera; możesz śledzić postęp i przerwać operację, a karta się nie zawiesza.
Jak to działa
Jak zaimportować duży plik SQL w trzech krokach
Od zbyt dużego zrzutu do gotowej bazy danych — bez konta i bez przesyłania pliku.
Krok 1
Wczytaj plik SQL
Przeciągnij plik .sql, .sql.gz lub .zip do pola. Narzędzie odczyta go w przeglądarce, policzy instrukcje i tabele oraz wykryje typowe problemy z importem.
Krok 2
Skompresuj lub podziel
Wybierz limit przesyłania: phpMyAdmin 2 MB, 8 MB lub własną wartość. Jeśli plik .sql.gz mieści się w limicie, pobierzesz ten jeden plik. W przeciwnym razie narzędzie podzieli go na części mniejsze niż wybrany limit (przy 2 MB maksymalnie 1,9 MB), które pobierzesz osobno lub jako ZIP, opcjonalnie z poprawkami importu.
Krok 3
Importuj w phpMyAdmin
Wybierz bazę danych po lewej, otwórz kartę Import, wybierz plik i kliknij OK. Jeśli części jest kilka, importuj je po kolei, zaczynając od części 1. Możesz też skopiować część i wkleić ją na karcie SQL.
Komunikaty o błędach
Dlaczego import w phpMyAdmin się nie udaje i co zrobić
Najczęstsze komunikaty podczas importu pliku SQL i odpowiednie działanie w narzędziu.
Import zatrzymuje się na „Proszę czekać, trwa przetwarzanie pliku.”
Przyczyna: Plik przekracza limit przesyłania phpMyAdmin (u nas 2 MB, wyświetlane jako „Maksymalny rozmiar: 2.048 KiB”). phpMyAdmin 5.2 często nie wyświetla wtedy błędu — wskaźnik ładowania po prostu kręci się dalej. W zależności od ustawień serwera może się zamiast tego pojawić komunikat „Nie otrzymano żadnych danych do importu”.
Rozwiązanie: Prześlij jako .sql.gz. Jeśli plik nadal jest za duży, podziel go i importuj części po kolei.
„Wygląda na to, że połączenie z serwerem zostało utracone” na karcie SQL
Przyczyna: Wklejony tekst jest zbyt duży. Przeglądarka wysyła go w postaci zakodowanej: spacje i znaki specjalne mogą zajmować trzy razy więcej miejsca, a znaki nowego wiersza — sześć razy więcej. Dlatego tekst o rozmiarze 1,9 MB może szybko przekroczyć 2 MB.
Rozwiązanie: Wybierz w narzędziu „Wklej do konsoli SQL” — wtedy części zmieszczą się w limicie także po zakodowaniu.
#1227 Access denied; you need (at least one of) the SUPER privilege(s)
Przyczyna: Widoki, wyzwalacze lub procedury zawierają DEFINER wskazujący użytkownika starego serwera. W MariaDB wymagane uprawnienie nazywa się SET USER, a dla SQL_LOG_BIN ze zrzutów MySQL — BINLOG ADMIN.
Rozwiązanie: Zaznacz poprawkę „Usuń DEFINER”, a w przypadku zrzutów MySQL także „Usuń wiersze replikacji”.
#1273 Unknown collation: 'utf8mb4_0900_ai_ci'
Przyczyna: Zrzut pochodzi z MySQL 8. MariaDB nie obsługuje tego porządkowania znaków, nawet w wersji 11.6.
Rozwiązanie: Zaznacz poprawkę „Zastąp sortowania MySQL 8”.
#1193 Unknown system variable 'GTID_PURGED'
Przyczyna: Zrzut pochodzi z serwera MySQL z replikacją GTID. Ten wiersz występuje tylko w MySQL.
Rozwiązanie: Zaznacz poprawkę „Usuń wiersze replikacji”.
#1044 Access denied for user … to database …
Przyczyna: Zrzut tworzy własną bazę danych za pomocą CREATE DATABASE lub przełącza się za pomocą USE na bazę, do której Twój użytkownik nie ma dostępu.
Rozwiązanie: Zaznacz poprawkę „Usuń CREATE DATABASE i USE” i najpierw wybierz po lewej właściwą bazę danych.
#1452 Cannot add or update a child row: a foreign key constraint fails
Przyczyna: Część wstawia dane, których powiązane wiersze pojawiają się dopiero w późniejszej części.
Rozwiązanie: Narzędzie wyłącza sprawdzanie kluczy obcych w każdej części. Mimo to importuj części w odpowiedniej kolejności.
#1050 Table already exists lub #1062 Duplicate entry
Przyczyna: Część została zaimportowana dwukrotnie, często po przerwaniu importu.
Rozwiązanie: Nie zaczynaj od początku: wznów od części, przy której import został przerwany. Jeśli masz wątpliwości, wyczyść bazę danych i zacznij od nowa.
Właściwy sposób
Kompresować, dzielić czy użyć innego narzędzia?
Dzielenie nie zawsze jest najlepszym rozwiązaniem. Tak podejmiesz decyzję w minutę.
Ścieżka 1
Skompresuj (.sql.gz)
Najszybszy sposób, jeśli skompresowany plik mieści się w limicie: jeden plik, jeden import, bez zmian.
Ścieżka 2
Podziel za pomocą SQL Splittera
Gdy nawet plik .sql.gz jest za duży i masz do dyspozycji tylko phpMyAdmin. Wymaga kilku przesłań, ale nie dodatkowego oprogramowania.
Ścieżka 3
HeidiSQL lub inny klient bazy danych
Do bardzo dużych zrzutów lub pojedynczych rekordów przekraczających limit. Klient łączy się bezpośrednio z bazą danych, więc nie obowiązuje limit przesyłania. W systemie Windows: Plik, Uruchom plik SQL.
Ścieżka 4
Klient mysql w konsoli
Jeśli masz VPS lub dostęp przez SSH, polecenie mysql -u benutzer -p datenbank < dump.sql zaimportuje zrzut bez limitu przesyłania plików w phpMyAdmin. W przypadku pliku .gz użyj zcat.
Odkryj więcej
Więcej narzędzi
Porównywanie tekstów online (Diff Checker)
Porównywanie tekstów online: Porównaj dwa teksty, konfiguracje lub wersje kodu, zobacz różnice w poszczególnych wierszach i słowach oraz skopiuj wynik jako Unified Diff. Wszystko działa w przeglądarce.
Autor: Dimitri Heissler
Generator hashy (MD5, SHA-1, SHA-256, SHA-512)
NowyGeneruj hashe MD5, SHA-1, SHA-256 i SHA-512 z tekstu lub pliku i porównuj sumy kontrolne. Działa w całości w przeglądarce.
Autor: Luca Stanek
Generator i weryfikator Bcrypt
Generuj i sprawdzaj hasze Bcrypt — bezpośrednio w przeglądarce, z regulowanym współczynnikiem kosztu.
Autor: Rugile Rutkauskaite
Konwerter JSON na CSV
Konwersja JSON na CSV i CSV na JSON: spłaszczanie zagnieżdżonych obiektów, wykrywanie separatora, CSV dla programu Excel z BOM oraz podgląd plików JSON i CSV w formie tabeli. Działa w całości w przeglądarce.
Autor: Dimitri Heissler
Generator .htaccess i generator htpasswd
Tworzenie plików Apache .htaccess i .htpasswd online: przekierowania 301, HTTPS, ochrona hasłem z bcrypt, reguły WordPress, strony błędów, buforowanie, GZIP i ochrona przed hotlinkowaniem. Działa w całości w przeglądarce.
Autor: Dimitri Heissler
Formatowanie SQL online (formatuj i upiększaj SQL)
Formatuj, upiększaj i minimalizuj SQL online – dla MySQL, MariaDB i PostgreSQL, z ustawieniami wcięć i pisowni słów kluczowych. Działa w całości w przeglądarce, bez przesyłania danych.
Autor: Luca Stanek
FAQ
Często zadawane pytania
Krótkie odpowiedzi o importowaniu przez phpMyAdmin, zrzutach SQL i narzędziu SQL Splitter.
Otrzymasz plik .sql.gz, który phpMyAdmin zaimportuje bezpośrednio, albo kilka plików .sql, z których każdy mieści się w Twoim limicie. Pliki są dostępne osobno i w archiwum ZIP, a na życzenie także jako .sql.gz i tekst do skopiowania. Plik community-db.sql o rozmiarze 98 KB po kompresji do .sql.gz ma 20 KB, a po podziale przy docelowym rozmiarze 40 KB powstaje 3 części. Każda zawiera nagłówek zrzutu; części są ułożone w kolejności importu. Narzędzie pokazuje też rozmiar, liczbę instrukcji i tabele dla każdej części.
phpMyAdmin odbiera pliki przez PHP, a PHP ogranicza rozmiar przesyłanych plików (upload_max_filesize i post_max_size). Na naszych serwerach baz danych limit wynosi 2 MB. phpMyAdmin pokazuje go w sekcji importu jako „Maksymalny rozmiar: 2.048 KiB”. Tekst wklejany na kartę SQL również podlega temu limitowi. Dlatego narzędzie ma tryb „Wklej do konsoli SQL”: uwzględnia rozmiar danych faktycznie wysyłanych przez przeglądarkę i odpowiednio zmniejsza części.
Często tak. Limit dotyczy przesyłanego pliku, czyli pliku skompresowanego, a zrzuty SQL zawierają dużo powtarzającego się tekstu. phpMyAdmin sam rozpakowuje plik .sql.gz podczas importu. SQL Splitter najpierw oblicza rozmiar pliku .sql.gz, pokazuje ci, ile razy jest on mniejszy, i zaleca podział tylko wtedy, gdy skompresowany plik nadal przekracza twój limit.
Wczytaj plik .sql, .sql.gz lub .zip do SQL Splitter, na przykład eksport z mysqldump, mariadb-dump, phpMyAdmin, HeidiSQL lub Adminer. Podział następuje tylko między pełnymi instrukcjami: narzędzie rozpoznaje ciągi znaków z sekwencjami ucieczki, komentarze, wiersze /*!…*/ i bloki DELIMITER dla wyzwalaczy i procedur. Średnik wewnątrz nich nie rozdziela instrukcji. Jeśli instrukcja INSERT z wieloma wierszami jest większa niż jedna część, zostanie podzielona między rekordami na kilka instrukcji INSERT z tym samym początkiem. Jeśli pojedynczy rekord przekracza rozmiar docelowy — zwykle jest to obraz w kolumnie BLOB — narzędzie poda numer instrukcji, wiersz i tabelę. Taką część zaimportuj przez HeidiSQL lub klienta mysql albo spróbuj przesłać ją jako .sql.gz.
Importuj części w kolejności numerów, zaczynając od części 1, wszystkie do tej samej bazy danych. Część 1 zwykle zawiera instrukcje CREATE TABLE, a kolejne części wypełniają tabele. Jeśli zrzut zawiera klucze obce, każda część wyłącza ich sprawdzanie na początku i ponownie włącza na końcu. Jeśli import części zostanie przerwany, napraw błąd i kontynuuj od tej samej części. Nie importuj wcześniejszych części ponownie, bo pojawi się błąd „Table already exists” lub „Duplicate entry”. Jeśli nie pamiętasz, co zostało już zaimportowane, wyczyść bazę danych (w phpMyAdmin na karcie Struktura zaznacz i usuń wszystkie tabele) i zacznij ponownie od części 1.
Widoki, wyzwalacze, procedury i zdarzenia zapisują użytkownika, z którego uprawnieniami działają (DEFINER). Jeśli wskazują użytkownika starego serwera, np. root, Twój użytkownik bazy danych nie może ich utworzyć. Zaznacz w narzędziu „Usuń DEFINER”, a serwer utworzy je z Twoim użytkownikiem. MariaDB nazywa brakujące uprawnienie SET USER. Jeśli zrzut pochodzi z MySQL, import może się też nie udać przez wiersze SQL_LOG_BIN (uprawnienie BINLOG ADMIN) i GTID_PURGED — do tego służy opcja „Usuń wiersze replikacji”.
utf8mb4_0900_ai_ci to domyślne porównywanie znaków w MySQL 8. MariaDB go nie obsługuje, nawet w wersji 11.6, i przerywa wykonywanie CREATE TABLE z błędem #1273. Poprawka „Zastąp sortowania MySQL 8” zamienia je i pozostałe warianty 0900 na utf8mb4_unicode_ci, a warianty rozróżniające wielkość liter na utf8mb4_bin. Instrukcje INSERT, a więc i twoje dane, pozostają bez zmian.
Nie. Zrzut często zawiera dane klientów i dane dostępowe, dlatego narzędzie odczytuje plik tylko w Twojej przeglądarce, za pomocą Web Workera. Nie przesyła ani nie zapisuje pliku i nie wymaga konta. W karcie sieciowej narzędzi deweloperskich zobaczysz, że podczas kompresowania i dzielenia nie jest wysyłane żadne żądanie z Twoim plikiem.
Masz dodatkowe pytania?
Kontakt z pomocą technicznąTwoja baza danych bez limitu przesyłania na własnym serwerze VPS
Z serwerem VPS od ZAP-Hosting masz dostęp root, importujesz duże zrzuty przez konsolę i uruchamiasz MySQL, MariaDB lub PostgreSQL tak, jak chcesz.
Bez konfiguracji. Bez ryzyka. Online w kilka sekund.
Szukasz więcej narzędzi? Zobacz wszystkie narzędzia dla programistów
