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

时间:2009-11-10 09:50:49

标签: 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

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

以下是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

3 个答案:

答案 0 :(得分:4)

据我所知,启动时无法查看MySQL 读取的配置文件。如果不存在,它只使用它编译的默认值。注意,读取是操作词,MySQL不会使配置文件保持打开状态,而不是解析配置文件。

如果您想要验证它搜索的文件的顺序是病态的好奇,您只需通过strace运行mysql并记下access()系统调用。这将显示搜索其配置时编译的顺序,以及您真正不想知道的大量内容。

答案 1 :(得分:3)

试试这个my.cnf或使用命令行参数加载它:

[mysqld]
max_allowed_packet  = 16M
[client]
local-infile=1

参数在适当的部分非常重要。

据我所知,MySQL按您编写的顺序读取文件,然后使用编译时设置的默认值。

答案 2 :(得分:0)

列出的配置文件只有在存在时才会被读取。您是否尝试以root身份阅读/etc/my.cnf或主目录中的其他人之一?让我感到惊讶的是,他们都没有。

无论如何,您可以创建其中一个文件,例如〜/ .my.cnf,并包含culebrón刚发布的代码。