对于自制mysql安装,my.cnf在哪里?它安装了吗?
当前回答
$ps aux | grep mysqld /usr/local/opt/mysql/bin/mysqld——basedir=/usr/local/opt/mysql——datadir=/usr/local/var/mysql——plugin-dir=/usr/local/opt/mysql/lib/plugin 放下你的我。Cf文件到/usr/local/opt/mysql 重启mysql
其他回答
我相信答案是否定的。在~/.my.cnf或/usr/local/etc中安装一个似乎是首选的解决方案。
添加另一个答案
公认的答案是正确的。因为我们讨论的是Homebrew安装的mysql,而不是手动安装的mysql,所以有更直接的方法来查找conf。 前一个答案可能有点过时,Homebrew在M1 Mac上存储在不同的位置
Conf
在安装过程中,my.cnf会被Homebrew复制到以下位置
/usr/local/etc/my.cnf for x86 Mac /opt/homebrew/etc/my.cnf
Homebrew选择/usr/local或/opt/ Homebrew存储包,因此默认的conf文件不存储在/etc/中,而是存储在/usr/local/etc或/opt/ Homebrew /etc中。
事实上,homebrew在从源代码编译mysql时改变了-DSYSCONFDIR=(默认的conf位置)标志。
启动服务
一个简单的回答:运行brew info mysql并查看提示。
推荐使用“brew services start mysql”,使用launchd管理服务。(launchd被认为是macOS上的systemd选项)
如果有人想手动启动,请使用mysql。没有任何选项的启动就足以启动服务。(mysql。Start是mysql提供的帮助启动服务的脚本)
默认情况下没有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.
正如你所看到的,还有一些选项可以绕过conf文件,或者当你在命令行上调用mysql时指定要读取的其他文件。
对于MacOS (High Sierra),已经安装了自制的MySQL。
从mysql环境中增加全局变量不成功。因此,在这种情况下,创建~/.my.cnf是最安全的选择。使用[mysqld]添加变量将包括更改(注意:如果使用[mysql]更改,更改可能不起作用)。
<~/.my.cnf> [mysqld] connect_timeout = 43200 max_allowed_packet = 2048M net_buffer_length = 512M
重新启动mysql服务器。检查变量。 y
SELECT @@max_allowed_packet; +----------------------+ | @@max_allowed_packet | . +----------------------+ | 1073741824 | +----------------------+
set中的1行(0.00秒)
没有什么能真正帮到我——我无法覆盖/etc/my.cnf文件中的设置。 所以我搜索了约翰建议的https://stackoverflow.com/a/7974114/717251
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
它发现另一个my.cnf在
/usr/local/Cellar/mysql/5.6.21/my.cnf
更改这个文件对我有用!别忘了重启启动Agent:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
更新:
如果你最近安装了homebrew,你应该使用brew services命令重新启动mysql(使用你安装的homebrew mysql版本,即mysql或mysql@5.7):
brew services stop mysql
brew services start mysql
推荐文章
- 警告用户/local/mysql/data目录不属于mysql用户
- 添加一个复合主键
- 无法添加或更新子行:外键约束失败
- 如何从本地机器mysqldump远程数据库
- 如何正确地创建复合主键- MYSQL
- 仅在Datetime列上按日期分组
- 在MySQL数据库中存储货币值的最佳数据类型
- 如何自定义'显示进程列表'在mysql?
- MySQL删除一些外键
- 用MySQL LEFT JOIN删除行
- MySQL - length() vs char_length()
- 使用PDO进行行计数
- 在Mac上安装MySQL后,使用ALTER USER语句重置MySQL root密码
- my.cnf文件在macOS上的位置
- 如何从Mac OS X上卸载MySQL ?