为了重新安装我的MySQL数据库,我删除了/etc/my.cnf
但是MySQL的默认设置是什么?我如何查看正在使用的配置文件?
我可以看到mysql --help
为我提供了当前设置的列表。但我真正的问题是我想要修改local-infile
和max_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
答案 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刚发布的代码。