my.cnf 驻留在 macOS High Sierra 上的哪里?

Chr*_*lix 5 mysql macos

我想在 MySql 服务器严格模式下禁用某些选项,但由于某种原因我什至无法找到其配置文件(my.cnf)

当前安装的MySql:Ver 14.14 Distrib 5.7.20,for macos10.12 (x86_64)

生成的输出

mysql --help
Run Code Online (Sandbox Code Playgroud)

默认选项按给定顺序从以下文件中读取:

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • /usr/local/mysql/etc/my.cnf
  • 〜/.my.cnf

但是没有my.conf这样的文件

我对 SO 做了一些研究工作,但没有一个建议对我有用。

我应该做什么?

Ric*_*mes 9

MySQL 中内置了默认值。配置文件(如果有)将覆盖默认值。

请注意,除了启动期间之外,不会查看配置文件。因此,在重新启动之前,编辑或创建此类文件不会产生任何效果mysqld

如果你搞乱了语法,mysqld将无法启动。然后您需要在启动期间或在日志文件中查找错误。(或者你可以在这里问“我的语法错误是什么”。)

至于将使用的配置文件的位置和名称:

$ mysql --help
Run Code Online (Sandbox Code Playgroud)

为您提供 的列表mysql,但也许您的服务器需要它,所以尝试

$ mysqld --help --verbose
Run Code Online (Sandbox Code Playgroud)

给你长输出;从顶部开始大约 50 行,您应该看到类似以下内容:

Usage: mysqld [OPTIONS]

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 
Run Code Online (Sandbox Code Playgroud)

你问的是my.conf;这是一个错字吗?

无论如何,如果这些文件丢失,您可以创建它们,使它们可由 mysql 读取,然后将内容放入其中,[mysqld]以便服务器能够看到它们。

个人优先

无论默认值和/或配置文件中有什么,您都可以添加到给定的最后一个文件。在上面的示例中,它“隐藏”.my.cnf您的主目录中。您需要做的就是创建几行:

[mysql]
some_setting = somevalue
[client]
some_setting = somevalue
Run Code Online (Sandbox Code Playgroud)

这对“mysql”命令行工具和/或其他客户端(也许)有帮助。

但如果您需要对服务器进行更改mysqld,则需要将其放在其他文件之一中。同样,最小值是这样的

[mysqld]
some_setting = somevalue
Run Code Online (Sandbox Code Playgroud)

请注意mysqld指的是服务器。并记得重新启动服务。

另请注意:如果您看到(在现有配置文件中),,!includedir ...则转到该目录以查找任意数量的其他文件。您可以添加自己的文件,例如z.cnf(这样它会被选择到最后),其中包含如上所述的两行(或多行)。