LOAD DATA INFILE:无效的 ut8mb4 字符串

gui*_*dev 4 mysql mariadb load-data-infile

我正在使用 LOAD DATA INFILE 导入一些大表(iTunes EPF)。

\n\n

但是,导入失败并出现以下错误:

\n\n
string(52) "Invalid utf8mb4 character string: \'\xd7\x90\xd7\x9c \xd7\xa0\xd7\x90 \xd7\xaa\xd7\x9c\xd7\x9a\'"\n
Run Code Online (Sandbox Code Playgroud)\n\n

该表是这样创建的:

\n\n
CREATE TABLE `song-tmp` (\n  `song_id` int(11) NOT NULL DEFAULT \'0\',\n  `name` varchar(1000) DEFAULT NULL,\n  `title_version` varchar(1000) DEFAULT NULL,\n  `artist_display_name` varchar(1000) DEFAULT NULL,\n  PRIMARY KEY (`song_id`)\n) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我正在使用的导入查询:

\n\n
LOAD DATA LOCAL INFILE \'/path/to/file\' INTO TABLE `song-tmp`\n  CHARACTER SET utf8mb4\n  FIELDS TERMINATED BY X\'01\' \n  LINES TERMINATED BY X\'020a\'\n  (@export_date, song_id, name, title_version, @search_terms, @parental_advisory_id, artist_display_name, @collection_display_name, @view_url, @original_release_date, @itunes_release_date, @track_length, @copyright, @p_line, @preview_url, @preview_length)\n
Run Code Online (Sandbox Code Playgroud)\n

gui*_*dev 5

正如里克·詹姆斯(Rick James)建议的那样,在声明SET NAMES utf8mb4;之前运行LOAD就达到了目的。