Jestem zupełnie nowy w MySQL i używam go w systemie Windows. Próbuję przywrócić bazę danych z pliku zrzutu w MySQL, ale pojawia się następujący błąd:
$ >mysql -u root -p -h localhost -D database -o < dump.sql
ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'SQLite format 3'.
Próbowałem --binary-mode
wstawić plik ini, ale nadal daje ten sam błąd. Co powinienem zrobić? Proszę pomóż.
AKTUALIZACJA
Jak zasugerował Nick w swoim komentarzu, próbowałem, $ > mysql -u root -p -h localhost -D database --binary-mode -o < dump.sql
ale dało mi to następujące informacje. ERROR at line 1: Unknown command '\☻'.
Jest to plik zrzutu 500 MB, a kiedy przeglądam jego zawartość za pomocą gVIM, wszystko, co widzę, to wyrażenia i dane, które nie są zrozumiałe.
mysql
database
mysqldump
database-restore
user1434997
źródło
źródło
.sql
plik z dziwnymi znakami i kodowaniem. Druga próba zadziałała dobrze.Odpowiedzi:
Rozpakuj plik, a następnie ponownie zaimportuj.
źródło
.tar.bz2
Linuksa i użyłem WinRAR do wyodrębnienia go w systemie Windows. Nie rozumiem . Miły.Ten sam problem napotykam przy przywracaniu pliku zrzutu w systemie Windows. Mój plik zrzutu został utworzony za pomocą programu Windows powershell i mysqldump, takiego jak:
mysqldump db > dump.sql
Problem wynika z domyślnego kodowania PowerShell to UTF16. Aby przyjrzeć się temu głębiej, możemy użyć narzędzia „file” GNU i istnieje tutaj wersja dla Windows .
Wynik mojego pliku zrzutu to:
Tekst Little-endian UTF-16 Unicode, z bardzo długimi liniami, z zakończeniami linii CRLF.
Wtedy potrzebna jest konwersja systemu kodowania, a różne programy mogą to zrobić. Na przykład w emacsie
M-x set-buffer-file-coding-system
następnie wprowadź wymagany system kodowania, taki jak utf-8.
A w przyszłości, aby uzyskać lepszy wynik mysqldump, użyj:
mysqldump <dbname> -r <filename>
a następnie dane wyjściowe są obsługiwane
mysqldump
samodzielnie, ale nie są przekierowywane z programu PowerShell.odniesienie: /dba/44721/error-while-restoring-a-database-from-an-sql-dump
źródło
Na komputerze z systemem Windows wykonaj powyższe kroki.
Teraz znajdź swoją bazę danych.
źródło
Rozpakuj plik za pomocą narzędzia do archiwizacji Tar. możesz to wykorzystać w ten sposób:
źródło
Czy próbowałeś otworzyć w notatniku ++ (lub innym edytorze) i przekonwertować / zapisać nas do UTF-8?
Zobacz: notepad ++ konwertowanie pliku zakodowanego w formacie ANSI do utf-8
Inną opcją może być użycie textwrangle do otwarcia i zapisania pliku jako UTF-8: http://www.barebones.com/products/textwrangler/
źródło
Miałem ten błąd raz, po uruchomieniu
mysqldump
na Windows PowerShell w ten sposób:mysqldump -u root p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --set-gtid-purged=OFF > db_objects.sql
Zmieniłem to na to (potok zamiast na Set-Content):
mysqldump -u root p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --set-gtid-purged=OFF | Set-Content db_objects.sql
I problem zniknął!
źródło
Być może Twój plik dump.sql zawiera śmieciowy znak na początku pliku lub na początku znajduje się pusta linia.
źródło
Jeśli nie masz wystarczająco dużo miejsca lub nie chcesz tracić czasu na dekompresję, wypróbuj to polecenie.
Nie zapomnij zastąpić skompresowanego pliku sqlfile.gz nazwą pliku skompresowanego.
Przywracanie .gz nie będzie działać bez polecenia, które podałem powyżej.
źródło
Musisz zgłosić problem z dump.sql.Użyj Sequel Pro sprawdź swój plik ecoding.To powinny być śmieciowe znaki w twoim dump.sql.
źródło
Miałem ten sam problem, ale okazało się, że plik zrzutu był w rzeczywistości kopią zapasową serwera MSSQL, a nie MySQL.
Czasami starsze pliki kopii zapasowych płatają nam figle. Sprawdź plik zrzutu.
W oknie terminala:
Wynik był następujący:
Aby zatrzymać przetwarzanie polecenia cat:
źródło
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
źródło
Plik, który próbujesz zaimportować, jest plikiem ZIP. Rozpakuj plik, a następnie spróbuj ponownie zaimportować.
źródło
Pod linuxem Rozpakuj swój plik używając gunzip Edytuj swój rozpakuj plik sql używając
Usuń pierwszą linię binarną za pomocą esc dd idź na dół pliku za pomocą esc shift g usuń ostatnią linię binarną za pomocą dd zapisz plik esc x: Następnie ponownie zaimportuj do mysql za pomocą:
Wykonałem to za pomocą pliku sql 20go z kopii zapasowej cpanel mysql jetbackup. Bądź cierpliwy, aby czekać vi wykonując zadanie dla dużych plików
źródło
Twój plik powinien mieć tylko rozszerzenie .sql, (.zip, .gz .rar) itp. Nie będzie obsługiwane. przykład: dump.sql
źródło
Możesz użyć tego, aby naprawić błąd:
źródło
Wiem, że pierwotne pytanie dotyczące plakatów zostało rozwiązane, ale przyszedłem tutaj przez Google i różne odpowiedzi ostatecznie doprowadziły mnie do odkrycia, że mój SQL został zrzucony z innym domyślnym zestawem znaków niż ten użyty do zaimportowania. Otrzymałem ten sam błąd, co w pierwotnym pytaniu, ale ponieważ nasz zrzut został przesłany do innego klienta MySQL, nie mogliśmy otworzyć go za pomocą innego narzędzia i zapisać go w inny sposób.
Dla nas rozwiązaniem okazała się
--default-character-set=utf8mb4
opcja do wykorzystania zarówno na wezwanie,mysqldump
jak i na wezwanie do zaimportowania go przezmysql
. Oczywiście wartość parametru może się różnić dla innych osób borykających się z tym samym problemem, ważne jest tylko, aby pozostała taka sama, ponieważ domyślnym ustawieniem serwerów (lub narzędzi) może być dowolny zestaw znaków.źródło
mysqldump -uUSER -p user_db | gzip > user_db_$(date +"%Y%m%d_%H%M").sql.gz
następnie próbując zaimportować ją za pomocągunzip -c user_db_datetime.sql.gz | mysql -uUSER -p user_db
Stary ale jary!
Na MacOS (Catalina 10.15.7) było trochę dziwnie: musiałem zmienić nazwę mojego pliku
dump.sql
na,dump.zip
a potem musiałem użyć Findera (!), Aby go rozpakować. w terminalu,unzip dump.zip
odertar xfz dump.sql[or .gz .tar ...]
prowadzi do komunikatów o błędach.W końcu program Finder rozpakował go całkowicie dobrze, po czym mogłem bez problemu zaimportować plik.
źródło