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下的配制文件,在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%';
有时候可能第一种方案和第二种方案都要用才能行,但我只用了第二种方案就成功了。