我想在 MySql 服务器严格模式下禁用某些选项,但由于某种原因我什至无法找到其配置文件(my.cnf)
当前安装的MySql:Ver 14.14 Distrib 5.7.20,for macos10.12 (x86_64)
生成的输出
mysql --help
Run Code Online (Sandbox Code Playgroud)
默认选项按给定顺序从以下文件中读取:
但是没有my.conf这样的文件
我对 SO 做了一些研究工作,但没有一个建议对我有用。
我应该做什么?
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(这样它会被选择到最后),其中包含如上所述的两行(或多行)。