আমি আমার স্থানীয় মেশিনে মাইএসকিউএল সম্প্রদায় সংস্করণ 5.5 ইনস্টল করেছি এবং আমি দূরবর্তী সংযোগগুলিকে অনুমতি দিতে চাই যাতে আমি বাহ্যিক উত্স থেকে সংযোগ করতে পারি।
আমি এটা কিভাবে করবো?
sudo mysql_secure_installation
। অবগতির জন্য।
আমি আমার স্থানীয় মেশিনে মাইএসকিউএল সম্প্রদায় সংস্করণ 5.5 ইনস্টল করেছি এবং আমি দূরবর্তী সংযোগগুলিকে অনুমতি দিতে চাই যাতে আমি বাহ্যিক উত্স থেকে সংযোগ করতে পারি।
আমি এটা কিভাবে করবো?
sudo mysql_secure_installation
। অবগতির জন্য।
উত্তর:
মাইএসকিউএলে এটি ডিফল্টরূপে অনুমোদিত।
ডিফল্টরূপে যা অক্ষম করা হয়েছে তা হ'ল দূরবর্তী root
অ্যাক্সেস। আপনি যদি এটি সক্ষম করতে চান তবে স্থানীয়ভাবে এই এসকিউএল কমান্ডটি চালান:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
এবং তারপরে নিম্নলিখিত লাইনটি সন্ধান করুন এবং এটি আপনার my.cnf
ফাইলে মন্তব্য করুন যা সাধারণত /etc/mysql/my.cnf
ইউনিক্স / ওএসএক্স সিস্টেমে থাকে। কিছু ক্ষেত্রে ফাইলের অবস্থান /etc/mysql/mysql.conf.d/mysqld.cnf)।
যদি এটি একটি উইন্ডোজ সিস্টেম হয় তবে আপনি এটি মাইএসকিউএল ইনস্টলেশন ডিরেক্টরিতে খুঁজে পেতে পারেন, সাধারণত এর মতো কিছু থাকে C:\Program Files\MySQL\MySQL Server 5.5\
এবং ফাইলের নামটিও হয়ে থাকে my.ini
।
পরিবর্তন লাইন
bind-address = 127.0.0.1
প্রতি
#bind-address = 127.0.0.1
পরিবর্তনগুলি কার্যকর হওয়ার জন্য মাইএসকিউএল সার্ভার পুনরায় চালু করুন ( ইউনিক্স / ওএসএক্স এবং উইন্ডোজ )।
my.cnf
ফাইলটি সন্ধান করছেন এবং এতে কোনও bind-address
দিকনির্দেশনা খুঁজে পাচ্ছেন না তাদের কাছে নোট করুন যে আমার ক্ষেত্রে (উবুন্টু ১.0.০৪.২-এর মাইএসকিউএল সংস্করণ ১৪.১৪) ফাইলটির অবস্থান ছিল/etc/mysql/mysql.conf.d/mysqld.cnf
উপরের সমস্ত কাজ করার পরেও আমি এখনও root
দূরবর্তী অবস্থান হিসাবে লগইন করতে পারি নি , তবে পোর্টে টেলনেটিং 3306
নিশ্চিত করেছে যে MySQL
সংযোগগুলি গ্রহণ করছে।
আমি মাইএসকিউএল ব্যবহারকারীদের দিকে তাকাতে শুরু করেছি এবং লক্ষ্য করেছি যে বিভিন্ন পাসওয়ার্ড সহ একাধিক রুট ব্যবহারকারী রয়েছে users
select user, host, password from mysql.user;
সুতরাং MySQL
আমি আবার রুটের জন্য সমস্ত পাসওয়ার্ড সেট করেছিলাম এবং শেষ পর্যন্ত আমি দূরবর্তী হিসাবে লগ ইন করতে পারি root
।
use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;
update user set authentication_string=password('YOUR_PASSWORD') where user='root';
আমার অভিজ্ঞতার একটি নোট, আপনি এই পথের নীচে কনফিগারেশন ফাইলটি সন্ধান করতে পারেন /etc/mysql/mysql.conf.d/mysqld.cnf
।
(আমি এই পথটি খুঁজে পেতে কিছু সময়ের জন্য সংগ্রাম করেছি)
sudo find /etc -iname 'mysql*.cnf'
আমার ক্ষেত্রে আমি সেন্ট ওএসে একটি রিমোট মাইএসকিএল সার্ভারের সাথে সংযোগ দেওয়ার চেষ্টা করছিলাম। অনেকগুলি সমাধানের পরেও (সমস্ত সুবিধাগুলি মঞ্জুর করা, আইপি বাইন্ডিংগুলি সরিয়ে দেওয়া, নেটওয়ার্কিং সক্ষম করা) সমস্যাটি এখনও সমাধান হচ্ছে না।
যেমনটি পরিণত হয়েছে, বিভিন্ন সমাধান অনুসন্ধান করার সময়, আমি iptables জুড়ে এসেছি, যা আমাকে বুঝতে পেরেছিল যে মাইএসকিএল পোর্ট 3306 সংযোগ গ্রহণ করছে না।
আমি কীভাবে এই সমস্যাটি পরীক্ষা করে সমাধান করেছি সে সম্পর্কে এখানে একটি ছোট্ট নোট is
টেলনেট (মাইএসকিএল সার্ভার আইপি) [পোর্ট নন]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
পরিষেবা iptables বন্ধ
আশাকরি এটা সাহায্য করবে.
মাইএসকিউএল ব্যবহারকারীর জন্য ওয়াইল্ডকার্ড রিমোট অ্যাক্সেস সেট করতে দয়া করে নীচে উল্লিখিত পদক্ষেপগুলি অনুসরণ করুন।
(1) খোলা সেমিডি।
(২) সি: \ প্রোগ্রাম ফাইলগুলি \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার ৫. এক্স \ বিনে নেভিগেট করুন এবং এই আদেশটি চালান।
mysql -u root -p
(3) মূল পাসওয়ার্ড লিখুন।
(4) অনুমতি প্রদানের জন্য নিম্নলিখিত কমান্ডটি কার্যকর করুন।
* * সমস্ত পাসওয়ার্ড অন * প্রদান করুন। * 'পাসওয়ার্ড' এর মাধ্যমে 'ব্যবহারকারী নাম' @ 'আইপি' সনাক্তকরণ;
ব্যবহারকারী নাম: আপনি মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে চান এমন ব্যবহারকারীর নাম।
আইপি: আপনি যেখান থেকে মাইএসকিউএল সার্ভারে অ্যাক্সেসের অনুমতি দিতে চান তা সর্বজনীন আইপি ঠিকানা।
পাসওয়ার্ড: ব্যবহারকারীর ব্যবহারকারীর পাসওয়ার্ড।
ব্যবহারকারীকে যে কোনও আইপি ঠিকানা থেকে সংযোগ করার অনুমতি দেওয়ার জন্য আইপি% দিয়ে প্রতিস্থাপন করা যেতে পারে।
(5) কমান্ড অনুসরণ করে এবং প্রস্থান করে বিচক্ষণতা ফ্লাশ করুন।
ফ্ল্যাশ বেসামালিকাগুলি;
থেকে প্রস্থান; বা \ কিউ
যদি আপনার মাইএসকিউএল সার্ভার প্রক্রিয়াটি কেবল 127.0.0.1 বা :: 1 এ শুনছে তবে আপনি দূর থেকে সংযোগ করতে সক্ষম হবেন না। এতে যদি আপনার কোনও bind-address
সেটিং থাকে /etc/my.cnf
তবে সমস্যাটির উত্স হতে পারে।
আপনাকে অ- localhost
ব্যবহারকারীর জন্যও বিশেষাধিকার যুক্ত করতে হবে ।
127.0.0.1
?
যদি আপনি brew
এটি থেকে মাইএসকিউএল ইনস্টল করে থাকেন তবে কেবলমাত্র স্থানীয় ইন্টারফেসে এটি ডিফল্টরূপে শুনতে পারে। এটিকে ঠিক করতে আপনাকে সম্পাদনা করতে হবে /usr/local/etc/my.cnf
এবং এ bind-address
থেকে পরিবর্তন 127.0.0.1
করতে হবে *
।
তারপরে দৌড়াও brew services restart mysql
।
দূরবর্তী লগইন জন্য সমস্ত প্রক্রিয়া। রিমোট লগইনটি ডিফল্টরূপে বন্ধ। আপনাকে সমস্ত আইপি..র জন্য ম্যানুয়ালি খোলার প্রয়োজন সমস্ত আইপি অ্যাক্সেস দিতে
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
নির্দিষ্ট আইপি
GRANT ALL PRIVILEGES ON *.* TO 'root'@'your_desire_ip' IDENTIFIED BY 'password';
তারপর
flush privileges;
আপনি আপনার ব্যবহারকারীর হোস্ট এবং পাসওয়ার্ড পরীক্ষা করতে পারেন
SELECT host,user,authentication_string FROM mysql.user;
এখন আপনার দায়িত্ব এটি পরিবর্তন করা
bind-address = 127.0.0.1
আপনি এটি খুঁজে পেতে পারেন
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
যদি আপনি এটি সেখানে না পান তবে এটি চেষ্টা করুন
sudo nano /etc/mysql/my.cnf
এই মন্তব্য
#bind-address = 127.0.0.1
তারপরে মাইএসকিএল পুনরায় চালু করুন
sudo service mysql restart
এখন রিমোট লগইন উপভোগ করুন
মাত্র এফওয়াইআই আমি কয়েক ঘন্টা এই সমস্যাটি নিয়ে আমার চুলগুলি টেনে আনলাম .. অবশেষে আমি আমার হোস্টিং সরবরাহকারীকে কল করে দেখলাম যে আমার ক্ষেত্রে ক্লাউড সার্ভার ব্যবহার করে যে 1 ম 1 এর জন্য নিয়ন্ত্রণ প্যানেলে তাদের একটি দ্বিতীয় ফায়ারওয়াল রয়েছে যা আপনাকে ক্লোন করে পোর্ট যুক্ত করতে হবে 3306. একবার যুক্ত হয়ে আমি সরাসরি প্রবেশ করলাম ..
লোকাল এরিয়া নেটওয়ার্কে কোনও মাইএসকিউএল সার্ভার সেটআপ করার জন্য এই ব্লগটি MySQL
স্ক্র্যাচ থেকে সেট আপ করতে কার্যকর হবে
এবং ওএস এক্স লোকের জন্য সচেতন থাকতে হবে যে বাইন্ড-অ্যাড্রেস প্যারামিটারটি সাধারণত লঞ্চ করা প্লিস্টে মাইআইআইআই ফাইলে সেট করা থাকে। সুতরাং আমার ক্ষেত্রে, আমি <string>--bind-address=127.0.0.1</string>
এখান থেকে সরিয়েছি /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist
।
~/Library/LaunchAgents
যদি লুপব্যাক / স্থানীয় ঠিকানায় (যেমন ) mysqld
একটি বাইন্ড ঠিকানা সেট করা থাকে 127.0.0.1
, তবে সার্ভারটি দূরবর্তী হোস্টগুলি থেকে পৌঁছানো যাবে না, কারণ কোনও দূরবর্তী হোস্ট থেকে লুপব্যাক ইন্টারফেসে পৌঁছানো যায় না।
যে কোনও হোস্টের সংযোগ গ্রহণ করতে এই বিকল্পটি 0.0.0.0
( ::
আইপিভি 4 + 6 এর জন্য) সেট করুন বা আপনি যদি কেবল একটি ইন্টারফেসে সংযোগের অনুমতি দিতে চান তবে অন্য কোনও বহিরাগত-ਪਹੁੰਚযোগ্য ঠিকানায় সেট করুন।
কিছু সময় উইন্ডোতে পিসির নাম ব্যবহার করা প্রয়োজন
প্রথম পদক্ষেপ) মাইএসকিএলের কনফিগারেশন ফাইলটিতে রাখুন:
mysqld.cnf SET বাইন্ড-ঠিকানা = 0.0.0.0
(টিসিপি / আইপি-র মাধ্যমে সংযোগগুলি পুনরুদ্ধার করতে)
দ্বিতীয় পদক্ষেপ) উইন্ডোজ উত্স, পর্ব নয় , পিসির নাম সহ, মাইএসকিএল, টেবিল ব্যবহারকারীদের ব্যবহারকারী করুন
রিমোট রুট অ্যাক্সেস সক্ষম করা বিপজ্জনক হতে পারে। আপনি আরও সীমাবদ্ধ অনুমতি নিয়ে ব্যবহারকারীর অ্যাকাউন্টগুলি সেট আপ করা ভাল be নিম্নলিখিত তিনটি পদক্ষেপ এটি করা উচিত।
নিশ্চিত করুন যে এর সাথে শুরু হওয়া লাইনটি bind-address ...
আপনার my.ini বা my.cnf ফাইলে কমপক্ষে মন্তব্য করেছে। যদি এটি বিদ্যমান না থাকে তবে এগিয়ে যান। আপনি C:\ProgramData\MySQL\MySQL Server 8.0
উইন্ডোজ এই ফাইলটি খুঁজে পেতে পারেন ।
এরপরে, আপনি যে ইউজার অ্যাকাউন্টটির সাথে সংযোগ স্থাপন করছেন সেটি localhost
চূড়ান্তভাবে হোস্ট ম্যাচিংয়ের ক্ষেত্রের ক্ষেত্রে নেই check এটি প্রস্তাবিত নয়, আপনি পরিবর্তে %
পরীক্ষার উদ্দেশ্যে সেই ক্ষেত্রে রাখতে পারেন । আপনি এটি মাইএসকিউএল ওয়ার্কবেঞ্চের সাথে সার্ভারে স্থানীয় সংযোগটি খোলার পরে মেনু বার থেকে সার্ভার> ব্যবহারকারী এবং সুবিধাগুলিতে যান এবং আপনি যে অ্যাকাউন্টটি যুক্ত হতে চান তা সন্ধান করে এটি করতে পারেন।
"হোস্ট ম্যাচিংয়ের সীমাবদ্ধতা" ক্ষেত্রটি আপনাকে অ-স্থানীয়ভাবে সংযোগ করতে অস্বীকার করে। অর্থাৎ এটি আইপি অ্যাড্রেসের এক ধরণের স্বীকৃত সংযোগগুলিকে সীমাবদ্ধ করে। আদর্শভাবে, আপনার একটি স্থির আইপি ঠিকানা বা সাবনেট থেকে মাইএসকিউএল সার্ভারটি অ্যাক্সেস করা উচিত, যাতে আপনি যথাসম্ভব সীমাবদ্ধ হতে পারেন।