# 配置文件

在 Windows 上，MySQL 程序按照以下表格中从上往下的顺序从指定的文件中读取启动选项（后读取的文件中的选项会覆盖前面读取的文件中的同名选项）。

| 文件名                                                                                                                                                                                                                                                                  | 目的                                        |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| <p><mark style="color:blue;"><strong>%WINDIR%\my.ini</strong></mark></p><p><mark style="color:blue;"><strong>%WINDIR%\my.cnf</strong></mark></p>                                                                                                                     | 全局选项                                      |
| <p><mark style="color:blue;"><strong>C:\my.ini</strong></mark></p><p><mark style="color:blue;"><strong>C:\my.cnf</strong></mark></p>                                                                                                                                 | 全局选项                                      |
| <p><em><mark style="color:blue;"><strong>BASEDIR</strong></mark></em><mark style="color:blue;"><strong>\my.ini</strong></mark></p><p><em><mark style="color:blue;"><strong>BASEDIR</strong></mark></em><mark style="color:blue;"><strong>\my.cnf</strong></mark></p> | 全局选项                                      |
| <mark style="color:blue;">**defaults-extra-file**</mark>                                                                                                                                                                                                             | 在命令行中通过 **--defaults-extra-file** 选项指定的文件 |
| <mark style="color:blue;">**%APPDATA%\MySQL\\.mylogin.cnf**</mark>                                                                                                                                                                                                   | 登录路径选项 (clients only)                     |

其中：

* <mark style="color:blue;">**%WINDIR%**</mark>： 通常是 **C:\WINDOW**

  <pre class="language-powershell"><code class="lang-powershell"><strong>C:\> echo %WINDIR%
  </strong><strong>
  </strong>C:\WINDOWS
  </code></pre>
* <mark style="color:blue;">**%APPDATA%**</mark>：Windows 下应用保存数据的路径

  ```powershell
  C:\> echo %APPDATA%

  C:\Users\zhang\AppData\Roaming
  ```
* <mark style="color:blue;">**BASEDIR**</mark>：MySQL 的安装路径。假如使用 MySQL Installer 安装 MySQL 5.7，其安装路径通常为**C:\Program Files\MySQL\MySQL Server 5.7**

> 尽管 <mark style="color:orange;">**MySQL Installer**</mark> 在安装过程中会将大多数文件放到 Program Files 文件夹下，但是却<mark style="color:orange;">**会将 my.ini 文件放到 C:\ProgramData\MySQL\MySQL Server 5.7\ 路径下。**</mark>
>
> 使用 MySQL Installer 安装后，Windows 系统上会存在一个服务（service），该服务启动时的命令中带有 <mark style="color:blue;">**--defaults-extra-file**</mark> 选项，其值为 <mark style="color:orange;">**C:\ProgramData\MySQL\MySQL Server 5.7\my.ini**</mark>。
>
> <pre class="language-powershell" data-overflow="wrap"><code class="lang-powershell"><strong>"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57
> </strong></code></pre>
