[英]How can set SQL_MODE permanently on my mac
我在我的 OsX 10.11 El Capitan 上安裝 MySql。 如果我嘗試開始我的查詢,如果我的查詢有分組依據,我會遇到一個奇怪的錯誤。
因此,如果我嘗試從終端執行此查詢:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
我可以執行我的查詢沒問題。 現在,如果我嘗試重新啟動我的 macbook,我遇到了一些問題,我可以重新執行查詢。
有什么方法可以永久修復此 sql_mode?
我無法打開“etc/mysql/my.cnf”文件,但我的 mac 上沒有這個文件。 我如何應用此更改?
你可以設置 my.cnf 並添加你的 sql_mode 配置
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY
默認情況下,OS X 安裝不使用 my.cnf,而 MySQL 只使用默認值。 要設置您自己的 my.cnf,您可以直接在 /etc 中創建一個文件。
如果您使用的是MAMP PRO ,請注意指南中的這一點:
您不能直接編輯 my.cnf 文件。 您必須使用 MAMP PRO 界面來編輯您的 my.cnf 文件。 在菜單中轉到文件 > 編輯模板 > MySQL > my.cnf。
然后你可以在 [mysqld] 標題下添加你想要的 sql_mode。 例如:
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY
這對我有用。
如果你想關閉 ONLY_FULL_GROUP_BY,你需要先檢查 sql_mode 變量的值:
(默認值)
mysql> show variables like 'sql_mode'\G
*************************** 1. row ***************************
Variable_name: sql_mode
Value: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
1 row in set (0,01 sec)
編輯 MySQL 配置文件 my.conf。 通常在 /etc/my.cnf 就像 scaisEdge 所說的那樣。 但是,你必須寫:
[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
(沒有 ONLY_FULL_GROUP_BY 的所有值 - 您可以復制/粘貼此行)
重啟你的 MySQL,享受吧。
遵循這些步驟的正確方法
退出 MAMP。
在終端中運行以下命令:
touch /Applications/MAMP/conf/my.cnf && open -t /Applications/MAMP/conf/my.cnf
當此文件為空時,然后在下面添加以下內容。 如果文件不為空,則只需在行 [mysqld] 之后添加行 sql_mode=""
[mysqld] sql_mode=""
保存配置文件並關閉文本編輯器; 重新啟動 MAMP 並啟動服務器。
參考: https ://mampsupportforum.com/forums/latest/mamp-mamp-pro-disable-mysql-strict-mode
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.