在写Android程序的时候,使用中文传递数据时,SQL查询总是得不到结果,经过调试,request.getparameter可以得到中文结果,并且输入的SQL语句经检验没有问题,而且,使用非中文的时候是没有问题的,于是我猜到了估计是数据库编码的问题,可是在sqlyog上改了半天都得不到想要的结果,搜了半天才找到是Server, Db , Client ,Conn.要全部改为utf-8,索性都改了,避免以后麻烦.印象中Windows好像没有这个问题,不知道是不是Linux下才有的.改好了之后效果立竿见影,马上见效.

在Ubuntu 下配置 MySQL 的字符编码。安装完 MySQL 后,系统默认的字符编码是 latin1 ,输入的是中文,可是输出却是一堆乱码。现在要做的就是把 MySQL的默认字符编码设置为支持中文的编码,如 GBK、GB23112、等。

首先进入MySQL存放配置文件的目录

~#cd /etc/mysql/

执行ls,查看下此文件夹下的文件

~#ls

会发现有个文件是my.cnf,这个文件是mysql的配置文件

用vim打开此文件

~#vi my.cnf

打开my.cnf后,会发现在此文件的最后有两行(此配置文件又引用了其他的两个配置文件,我们需要修改的是mysqld.cnf ,这是mysql服务端基础配置文件 ):

!includedir /etc/mysql/conf.d

!includedir /etc/mysql/mysql.conf.d

用vim打开/etc/mysql/mysql.conf.d/mysqld.cnf文件(如果提示不可编辑的话,可以切换账号为root)

~#vi /etc/mysql/mysql.conf.d/mysqld.cnf

打开文件后,在[mysqld] 的skip-external-locking下,添加character-set-server=utf8

......

[mysqld]

......

skip-external-locking

character-set-server=utf8

......

下面,我们还要去设置客户端的默认编码,我们现在进入mysql客户端配置文件目录

~#cd /etc/mysql/conf.d

~#ls

ls后,发现有个文件mysql.cnf

用vi打开,并在[mysql]下插入一行:default-character-set=utf8

~#vi mysql.cnf

[mysql]

default-character-set=utf8

最后,重启mysql 服务

~#service mysql restart

进入mysql,用\s查看是否修改成功

48304ba5e6f9fe08f3fa1abda7d326ab.png

mysql>\s

......

Server characterset: utf8

Db characterset: utf8

Client characterset: utf8

Conn. characterset: utf8

......

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