MySQL:如何查看使用的配置文件?

Jes*_*sen 6 mysql configuration

为了重新安装我的MySQL数据库,我删除了/etc/my.cnf

但是MySQL的默认设置是什么?我如何查看正在使用的配置文件?

我可以看到,它mysql --help给了我一个当前设置的列表.但我真正的问题是我想修改local-infilemax_allowed_packet.

帮助文本还指出它从以下文件中读取:/etc/my.cnf /etc/mysql/my.cnf /opt/local/etc/mysql5/my.cnf ~/.my.cnf.但它们都不存在:

> cat /etc/my.cnf /etc/mysql/my.cnf /opt/local/etc/mysql5/my.cnf ~/.my.cnf  
cat: /etc/my.cnf: No such file or directory
cat: /etc/mysql/my.cnf: No such file or directory
cat: /opt/local/etc/mysql5/my.cnf: No such file or directory
cat: /Users/jesper/.my.cnf: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我可以创建仅包含这些设置的新配置文件吗?最具体的是:如何查看正在使用的配置文件?

这是输出 mysql --help

> mysql --help
mysql  Ver 14.14 Distrib 5.1.40, for apple-darwin10.0.0 (i386) using readline 6.0
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.

[...]

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /opt/local/etc/mysql5/my.cnf ~/.my.cnf 
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults    Print the program argument list and exit
--no-defaults       Don't read default options from any options file
--defaults-file=#   Only read default options from the given file #
--defaults-extra-file=# Read this file after the global files are read

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- -----------------------------
auto-rehash                       TRUE
character-sets-dir                (No default value)
column-type-info                  FALSE
comments                          FALSE
compress                          FALSE
debug-check                       FALSE
debug-info                        FALSE
database                          (No default value)
default-character-set             latin1
delimiter                         ;
vertical                          FALSE
force                             FALSE
named-commands                    FALSE
ignore-spaces                     FALSE
local-infile                      FALSE
no-beep                           FALSE
host                              (No default value)
html                              FALSE
xml                               FALSE
line-numbers                      TRUE
unbuffered                        FALSE
column-names                      TRUE
sigint-ignore                     FALSE
port                              0
prompt                            mysql> 
quick                             FALSE
raw                               FALSE
reconnect                         TRUE
socket                            (No default value)
ssl                               FALSE
ssl-ca                            (No default value)
ssl-capath                        (No default value)
ssl-cert                          (No default value)
ssl-cipher                        (No default value)
ssl-key                           (No default value)
ssl-verify-server-cert            FALSE
table                             FALSE
user                              (No default value)
safe-updates                      FALSE
i-am-a-dummy                      FALSE
connect_timeout                   0
max_allowed_packet                16777216
net_buffer_length                 16384
select_limit                      1000
max_join_size                     1000000
secure-auth                       FALSE
show-warnings                     FALSE
Run Code Online (Sandbox Code Playgroud)

小智 5

据我所知,没有办法看到MySQL启动时读取了什么配置文件。如果不存在,它只会使用编译时使用的默认值。注意,read是操作词,MySQL 不会让配置文件保持打开状态超过解析它的时间。

如果您非常好奇地想验证它搜索的文件的顺序,您可以简单地运行 mysqlstrace并记下access()系统调用。这将向您显示在搜索其配置时所遵循的编译顺序,以及您确实不想知道的大量内容。