MySQL資料庫的db.opt檔案

來源:互聯網
上載者:User

MySQL的每個資料庫目錄中有一個檔案db.opt,該檔案主要 用來儲存當前資料庫的預設字元集和字元校正規則。

eg.default-character-set=latin1
default-collation=latin1_swedish_ci

該檔案中儲存的是建立資料庫時預設的字元集和字元集校正規則,則該資料庫在以後建立表時如果沒有指定字元集和校正規則,則該表的這兩個屬性將去自這兩個表。

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|character set ] 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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.