MySQL库目录下db.opt文件的作用
细心的朋友可能会发现有时候在某些库目录下有个 db.opt 文件,那这个文件是干什么用的呢?如果你用vi等编辑器打开看的话,内容很简单,是用来记录该库的默认字符集编码和字符集排序规则用的。也就是说如果你创建数据库指定默认字符集和排序规则,那么后续创建的表如果没有指定字符集和排序规则,那么该新建的表将采用db.opt文件中指定的属性。
/*
Set table default charset, if not set
SYNOPSIS
set_table_default_charset()
create_info Table create information
DESCRIPTION
If the table character set was not given explicitely,
let’s fetch the database default character set and
apply it to the table.
*/
static void set_table_default_charset(THD *thd,
HA_CREATE_INFO *create_info, char *db)
{
/*
If the table character set was not given explicitly,
let’s fetch the database default character set and
apply it to the table.
*/
if (!create_info->default_table_charset)
{
HA_CREATE_INFO db_info;
load_db_opt_by_name(thd, db, &db_info);
create_info->default_table_charset= db_info.default_table_charset;
}
}
另外要说明的是,如果你是通过alter databases(schema) 命令更改的数据库默认属性,那么现有的表的默认字符集和排序规则不受影响。
通过创建数据库指定数据库的默认字符集和排序规则:
[create_specification] …
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
也可以通过alter database修改
alter_specification …
ALTER {DATABASE | SCHEMA} db_name
UPGRADE DATA DIRECTORY NAME
alter_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:ivan 来源: MySQL实验室
- 标签: opt
- 发布时间:2010-02-08 23:48:25
- [502] WEB系统需要关注的一些点
- [15] 哪本书是对程序员最有影响、每个程序员都该阅读
- [14] 修改系统最大文件句柄数
- [13] 一次神奇的MySQL优化
- [13] 移动音乐产品梳理
- [12] Spark性能优化——和shuffle搏斗
- [12] Python 代码规范小结
- [12] 豆瓣是啥?
- [12] InnoDB insert性能拐点测试
- [11] 一张图帮你看懂 iPhone 的屏幕分辨率