今天在做mysql数据导入时遇到编码错误,使用的命令如下:
c:\>mysql -uroot -pabc mydb<d:\a.sql
结果提示有编码错误,不能导入。后将这个sql文件放到navicat中执行,运行正常;
原因为客户端连接的字符集编码不是utf8
mysql版为5.6.24,尝试如下方法:
1、将my.ini中添加clinet设置
[client]
character-set-client=utf8
default-character-set=utf8
保存,重启服务;无效。
2、将my.ini中添加设置
[mysqld]
init_connect='set names utf8';
这种方法如果用非管理员用户是可以的,但是对管理员用户不起作用
虽然在导入前执行set names utf8 可以将客户字符集设置成功,但因为我这里是通过程序调用cmd来执行命令,如果有多条命令时,会有不会执行的情况,所以希望是一句命令就可以完成。后来终于找到一个办法,即:
c:\>mysql -uroot -pabc --default-character-set=utf8 mydb<d:a.sql
这样就实现了导入前指定字符集