আমি মাইএসকিউএলে দূরবর্তী অ্যাক্সেস সক্ষম করতে এই টিউটোরিয়ালটি অনুসরণ করার চেষ্টা করছি । সমস্যাটি হচ্ছে, my.cnf
ফাইলটি কোথায় অবস্থিত হওয়া উচিত ? আমি ম্যাক ওএস এক্স লায়ন ব্যবহার করছি।
আমি মাইএসকিউএলে দূরবর্তী অ্যাক্সেস সক্ষম করতে এই টিউটোরিয়ালটি অনুসরণ করার চেষ্টা করছি । সমস্যাটি হচ্ছে, my.cnf
ফাইলটি কোথায় অবস্থিত হওয়া উচিত ? আমি ম্যাক ওএস এক্স লায়ন ব্যবহার করছি।
উত্তর:
মাইএসকিউএল ফোরামের এই থ্রেডটি বলে:
ডিফল্টরূপে, ওএস এক্স ইনস্টলেশনটি একটি my.cnf ব্যবহার করে না এবং মাইএসকিউএল কেবলমাত্র ডিফল্ট মান ব্যবহার করে। আপনার নিজস্ব মাই সিএনএফ সেট আপ করতে আপনি সরাসরি / ইত্যাদি মধ্যে একটি ফাইল তৈরি করতে পারেন।
ওএস এক্স-তে উদাহরণ কনফিগারেশন ফাইল সরবরাহ করে /usr/local/mysql/support-files/
।
এবং যদি আপনি সেখানে সেগুলি খুঁজে না পান তবে মাইএসকিউএলওয়র্কব্যাঞ্চ এগুলি আপনার জন্য তৈরি করতে পারে:
my.cnf
ফাইলের মাধ্যমে mysql --verbose --help | grep my.cnf
ম্যাক ওএস এক্স ম্যাভারিকের ক্ষেত্রে যখন মাইএসকিউএল এটি অবস্থিত হোমব্রুয়ের মাধ্যমে ইনস্টল করা হবে /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc
। আমি হাই সিয়েরাতে আছি তবে এটি কয়েক সংস্করণে ইনস্টল করা হয়েছিল।
সাধারণভাবে, ইউনিক্স এবং ইউনিক্সের মতো সিস্টেমে মাইএসকিউএল / মারিয়াডিবি প্রোগ্রামগুলি নিম্নলিখিত স্থানে কনফিগার / স্টার্টআপ ফাইলগুলি (নির্দিষ্ট ক্রমে) পড়ে:
/etc/my.cnf
- গ্লোবাল/etc/mysql/my.cnf
- গ্লোবালSYSCONFDIR/my.cnf
- গ্লোবাল
SYSCONFDIR
মাইএসকিউএল কখন তৈরি হয়েছিল সেইSYSCONFDIR
বিকল্পের সাথে নির্দিষ্ট ডিরেক্টরিটি উপস্থাপন করেCMake
। ডিফল্টরূপে, এটি সংকলিত ইনস্টলেশন ডিরেক্টরিতে অন্তর্ভুক্ত ইত্যাদি ডিরেক্টরি।
$MYSQL_HOME/my.cnf
- সার্ভার-নির্দিষ্ট (কেবল সার্ভার)
MYSQL_HOME
সেই পরিবেশের পরিবর্তনশীল যা ডিরেক্টরিতে যাওয়ার সার্ভার-নির্দিষ্টmy.cnf
ফাইলটি অন্তর্ভুক্ত করে containing যদিMYSQL_HOME
সেট না করা থাকে এবং আপনিmysqld_safe
প্রোগ্রামটি ব্যবহার করে সার্ভার শুরু করেন , এটি মাইএসকিউএল বেস ইনস্টলেশন ডিরেক্টরিতেmysqld_safe
সেট করেBASEDIR
।
ফাইল --defaults-extra-file=path
যদি নির্দিষ্ট থাকে তবে
~/.my.cnf
- ব্যবহারকারী নির্দিষ্ট~/.mylogin.cnf
- ব্যবহারকারী-নির্দিষ্ট (কেবল ক্লায়েন্ট)উত্স: অপশন ফাইল ব্যবহার করে ।
দ্রষ্টব্য: ইউনিক্স প্ল্যাটফর্মে, মাইএসকিউএল কনফিগারেশন ফাইলগুলিকে অগ্রাহ্য করে যা বিশ্ব লিখনযোগ্য। এটি সুরক্ষা ব্যবস্থা হিসাবে ইচ্ছাকৃত।
অতিরিক্তভাবে ম্যাক এ এটি পরীক্ষা করার একটি সহজ উপায় আছে।
চালান: sudo fs_usage | grep my.cnf
এটি সেই ফাইল সম্পর্কিত রিয়েল-টাইমে যে কোনও ফাইল সিস্টেমের ক্রিয়াকলাপের প্রতিবেদন করবে।
অন্য টার্মিনালে, আপনার মাইএসকিউএল / মারিয়াডিবি পুনরায় চালু করুন, যেমন
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
ফাইলের অস্তিত্ব নেই!
আমি জানি না আপনি মাইএসকিউএলের কোন সংস্করণ ব্যবহার করছেন তবে ম্যাক ওএস এক্স-এর সংস্করণ 5.5 ( এখান থেকে নেওয়া ) এর জন্য মাই সিএনএফ ফাইলের সম্ভাব্য অবস্থানগুলি এখানে রয়েছে :
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(ফাইল যদি নির্দিষ্ট থাকে --defaults-extra-file=path
তবে)~/.my.cnf
ম্যাক ওএস এক্স এল ক্যাপিটনে মাইএসকিউএল 5.7 এর জন্য: /usr/local/mysql/etc/my.cnf
ডিফল্ট কনফ থেকে কপি করুন /usr/local/mysql/support-files/my-default.cnf
আপনি যদি ম্যাকস সিয়েরা ব্যবহার করছেন এবং ফাইলটি উপস্থিত না থেকে চালান
mysql --help or mysql --help | grep my.cnf
সম্ভাব্য অবস্থানগুলি দেখতে এবং mysql এর জন্য my.cnf এর লোডিং / রিডিং অনুক্রমটি দেখতে হলে প্রস্তাবিত ডিরেক্টরিগুলির মধ্যে একটিতে 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
এরপরে আপনি এসকিএল মোড যুক্ত করে ফাইল সম্পাদনা করতে পারবেন
sudo nano /{preferred-path}/my.cnf
তারপরে মাইএসকিএল পুনরায় চালু করুন, ভয়েলাঃ আপনি যেতে ভাল। শুভ কোডিং
Mac OS X এর মাভারিক্স জন্য বর্তমান মাইএসকিউএল প্যাকেজ (এই লেখার সময়ে MySQL-5.6.17-osx10.7-, x86_64) স্বয়ংক্রিয়ভাবে ইনস্টলেশনের সময় my.cnf সৃষ্টি করে।
এটি /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
আপনার সংস্করণ অনুযায়ী আপনার পথটি অ্যাডাপ্টে অবস্থিত ।
সুতরাং এই কিছুই আমার জন্য কাজ করে না। আমি মাইএসকিএল সম্প্রদায় সার্ভারের বর্তমান ডিএমজি ইনস্টল ব্যবহার করছি। পিএস দেখায় যে মাই সিএনএফ-তে সাধারণত সবচেয়ে গুরুত্বপূর্ণ পরামিতিগুলি কমান্ড লাইনে উত্তীর্ণ হয় এবং আমি বুঝতে পারি না যে এটি কোথা থেকে এসেছে। আমার বাক্সের একটি সম্পূর্ণ পাঠ্য অনুসন্ধানের পরে আমি এটি খুঁজে পেয়েছি:
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
সুতরাং আপনি হয় সেগুলিকে সেখানে পরিবর্তন করতে পারেন, বা তাদের বাইরে নিয়ে যেতে পারেন যাতে এটি আপনার মাই সিএনএফ-এ যেখানে রয়েছে সেখানেই আপনি এটি রাখার সিদ্ধান্ত নিয়েছেন।
উপভোগ করুন!
এই ফাইলটিতে পাওয়া ফাইল তথ্যের উদাহরণ:
<?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
আপনি যে কোনও ডিরেক্টরিতে আপনার ফাইলটি তৈরি করতে পারেন। তৈরির পরে, আপনি মাইএসকিএল কনফিগারেশনের পথটি "বলতে" পারেন:
আপনি ফাইলটি পরীক্ষা করতে পারেন
/usr/local/bin/mysql.server
এবং কোথা my.conf
থেকে পড়া হচ্ছে তা দেখুন।
সাধারণত এটা থেকে /etc/my.cnf
বা ~/my.cnf
বা~/.my.cnf
~/.my.cnf
। ফাইলের নামের আগে একটি বিন্দু যুক্ত করুন।
আপনি যে সংস্করণটি ব্যবহার করছেন তার জন্য মাইএসকিউএল ডকুমেন্টগুলি সহায়তা করবে। এটি সাধারণত Options File
বা হিসাবে বর্ণনা করা হয় MySQL Config File
।
ডকুমেন্টের পাশাপাশি ডকুমেন্টেশনে এই ফাইলগুলির অবস্থান রয়েছেVITAL
তথ্য যেমন কনফিগার ফাইলটি দেখতে কেমন হবে তার ছোট ছোট উদাহরণ রয়েছে।
ইউনিক্স প্ল্যাটফর্মে, মাইএসকিউএল কনফিগারেশন ফাইলগুলিকে অগ্রাহ্য করে যা বিশ্ব লিখনযোগ্য।
এটি সুরক্ষা ব্যবস্থা হিসাবে ইচ্ছাকৃত।
অন্য কথায়, আপনার কনফিগার ফাইলে যদি ভুল অনুমতি সেট থাকে তবে লোড হবে না।
কনফিগার ফাইলগুলির মধ্যে একটির প্রাথমিক সেটআপ অনুমতিের উদাহরণ:
RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r-- 1 myusername wheel 0B Feb 25 20:40 /etc/my.cnf
!include
অন্যান্য বিকল্প ফাইল অন্তর্ভুক্ত করতে এবং!includedir
বিকল্প ফাইলগুলির জন্য সুনির্দিষ্ট ডিরেক্টরি অনুসন্ধান করার জন্য বিকল্প ফাইলগুলিতে নির্দেশাবলী ব্যবহার করা সম্ভব ........ মাইএসকিউএল ডিরেক্টরিতে বিকল্প ফাইলগুলি কীভাবে পড়বে তা সম্পর্কে কোনও গ্যারান্টি দেয় না ...
ইউনিক্স অপারেটিং সিস্টেমের অন্তর্ভুক্ত নির্দেশিকা ব্যবহার করে যে কোনও ফাইল সন্ধান করতে এবং অন্তর্ভুক্ত করা উচিত তার অবশ্যই ফাইলের নাম শেষ হতে হবে
.cnf
। Windows, সঙ্গে ফাইলের জন্য এই ডিরেক্টিভের চেক.ini
বা.cnf
এক্সটেনশান।
আপনার কনফিগারেশন বা লগ ফাইলগুলিতে আপনার অবস্থান কীভাবে পাওয়া যায় তার উদাহরণসমূহ:
এটি আপনাকে কনফিগার ফাইলটি প্রদর্শন করবে না তবে আপনাকে আপনার ইনস্টলেশন ফাইল / ফোল্ডারগুলি সনাক্ত করতে সহায়তা করবে।
মাইএসকিউএল সংস্করণ 5.7 এবং 8+
SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
মাইএসকিউএল সংস্করণ <= 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
কমান্ড ক্রেডিট উপরে: সার্ভারফল্ট থেকে এরউইন মায়ার
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 প্রয়োজন হয়:
ইউআরএল'র সাথে কোনও সংযুক্তি / সমিতি নেই
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)
আমি হোমব্রু ইনস্টল করা ম্যাকস সিয়েরায় চেক করেছি MySql 5.7.12
সমর্থন ফাইলগুলি অবস্থিত
/usr/local/opt/mysql/support-files
শুধু কপি my-default.cnf
হিসাবে /etc/my.cnf
বা /etc/mysql/my.cnf
ও কনফিগারেশন রিস্টার্টে কুড়ান করা হবে না।
ম্যাকোস উচ্চ সিয়েরা সংস্করণ 10.13.6
mysql Ver 14.14 ডিস্ট্রিবিউট 5.7.22, osx10.13 (x86_64) এডিটলাইন র্যাপার কপিরাইট (সি) 2000, 2018, ওরাকল এবং / বা এর সম্পর্কিত সংস্থাগুলি ব্যবহার করে। সমস্ত অধিকার সংরক্ষিত
প্রদত্ত ক্রমে নিম্নলিখিত ফাইলগুলি থেকে ডিফল্ট বিকল্পগুলি পড়া হয়:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
ক্যাটালিনার জন্য /private/etc/my.cnf
আমি ম্যাকএস হাই সিয়েরা সংস্করণ 10.13.3 এ মাইকিকিএল সংস্করণ 5.7.17 ব্যবহার করছি এবং আমি এখানে মাইএসকিএল কনফিগারেশন ফাইলটি পেয়েছি।
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.
/Etr/local/opt/mysql/support-files/my-default.cnf কে /etc/my.cnf বা /etc/mysql/my.cnf হিসাবে অনুলিপি করুন এবং তারপরে mysql পুনরায় আরম্ভ করুন।
আমার ক্ষেত্রে, ফাইলটির অস্তিত্ব ছিল না। মাইএসকিউএল ওয়ার্কবেঞ্চে আমি অপশন ফাইলটিতে গিয়ে কিছু ডিফল্ট মান খুঁজে পেয়েছি। আমি ক্লিক ক্লিক। এটি অনুমতি চেয়েছিল। এরপরে এটি / etc এর অধীনে my.cnf ফাইল তৈরি করে। তবে এটি মনে রাখা খুব জরুরী যে আপনি প্রথমবার "প্রয়োগ" ক্লিক করেন, আপনি ডিফল্ট কনফিগারেশনটিতে কোনও পরিবর্তন করেন না। একবার ফাইলটি তৈরি হয়ে গেলে, আপনি পরিবর্তন করতে পারবেন যা আপনি "প্রয়োগ" ক্লিক করলে প্রয়োগ করা হবে। অন্যথায় আপনি পরিবর্তনগুলি করার সময় আপনাকে প্রয়োগ বোতামটি প্রদর্শিত হবে না।
/etc/mysql/my.cnf
তবে মাইএসকিউএল ওয়ার্কবেঞ্চ এটি সম্পর্কে অবগত নয়। পরিবর্তে, এটি অভিযোগ করে যে একটি খালি পথ সহ কনফিগারেশন ফাইলটি পাওয়া যায় না এবং তারপরে একটি নতুন ফাইল তৈরি করার প্রস্তাব দেয়।
প্রদত্ত ক্রমে নিম্নলিখিত ফাইলগুলি থেকে rDefault অপশনগুলি পড়তে হবে:
আমি ম্যাকওএস মোজাভে (10.14.6) চালিয়ে যাচ্ছি এবং আমার কনফিগারেশন ফাইলটি সনাক্ত করতে মাইএসকিউএল পাওয়ার জন্য, আমি এটিকে /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf এ রেখেছি। এছাড়াও আমার কাছে /usr/local/@mysql/etc/my.cnf থেকে এটিকে নির্দেশ করে একটি প্রতীকী লিঙ্ক রয়েছে।
আমি sql_mode = only_ful_group_by বন্ধ করার চেষ্টা করছিলাম এবং কনফিগারেশন ফাইলে সেই বিকল্পটি সেট করা একমাত্র উপায় ছিল যা আমি অধিবেশনগুলি জুড়ে থাকার জন্য সেটিংটি পেতে পারি। কনফিগার ফাইলের সামগ্রীগুলি হ'ল:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
আমি মাইএসকিউএলের নেটিভ ইনস্টল ব্যবহার করছি, হোমব্রিউ সেট আপ নয়।
মাইএসকিএল 8.0.19-র জন্য, অবশেষে আমি এখানে my.cnf খুঁজে পেয়েছি: /usr/local/opt/mysql/.bٹل/etc আমি এটিকে / ইউএসআর / স্থানীয় / অপ্ট / মাইএসকিএল / তে অনুলিপি করে পরিবর্তন করেছি। তারপরে আমি মাইএসকিএল পরিষেবাটি পুনরায় চালু করি, এটি কাজ করে।