my.cnf文件在macOS上的位置

时间:2012-05-25 15:26:44

标签: mysql database macos

我正在尝试跟随this tutorial以启用对MySQL的远程访问。问题是,my.cnf文件应该放在哪里?我正在使用Mac OS X Lion。

30 个答案:

答案 0 :(得分:231)

This thread on the MySQL forum说:

  

默认情况下,OS X安装不使用my.cnf,MySQL只使用默认值。要设置自己的my.cnf,您可以直接在/ etc。

中创建一个文件

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

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

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

答案 1 :(得分:70)

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

答案 2 :(得分:44)

通常,在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=path指定的文件(如果有)

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

来源:Using Option Files

  

注意:在Unix平台上,MySQL会忽略世界可写的配置文件。这是一种有意识的安全措施。

另外在Mac上有一种简单的方法可以检查它。

  1. 运行:sudo fs_usage | grep my.cnf

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

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

    brew services restart mysql
    

    或:

    brew services restart mariadb
    
  3. fs_usage的终端上,应显示正确的位置,例如

    15:52:22  access            /usr/local/Cellar/mariadb/10.1.14/my.cnf                                         0.000002   sh          
    

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

答案 3 :(得分:30)

我不知道你使用的是哪个版本的MySQL,但是这里是Mac OS X上版本5.5(取自here)的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

答案 4 :(得分:19)

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

/usr/local/mysql/support-files/my-default.cnf

复制默认配置文件

答案 5 :(得分:14)

如果您使用的是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你很高兴。快乐的编码

答案 6 :(得分:13)

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

答案 7 :(得分:12)

current MySQL package for Mac OS X Mavericks(撰写本文时的mysql-5.6.17-osx10.7-x86_64)会在安装过程中自动创建my.cnf。

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

答案 8 :(得分:10)

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

/usr/local/opt/mysql/my.cnf 

答案 9 :(得分:9)

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

答案 10 :(得分:8)

所以这些都不适合我。我正在使用当前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>

答案 11 :(得分:6)

您可以查看文件

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

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

答案 12 :(得分:6)

macOS sierra 10.12.6 mysql版本:5.7.18_1 我运行 locate my.cnf ,路径是

  

/usr/local/etc/my.cnf

希望有帮助。

答案 13 :(得分:4)

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

here

答案 14 :(得分:4)

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

sudo find / -name my.cnf

答案 15 :(得分:4)

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

sudo vim /Applications/MAMP/Library/my.cnf

并像这样添加

[mysqld]
max_allowed_packet = 256M

答案 16 :(得分:2)

macOS High Sierra 版本10.13.6

mysql版本14.14 Distrib 5.7.22,适用于使用EditLine包装器的osx10.13(x86_64) 版权所有(c)2000、2018,Oracle和/或其分支机构。保留所有权利

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

/etc/my.cnf 
/etc/mysql/my.cnf 
/usr/local/etc/my.cnf 
~/.my.cnf

答案 17 :(得分:2)

我检查了macOS Sierra,自制的安装了MySql 5.7.12

支持文件位于

/usr/local/opt/mysql/support-files

只需将my-default.cnf复制为/etc/my.cnf/etc/mysql/my.cnf,即可在重新启动时选择配置。

答案 18 :(得分:1)

我在macOS High Sierra版本10.13.3中使用mysql版本5.7.17,我在这里找到了mysql配置文件。

cd /usr/local/mysql/support-files/my-default.cnf

答案 19 :(得分:1)

应该是通常在/usr/local/etc在Mac上,如果你不找它,你可以创建一个

答案 20 :(得分:0)

/private/etc/my.cnf for Catalina

答案 21 :(得分:0)

我正在运行MacOS Mojave(10.14.6),要让MySQL识别我的配置文件,我必须将其放在/usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my .cnf。我也有一个符号链接,它从/usr/local/@mysql/etc/my.cnf指向它。

我试图关闭sql_mode = only_full_group_by,并且在配置文件中设置该选项是我可以使设置在会话之间持久的唯一方法。配置文件的内容为:

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION

我正在使用MySQL的本机安装,而不是Homebrew设置。

答案 22 :(得分:0)

阅读文档!

您正在使用哪个版本的MySQL文档会有所帮助。 通常将其描述为Options FileMySQL Config File
文档在文档中具有这些文件的位置,以及其他VITAL信息,例如位置和配置文件外观的小示例。

MySQL Version 8

MySQL Version 5.7

MySQL Version 5.6

MySQL Version 5.5

MySQL Version 5.6 Japanese

重要说明:

  

在Unix平台上,MySQL会忽略世界可写的配置文件。

     

这是一种安全措施。

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

其中一个配置文件的初始设置权限示例:

RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r--  1 myusername  wheel     0B Feb 25 20:40 /etc/my.cnf

注意:

  

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

     

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

     

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

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

SQL

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

MySQL版本5.7和8 +

SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';

MySQL版本<= 5.6

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';

外壳/端子

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

从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

OR

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

样本文件

是否需要详细的参考样本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
  

没有与该网址的关联/关联

我的系统:

RIZZOMBP$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.3
BuildVersion:   18D109
RIZZOMBP$ mysql -V
mysql  Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)
RIZZOMBP$ mysqld -V
/usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld 
Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)

答案 23 :(得分:0)

对于mysql 8.0.19,我终于在这里找到my.cnf: /usr/local/opt/mysql/.bottle/etc 我复制到 / usr / local / opt / mysql / 并对其进行了修改。然后,我重新启动mysql服务,它可以正常工作。

答案 24 :(得分:0)

以给定顺序从以下文件中读取rDefault选项: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf~ / .my.cnf

答案 25 :(得分:0)

在5.7.18版本的MySQL之后,它没有在support-files目录中提供默认配置文件。 因此,您可以在MySQL读取的位置创建my.cnf文件手动,例如/etc/mysql/my.cnf,并在文件中添加要添加的配置。

答案 26 :(得分:0)

就我而言,该文件不存在。在MySQL Workbench中,我转到OPTIONS FILE并找到了一些默认值。我点击申请。它要求许可。然后在/ etc下创建了my.cnf文件。但是,请务必记住,第一次单击&​​#34; apply&#34;时,不会对默认配置进行任何更改。创建文件后,您可以进行更改,当您单击&#34; apply&#34;时将应用这些更改。否则,进行更改时不会显示“应用”按钮。

答案 27 :(得分:0)

对我来说是山脉版

复制默认配置:

  

/usr/local/Cellar/mysql/5.6.27/support-files/my-default.cnf

  

/usr/local/Cellar/mysql/5.6.27/my.cnf

答案 28 :(得分:0)

将/usr/local/opt/mysql/support-files/my-default.cnf复制为/etc/my.cnf或/etc/mysql/my.cnf,然后重启mysql。

答案 29 :(得分:0)

对于Mac,对我有用的是在我的路径中创建一个.my.cnf文件。希望这会有所帮助。