MYSQL配置文件解析

12 篇文章 0 订阅
1. 收集默认的目录: 接口 init_default_directories();
主要是下面的目录:
  1. "/etc/"
  2. "/etc/mysql/"
  3. 环境变量中设置的: MYSQL_HOME
  4. 当前用户的home目录 : "~/"

2. 如果命令行参数中有"--no-defaults"选项, 则将"--no-defaults"选项直接从现有的命令行参数中去掉, 然后直接返回,即不去解析配置文件。

3. 如果没有"--no-defaults"选项, 则解析配置文件: my_search_option_files()
检查命令行中是否有: "--defaults-file="; "--defaults-extra-file="; "--defaults-group-suffix=";
    a). 如果有"--defaults-group-suffix="选项,则在默认的group后面添加带后缀的group, 
      默认group:
   const char *load_default_groups[] =
    {
       #ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
          "mysql_cluster",
       #endif
             "mysqld", "server", MYSQL_BASE_VERSION, 0, 0
   };

如果后缀是 _A: "--defaults-group-suffix= _A", 则所有的group将是
   const char *load_default_groups[] =
    {
       #ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
          "mysql_cluster",
       #endif
             "mysqld", "server", MYSQL_BASE_VERSION, 
    #ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
          "mysql_cluster _A",
       #endif 
      "mysqld _A", "server _A", MYSQL_BASE_VERSION _A

   };

   b).  如果有"--defaults-file="选项, 则只是从"--defaults-file="指定的配置文件中读取配置选项;
  
   c).  如果没有"--defaults-file="选项, 则从传递进来的" MYSQL_CONFIG_NAME "my""加默认的后缀名文件中去读配置选项

  d).  如果上面的都不成功,则从默认的目录(即init_default_directories()中获得的默认目录中读取配置文件, 后缀一般是.cnf); 如果默认目录为空(mysqld好像不为空, 其他可能为空), 则从"--defaults-extra-file="指定的文件中读取配置文件。


MYSQL将配置文件中的选项读取以后,会将选项的前面加上"--",最后会将所有的配置文件选项和命令行选项都做为命令行选项拷贝到argv中作为程序的选项。最后将选项赋给了defaults_argv和defaults_argc。



















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值