wiki/运维/数据库/MySQL/mysql笔记/配置文件详解.md
2025-01-02 10:46:09 +08:00

2.0 KiB
Raw Blame History

配置文件路径

路径名 备注
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf 特定于服务器的选项(仅限服务器)
defaults-extra-file 命令行指定的额外配置文件路径
~/.my.cnf 用户特定选项
~/.mylogin.cnf 用户特定的登录路径选项(仅限客户端

配置文件的内容

与在命令行中指定启动选项不同的是,配置文件中的启动选项被划分为若干个组,每个组有一个组名,用中括号[]扩起来,像这样:

[server]
(具体的启动选项...)

[mysqld]
(具体的启动选项...)

[mysqld_safe]
(具体的启动选项...)

[client]
(具体的启动选项...)

[mysql]
(具体的启动选项...)

[mysqladmin]
(具体的启动选项...)

像这个配置文件里就定义了许多个组组名分别是server、mysqld、mysqld_safe、client、mysql、mysqladmin。每个组下面可以定义若干个启动选项 配置文件中不同的选项组是给不同的启动命令使用的,如果选项组名称与程序名称相同,则组中的选项将专门应用于该程序。例如,[mysqld]和[mysql]组分别应用于mysqld服务器程序和mysql客户端程序。不过有两个选项组比较特别

  • [server]组下面的启动选项将作用于所有的服务器程序。
  • [client]组下面的启动选项将作用于所有的客户端程序。
    启动命令 类别 能读取的组
    mysqld 启动服务器 [mysqld]、[server]
    mysqld_safe 启动服务器 [mysqld]、[server]、[mysqld_safe]
    mysql.server 启动服务器 [mysqld]、[server]、[mysql.server]
    mysql 启动客户端 [mysql]、[client]
    mysqladmin 启动客户端 [mysqladmin]、[client]
    mysqldump 启动客户端 [mysqldump]、[client]

同一个配置文件中多个组的优先级

[server]
default-storage-engine=InnoDB

[mysqld]
default-storage-engine=MyISAM

那么,将以最后一个出现的组中的启动选项为准