[英]Location of my.cnf file on macOS
默認情況下,OS X 安裝不使用 my.cnf,而 MySQL 只使用默認值。 要設置您自己的 my.cnf,您可以直接在 /etc 中創建一個文件。
OS X 在/usr/local/mysql/support-files/
提供示例配置文件。
如果您在那里找不到它們,MySQLWorkbench 可以通過以下方式為您創建它們:
對於 Mac OS X Maverick,當 MySQL 通過 Homebrew 安裝時,它位於/usr/local/opt/mysql/my.cnf
通常,在 Unix 和類 Unix 系統上,MySQL/MariaDB 程序讀取以下位置的配置/啟動文件(按指定順序):
/etc/my.cnf
- 全局/etc/mysql/my.cnf
- 全局 SYSCONFDIR/my.cnf
- 全球
SYSCONFDIR
表示在構建 MySQL 時使用CMake
的SYSCONFDIR
選項指定的目錄。 默認情況下,這是位於編譯安裝目錄下的 etc 目錄。
$MYSQL_HOME/my.cnf
- 服務器特定(僅限服務器)
MYSQL_HOME
是一個環境變量,包含特定於服務器的my.cnf
文件所在目錄的路徑。 如果未設置MYSQL_HOME
並且您使用mysqld_safe
程序啟動服務器,則mysqld_safe
會將其設置為BASEDIR
,即 MySQL 基本安裝目錄。
使用--defaults-extra-file=path
指定--defaults-extra-file=path
如果有)
~/.my.cnf
- 特定於用戶的~/.mylogin.cnf
- 特定於用戶的(僅限客戶端)來源:使用選項文件。
注意:在 Unix 平台上,MySQL 會忽略全局可寫的配置文件。 這是有意作為一種安全措施。
此外,在 Mac 上有一個簡單的方法來檢查它。
運行: sudo fs_usage | grep my.cnf
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
因此,如果該文件不存在,請創建一個。
我不知道您使用的是哪個版本的 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
指定--defaults-extra-file=path
,如果有的話)~/.my.cnf
如果您使用的是 macOS Sierra 並且該文件不存在,請運行
mysql --help or mysql --help | grep my.cnf
查看 my.cnf for mysql 的可能位置和加載/讀取順序,然后在建議的目錄之一中創建 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,瞧你一切順利。 快樂編碼
對於 Mac OS X El Capitan 上的 MySQL 5.7: /usr/local/mysql/etc/my.cnf
從/usr/local/mysql/support-files/my-default.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
根據您的版本調整您的路徑。
我正在運行 MacOS Catalina(10.15.3) 並在/usr/local/etc
找到my.cnf
。
所以這些東西都不適合我。 我正在使用 mysql 社區服務器的當前 dmg 安裝。 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>
您可以打開終端並輸入locate my.cnf
在我從 Homebrew 安裝的 mysql 5.6.22 中,my.cnf 的路徑是
/usr/local/opt/mysql/my.cnf
macOs sierra 10.12.6 mysql version : 5.7.18_1 我運行locate my.cnf ,路徑是
/usr/local/etc/my.cnf
希望它有所幫助。
打開終端並使用以下命令:
sudo find / -name my.cnf
你可以檢查文件
/usr/local/bin/mysql.server
並查看從哪里讀取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
您使用的版本的 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
要么
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:
與 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 High Sierra 版本 10.13.6
mysql Ver 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
我檢查了 macOS Sierra,自制軟件安裝了MySql 5.7.12
支持文件位於
/usr/local/opt/mysql/support-files
只需將my-default.cnf
復制為/etc/my.cnf
或/etc/mysql/my.cnf
在重新啟動時獲取配置。
它通常應該在 mac 上的/usr/local/etc
,如果你沒有找到它,你可以創建一個
Catalina 的 /private/etc/my.cnf
我在 macOS High Sierra 版本 10.13.3 中使用 mysql 版本 5.7.17,我在這里找到了 mysql 配置文件。
cd /usr/local/mysql/support-files/my-default.cnf
對於mysql 8.0.19,我終於在這里找到了my.cnf:/usr/local/opt/mysql/.bottle/etc 我把它復制到/usr/local/opt/mysql/並修改了它。 然后我重新啟動mysql服務,它起作用了。
對於 Mac ,對我有用的是在我的 ~ 路徑中創建一個 .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
到
/usr/local/Cellar/mysql/5.6.27/my.cnf
就我而言,該文件不存在。 在 MySQL Workbench 中,我轉到 OPTIONS FILE 並找到了一些默認值。 我點擊了申請。 它請求許可。 然后它在 /etc 下創建了 my.cnf 文件。 但是,請務必記住,第一次單擊“應用”時,您不會對默認配置進行任何更改。 創建文件后,您可以進行更改,這些更改將在您單擊“應用”時應用。 否則,當您進行更改時,您將不會看到應用按鈕。
MySQL 5.7.18 版本之后,在support-files 目錄中不再提供默認配置文件。 所以你可以在MySQL將要讀取的位置手動創建my.cnf文件,比如/etc/mysql/my.cnf,並在文件中添加你想要添加的配置。
r默認選項按給定順序從以下文件中讀取: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
我正在運行 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 設置。
如果在 Mac M1 和 MacOS Monterey 12.0.1 中安裝帶有 Homebrew 的 MySQL,位置是 /opt/homebrew/etc/my.cnf
替代所有這些偉大的答案。 如果您在沒有 sudo 訪問權限的環境中工作。 您的 Homebrew 可能已安裝在您的主目錄中~
如果是這種情況並且您的 mysql 已通過brew install mysql
安裝,您的 my.cnf 可能位於~/homebrew/etc/my.cnf
或者您可以在其中搜索它你的家find ./ -name 'my.cnf'
一種快速了解 MAC OS 的方法如下:
sudo find /usr/ -type f -iname "*my.cnf*"
或者
brew list mysql@5.7 |grep -i my.cnf
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.