概述
MySQL数据库存放数据目次里的db.opt文件是MySQL建库进程中自动天生的。
仔细的伴侣也许会发明偶然辰在MySQL数据库的某些库目次下有个db.opt文件,那这个文件是干什么用的呢?假如你用记事本等编辑器打开看的话,内容很简朴,是用来记录该库的默认字符集编码和字符集排序法则用的。
db.opt
MySQL的每个数据库目次中有一个文件db.opt,该文件首要 用来存储当前数据库的默认字符集和字符校验法则。
- default-character-set=utf8
- default-collation=utf8_general_ci
该文件中存储的是建设数据库时默认的字符集和字符集校验法则,则该数据库在往后建设表时假如没有指定字符集和校验法则,则该表的这两个属性将去自这两个表。
MySQL数据库目次下面的db.opt是干什么用的?
MySQL源码:
- /* 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 (!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;
- }
字符集和字符集校验法则
建设数据库时指定字符集和字符集校验法则:
- create database if not exists test default charset utf8 default collate utf8_general_ci;


修改数据库的字符集和字符集校验法则:
- alter database test default [charset|character set ] latin1 default collate latin1_swedish_ci;
建设数据库create database
- CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
- [create_specification] …
- create_specification:
- [DEFAULT] CHARACTER SET [=] charset_name
- | [DEFAULT] COLLATE [=] collation_name
也可以通过alter database修改
- ALTER {DATABASE | SCHEMA} [db_name]
- alter_specification …
- alter_specification:
- [DEFAULT] CHARACTER SET [=] charset_name
- | [DEFAULT] COLLATE [=] collation_name
总结
1、create database时会自动天生一个文件db.opt,存放的数据库的默认字符集,show create database时表现数据库默认字符集即db.opt中字符集。
2、这个文件丢失不影响数据库运行,该文件丢失之后新建表时,找不到数据库的默认字符集,就把character_set_server当成数据库的默认字符集,show create database时表现character_set_server字符集。
后头会分享更多devops和DBA方面的内容,感乐趣的伴侣可以存眷下~
【编辑保举】
- 收集带宽怎样影响 MySQL 机能
- MongoDB数据库误删后的规复
- 删库不跑路-详解MySQL数据规复
- 超具体的Oracle数据库索引建设及索引重建改观类型
- 深入浅出MySQL索引的那些事儿
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|