my.cnf文件在macOS上的位置

nic*_*las 167 mysql database macos

我正在尝试按照本教程启用远程访问MySQL.问题是,my.cnf文件应该放在哪里?我正在使用Mac OS X Lion.

bfa*_*tto 238

MySQL论坛上的这个帖子说:

默认情况下,OS X安装不使用my.cnf,MySQL只使用默认值.要设置你自己的my.cnf,你可以直接在/ etc中创建一个文件.

OS X提供了示例配置文件/usr/local/mysql/support-files/.

如果你在那里找不到它们,MySQLWorkbench可以通过以下方式为你创建它们:

  1. 打开连接
  2. 选择菜单中"INSTANCE"下的"选项文件".
  3. MySQLWorkbench将搜索my.cnf,如果找不到它,它会为你创建它

  • 您可能希望确保mysql实际上正在加载您正在编辑的`my.cnf`文件,通过`mysql --verbose --help | grep my.cnf` (84认同)
  • 刚刚使用dev.mysql.com中的.dmg在Mac OS 10.12上干净安装了MySQL 5.7.19.在mysql中也没有my.cnf - help表示它看起来.而且/ usr/local/mysql/support-files /中没有my-default.cnf,或者我找到的其他任何地方.事实证明["从MySQL 5.7.18开始,my-default.cnf不再包含在分发软件包中或由分发软件包安装"](https://dev.mysql.com/doc/refman/5.7/en/server-配置-defaults.html). (15认同)
  • 至少目前用于Mac OS X的MySQL包(在撰写本文时为mysql-5.6.17-osx10.7-x86_64)_does_实际上创建并使用了my.cnf.它位于/usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf (14认同)
  • 在Mac OS Sierra上,它尚未建立.我必须在同一个目录中将/usr/local/mysql/support-files/my-default.cnf复制到my.cnf.请注意,mysql符号链接到包,在我的例子中是mysql-5.7.17-macos10.12-x86_64. (3认同)
  • 这个答案很旧,取决于您用来安装mysql的安装程序。自制软件放在一个地方,dmg安装程序放在另一个地方 (2认同)
  • 到目前为止,在第 3 步中,工作台只是说“未指定 conf 文件的位置”,并且不会自动生成一个新文件。 (2认同)

小智 74

对于Mac OS X Maverick,当MySQL通过Homebrew安装时,它位于 /usr/local/opt/mysql/my.cnf

  • 这是/usr/local/Cellar/yourMySqlVersion/my.cnf (5认同)
  • 我的在/usr/local/etc/my.cnf (5认同)
  • 我的是`/usr/local/mysql/etc`。我在 High Sierra,但它是在几个版本之前安装的。 (2认同)

ken*_*orb 52

通常,在Unix和类Unix系统上,MySQL/MariaDB程序在以下位置(按指定顺序)读取配置/启动文件:

  • /etc/my.cnf - 全球
  • /etc/mysql/my.cnf - 全球
  • SYSCONFDIR/my.cnf - 全球

    SYSCONFDIR表示使用MySQL构建时的SYSCONFDIR选项指定的目录CMake.默认情况下,这是位于已编译安装目录下的etc目录.

  • $MYSQL_HOME/my.cnf - 特定于服务器(仅限服务器)

    MYSQL_HOME是一个环境变量,包含特定于服务器的my.cnf文件所在目录的路径.如果MYSQL_HOME未设置并使用该mysqld_safe程序启动服务器,mysqld_safe请将其设置BASEDIR为MySQL基本安装目录.

  • --defaults-extra-file=pathif 指定的文件

  • ~/.my.cnf - 特定于用户
  • ~/.mylogin.cnf - 特定于用户(仅限客户)

来源:使用选项文件.

注意:在Unix平台上,MySQL会忽略全局可写的配置文件.这是有意作为安全措施.


此外,在Mac上有一种简单的方法来检查它.

  1. 跑: sudo fs_usage | grep my.cnf

    这将实时报告与该文件相关的任何文件系统活动.

  2. 在另一个终端中,重新启动MySQL/MariaDB,例如

    brew services restart mysql
    
    Run Code Online (Sandbox Code Playgroud)

    要么:

    brew services restart mariadb
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在终端上fs_usage,应显示正确的位置,例如

    15:52:22  access            /usr/local/Cellar/mariadb/10.1.14/my.cnf                                         0.000002   sh          
    
    Run Code Online (Sandbox Code Playgroud)

    因此,如果该文件不存在,请创建一个.

  • 谢谢!`sudo fs_usage | grep my.cnf`方法非常有效.我在文件夹中找到这个文件:**/usr/local/etc/my.cnf** (4认同)
  • 很好的方法,但是我在那里得到了几个结果:`private/etc/my.cnf`、`/usr/local/etc/my.cnf`、`/usr/local/Cellar/mysql/<myVersion>/my.cnf `、`~.my.cnf` 和最右边的列中有 `my_print_def`。然后过了一会儿,它只有`/usr/local/etc/my.cnf`,我的终端在最右边的一列。但是所有这些 `my.cnf` 文件都不存在! (4认同)
  • 您的最后一组指令是 sudo fs_usage | grep my.cnf 是这个页面上唯一对我有帮助的东西,因为某些未知的原因 mysqld 没有从通过 mysql - 列出的默认位置加载? (2认同)

Jef*_*ung 31

我不知道你使用的是哪个版本的MySQL,但是这里是Mac OS X上版本5.5(取自此处)的my.cnf文件的可能位置:

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. SYSCONFDIR/my.cnf
  4. $MYSQL_HOME/my.cnf
  5. defaults-extra-file(指定的文件--defaults-extra-file=path,如果有的话)
  6. ~/.my.cnf


Ser*_*ues 20

适用于Mac OS X El Capitan上的MySQL 5.7: /usr/local/mysql/etc/my.cnf

复制默认conf /usr/local/mysql/support-files/my-default.cnf

  • 为了清楚起见,你必须自己创建"etc /"文件夹,你需要root权限"sudo su - " (4认同)

Gpa*_*pak 16

如果您使用的是macOS Sierra且该文件不存在,请运行

mysql --help or mysql --help | grep my.cnf

要查看mys.cn的my.cnf的可能位置和加载/读取序列,然后在其中一个建议的目录中创建my.cnf文件,然后添加以下行

[mysqld] sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

sudo touch /{preferred-path}/my.cnf然后,您可以编辑该文件以添加sql模式

sudo nano /{preferred-path}/my.cnf

然后重新启动mysql,voilaah你很高兴.快乐的编码


Run*_*one 15

我正在运行 MacOS Catalina(10.15.3) 并my.cnf/usr/local/etc.


Jps*_*psy 12

当前的MySQL包适用于Mac OS X小牛队(的mysql-5.6.17-osx10.7-x86_64的在写这篇文章时)在安装过程中自动创建的my.cnf.

它位于/usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
根据您的版本调整您的路径.


Dat*_*tes 11

所以这些都不适合我.我正在使用当前dmg安装的mysql社区服务器.ps表明通常在my.cnf中的所有最关键参数都是在命令行上传递的,我无法弄清楚它来自哪里.在对我的盒子进行全文搜索后,我发现它:

/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

因此,您可以在那里更改它们,或者将它们取出,这样它实际上会尊重您在my.cnf中的任何位置,无论您决定使用它.

请享用!

在该文件中找到的文件信息示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
             <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
             <string>--early-plugin-load=keyring_file=keyring_file.so</string>

        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)


