Windows系统导入sql文件失败问题处理(Mysql命令行)
最近测试需要把线上的数据导入到本地mysql数据库中使用,但是操作完成后发现有部分数据没有完整导入,于是分析了一下原因,最终发现是因为本地数据库的客户端字符集与线上导出的sql文件的字符编码不一致造成的,记录一下处理过程。
1.线上数据导出为sql文件
线上数据库为Linux系统,数据导出使用mysqldump工具,命令如下:
mysqldump --login-path=mydb --databases aa >aa.sql
(mysql免密登录参考:用 mysql_config_editor 生成登录密钥)
导出文件属性如下:

2.导入sql文件到本地数据库
本地数据库导入使用的方法为直接在mysql命令行中执行source D://aa.sql;
命令加载sql文件;
3.遇到问题
查看导入sql文件的日志,发现报错如下:

可以看到mysql错误码为1064,而且中文显示为乱码,怀疑是数据库字符集的问题,所以需要查一下数据库的字符集配置,查询命令如下:
SHOW VARIABLES LIKE 'character_set%';
直接在mysql命令行中输入,查询结果如下:

通过查询看到虽然character_set_database字符集是utf8的,但是character_set_client和character_set_connection都是gbk,那么问题原因应该就在这里了。
4.修改字符集编码
明确了问题原因,接下来就需要将字符集编码都修改成utf8格式,修改方式为直接在mysql配置文件中增加下面配置:
[client]
default-character-set=utf8mb4
修改完成需要重启数据库使配置生效,同时需要重新进入mysql命令行,然后查看当前编码配置:

通过结果可以看到字符集都已经变成utf8格式了。
5.处理完成
设置完字符集后,重新导入sql文件,就可以正确导入了。

扩展说明:
1.也可以在登录mysql命令行的时候增加 --default-character-set=utf8mb4
参数来确保编码一致。
正文到此结束
- 本文标签: Mysql Windows
- 本文链接: https://blog.eyyyye.com/article/97
- 版权声明: 本文由比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权