Homebrew mysql के लिए, जहां my.cnf स्थापित है? यह एक स्थापित करता है?
Homebrew mysql के लिए, जहां my.cnf स्थापित है? यह एक स्थापित करता है?
जवाबों:
डिफ़ॉल्ट रूप से 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 को इनवॉइस करते समय पढ़ने के लिए कुछ विकल्प हैं।
ls $(brew --prefix mysql)/*.cnf
mysql --help | grep cnf
वास्तव में लाइनों को खोजना आसान था।
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
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
/usr/local/
(जो डिफ़ॉल्ट मुझे लगता है कि है), तो आप भी दे सकते हैं my.conf
में /usr/local/etc/
है, जो रूट विशेषाधिकारों की आवश्यकता नहीं है।
brew --prefix mariadb
। MariaDB वितरण में my-default.cnf
मौजूद नहीं है - इसलिए उपयोग करें my-small.cnf
। यह कोशिश करोcp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
एक तरीका यह पता लगाने के लिए:
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
mdfind -name my.cnf
बजाय उपयोग कर सकते हैंlocate
locate my.cnf
सीधे काम किया। मैं नहीं चलाsudo /usr/libexec/locate.updatedb
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf
और /usr/local/etc/my.cnf
मुझे क्या मिला
कुछ भी नहीं वास्तव में मेरी मदद की - मैं एक /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 ...
लाइनों।
मेरे सिस्टम में यह था
nano /usr/local/etc/my.cnf.default
टेम्पलेट के रूप में और
nano /usr/local/etc/my.cnf
काम कर रहा है।
चूंकि 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
।
अपने शेल प्रकार पर 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
मेरा मानना है कि उत्तर नहीं है। एक को ~ / .my.cnf या / usr / लोकल / आदि में इंस्टॉल करना पसंदीदा समाधान लगता है।
Homebrew के मामले में, mysql my.cnf की इट्स सेलर डायरेक्टरी में भी दिखेगी, उदाहरण के लिए:
/usr/local/Cellar/mysql/5.7.21/my.cnf
मामले के लिए एक बायनेरिज़ के पास कॉन्फिग को रखना पसंद करता है - my.cnf
अगर यह गायब है तो यहां बनाएं ।
परिवर्तन के बाद mysql को पुनरारंभ करें:
brew services restart mysql
सर्वर संस्करण: 8.0.19 होमब्रे। macOS कैटालिना 10.15.5 और Homebrew के माध्यम से MySQL स्थापित किया है। इस फ़ाइल को यहाँ मिला:
/usr/local/etc/my.cnf
इस समाधान में मदद मिली :)
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 सेकंड)