MySQL数据库目录下面的db.opt是干什么用的?

发布时间:2025-05-25 01:07:01 作者:益华网络 来源:undefined 浏览量(0) 点赞(0)
摘要:概述 MySQL数据库存放数据目录里的db.opt文件是MySQL建库过程中自动生成的。 细心的朋友可能会发现有时候在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’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方面的内容,感兴趣的朋友可以关注下~

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!