所以我正尝试使用Ansible将巨大的.sql文件导入数据库。我已将MySQL配置为在创建数据库之前运行set global default-character-set = utf8mb4
。在将下面的数据导入到数据库字符集之前,我已经确认数据库字符集已设置为utf8mb4。
但是我仍然收到58229: Incorrect string value: '\\xBA' for column 'ISBN' at row 1\n"}
。
所讨论的行看起来像INSERT INTO
BX-Book-Ratings VALUES (11676,'8475560806º',6);
º
似乎是这里的问题。下面是我的tbl结构:
CREATE TABLE `BX-Book-Ratings` (
`User-ID` int(11) NOT NULL default '0',
`ISBN` varchar(13) NOT NULL default '',
`Book-Rating` int(11) NOT NULL default '0'
) ENGINE=MyISAM;
任何提示将不胜感激。谢谢。
答案 0 :(得分:0)
假设您期望使用º
(MASCULINE ORDINAL INDICATOR),我建议...
十六进制BA
,在latin1中是那个字符。对于utf8,它是十六进制C2BA
。
我假设您不想转换“巨大” .sql文件。另外,我假设没有混合的编码。这将是一场灾难。
您尚未显示用于执行“加载”的代码。如果它是LOAD DATA
,则在语法上正确的位置添加以下子句:CHARACTER SET latin1
。
要进一步讨论,请提供以下内容:
SHOW VARIABLES LIKE 'char%';
SHOW CREATE TABLE `BX-Book-Ratings`;
我强烈建议您使用InnoDB,而不是MyISAM。