背景:
在cmd窗口用source导入会报错,但是把sql放到工具中执行不会报错
报错信息:
ERROR 1366 (HY000): Incorrect string value: '\xC9\xCF\xBA\xA3\xD6\xA4...' for column 'c_agencyname' at row 1
1、查看数据库默认字符集
show variables like 'char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | E:\mysql-5.7.34-winx64\share\charsets\ |
+--------------------------+----------------------------------------+
数据库默认字符集是utf8
2、查看建表语句
show create table application;
...
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
...
建表是用utf8mb4字符集
3、发现是导出的脚本是gbk编码,要转换成utf-8 无bom的格式
建了两个库
gjzg_release,字符集utf8mb4。gjzg_release2,字符集utf8
create database gjzg_release default charset utf8mb4 collate utf8mb4_general_ci;
grant all privileges on gjzg_release.* to 'gjzg_release'@'%';
create database gjzg_release2 default charset utf8 collate utf8_general_ci;
grant all privileges on gjzg_release2.* to 'gjzg_release'@'%';
分别导入转换后的sql脚本都没问题