赞
踩
mysql 5.5 版本后新增了字符集utf8mb4, 即最大长度变为4个字节。原来的utf8最大只能存放3个字节的字符。因此在导入的时候出错。
查询得知:
MySQL 8.0 默认的是 utf8mb4_0900_ai_ci。
解决方法有两个:
1.修改sql文件里数据表指定的字符集,将sql文件中的’utf8mb4_0900_ai_ci’替换为‘utf8_unicode_ci’
sed -i 's/\<utf8mb4_0900_ai_ci\>/utf8_unicode_ci/g' filename
sed -i 's/\<utf8mb4_0900_ai_ci\>/utf8/g' filename
2.修改数据库的字符集。需要数据库版本大于5.5。
可以先查看数据库的字符集
show variables like 'character%';
接下来修改mysql的配置文件/etc/mysql/my.cnf。但是尝试过不能修改为utf8mb4_0900_ai_ci,需要修改为utf8mb4_unicode_ci。sql文件中的也要修改。
[client]
default-character-set=utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake = true
[mysql]
default-character-set = utf8mb4```
修改后即可成功导入。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。