অ্যান্ড্রয়েড

মাইএসকিএল ডাটাবেস সার্ভারে দূরবর্তী সংযোগগুলি কীভাবে অনুমোদন করবেন

কিভাবে মাইএসকিউএল সার্ভার উইন্ডোজ সার্ভার দূরবর্তী সংযোগ করার অনুমতি?

কিভাবে মাইএসকিউএল সার্ভার উইন্ডোজ সার্ভার দূরবর্তী সংযোগ করার অনুমতি?

সুচিপত্র:

Anonim

ডিফল্টরূপে, মাইএসকিউএল সার্ভার কেবল লোকালহস্ট থেকে সংযোগগুলির জন্য শোনায়, যার অর্থ এটি কেবল একই হোস্টে চলমান অ্যাপ্লিকেশনগুলির মাধ্যমে অ্যাক্সেস করা যায়।

তবে কিছু পরিস্থিতিতে, দূরবর্তী অবস্থান থেকে মাইএসকিউএল সার্ভারটি অ্যাক্সেস করা প্রয়োজন। উদাহরণস্বরূপ, আপনি যখন নিজের স্থানীয় সিস্টেম থেকে দূরবর্তী মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে চান বা যখন কোনও মাল্টি-সার্ভার স্থাপনার ব্যবহার করছেন যেখানে অ্যাপ্লিকেশনটি ডেটাবেস সার্ভার থেকে আলাদা কোনও মেশিনে চলছে। এর একটি বিকল্প হ'ল এসএসএইচ টানেলের মাধ্যমে মাইএসকিউএল সার্ভারটি অ্যাক্সেস করা এবং অন্যটি হ'ল মাইএসকিউএল সার্ভারকে দূরবর্তী সংযোগ গ্রহণের জন্য কনফিগার করা।

এই নির্দেশিকায়, আমরা কোনও মাইএসকিউএল সার্ভারে দূরবর্তী সংযোগের অনুমতি দেওয়ার জন্য প্রয়োজনীয় পদক্ষেপগুলি অতিক্রম করব। একই নির্দেশাবলী মারিয়াডিবি-র জন্য প্রযোজ্য।

মাইএসকিউএল সার্ভার কনফিগার করা হচ্ছে

প্রথম পদক্ষেপটি মাইএসকিউএল সার্ভারটি নির্দিষ্ট আইপি ঠিকানা বা মেশিনের সমস্ত আইপি ঠিকানা শুনতে শুনতে সেট করা।

মাইএসকিউএল সার্ভার এবং ক্লায়েন্টরা যদি একটি ব্যক্তিগত নেটওয়ার্কের মাধ্যমে একে অপরের সাথে যোগাযোগ করতে পারে তবে সর্বোত্তম বিকল্পটি কেবলমাত্র ব্যক্তিগত আইপিতে শুনতে মাইএসকিউএল সার্ভার সেট করা। অন্যথায়, আপনি যদি কোনও সর্বজনীন নেটওয়ার্কের মাধ্যমে সার্ভারের সাথে সংযোগ স্থাপন করতে চান তবে মাইএসকিউএল সার্ভারটি মেশিনের সমস্ত আইপি ঠিকানা শোনার জন্য সেট করুন।

এটি করতে, আপনাকে মাইএসকিউএল কনফিগারেশন ফাইলটি সম্পাদনা করতে হবে এবং bind-address বিকল্পটির মান যুক্ত করতে হবে বা পরিবর্তন করতে হবে। আপনি একটি একক আইপি ঠিকানা এবং আইপি ব্যাপ্তি সেট করতে পারেন। যদি ঠিকানা 0.0.0.0 , মাইএসকিউএল সার্ভার সমস্ত হোস্ট আইপিভি 4 ইন্টারফেসে সংযোগ গ্রহণ করে। যদি আপনার সিস্টেমে IPv6 কনফিগার করা থাকে তবে 0.0.0.0 পরিবর্তে :: ব্যবহার করুন।

