对于自制的mysql安装,my.cnf在哪里?

chr*_*aly 285 mysql homebrew

对于自制的mysql安装,my.cnf在哪里?它安装一个吗?

ewa*_*she 267

自制软件mysql包含安装的support-files文件夹中的示例配置文件.

ls $(brew --prefix mysql)/support-files/my-*
Run Code Online (Sandbox Code Playgroud)

如果您需要更改默认设置,可以使用其中一个作为起点.

cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

正如@rednaw指出的那样,自制的MySQL安装很可能就在这里,/usr/local所以不应该将my.cnf文件添加到系统/etc文件夹中,所以我更改了将文件复制到的命令/usr/local/etc.

如果您使用的是MariaDB而不是MySQL,请使用以下命令:

cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

  • 如果Homebrew在`/ usr/local /`中安装了MySQL(我认为这是默认的),你也可以将`my.conf`放在`/ usr/local/etc /`中,它不需要root权限. (7认同)
  • `sudo cp $(brew --prefix mysql)/support-files/my-default.cnf/etc/my.cnf` (4认同)

Jer*_*con 253

默认情况下没有my.cnf.因此,MySQL以所有默认设置启动.如果您想创建自己的my.cnf以覆盖任何默认值,请将其放在/etc/my.cnf.

此外,您可以运行mysql --help并查看列出的conf位置.

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 
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 option file.
--defaults-file=#       Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
Run Code Online (Sandbox Code Playgroud)

如您所见,还有一些选项可以绕过conf文件,或指定在命令行调用mysql时要读取的其他文件.

  • 这似乎不再是这种情况; 我在/usr/local/Cellar/mysql/5.6.15/(或者您安装的任何版本)中看到了一个my.cnf文件 (49认同)
  • `mysql --help | grep cnf`实际上更容易找到线条. (21认同)
  • @williamt"mysql --help"没有列出该文件被使用,我认为它只是安装文件附带的默认文件 (6认同)
  • 在5.6.26上可以运行:ls $(brew --prefix mysql)/*.cnf` (3认同)
  • 截至目前(2020 年 2 月)“my.cnf”位于“/usr/local/etc”下(“mysql@5.7”brew 公式) (3认同)
  • 我在5.6.26,我在那里看不到它. (2认同)

Joh*_*hir 28

一种方法可以找到:

sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
Run Code Online (Sandbox Code Playgroud)

  • 您可以在OSX上使用`mdfind -name my.cnf`而不是`locate`命令 (13认同)
  • 很棒的答案,我了解了locate.updatedb。但是,默认情况下没有配置文件,请参见下面的答案 (4认同)
  • 我得到的是 `/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf` 和 `/usr/local/etc/my.cnf` (3认同)

Sim*_*mba 25

添加另一个答案原因

  • 接受的答案是正确的。由于我们讨论的是安装的 Homebrew mysql,而不是手动安装的 MySQL,因此有更直接的方法来查找conf.d文件。
  • 前面的答案可能有点过时,M1 Mac 上的 Homebrew 存储在不同的位置

会议

在安装过程中,Homebrew 将其my.cnf复制到以下位置

  • /usr/local/etc/my.cnf适用于 x86 Mac
  • /opt/homebrew/etc/my.cnf适用于 M1 Mac

Homebrew 选择/usr/local, 或/opt/homebrew来存储包,因此默认的conf文件不存储在/etc/but/usr/local/etc或中/opt/homebrew/etc

事实上,自制程序在从源代码-DSYSCONFDIR=编译期间更改了(默认配置位置)标志。mysql

启动服务

简短的回答:运行brew info mysql并检查提示。

推荐的方式是brew services start mysql,使用launchd来管理服务。(launchd被视为systemdmacOS 上的替代方案)

对于任何想要手动启动它的人来说,mysql.start无需任何选项就足以启动该服务。(mysql.start是提供的脚本来mysql帮助启动服务)


naa*_*ter 16

什么都没有帮助我 - 我无法覆盖/etc/my.cnf文件中的设置.所以我像John建议的那样搜索/sf/answers/558188011/

sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
Run Code Online (Sandbox Code Playgroud)

它发现了另一个my.cnf

/usr/local/Cellar/mysql/5.6.21/my.cnf
Run Code Online (Sandbox Code Playgroud)

更改此文件对我有用!不要忘记重启启动代理:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Run Code Online (Sandbox Code Playgroud)


Fus*_*are 14

在我的系统中它是

nano /usr/local/etc/my.cnf.default 
Run Code Online (Sandbox Code Playgroud)

作为模板和

nano /usr/local/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

工作.


lui*_*9mx 10

在你的shell类型上 my_print_defaults --help

在结果的底部,您应该能够看到服务器从中读取配置的文件.它打印的内容如下:

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


Emi*_*röm 10

由于mysql --help显示了一个文件列表,我发现管道结果ls以查看它们中存在哪些文件很有用:

$ mysql --help | grep /my.cnf | xargs ls
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

对于我的(Homebrew安装)MySQL 5.7,似乎文件已打开/usr/local/etc/my.cnf.


ken*_*orb 5

您可以找到my.cnf特定包提供文件的位置,例如

brew list mysql # or: mariadb
Run Code Online (Sandbox Code Playgroud)

除了验证该文件是否被读取外,您还可以运行:

sudo fs_usage | grep my.cnf
Run Code Online (Sandbox Code Playgroud)

这将实时显示与该文件相关的文件系统活动。


Con*_*ech 5

服务器版本:8.0.19 Homebrew。macOS Catalina 10.15.5 并通过 Homebrew 安装 MySQL。在这里找到这个文件:

/usr/local/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

这个解决方案有帮助:)