不冷博客

解决Mysql5.0无法运行5.5版本导出的sql语句

解决

[Err] 1115 - Unknown character set: 'utf8mb4';
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE =' at line 4
在运行sql语句时出现USING BTREE错误,主要原因是MYSQL版本不兼容问题导致。网站MYSQL5.1版本,现在是MYSQL5.5版本,从5.5开始采用的是utf8mb4,而我们的数据库版本还是老的utf,修改后即可正常导入了。

1.修改如下:

SET NAMES utf8mb4;

修改为:

SET NAMES utf8;

2.修改如下:

PRIMARY KEY (id) USING BTREE,

修改为:

PRIMARY KEY id USING BTREE(id),

扩展

MYSQL SET NAMES utf8mb4

比较
utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符,生僻字
utf8 一般一个字符占用 3个字节,utf8mb4 一个字符 占用4个字节

影响
1.utf8mb4的最低mysql版本支持版本为5.5.3+
2.MySQL驱动5.1.34可用,最低不能低于5.1.13
3.数据库连接配置连接字符集也要设置为utf8mb4,否则在 严格模式 下会出现 Incorrect string value: /xF0/xA1/x8B/xBE/xE5/xA2… for column 'name’这样的错误,非严格模式下此后的数据会被截断
4.将其他字符集(非utf8)转换为utf8mb4,会有乱码问题,以及其他不确定问题

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »