我正在尝试跟随this tutorial以启用对MySQL的远程访问。问题是,my.cnf
文件应该放在哪里?我正在使用Mac OS X Lion。
答案 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 :(得分: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
- 特定于用户(仅限客户)注意:在Unix平台上,MySQL会忽略世界可写的配置文件。这是一种有意识的安全措施。
另外在Mac上有一种简单的方法可以检查它。
运行:sudo fs_usage | grep my.cnf
这将实时报告与该文件相关的任何文件系统活动。
在另一个终端中,重新启动MySQL / MariaDB,例如
brew services restart mysql
或:
brew services restart mariadb
在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文件的可能位置:
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(使用--defaults-extra-file=path
指定的文件,如果有的话)~/.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
然后编辑文件以通过
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配置的路径:
答案 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 File
或MySQL Config File
。
文档在文档中具有这些文件的位置,以及其他VITAL
信息,例如位置和配置文件外观的小示例。
在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
的文件。
有关如何找到配置或日志文件等位置的示例:
这不会显示配置文件,但会帮助您找到安装文件/文件夹。
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:
没有与该网址的关联/关联
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文件。希望这会有所帮助。