mysql 配置文件中的默认字符集设置与建表时默认字符集什么关系?

nao 发布于 2015/03/13 17:21
阅读 3K+
收藏 1

在配置文件中更改了mysql 的默认配置文件中有关字符集的配置选项,如下:

[client]
default-character-set=utf8

[mysqld]
#set the default character set.
character-set-server=utf8
init_connect='SET NAMES utf8'

[mysqld_safe]
default-character-set=utf8

[mysql]
default-character-set=utf8
配置成功后,

建了一个表:

但是表的默认字符集还是latin1,而不是我想的utf8,是不是上面的配置和表的默认字符集就没有关系?

除了建表的时候指定默认字符集以外,还有别的方式可以改变表的默认字符集吗?

加载中
0
JeffreyLin
JeffreyLin

建数据库时,也可以指定默认字符集的:
create database db1 default character set utf8;
你可以用 status; 命令,查看各级别的字符集

1
fengyqf
fengyqf
服务器,数据库,表,字段,这几个层级上都可以指定字符集,默认值逐级继承。为移植时兼容性,最好对每个字段指定字符集
nao
nao
如你所说看了这篇文章后清楚多了:http://hi.baidu.com/11haiou/item/212707dad7395f5ffb5768d3
0
JavaOlder
JavaOlder

有关系。你上面设置的默认字符集就是utf8.你那条建表的语句字符集是设置latin1了嘛。。

nao
nao
没有,在图二中有创建表的sql语句,是在配置文件修改成功后,就是图一执行玩后,执行的图二的语句。
0
ifeixiang
ifeixiang
不管是linux,还是mysql,字符集统一就行,在my.cnf配置了default-character-set之后,create table操作就不要再指定字符集了
nao
nao
是啊,在建表时没有指定字符集,想着表的字符集应该是我配置文件里写的utf8,但是查看表的字符集是latiin1而不是utf8呀
0
知秋一叶wp
知秋一叶wp
因为你mysql数据库的database(oracle叫schema)是latin1格式。所以新建表默认也是latin1,即使配置成第一张图所示。
返回顶部
顶部