首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql my.cnf资料的option

2013-07-11 
mysql my.cnf文件的optionmain.cc(bin/mysql.cc) --load_defaults(mysys/default.c)--my_load_defaults(

mysql my.cnf文件的option
main.cc(bin/mysql.cc) -->load_defaults(mysys/default.c) -->my_load_defaults(mysys/default.c)

? ? ? ?函数load_defaults的第二个入参为load_default_groups, mysql.cc中是这样定义的:

static const char *load_default_groups[]= { "mysql","client",0 };

? ? ? ?load_defaults函数对这个入参的注释为:“groups?Which [group] entrys to read.”。这下明确了,mysql command tool 会去读取my.cnf中"[mysql]"和"[client]"部分。(除非指定--no-defaults)。

? ? ? ?在my_load_defaults函数里,有这么一段:

  /*    Check if the user doesn't want any default option processing    --no-defaults is always the first option  */  if (*argc >= 2 && !strcmp(argv[0][1],"--no-defaults"))  {    /* remove the --no-defaults argument and return only the other arguments */    uint i;    if (!(ptr=(char*) alloc_root(&alloc,sizeof(alloc)+ (*argc + 1)*sizeof(char*))))      goto err;    res= (char**) (ptr+sizeof(alloc));    res[0]= **argv;/* Copy program name */    for (i=2 ; i < (uint) *argc ; i++)      res[i-1]=argv[0][i];    res[i-1]=0;/* End pointer */    (*argc)--;    *argv=res;    *(MEM_ROOT*) ptr= alloc;/* Save alloc root for free */    if (default_directories)      *default_directories= dirs;    DBUG_RETURN(0);  }

? ? ? ?当使用了--no-defaults参数(如果使用,必须作为第一个option出现,这个是对所有的client都适用的)并且输入参数>=2时,mysql command tool不会去加载my.cnf中对应的option。

? ? ? ?其它的client则类似,比如mysqlbinlog会去读取"[mysqlbinlog]"和"[client]";mysqldump会去读取"[mysqldump]"和“[client]”...

?

参考链接:

http://dev.mysql.com/doc/refman/5.5/en/option-files.html

热点排行