Homebrew mysql के लिए, जहां my.cnf स्थापित है?


293

Homebrew mysql के लिए, जहां my.cnf स्थापित है? यह एक स्थापित करता है?

जवाबों:


263

डिफ़ॉल्ट रूप से my.cnf नहीं है। जैसे, MySQL सभी डिफ़ॉल्ट सेटिंग्स के साथ शुरू होता है। यदि आप किसी भी चूक को ओवरराइड करने के लिए अपना स्वयं का my.cnf बनाना चाहते हैं, तो इसे /etc/my.cnf पर रखें।

इसके अलावा, आप mysql --helpसूचीबद्ध स्थानों के लिए इसे चला सकते हैं और देख सकते हैं ।

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.

जैसा कि आप देख सकते हैं, कमांड लाइन पर mysql को इनवॉइस करते समय पढ़ने के लिए कुछ विकल्प हैं।


49
यह अब मामला नहीं लगता है; मैं /usr/local/Cellar/mysql/5.6.15/ (या जो भी संस्करण आपने स्थापित किया है) में my.cnf फ़ाइल देखता हूं
विलियम टरेल

6
@williamt "mysql --help" उस फ़ाइल को उपयोग किए जाने के रूप में सूचीबद्ध नहीं करता है, मुझे लगता है कि यह सिर्फ एक डिफ़ॉल्ट है जो स्थापना फ़ाइलों के साथ आता है
विनीसियस पिंटो

2
मैं 5.6.26 पर हूं और मैं वहां नहीं देखता हूं।
एडम ग्रांट

