• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql my.cnf资料的option

mysql 搞代码 7年前 (2018-06-06) 142次浏览 已收录 0个评论

mysql my.cnf文件的option

       mysql的配置文件my.cnf里是由一个个的option组成的([***])。各个部分的作用大致如下:

[client] — 这部分的配置是mysql自带的client回去读取的部分,可以配置port/password/socket

port=3306

socket=/tmp/mysql.sock

[mysql] — 这部分配置mysql command tool会读取的部分

no-auto-rehash

[mysqld]–这部分是mysql server使用到的,比如这个页面里面的参数以及存储引擎自己的参数。

max_connections=100

innodb_buffer_pool_size=2G

key_buffer_size=32M

[mysql_safe]–下面这些都是特定的客户端工具使用到的($MYSQL_HOME/bin/下),看名字就可以明白了。

[mysqldump]

[mysqlhotcopy]

[myisamchk]

…每个工具都可以有自己的option…

具体每个option可以使用那些参数,可以是用 –help查询,比如mysql –help

参数如何生效?

       以我们最常使用的mysql command tool为例,当我们习惯的输入mysql -uroot -p 之后,它是如何读取my.cnf的呢。代码很简单,调用路径如下(5.1.58):

main.cc(bin/mysql.cc)  -->load_defaults(mysys/default.c)   -->my_load_defaults(mysys/default.c)

欢迎大家阅读《mysql my.cnf资料的option》,跪求各位点评,by 搞代码

       函数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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql my.cnf资料的option
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址