共计 1898 个字符,预计需要花费 5 分钟才能阅读完成。
这期内容当中丸趣 TV 小编将会给大家带来有关 MySQL 数据库目录下面的 db.opt 是干什么用的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
概述
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 rsquo;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] hellip; create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
也可以通过 alter database 修改
ALTER {DATABASE | SCHEMA} [db_name] alter_specification hellip; alter_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
create database 时会自动生成一个文件 db.opt,存放的数据库的默认字符集,show create database 时显示数据库默认字符集即 db.opt 中字符集。这个文件丢失不影响数据库运行,该文件丢失之后新建表时,找不到数据库的默认字符集,就把 character_set_server 当成数据库的默认字符集,show create database 时显示 character_set_server 字符集。
上述就是丸趣 TV 小编为大家分享的 MySQL 数据库目录下面的 db.opt 是干什么用的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。