3
5.6.26 को रनिंग द्वारा lolcated किया जा सकता है: ls $(brew --prefix mysql)/*.cnf
danielgpm

23
mysql --help | grep cnfवास्तव में लाइनों को खोजना आसान था।
vinyll

267

Homebrew mysql में इंस्टॉलेशन के सपोर्ट-फाइल्स फोल्डर में सैंपल कॉन्फिगरेशन फाइल्स होती हैं।

ls $(brew --prefix mysql)/support-files/my-*

यदि आपको डिफ़ॉल्ट सेटिंग्स बदलने की आवश्यकता है तो आप इनमें से किसी एक को शुरुआती बिंदु के रूप में उपयोग कर सकते हैं।

cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf

जैसा कि @rednaw बताते हैं, MySQL का होमब्रेव इंस्टॉल सबसे अधिक संभावना में होगा, /usr/localइसलिए my.cnf फाइल को सिस्टम /etcफोल्डर में नहीं जोड़ा जाना चाहिए , इसलिए मैंने फाइल को कॉपी करने के लिए कमांड को बदल दिया है /usr/local/etc

यदि आप MySQL के बजाय MariaDB का उपयोग कर रहे हैं, तो निम्न का उपयोग करें:

cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf

4
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
मैट क्लेग

7
यदि Homebrew में MySQL स्थापित /usr/local/(जो डिफ़ॉल्ट मुझे लगता है कि है), तो आप भी दे सकते हैं my.confमें /usr/local/etc/है, जो रूट विशेषाधिकारों की आवश्यकता नहीं है।
गीताकार

1
काढ़ा - उपसर्ग mysql मेरे लिए सही रास्ता नहीं देता है, यह '/usr/local/Cellar/mysql/5.7.16' दिखाता है, लेकिन वास्तव में mariadb '/ usr / स्थानीय / ऑप्ट / mariadb /' में स्थापित होता है
झोझी '

@zhaozhi उपयोग brew --prefix mariadb। MariaDB वितरण में my-default.cnfमौजूद नहीं है - इसलिए उपयोग करें my-small.cnf। यह कोशिश करोcp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
13

यह स्वीकृत उत्तर होना चाहिए। पहला गलत है। जो सवाल पूछा गया था, वह होमब्रे से संबंधित था।
BugHunterUK

30

एक तरीका यह पता लगाने के लिए:

sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf

4
बहुत बढ़िया जवाब है, मैंने find.updatedb के बारे में सीखा। हालाँकि, कोई डिफ़ॉल्ट फ़ाइल डिफ़ॉल्ट रूप से नहीं है, नीचे उत्तर देखें
gbbm

15
आप OSX पर कमांड के mdfind -name my.cnfबजाय उपयोग कर सकते हैंlocate
जैकोपेन

मेरे लिए locate my.cnfसीधे काम किया। मैं नहीं चलाsudo /usr/libexec/locate.updatedb
Andru

1
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnfऔर /usr/local/etc/my.cnf मुझे क्या मिला
विंसेंट टैंग

18

कुछ भी नहीं वास्तव में मेरी मदद की - मैं एक /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

इस फाइल को बदलना मेरे लिए काम कर गया! लॉन्च एजेंट को पुनरारंभ करना न भूलें:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

अपडेट करें:

यदि आपके पास होमब्रेव की हाल ही की स्थापना है, तो आपको mysql को पुनरारंभ करने के लिए काढ़ा सेवाओं के आदेशों का उपयोग करना चाहिए (अपने स्थापित होमब्रे mysql संस्करण का उपयोग करें, अर्थात mysql या mysql@5.7):

brew services stop mysql
brew services start mysql

मुझे लगता है कि आप भी चला सकते हैं brew services stop mysqlऔर brew services start mysqlके स्थान पर launchctl unload ...लाइनों।
म्हुलसे

1
यह सच है - लेकिन इस जवाब को लिखने के समय ये होमब्रेव कमांड अभी तक उपलब्ध नहीं थे। मैं उत्तर को अपडेट
करूंगा

17

मेरे सिस्टम में यह था

nano /usr/local/etc/my.cnf.default 

टेम्पलेट के रूप में और

nano /usr/local/etc/my.cnf

काम कर रहा है।


13

चूंकि mysql --helpफाइलों की एक सूची दिखाता है, इसलिए मुझे यह देखने के लिए उपयोगी है कि परिणाम lsदेखने के लिए उनमें से कौन सा मौजूद है:

$ mysql --help | grep /my.cnf | xargs ls
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf

मेरे (Homebrew स्थापित) MySQL 5.7 के लिए, ऐसा लगता है कि फाइलें चालू हैं /usr/local/etc/my.cnf


10

अपने शेल प्रकार पर my_print_defaults --help

परिणाम के नीचे, आपको उस फ़ाइल को देखने में सक्षम होना चाहिए जिससे सर्वर कॉन्फ़िगरेशन पढ़ता है। यह कुछ इस तरह से प्रिंट करता है:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

5

आप पा सकते हैं कि my.cnfफ़ाइल विशिष्ट पैकेज द्वारा प्रदान की गई है, उदाहरण के लिए

brew list mysql # or: mariadb

सत्यापित करने के अलावा कि फ़ाइल पढ़ी गई है, आप चला सकते हैं:

sudo fs_usage | grep my.cnf

जो आपको उस फाइल से संबंधित वास्तविक समय में फाइलसिस्टम गतिविधि दिखाएगा।


4

मेरा मानना ​​है कि उत्तर नहीं है। एक को ~ / .my.cnf या / usr / लोकल / आदि में इंस्टॉल करना पसंदीदा समाधान लगता है।


2
मेरे MBP पर केवल /etc/my.cnf मुझे mysql की Homebrew स्थापना को प्रभावित करने की अनुमति देता है।
इवलेश

1

Homebrew के मामले में, mysql my.cnf की इट्स सेलर डायरेक्टरी में भी दिखेगी, उदाहरण के लिए:

/usr/local/Cellar/mysql/5.7.21/my.cnf

मामले के लिए एक बायनेरिज़ के पास कॉन्फिग को रखना पसंद करता है - my.cnfअगर यह गायब है तो यहां बनाएं ।

परिवर्तन के बाद mysql को पुनरारंभ करें:

brew services restart mysql

1

सर्वर संस्करण: 8.0.19 होमब्रे। macOS कैटालिना 10.15.5 और Homebrew के माध्यम से MySQL स्थापित किया है। इस फ़ाइल को यहाँ मिला:

/usr/local/etc/my.cnf

इस समाधान में मदद मिली :)


-1

MacOS (हाई सिएरा) के लिए, MySQL जो घर काढ़ा के साथ स्थापित किया गया है।

Mysql वातावरण से वैश्विक चर बढ़ाना सफल नहीं था। तो उस स्थिति में ~ / .my.cnf बनाना सबसे सुरक्षित विकल्प है। [Mysqld] के साथ चर जोड़ने से परिवर्तन शामिल होंगे (नोट: यदि आप [mysql] के साथ बदलते हैं, तो परिवर्तन काम नहीं कर सकता है)।

<~ / .my.cnf> [mysqld] connect_timeout = 43200 max_allowed_packet = 2048M net_buffer_length = 512M

Mysql सर्वर को पुनरारंभ करें। और चर की जाँच करें। y

sql> SELECT @@ max_allowed_packet; + ---------------------- + | @@ max_allowed_packet | + ---------------------- + | 1073741824 | + ---------------------- +

1 पंक्ति में सेट (0.00 सेकंड)


-1
  1. $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

  2. अपनी my.cf फ़ाइल को ड्रॉप करें /usr/local/opt/mysql

  3. brew services restart mysql

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.