হোমব্রিউ মাইএসকিএল ইনস্টলগুলির জন্য, আমার সিএনএনএফ কোথায়? এটি একটি ইনস্টল করে?
হোমব্রিউ মাইএসকিএল ইনস্টলগুলির জন্য, আমার সিএনএনএফ কোথায়? এটি একটি ইনস্টল করে?
উত্তর:
ডিফল্টরূপে কোনও my.cnf নেই। যেমন, মাইএসকিউএল সমস্ত ডিফল্ট সেটিংস দিয়ে শুরু হয়। আপনি যদি কোনও ডিফল্টকে ওভাররাইড করতে নিজের নিজস্ব c.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.
আপনি দেখতে পাচ্ছেন, কনফার্ট ফাইলগুলি বাইপাস করার জন্য বা কমান্ড লাইনে যখন মাইএসকিএল আহ্বান করবেন তখন অন্যান্য ফাইলগুলি পড়ার জন্য নির্দিষ্ট কিছু বিকল্প রয়েছে।
ls $(brew --prefix mysql)/*.cnf
mysql --help | grep cnf
লাইনগুলি পাওয়া খুব সহজ ছিল easier
হোমব্রিউ মাইএসকিএল-এ ইনস্টলেশনের সহায়তা-ফাইল ফোল্ডারে নমুনা কনফিগারেশন ফাইল রয়েছে।
ls $(brew --prefix mysql)/support-files/my-*
আপনার যদি ডিফল্ট সেটিংস পরিবর্তন করতে হয় তবে আপনি এগুলির একটিটি একটি প্রাথমিক পয়েন্ট হিসাবে ব্যবহার করতে পারেন।
cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf
@ রেডনো যেমন উল্লেখ করেছেন, মাইএসকিউএল এর হোমব্রব ইনস্টলটি সম্ভবত মাইএসএনএফ /usr/local
ফাইলটি সিস্টেম /etc
ফোল্ডারে যুক্ত করা উচিত নয় , তাই আমি ফাইলটি অনুলিপি করার জন্য আদেশটি পরিবর্তন করেছি /usr/local/etc
।
আপনি যদি মাইএসকিউএল এর চেয়ে মারিয়াডিবি ব্যবহার করেন তবে নিম্নলিখিতগুলি ব্যবহার করুন:
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/
, যা root ব্যবহারকারীর অধিকার উপস্থিত প্রয়োজন হয় না।
brew --prefix 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
এটি অন্য একটি মাই সিএনএফ খুঁজে পেয়েছে
/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@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
আমার (হোমব্রু ইনস্টল) মাইএসকিউএল 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
নির্দিষ্ট প্যাকেজ দ্বারা ফাইলটি কোথায় সরবরাহ করা হয়েছে তা আপনি আবিষ্কার করতে পারেন eg
brew list mysql # or: mariadb
সেই ফাইলটি পড়ে কিনা যাচাই করা ছাড়াও, আপনি চালাতে পারেন:
sudo fs_usage | grep my.cnf
যা আপনাকে সেই ফাইলের সাথে সম্পর্কিত রিয়েল-টাইমে ফাইল সিস্টেমের ক্রিয়াকলাপ দেখায়।
আমি বিশ্বাস করি উত্তরটি হ'ল না। ~ / .My.cnf বা / usr / স্থানীয় / ইত্যাদিতে একটি ইনস্টল করা পছন্দসই সমাধান বলে মনে হচ্ছে।
হোমব্রিউয়ের ক্ষেত্রে, মাইএসকিএল এর সেলার ডিরেক্টরিতে my.cnf সন্ধান করবে, উদাহরণস্বরূপ:
/usr/local/Cellar/mysql/5.7.21/my.cnf
কেসটির জন্য কেউ কনফিগারেশনটিকে বাইনারিগুলির কাছে রাখতে পছন্দ করে - my.cnf
এটি অনুপস্থিত থাকলে এখানে তৈরি করুন।
পরিবর্তনের পরে mysql পুনরায় আরম্ভ করুন:
brew services restart mysql
MacOS (হাই সিয়েরা) জন্য, মাইএসকিউএল যা হোম ব্রু সহ ইনস্টল করা হয়েছে।
মাইএসকিএল পরিবেশ থেকে বৈশ্বিক ভেরিয়েবলগুলি বৃদ্ধি করা সফল হয়নি। সুতরাং সেই ক্ষেত্রে ~ / .my.cnf তৈরি করা সবচেয়ে নিরাপদ বিকল্প। [মাইএসকিএলডি] এর সাথে ভেরিয়েবল যুক্ত করা পরিবর্তনগুলি অন্তর্ভুক্ত করবে (দ্রষ্টব্য: আপনি যদি [মাইএসকিএল] দিয়ে পরিবর্তন করেন তবে পরিবর্তনটি কার্যকর হতে পারে না)।
<~ /।
মাইএসকিএল সার্ভার পুনরায় চালু করুন। এবং ভেরিয়েবল পরীক্ষা করুন। Y
এসকিউএল> নির্বাচন করুন সর্বাধিক_অনুসরণ_প্যাক্ট; + ---------------------- + | @@ সর্বাধিক_নীত_প্যাকেট | + ---------------------- + | 1073741824 | + + ---------------------- + +
1 সারি সেট (0.00 সেকেন্ড)