1.现象

 在命令行中,执行sql语句如果包含中问题,提示“ Data too long for column '列名' at row 1”

  或者在命令行中查询出的结果中,中文乱码

 

2.分析

 a.查看命令行的默认编码方式:右击命令行标题栏--属性--当前代码页

 

mysql列转行 mysql列转行函数乱码_命令行

b.查看mysql中客户端与结果集的编码方式

   show variables like 'character%';,可以看到,客户端与结果集的编码方式都是utf8

mysql列转行 mysql列转行函数乱码_命令行_02

 

问题找到了,命令行与mysql的编码方式不一样导致的乱码;

 

3.解决方法

先停掉mysql 的服务,然后在mysql的安装目录下找到my.ini,定位到client section,将默认字符改成gbk就OK了。

mysql列转行 mysql列转行函数乱码_编码方式_03