`

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)

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

分享到:
评论

相关推荐

    mysql授权、启动、启动服务常用命令

    客户端连接: mysql --defaults-file=/etc/my.cnf 或 mysql -S /tmp/mysql.sock 2、mysqld_safe 启动mysql服务器: ./mysqld_safe --defaults-file=/etc/my.cnf --user=root & 客户端连接: mysql --defaults-file=/...

    mysql5.7arm64.zip麒麟arm64架构下的deb安装包

    2.修改/etc/my.cnf datadir = /data01/MPP/mysql/data bind-address=0.0.0.0 skip-name-resolve 3.重启mysql systemctl stop mysql.service systemctl start mysql.service 4.查看状态 systemctl status mysqld 5....

    mysql-8.0.20-macos10.15-x86_64.tar.gz

    因为 mysql 5.7 版本开始 my-default.cnf 文件不会自带,需要手动创建。 cd /usr/local/mysql/support-files sudo vi my-default.cnf 在 /usr/local/mysql/support-files 目录下创建 my-default.cnf [mysqld] ...

    mysql-test-5.7.22-linux-glibc2.12-x86_64.tar.gz

    cat /etc/my.cnf 修改结果: [mysqld] basedir=/usr/local/mysql/mysql-5.7.22 datadir=/usr/local/mysql/mysql-5.7.22/data/ 7、配置环境变量 vi ~/.bash_profile 将mysql的bin目录配置到环境变量中 PATH=$...

    hive介绍和hive环境搭建

    修改配置信息,添加: vim /etc/my.cnf [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 lower_case_table_names=1 4. 启动mysql:service mysqld restart/stop/start 5. 配置超级...

    MYSQL中文手册 帮助文档

    .my.cnf file,使用选项文件,与MySQL服务器连接,拒绝访问错误的原因,使你的密码安全,在多服务器环境中使用客户端程序 .mysql_history file,选项 .pid (process ID) file,建立表维护计划 / (division),算术...

    MySQL中报错:Can’t find file: ‘./mysql/plugin.frm’的解决方法

    最近在工作中发现了一个问题,这个问题就是MySQL的磁盘满了,将数据库目录data移动到/data3目录,/etc/my.cnf里面也修改了相应的datadir目录,权限也赋予了,但是service mysql start;的时候报错,下面话不多说了,...

    Ubuntu 设置开放 MySQL 服务远程访问教程

    vim /etc/mysql/my.cnf 找到 bind-address = 127.0.0.1 改为: bind-address = 0.0.0.0 #允许任意ip地址访问 也可以指定IP地址。 重启MySQL: sudo /etc/init.d/mysqld restart 第二步,修改数据库配置: 授权root...

    使用SKIP-GRANT-TABLES 解决 MYSQL ROOT密码丢失

    windows环境中:%MySQL(和PHP搭配之最佳组合)_installdir%\my.ini //一般在MySQL(和PHP搭配之最佳组合)安装目录下有my.ini即MySQL(和PHP搭配之最佳组合)的配置文件。 linux环境中:/etc/my.cnf 在[MySQL(和PHP搭配...

    强大的国外注入工具-darkMySQLi.py

    ] Found /et@c/m@ysql/my.cnf [!] http://www.rayner.com/products.php?id=22/**/AND/**/1=2/**/UNION/**/SELECT/**/1,LOAD_FILE(0x2f6574632f6d7973716c2f6d792e636e66),3,4,5, 6,7,8,9,10-- [-] 14:06:43 [-]...

Global site tag (gtag.js) - Google Analytics