是否有一个MySQL命令来定位my.cnf配置文件,类似于PHP的phpinfo()定位它的PHP .ini?
当前回答
这可能有用:
strace mysql ";" 2>&1 | grep cnf
在我的机器上输出:
stat64("/etc/my.cnf", 0xbf9faafc) = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=4271, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3
read(3, "# /etc/mysql/my.cnf: The global "..., 4096) = 4096
stat64("/home/xxxxx/.my.cnf", 0xbf9faafc) = -1 ENOENT (No such file or directory)
因此,看起来/etc/mysql/my.cnf是一个,因为它的stat64()和read()是成功的。
其他回答
用户也可以执行该命令。
帮助| grep CNF
如果你在VPS中,并试图在已经运行的服务器上编辑my.cnf,你可以尝试:
ps aux | grep mysql
您将显示mysql命令正在运行的参数以及——defaults-file指向的位置
请注意,您的服务器可能运行多个MySQL/MariaDB服务器。如果您看到一行没有——defaults-file参数,该实例可能正在从mysqladmin上提到的.cnf中检索配置——帮助其他人指出。
Ubuntu 16: /etc/mysql/mysql.conf.d/mysqld.cnf
没有MySQL内部命令来跟踪这一点,这有点太抽象了。该文件可能位于5个(或更多)位置,并且它们都是有效的,因为它们加载级联。
/etc/my.cnf /etc/mysql/my.cnf $ MYSQL_HOME / my.cnf [datadir]。/ my . cnf中所做 ~ / .my.cnf
这些是MySQL查看的默认位置。如果它发现不止一个,它将加载它们中的每一个&值相互覆盖(在列出的顺序,我认为)。此外,——defaults-file参数可以覆盖整个内容,所以…基本上,这是一件非常痛苦的事。
但由于它太令人困惑,很有可能它只是在/etc/my.cnf.中
(如果你只是想看值:SHOW VARIABLES,但你需要权限这样做。)
运行mysql——help,你会看到:
默认选项按照指定顺序从以下文件中读取:/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
在Ubuntu上(直接编辑):
$ sudo nano /etc/mysql.conf.d/mysqld.cnf