Nie można lokalnie zaimportować bazy danych SQL zakodowanej w UTF-8 na komputerze Mac

23

Zaimportowałem potwierdzoną bazę danych SQL zakodowaną w UTF-8 do Sequel Pro na Macu i zostałem zgłoszony ten błąd w połowie:

Wystąpił błąd podczas odczytu pliku, ponieważ nie można go odczytać w wybranym kodowaniu (Autodetekcja - Unicode (UTF-8)).

Wykonano tylko 1273 zapytań.

Czy to dlatego, że plik bazy danych był pierwotnie z komputera z systemem Windows i jego łamanie linii upchnęło sprawę?

Wyobrażam sobie, że dostanę ten błąd, nawet jeśli spróbuję wysłać tę samą bazę danych za pośrednictwem transferu plików na serwer, więc jak mogę naprawić to kodowanie?

-- MySQL dump 10.13  Distrib 5.5.40-36.1, for Linux (x86_64)
--
-- Host: localhost    Database: *****
-- ------------------------------------------------------
-- Server version   5.5.40-36.1-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `******`
--
smokerockspunchcops
źródło
Jaki tekst spowodował problem?
Rick James,
nie powiedziałem, ale domyślam się, że przerwa w linii jest zakodowana w systemie Windows
smokerockspunchcops
Zapisywanie pliku w notatniku ma opcję kodowania na dole. Otwórz plik w notatniku w systemie Windows i zapisz go w formacie utf-8, a następnie spróbuj załadować go do MySQL
Nawaz Sohail
Więc plik nie jest prawdziwy utf-8? Jeśli korzystam z komputera Mac, mogę to zrobić z domyślną przeglądarką tekstu, aby to naprawić?
smokerockspunchcops
Jak napisał Nawaz powyżej, otwórz plik w edytorze tekstu (użyłem TextWrangler na Macu) i ponownie zapisz jako format utf-8.
Jojje

Odpowiedzi:

52

Na podstawie tego postu na blogu

http://ilikekillnerds.com/2014/08/fixing-sequel-pro-sql-encoding-error-for-imported-sql-files/

Podczas importowania zrzutu bazy danych musisz wybrać format zachodni (Mac OS Roman) jako format kodowania pliku, który chcesz zaimportować bez problemu.

Liangzan
źródło
1
Czy ktoś wie, dlaczego to działa? Naprawdę chciałbym wiedzieć, jaki problem istniał z UTF-8 (lub jaki problem z Windows), który nie pozwolił mi zaimportować pierwotnie.
Douglas.Sesar
1
Dzięki, działa to również w przypadku zrzutów MySQL generowanych w CentOS.
Alex
Potwierdzam, że działa na MacOS High Sierra 10.13.6. dzięki @liangzan
Ahmad Mushtaq
Działa to również z Sequel Pro (Nightly) na Mojave
Urs
Działa to poprawnie dla zrzutu MySQL, który powstał na Linux / Mysql i musiał zostać zaimportowany przez SSH do bazy danych MariaDB 10. Dzięki.
HongPong