• MySQL库目录下db.opt文件的作用


    细心的朋友可能会发现有时候在某些库目录下有个 db.opt 文件,那这个文件是干什么用的呢?如果你用vi等编辑器打开看的话,内容很简单,是用来记录该库的默认字符集编码和字符集排序规则用的。也就是说如果你创建数据库指定默认字符集和排序规则,那么后续创建的表如果没有指定字符集和排序规则,那么该新建的表将采用db.opt文件中指定的属性。

    /*
      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 the table character set was not given explicitly,
        let’s fetch the database default character set and
        apply it to the table.
      */
      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;
      }
    }

    另外要说明的是,如果你是通过alter databases(schema) 命令更改的数据库默认属性,那么现有的表的默认字符集和排序规则不受影响。

    通过创建数据库指定数据库的默认字符集和排序规则:

    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 {DATABASE | SCHEMA} db_name
        UPGRADE DATA DIRECTORY NAME
    alter_specification:
        [DEFAULT] CHARACTER SET [=] charset_name
      | [DEFAULT] COLLATE [=] collation_name

    参考:

    http://www.mysqlab.net/blog/2010/02/mysql%E5%BA%93%E7%9B%AE%E5%BD%95%E4%B8%8Bdb-opt%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD%9C%E7%94%A8/

  • 相关阅读:
    C#网络编程.套接字.TcpListener.TcpClient
    GUI原型设计工具
    C#网络编程.2.套接字.TcpListener.TcpClient.服务端客户端通信
    网站开发策略选择
    jsdefinitionguide0221
    jquery0224
    sql trigger
    实现类似51job的选择框
    完美曲线
    MonoDroid
  • 原文地址:https://www.cnblogs.com/xiaotengyi/p/3642007.html
Copyright © 2020-2023  润新知