Ubuntu 16.04.1下修改MySQL默认编码

在写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查看是否修改成功

复制代码
mysql>\s  
......  
Server     characterset: utf8  
Db         characterset: utf8  
Client     characterset: utf8  
Conn.      characterset: utf8  
......  
posted @ 2017-04-18 17:29  黑夜不再来  阅读(1504)  评论(0编辑  收藏  举报