我试图按照本教程来启用远程访问MySQL。问题是,my.cnf文件应该放在哪里?我使用的是Mac OS X Lion。
MySQL论坛上的这个帖子说:
默认情况下,OS X安装不使用my.cnf, MySQL只使用默认值。要设置你自己的my.cnf,你可以直接在/etc中创建一个文件。
OS X在/usr/local/mysql/support-files/目录下提供了配置文件示例。
如果你在那里找不到它们,MySQLWorkbench可以为你创建它们:
打开连接 在菜单中选择“实例”下的“选项文件”。 MySQLWorkbench将搜索my.cnf,如果找不到它,它将为您创建它
我不知道你使用的是哪个版本的MySQL,但以下是Mac OS X 5.5版本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
Mac OS X Mavericks的当前MySQL包(在撰写本文时为MySQL -5.6.17-osx10.7-x86_64)在安装期间自动创建my.cnf。
它位于/usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf 根据您的版本调整路径。
这些东西对我都没用。我正在使用当前的dmg安装mysql社区服务器。ps显示my.cnf中所有最关键的参数通常都是在命令行上传递的,我不知道这是从哪里来的。在对我的盒子进行全文搜索后,我发现它在:
/ Library / LaunchDaemons / com . oracle, mysql oss。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>
MySQL 5.7 on Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
从/usr/local/mysql/support-files/my-default.cnf拷贝default conf文件
通常,在Unix和类Unix系统上,MySQL/MariaDB程序在以下位置读取配置/启动文件(按指定顺序):
/etc/my.cnf - Global /etc/mysql/my.cnf - Global SYSCONFDIR/my.cnf - Global SYSCONFDIR represents the directory specified with the SYSCONFDIR option to CMake when MySQL was built. By default, this is the etc directory located under the compiled-in installation directory. $MYSQL_HOME/my.cnf - Server-specific (server only) MYSQL_HOME is an environment variable containing the path to the directory in which the server-specific my.cnf file resides. If MYSQL_HOME is not set and you start the server using the mysqld_safe program, mysqld_safe sets it to BASEDIR, the MySQL base installation directory. file specified with --defaults-extra-file=path if any ~/.my.cnf - User-specific ~/.mylogin.cnf - User-specific (clients only)
来源:使用选项文件。
注意:在Unix平台上,MySQL忽略全局可写的配置文件。这是有意为之的安全措施。
此外,在Mac上有一个简单的方法来检查它。
执行命令sudo fs_usage | grep my.cnf 这将实时报告与该文件相关的任何文件系统活动。 在另一个终端,重新启动MySQL/MariaDB,例如: 重启mysql 或者: Brew服务重新启动mariadb 在终端上使用fs_usage,应该显示正确的位置,例如。 15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh 因此,如果该文件不存在,就创建一个。
您可以检查文件
/usr/local/bin/mysql.服务器,看看my.conf是从哪里读取的。
通常是从/etc/my.cnf或~/my.cnf或~/.my.cnf
对于MAMP 3.5 Mac El Capitan,创建一个单独的空配置文件,并为mysql编写额外的设置
sudo vim /Applications/MAMP/Library/my.cnf
像这样相加
[mysqld]
max_allowed_packet = 256M
我在macOS Sierra上安装了MySql 5.7.12
支持文件位于
/usr/local/opt/mysql/support-files
只要将my-default.cnf复制到/etc/my.cnf或/etc/mysql/my.cnf,重新启动时配置就会被拾取。
将/usr/local/opt/mysql/support-files/my-default.cnf复制为/etc/my.cnf或/etc/mysql/my.cnf,然后重启mysql。
为我在sierra版本
复制默认配置:
/usr/local/Cellar/mysql/5.6.27/support-files / my-default.cnf
to
/usr/local/Cellar/mysql/5.6.27/my.cnf
In my case, the file did not exist. In MySQL Workbench I went to OPTIONS FILE and found some default values. I clicked apply. It asked for permission. It then created the my.cnf file under /etc. However, it is very important to keep in mind that the first time you click "apply", you do not make any changes to the default configuration. Once the file has been created, you can make changes which will be applied when you click "apply". Otherwise you will not be shown the apply button when you make changes.
如果你使用的是macOS Sierra,而该文件不存在, 运行
Mysql——help或Mysql——help | grep my.cnf
要查看mysql 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触摸/{首选路径}/my.cnf,然后编辑文件添加sql模式by
Sudo nano /{首选路径}/my.cnf
然后重新启动MySQL。
MySQL 5.7.18版本后,在support-files目录下不再提供默认配置文件。 因此,您可以在MySQL读取的位置手动创建my.cnf文件,例如/etc/mysql/my.cnf,并在该文件中添加您想要添加的配置。
我在macOS High Sierra 10.13.3版本中使用mysql 5.7.17版本,我在这里找到了mysql配置文件。
cd /usr/local/mysql/support-files/my-default.cnf
rDefault选项按照给定的顺序从以下文件中读取: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
macOS High Sierra 版本10.13.6
mysql Ver 14.14 Distrib 5.7.22,用于osx10.13 (x86_64)使用EditLine包装器 版权所有(c) 2000,2018, Oracle和/或其关联公司。版权所有
默认选项按给定顺序从以下文件中读取:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
macOS sierra 10.12.6 MySQL版本:5.7.18_1 我运行locate my。cnf,路径是
/ usr / local / etc / my . cnf
阅读文档!
您所使用的版本的MySQL文档将有所帮助。 它通常被描述为选项文件或MySQL配置文件。 文档中有这些文件的位置,以及其他重要信息,如位置和配置文件必须看起来像什么小例子。
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
注意:
可以在选项文件中使用!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
以上命令归功于:Erwin Mayer来自ServerFault
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:
https://gist.github.com/search?utf8=%E2%9C%93&q=my.cnf+mysql&ref=searchresults https://www.linode.com/community/questions/5749/mysql-sample-config-files https://www.fromdual.com/mysql-configuration-file-sample
没有归属/关联的URL
我的系统:
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)
我正在运行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设置。
mysql 8.0.19,我终于找到my.cnf在这里: /usr/local/opt/mysql/.bottle/etc 我把它复制到 /usr/local/opt/mysql/ 并进行了修改。然后我重新启动mysql服务,它工作。
如果在Mac M1和MacOS Monterey 12.0.1中使用Homebrew安装MySQL,则位置为/opt/ Homebrew /etc/my.cnf
与所有这些伟大的答案相反。如果你在一个没有sudo权限的环境中工作。你的Homebrew可以安装在你的主目录下~如果是这种情况,你的mysql已经通过brew安装,安装mysql你的my.cnf可以位于~/ Homebrew /etc/my.cnf或者你也可以在你的home目录中查找。/ name 'my.cnf'
在MAC OS上,一个快速的方法是:
sudo find /usr/ -type f -iname "*my.cnf*"
or
brew list mysql@5.7 |grep -i my.cnf
问候
推荐文章
- 在Mac上安装MySQL后,使用ALTER USER语句重置MySQL root密码
- my.cnf文件在macOS上的位置
- 如何从Mac OS X上卸载MySQL ?
- 如何在Docker容器中用模式初始化MySQL数据库?
- MySQL:如何重置或修改MySQL root密码?
- 在PHP中插入MySQL时转义单引号
- 查找当前可执行文件的路径,不包含/proc/self/exe
- 我如何得到“id”后插入到MySQL数据库与Python?
- 什么是ORM,它是如何工作的,我应该如何使用它?
- MySQL工作台:如何保持连接活动
- 'create_date'时间戳字段的默认值无效
- 为现有数据库生成ERD
- BASE术语解释
- 在Mac上安装R -警告消息:设置LC_CTYPE失败,使用“C”
- 我可以从一个完整的mysql mysqldump文件恢复一个表吗?