`

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通过my.cnf修改默认字符集为utf-8的方法和注意事项

    首先,my.cnf是MySQL服务器的主配置文件,通常位于 `/etc/my.cnf` 或者 `/full/path/mysql/bin/my.cnf`。在这个文件中,你可以设置多个不同部分的字符集和校对集。以下是修改默认为UTF-8的配置示例: ```ini ...

    #CentOS7下安装mysql8.txt

    ### CentOS 7 下 MySQL 8 安装指南 #### 一、概述 ...安装过程中需要注意的几个重点是:正确解压并移动文件、添加用户和用户组、配置 my.cnf 文件等。希望这篇指南能够帮助您顺利完成 MySQL 8 的安装配置。

    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....

    Linux-修改-Mysql-数据库-存放路径

    如果`/etc/my.cnf`文件不存在,则可以从`/usr/share/mysql/my-medium.cnf`文件中复制内容到`/etc/my.cnf`。 ```bash cp /usr/share/mysql/my-medium.cnf /etc/my.cnf ``` 2. **编辑配置文件**:打开配置文件,...

    linux上安装mysql5.7.docx

    配置MySQL的主配置文件`my.cnf`,通常位于`/etc/my.cnf`,以设置数据目录、端口、字符集等参数: ``` [mysqld] datadir=/usr/local/mysql/data basedir=/usr/local/mysql socket=/tmp/mysql.sock user=mysql ...

    mysql多实例.docx

    接下来,将`my.cnf`和`mysql`文件解压并上传到对应的目录下。 ##### 2. 启动MySQL服务 启动MySQL服务时需要指定每个实例的配置文件路径。实际命令如下: ``` mysqld_safe --defaults-file=/data/3306/my.cnf 2&gt;&1...

    mysql5.7安装.docx

    - 创建 MySQL 的配置文件 `/etc/my.cnf`,并添加必要的配置项,如数据库的路径、监听端口等。 5. **软链接创建**: - 如果 `/var/lib/mysql` 目录下不存在 `mysql` 子目录,则需要手动创建。命令为 `mkdir -p /var...

    mysql5.6离线安装与配置.docx

    - 在`/etc`目录下新建配置文件`my.cnf`,或者如果在MySQL文件夹中已有此文件,则修改该文件。 - 配置文件内容如下: ``` [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/var/lib/...

    galera cluster for mysql集群部署方案

    - 注释掉 `/etc/my.cnf.d/wsrep.cnf` 文件中的 `skip-grant-tables` 行。 - 停止 MySQL 服务: ``` service mysqld stop ``` - 重新启动 MySQL 服务: ``` /usr/sbin/mysqld --user=mysql & ``` - 登录 ...

    ubuntu下mysql的安装.docx

    - my.cnf是MySQL的配置文件,它定义了MySQL服务器的运行参数。通过编辑这个文件,可以调整各种性能和安全设置。 - 使用`vi`编辑器打开my.cnf文件进行修改,保存后退出。 7. **rc.local文件的处理**: - `/etc/rc...

    Linux上安装mysql.docx

    2. 找到 `my.cnf` 文件,通常在 `/etc/mysql/my.cnf` 或 `/etc/mysql/mysql.conf.d/mysqld.cnf`。在`bind-address = 127.0.0.1`这一行前加上`#`注释掉,允许所有IP连接。 3. 添加`skip-external-locking`和`skip-...

    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] ...

    Linux安装Mysql5.6教程(手把手教你)

    检查`support-files`目录下是否有`mysql-medium.cnf`文件,如果有,则复制到其他位置,例如命名为`my.cnf`: ```bash cp support-files/mysql-medium.cnf my.cnf ``` 如果没有,可以根据实际情况自行创建配置文件。 ...

    MySQL在Ubuntu系统上的安装配置

    打开`/etc/mysql/my.cnf`文件,并注释掉`bind-address`这一行,以便让MySQL监听所有地址。 ```bash # 编辑MySQL配置文件 sudo vi /etc/mysql/my.cnf # 注释掉以下行 # bind-address = 127.0.0.1 ``` 2. **...

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

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

    centos7安装配置mysql5.7教程全

    2. 开启慢查询日志:在my.cnf配置文件中添加`slow_query_log = 1`和`slow_query_log_file = /var/log/mysql/slow-query.log`,重启MySQL服务使配置生效。 3. 调整性能参数:根据系统资源和需求,优化my.cnf中的其他...

    ubuntu安装mysql(1).doc

    如果你想从其他机器远程连接到MySQL,需要编辑`/etc/mysql/my.cnf`或`/etc/mysql/mysql.conf.d/mysqld.cnf`(具体取决于文件是否存在),取消`bind-address = 127.0.0.1`的注释,改为`#bind-address = 127.0.0.1`。...

    liunx centos7 mysql5.7 主从配置

    1. 打开配置文件:vi /etc/my.cnf 2. 添加参数: server-id=1 log-bin=mysql-bin binlog-do-db=test binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-...

Global site tag (gtag.js) - Google Analytics