mysql用source导入sql脚本,中文报错ERROR 1366 (HY000)

背景:
在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脚本都没问题

猜你喜欢

转载自blog.csdn.net/csj50/article/details/117516437
今日推荐