MySQL程序可以从配置文件中读取配置参数。配置文件提供了一种指定常用参数的方便方法,不用每次启动MySQL时在命令行输入参数。
可以使用以下命令查看MySQL服务读取的配置文件及顺序:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | $ mysqld --verbose --help
 mysqld  Ver 8.0.34 for Linux on x86_64 (MySQL Community Server - GPL)
 
 BuildID[sha1]=f183cd3ecfc35a4aa5da997063d5e8c97ffca986
 
 Copyright (c) 2000, 2023, Oracle and/or its affiliates.
 
 Oracle is a registered trademark of Oracle Corporation and/or its
 
 affiliates. Other names may be trademarks of their respective
 
 owners.
 
 Starts the MySQL database server.
 
 Usage: mysqld [OPTIONS]
 
 Default options are read from the following files in the given order:
 
 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf /opt/mysql/my.cnf ~/.my.cnf
 
 The following groups are read: mysql_cluster mysqld server mysqld-8.0
 
 | 
在Linux中,配置文件的位置和读取顺序如下表:
| 文件名 | 用途 | 
| /etc/my.cnf | 全局配置 | 
| /etc/mysql/my.cnf | 全局配置 | 
| *SYSCONFDIR*/my.cnf | 全局配置 | 
| $MYSQL_HOME/my.cnf | 服务器的特定配置 | 
| defaults-extra-file | 如果有的话,用 [--defaults-extra-file](https://dev.mysql.com/doc/refman/8.4/en/option-file-options.html#option_general_defaults-extra-file)指定 | 
| ~/.my.cnf | 用户特定配置 | 
| ~/.mylogin.cnf | 用户特定登陆配置(仅限客户端) | 
| *DATADIR*/mysqld-auto.cnf | 使用 SET_PERSIST 或 SET_PERSIST_ONLY保存的系统变量(仅限服务器) | 
全局配置文件内容格式一般如下:
Text| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | [client]port=3306
 socket=/tmp/mysql.sock
 
 [mysqld]
 port=3306
 socket=/tmp/mysql.sock
 key_buffer_size=16M
 max_allowed_packet=128M
 
 [mysqldump]
 quick
 
 | 
 
用户配置文件内容格式一般如下:
Text| 12
 3
 4
 5
 6
 7
 
 | [client]# The following password is sent to all standard MySQL clients
 password="my password"
 
 [mysql]
 no-auto-rehash
 connect_timeout=2
 
 |