mysql 中文乱码问题

mysql中文乱码问题网上资料比较多,但又比较分散,本人在此进行一些整理,同时也结合自己的一些经验。

总共有这么几种方案:

方案一:

      修改配制文件,找到mysql下的配制文件,在ubuntu下是在/etc/mysql中的my.cnf,在其它系统中可能为my.ini,具体位置不清楚。
   
      找到配制文件后进行修改,在[client]一行的上面加上:default-character-set=utf8 ,若想要client, mysqld采用不同与utf8的编码,则可在client和mysqld里面再重新定义,比如在[client]下面加上:default-character-set=gbk.
其中的utf8和gbk都可以改成自己想要的编码。

方案二:

     不修改配置文件,若不修改配制文件则在创建表的时候要注明表的编码方案,如
create database pencat default character set utf8;
CREATE TABLE `pencat`.`USER` (
`user_id` int(11) NOT NULL auto_increment,
`name` varchar(160) NOT NULL,
)DEFAULT CHARSET=utf8;

同时在进行数据库连接时也要声明编码类型如java的连接:
"jdbc:mysql://127.0.0.1/search?characterEncoding=utf8"
同时客户端登陆时也要声明 以mysql --default-character-set=utf8 -u root -p登录

对于以前创建的数据库不是utf8编码的可以修改,修改方法如下:
  ALTER DATABASE sample ####这里修改整个数据库的编码
       CHARACTER SET utf8
       DEFAULT CHARACTER SET utf8
       COLLATE utf8_general_ci
       DEFAULT COLLATE utf8_general_ci;

当然了,你也可在在建数据库的时候指定编码,比如:

CREATE DATABASE sample

       CHARACTER SET utf8
       DEFAULT CHARACTER SET utf8
       COLLATE utf8_general_ci
       DEFAULT COLLATE utf8_general_ci ;


第一种方案需重启Ubuntu mysql
停用:sudo /usr/local/mysql/bin/mysqladmin shutdown
启用sudo /usr/local/mysql/bin/mysqld_safe -user=mysql &

查看Ubuntu mysql编码

启用后sudo /usr/local/mysql/bin/mysql
mysql>show variables like 'character%';

有时候可能第一种方案和第二种方案都要用才能行,但我只用了第二种方案就成功了。

你可能感兴趣的:(mysql,jdbc,ubuntu)