sre*_*mer 10

您可以打开终端并输入 locate my.cnf


Ste*_*enR 10

在我从Homebrew安装的mysql 5.6.22中,my.cnf的路径是

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


小智 9

macOs sierra 10.12.6 mysql版本:5.7.18_1我运行找到my.cnf并且路径是

/usr/local/etc/my.cnf

希望它有所帮助.


小智 9

如果在装有 MacOS Monterey 12.0.1 的 Mac M1 中使用 Homebrew 安装 MySQL,则位置为 /opt/homebrew/etc/my.cnf


小智 8

打开终端并使用以下命令:

sudo find / -name my.cnf
Run Code Online (Sandbox Code Playgroud)


Vaz*_*yan 6

你可以检查一下这个文件

/usr/local/bin/mysql.server并看看从哪里my.conf读.

通常是来自/etc/my.cnf~/my.cnf~/.my.cnf


Eth*_*len 6

如果直接从 Oracle 的 MySQL 安装程序安装,则 macOS 13 和 MySQL 8 为最新版本:

默认情况下,my.cnf不会创建任何内容。要轻松创建默认值而不需要使用任何终端命令,请执行以下操作:

  1. 在 Mac 上打开 MySQL Workbench。连接到 MySQL 的本地主机实例。

  2. 单击启动/关闭上方左窗格中“实例”旁边的小扳手图标。

  3. 选择 macOS 作为系统类型,macOS 作为安装类型,其余的将默认就位。复制它为您提供的文件位置my.cnf

  4. 单击关闭

  5. 现在单击左侧的选项文件。它会注意到您没有文件并会显示默认值。

  6. 单击右下角的应用...。

  7. 然后,它会要求您输入当前登录 Mac 用户的密码来创建和保存文件my.cnf

  8. 现在在 Finder 中使用 Command-Shift-G 键盘组合并复制到我们之前复制的位置(即/etc/my.cnf


Mir*_* Vu 5

对于MAMP 3.5 Mac El Capitan,创建一个单独的空配置文件并为mysql编写其他设置

sudo vim /Applications/MAMP/Library/my.cnf
Run Code Online (Sandbox Code Playgroud)

并像这样添加

[mysqld]
max_allowed_packet = 256M
Run Code Online (Sandbox Code Playgroud)


She*_*Wei 5

您可以在所需的任何目录下创建文件。创建之后,您可以“告诉” mysql配置的路径:

在此处输入图片说明


Jay*_*zzo 5

阅读文档!

您使用的版本的 MySQL 文档会有所帮助。它通常被描述为 aOptions FileMySQL Config File
文档在文档中包含这些文件的位置,以及其他VITAL信息,例如位置和配置文件必须是什么样子的小示例。

MySQL 版本 8

MySQL 5.7 版

MySQL 5.6 版

MySQL 5.5 版

MySQL 5.6 日文版

重要笔记:

在 Unix 平台上,MySQL 忽略全局可写的配置文件。

这是有意作为一种安全措施。

换句话说,如果您在配置文件上设置了错误的权限,则不会加载。

配置文件之一的初始设置权限示例:

RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r--  1 myusername  wheel     0B Feb 25 20:40 /etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

笔记:

可以!include在选项文件中使用指令来包含其他选项文件并!includedir在特定目录中搜​​索选项文件.....

... MySQL 不保证读取目录中选项文件的顺序...

在 Unix 操作系统上使用 !includedir 指令查找和包含的任何文件都必须具有以 .includedir 结尾的文件名.cnf。在 Windows 上,此指令检查带有.ini.cnf扩展名的文件。

如何找到您的配置或日志文件等位置的示例:

SQL

这不会向您显示配置文件,但会帮助您找到安装文件/文件夹。

MySQL 版本 5.7 和 8+

SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Run Code Online (Sandbox Code Playgroud)

MySQL 版本 <= 5.6

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Run Code Online (Sandbox Code Playgroud)

外壳/终端

SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Run Code Online (Sandbox Code Playgroud)

以上命令归功于:来自 ServerFault 的Erwin Mayer

RIZZOMBP$ mysqld --verbose --help | grep '/my.cnf' -B 1

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

或者

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Run Code Online (Sandbox Code Playgroud)

示例文件

如果您需要详细的参考示例 my.cnf:

  1. https://gist.github.com/search?utf8=%E2%9C%93&q=my.cnf+mysql&ref=searchresults
  2. https://www.linode.com/community/questions/5749/mysql-sample-config-files
  3. https://www.fromdual.com/mysql-configuration-file-sample

与 URL 没有从属关系/关联

我的系统:

RIZZOMBP$ mysql --help | grep "Default options" -A 1

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
Run Code Online (Sandbox Code Playgroud)
RIZZOMBP$ mysqld --verbose --help | grep '/my.cnf' -B 1

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
Run Code Online (Sandbox Code Playgroud)
RIZZOMBP$ ps aux | grep -i mysqld | grep -v $USER

_mysql 106 0.4 2.5 4232336 422112 ?? Ss 7:01PM 0:57.12
/usr/local/mysql/bin/mysqld
--user=_mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
--plugin-dir=/usr/local/mysql/lib/plugin
--log-error=/usr/local/mysql/data/mysqld.local.err
--pid-file=/usr/local/mysql/data/mysqld.local.pid
--keyring-file-data=/usr/local/mysql/keyring/keyring
--early-plugin-load=keyring_file=keyring_file.so
Run Code Online (Sandbox Code Playgroud)