মাইএসকিউএল কনফিগারেশন ফাইলের অবস্থান বিতরণের উপর নির্ভর করে পৃথক। উবুন্টু এবং ডেবিয়ান-এ ফাইলটি /etc/mysql/mysql.conf.d/mysqld.cnf এ অবস্থিত, যখন /etc/mysql/mysql.conf.d/mysqld.cnf ভিত্তিক ডিস্ট্রিবিউশন যেমন CentOS এর মধ্যে ফাইলটি /etc/my.cnf এ অবস্থিত।

আপনার পাঠ্য সম্পাদক দিয়ে ফাইলটি খুলুন:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

একটি রেখার সন্ধান করুন যা bind-address দিয়ে শুরু হয় এবং আইপি ঠিকানায় এর মান সেট করে যেখানে কোনও মাইএসকিউএল সার্ভার শোনা উচিত।

ডিফল্টরূপে, মানটি 127.0.0.1 সেট করা হয় (কেবল লোকালহোস্টে শোনে)।

এই উদাহরণে, আমরা মাইএসকিউএল সার্ভারকে মানটি 0.0.0.0 পরিবর্তন করে সমস্ত আইপিভি 4 ইন্টারফেস শুনতে শুনতে সেট করব

mysqld.cnf

bind-address = 0.0.0.0 # skip-networking

যদি skip-networking কোনও লাইন থাকে তবে এটি মুছুন বা লাইনের শুরুতে # যুক্ত করে মন্তব্য করুন।

মাইএসকিউএল ৮.০ এবং উচ্চতর ক্ষেত্রে, bind-address নির্দেশিকা উপস্থিত নাও থাকতে পারে। এই ক্ষেত্রে, এটি এর অধীনে যুক্ত করুন অধ্যায়.

একবার হয়ে গেলে, পরিবর্তনগুলি কার্যকর হওয়ার জন্য মাইএসকিউএল পরিষেবাটি পুনরায় চালু করুন। কেবলমাত্র রুট বা সুডোর সুবিধা সহ ব্যবহারকারীরা পরিষেবাগুলি পুনরায় চালু করতে পারবেন।

ডেবিয়ান বা উবুন্টুতে মাইএসকিউএল পরিষেবাটি পুনঃসূচনা করতে টাইপ করুন:

sudo systemctl restart mysql

রেডহ্যাট ভিত্তিক বিতরণগুলিতে CentOS এর মতো পরিষেবাটি পুনরায় চালু করতে:

sudo systemctl restart mysqld

রিমোট মেশিন থেকে কোনও ব্যবহারকারীর অ্যাক্সেস মঞ্জুর করা

পরবর্তী পদক্ষেপটি হ'ল দূরবর্তী ব্যবহারকারীকে ডাটাবেসে অ্যাক্সেসের অনুমতি দেওয়া।

মাইএসকিউএল সার্ভারে মূল ব্যবহারকারী হিসাবে লগ ইন করুন:

sudo mysql

mysql -uroot -p

মাইএসকিউএল শেলটির অভ্যন্তর থেকে, দূরবর্তী ব্যবহারকারীর জন্য অ্যাক্সেস দিতে গ্র্যান্ট স্টেটমেন্টটি ব্যবহার করুন।

GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';

কোথায়:

  • database_name সেই ডাটাবেসের নাম যা ব্যবহারকারীর সাথে সংযুক্ত হবে। ব্যবহারকারীর নাম মাইএসকিউএল ব্যবহারকারীর নাম। ip_address হল এমন আইপি ঠিকানা যা থেকে ব্যবহারকারী সংযুক্ত হবে। ব্যবহারকারীকে যে কোনও আইপি ঠিকানা থেকে সংযোগ করার অনুমতি দেওয়ার জন্য % ব্যবহার করুন। ব্যবহারকারীর পাসওয়ার্ড হল ব্যবহারকারী পাসওয়ার্ড।

উদাহরণস্বরূপ, আইপি 10.8.0.5 সহ ক্লায়েন্ট মেশিন থেকে পাসওয়ার্ড my_passwd সহ একটি foo নামের একজন ব্যবহারকারীকে একটি ডাটাবেস dbname নাম অ্যাক্সেস dbname জন্য, আপনি চালনা করবেন:

GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';

ফায়ারওয়াল কনফিগার করা হচ্ছে

