共計 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 行業資訊頻道。