คำตอบ:
กระทู้ในฟอรั่ม MySQL นี้พูดว่า:
ตามค่าเริ่มต้นการติดตั้ง OS X ไม่ได้ใช้ my.cnf และ MySQL เพียงแค่ใช้ค่าเริ่มต้น หากต้องการตั้งค่า my.cnf ของคุณเองคุณสามารถสร้างไฟล์ตรง / etc
OS X /usr/local/mysql/support-files/
ให้แฟ้มการกำหนดค่าตัวอย่างที่
และหากคุณไม่พบที่นั่น MySQLWorkbench สามารถสร้างพวกเขาให้คุณได้โดย:
my.cnf
ไฟล์ใดก็ตามที่คุณกำลังแก้ไขผ่านmysql --verbose --help | grep my.cnf
ในกรณีของ Mac OS X Maverick เมื่อติดตั้ง MySQL ผ่าน Homebrew จะอยู่ที่ /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc
เหมือง ฉันใช้ High Sierra อยู่ แต่ได้ติดตั้งไปแล้วสองสามเวอร์ชัน
โดยทั่วไปในระบบที่คล้าย Unix และ Unix โปรแกรม MySQL / MariaDB จะอ่านไฟล์ config / startup ในตำแหน่งต่อไปนี้ (ตามลำดับที่ระบุ):
/etc/my.cnf
- ทั่วโลก/etc/mysql/my.cnf
- ทั่วโลกSYSCONFDIR/my.cnf
- ทั่วโลก
SYSCONFDIR
แสดงถึงไดเรกทอรีที่ระบุพร้อมกับSYSCONFDIR
ตัวเลือกCMake
เมื่อสร้าง MySQL โดยดีฟอลต์นี่คือไดเร็กทอรี 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
ดังนั้นหากไฟล์ไม่มีอยู่ให้สร้างขึ้นใหม่
sudo fs_usage | grep my.cnf
วิธีการค่อนข้างมีประสิทธิภาพ ผมพบแฟ้มนี้ในโฟลเดอร์: /usr/local/etc/my.cnf
private/etc/my.cnf
, /usr/local/etc/my.cnf
, /usr/local/Cellar/mysql/<myVersion>/my.cnf
, ~.my.cnf
ที่มีmy_print_def
อยู่ในคอลัมน์ขวามากที่สุด หลังจากนั้นไม่นานมันก็เป็นเพียงแค่/usr/local/etc/my.cnf
เทอร์มินัลของฉันในคอลัมน์ขวาสุด แต่my.cnf
ไฟล์เหล่านี้ทั้งหมดไม่มีอยู่!
ฉันไม่รู้ว่า MySQL รุ่นใดที่คุณใช้อยู่ แต่ที่นี่เป็นตำแหน่งที่เป็นไปได้ของไฟล์ my.cnf สำหรับเวอร์ชั่น 5.5 (ถ่ายจากที่นี่ ) บน Mac OS X:
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(ไฟล์ที่ระบุด้วย--defaults-extra-file=path
ถ้ามี)~/.my.cnf
สำหรับ MySQL 5.7 บน Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
คัดลอกค่าเริ่มต้นจาก /usr/local/mysql/support-files/my-default.cnf
หากคุณใช้ macOS Sierra และไม่มีไฟล์อยู่ให้เรียกใช้
mysql --help or mysql --help | grep my.cnf
เพื่อดูตำแหน่งที่เป็นไปได้และลำดับการโหลด / อ่านของ my.cnf สำหรับ 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 ใหม่ voilaah คุณทำได้ดี การเข้ารหัสที่มีความสุข
แพคเกจ MySQL ปัจจุบันสำหรับ 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
ปรับเส้นทางของคุณตามรุ่นของคุณ
ดังนั้นสิ่งเหล่านี้จึงไม่เหมาะกับฉันเลย ฉันกำลังใช้การติดตั้ง dmg ปัจจุบันของเซิร์ฟเวอร์ชุมชน mysql ป.ล. แสดงให้เห็นว่าพารามิเตอร์ที่สำคัญที่สุดทั้งหมดใน 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>
/etc/my.cnf
คุณสามารถเปิดเทอร์มินัลและประเภท locate my.cnf
ใน mysql 5.6.22 ซึ่งฉันติดตั้งจาก Homebrew เส้นทางของ my.cnf คือ
/usr/local/opt/mysql/my.cnf
คุณสามารถสร้างไฟล์ของคุณภายใต้ไดเรกทอรีใด ๆ ที่คุณต้องการ หลังจากการสร้างคุณสามารถ "บอก" เส้นทางไปยังการกำหนดค่า mysql:
คุณสามารถตรวจสอบไฟล์
/usr/local/bin/mysql.server
และดูว่าmy.conf
อ่านจากที่ไหน
มักจะเป็นจาก/etc/my.cnf
หรือ~/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
เปิด Terminal และใช้คำสั่งด้านล่าง:
sudo find / -name my.cnf
เอกสาร MySQL ที่คุณใช้จะช่วยคุณได้ มันมักจะอธิบายว่าเป็นหรือOptions File
เอกสารมีตำแหน่งของไฟล์เหล่านี้ในเอกสารประกอบรวมถึงข้อมูลอื่น ๆเช่นตำแหน่ง & ตัวอย่างเล็ก ๆ ของไฟล์ปรับแต่งที่ต้องมีลักษณะMySQL Config File
VITAL
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 จะต้องมีชื่อไฟล์ที่ลงท้าย
.cnf
ด้วย บน Windows คำสั่งนี้ตรวจสอบไฟล์ที่มี.ini
หรือ.cnf
นามสกุล
ตัวอย่างวิธีค้นหาที่ตั้งของไฟล์ config หรือไฟล์บันทึกของคุณ:
นี่จะไม่แสดงไฟล์ปรับแต่งให้คุณ แต่จะช่วยคุณค้นหาไฟล์ / โฟลเดอร์การติดตั้งของคุณ
รุ่น 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
หรือ
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 Catalina (10.15.3) และพบในmy.cnf
/usr/local/etc
ฉันตรวจสอบใน macOS Sierra, ติดตั้ง homebrew แล้ว MySql 5.7.12
ไฟล์สนับสนุนอยู่ที่
/usr/local/opt/mysql/support-files
เพียงคัดลอกmy-default.cnf
เป็น/etc/my.cnf
หรือ/etc/mysql/my.cnf
และการกำหนดค่าจะถูกหยิบขึ้นมาในการรีสตาร์ท
macOS High Sierra เวอร์ชั่น 10.13.6
mysql Ver 14.14 Distrib 5.7.22 สำหรับ osx10.13 (x86_64) โดยใช้ EditLine wrapper Copyright (c) 2000, 2018, Oracle และ / หรือ บริษัท ในเครือ สงวนลิขสิทธิ์
ตัวเลือกเริ่มต้นจะอ่านจากไฟล์ต่อไปนี้ตามลำดับที่กำหนด:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
/private/etc/my.cnf สำหรับ Catalina
ฉันกำลังใช้ mysql รุ่น 5.7.17 ใน macOS High Sierra เวอร์ชั่น 10.13.3 และฉันพบไฟล์กำหนดค่า mysql ที่นี่
cd /usr/local/mysql/support-files/my-default.cnf
mysql --verbose --help | grep my.cnf
ที่ที่มันจะได้รับการหยิบขึ้นมาเป็นต่อ:DO NOT EDIT THIS FILE. It's a template which will be copied to the default location during install, and will be replaced if you upgrade to a newer version of MySQL.
มันควรจะอยู่ภายใต้/usr/local/etc
mac ถ้าคุณไม่พบมันคุณสามารถสร้าง
สำหรับ Mac สิ่งที่ได้ผลสำหรับฉันคือการสร้างไฟล์. my.cnf ในพา ธ ~ ของฉัน หวังว่านี่จะช่วยได้
คัดลอก /usr/local/opt/mysql/support-files/my-default.cnf เป็น /etc/my.cnf หรือ /etc/mysql/my.cnf จากนั้นรีสตาร์ท mysql
สำหรับฉันในรุ่นเซียร์รา
คัดลอกการกำหนดค่าเริ่มต้นที่:
/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 และพบค่าเริ่มต้นบางอย่าง ฉันคลิกสมัคร มันขออนุญาต จากนั้นจะสร้างไฟล์ my.cnf ภายใต้ / etc อย่างไรก็ตามโปรดจำไว้ว่าครั้งแรกที่คุณคลิก "ใช้" คุณจะไม่ทำการเปลี่ยนแปลงใด ๆ กับการกำหนดค่าเริ่มต้น เมื่อไฟล์ถูกสร้างขึ้นคุณสามารถทำการเปลี่ยนแปลงที่จะนำไปใช้เมื่อคุณคลิก "ใช้" มิฉะนั้นคุณจะไม่เห็นปุ่มนำไปใช้เมื่อคุณทำการเปลี่ยนแปลง
/etc/mysql/my.cnf
แต่ MySQL Workbench ไม่ทราบ แต่จะบ่นว่าไม่พบไฟล์กำหนดค่าที่มีพา ธ ว่างเปล่าจากนั้นเสนอให้สร้างไฟล์ใหม่
หลังจาก MySQL เวอร์ชัน 5.7.18 แล้วจะไม่มีไฟล์การกำหนดค่าเริ่มต้นในไดเรกทอรีสนับสนุนไฟล์ ดังนั้นคุณสามารถสร้างไฟล์ my.cnf ด้วยตนเองในตำแหน่งที่ MySQL จะอ่านเช่น /etc/mysql/my.cnf และเพิ่มการกำหนดค่าที่คุณต้องการเพิ่มในไฟล์
ตัวเลือก rDefault ถูกอ่านจากไฟล์ต่อไปนี้ตามลำดับที่กำหนด: /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 และการตั้งค่าตัวเลือกนั้นในไฟล์กำหนดค่าเป็นวิธีเดียวที่ฉันจะได้รับการตั้งค่าให้คงอยู่ตลอดเซสชัน เนื้อหาของไฟล์ config คือ:
[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 อีกครั้งมันใช้งานได้