দূরবর্তী মেশিনগুলি থেকে 3306 (মাইএসকিউএল ডিফল্ট পোর্ট) পোর্টে ট্র্যাফিকের অনুমতি দেওয়ার জন্য আপনার ফায়ারওয়ালটি কনফিগার করা শেষ পদক্ষেপ।

iptables

sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT

নির্দিষ্ট আইপি ঠিকানা থেকে অ্যাক্সেসের অনুমতি দিন:

sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT

UFW

উবুন্টুতে ইউএফডাব্লু হ'ল ডিফল্ট ফায়ারওয়াল সরঞ্জাম। ইন্টারনেটে কোনও আইপি ঠিকানা থেকে অ্যাক্সেসের অনুমতি দেওয়ার জন্য (খুব নিরাপদ) রান করুন:

sudo ufw allow 3306/tcp

নির্দিষ্ট আইপি ঠিকানা থেকে অ্যাক্সেসের অনুমতি দিন:

sudo ufw allow from 10.8.0.5 to any port 3306

FirewallD

ফায়ারওয়াল্ড হ'ল সেন্টস-এ ডিফল্ট ফায়ারওয়াল পরিচালনার সরঞ্জাম। ইন্টারনেটে কোনও আইপি ঠিকানা থেকে অ্যাক্সেসের অনুমতি দেওয়ার জন্য (খুব নিরাপদ) টাইপ করুন:

sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp sudo firewall-cmd --reload

নির্দিষ্ট পোর্টে একটি নির্দিষ্ট আইপি ঠিকানা থেকে অ্যাক্সেসের অনুমতি দেওয়ার জন্য, আপনি হয় একটি নতুন ফায়ারওয়ালডি জোন তৈরি করতে পারেন বা একটি সমৃদ্ধ নিয়ম ব্যবহার করতে পারেন। mysqlzone নামক একটি নতুন অঞ্চল তৈরি করুন:

sudo firewall-cmd --new-zone=mysqlzone --permanent sudo firewall-cmd --reload sudo firewall-cmd --new-zone=mysqlzone --permanent sudo firewall-cmd --reload sudo firewall-cmd --new-zone=mysqlzone --permanent sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32 sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32 sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp sudo firewall-cmd --reload

পরিবর্তনগুলি যাচাই করা হচ্ছে

দূরবর্তী ব্যবহারকারী মাইএসকিউএল সার্ভারের সাথে সংযোগ করতে পারবেন তা যাচাই করতে নিম্নলিখিত কমান্ডটি চালান:

mysql -u user_name -h mysql_server_ip -p

যেখানে ব্যবহারকারীর নাম আপনি যে ব্যবহারকারীর অ্যাক্সেস মঞ্জুর করেছেন তার নাম এবং মাইএসকিউএল_সভার_ইপ যেখানে মাইএসকিউএল সার্ভারটি চালিত হয় তার আইপি ঠিকানা।

যদি সবকিছু সঠিকভাবে সেট আপ হয় তবে আপনি দূরবর্তী মাইএসকিউএল সার্ভারে লগইন করতে সক্ষম হবেন।

ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"

নীচের ত্রুটিটি ইঙ্গিত করছে যে আপনি লগ ইন করতে চাইছেন এমন ব্যবহারকারীটির দূরবর্তী মাইএসকিউএল সার্ভারটি অ্যাক্সেস করার অনুমতি নেই।

"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"

উপসংহার

ডিফল্টরূপে সর্বাধিক জনপ্রিয় ওপেন-সোর্স ডাটাবেস সার্ভার মাইএসকিউএল কেবল লোকালহোস্টে আগত সংযোগগুলির জন্য শোনো।

কোনও মাইএসকিউএল সার্ভারে রিমোট সংযোগের অনুমতি দেওয়ার জন্য আপনাকে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে হবে:

  1. সমস্ত বা একটি নির্দিষ্ট ইন্টারফেস শোনার জন্য মাইএসকিউএল সার্ভারটি কনফিগার করুন use দূরবর্তী ব্যবহারকারীর কাছে প্রবেশাধিকার করুন your
mysql মারিয়াদব