انڈروئد

ریموٹ کنیکشن کو ایس کیو ایل ڈیٹا بیس سرور سے کیسے اجازت دی جائے

دس فنی Ù„Ù…ØØ§Øª جس ميں لوگوں Ú©ÛŒ کيسے دوڑيں لگتی ہيں ™,999 فنی

دس فنی Ù„Ù…ØØ§Øª جس ميں لوگوں Ú©ÛŒ کيسے دوڑيں لگتی ہيں ™,999 فنی

فہرست کا خانہ:

Anonim

پہلے سے طے شدہ طور پر ، مائی ایس کیو ایل سرور صرف لوکل ہوسٹ سے کنیکشن سنتا ہے ، جس کا مطلب ہے کہ اس تک رسائی صرف ایک ہی میزبان پر چلنے والے ایپلیکیشنز کے ذریعہ کی جا سکتی ہے۔

تاہم ، کچھ حالات میں ، دور دراز سے MySQL سرور تک رسائی ضروری ہے۔ مثال کے طور پر ، جب آپ اپنے مقامی نظام سے دور دراز کے ایس کیو ایل سرور سے رابطہ قائم کرنا چاہتے ہیں ، یا جب کثیر سرور کی تعیناتی کا استعمال کرتے ہو جہاں ایپلی کیشن ڈیٹا بیس سرور سے مختلف مشین پر چل رہی ہو۔ ایک آپشن ایس ایس ایچ ٹنل کے ذریعے مائک ایس کیو ایل سرور تک رسائی حاصل کرنا ہوگا اور دوسرا مقصد یہ ہے کہ ریموٹ کنیکشن کو قبول کرنے کے لئے ایس کیو ایل سرور کو مرتب کریں۔

اس گائیڈ میں ، ہم ایک ایس کیو ایل سرور سے ریموٹ کنیکشن کی اجازت دینے کے لئے ضروری اقدامات کریں گے۔ اسی ہدایات کا اطلاق ماریا ڈی بی کے لئے بھی ہے۔

ایس کیو ایل سرور کی تشکیل

پہلا مرحلہ یہ ہے کہ مشین پر مخصوص IP پتے یا تمام IP پتے پر سننے کے لئے ایس کیو ایل سرور کو مرتب کرنا ہے۔

اگر مائی ایس کیو ایل سرور اور مؤکل ایک دوسرے کے ساتھ نجی نیٹ ورک پر بات چیت کرسکتے ہیں تو ، بہترین اختیار یہ ہے کہ صرف نجی آئی پی پر سننے کے لئے ایس کیو ایل سرور کو مرتب کریں۔ بصورت دیگر ، اگر آپ کسی عوامی نیٹ ورک پر سرور سے رابطہ قائم کرنا چاہتے ہیں تو ، مشین پر موجود تمام IP پتوں پر سننے کے لئے ایس کیو ایل سرور کو مرتب کریں۔

ایسا کرنے کے ل you ، آپ کو ایس کیو ایل کنفیگریشن فائل میں ترمیم کرنے اور bind-address آپشن کی قدر شامل کرنے یا اسے تبدیل کرنے کی ضرورت ہے۔ آپ ایک ہی IP پتے اور IP حدود کو ترتیب دے سکتے ہیں۔ اگر پتہ 0.0.0.0 تو ، ایس کیو ایل سرور تمام میزبان IPv4 انٹرفیس پر کنکشن قبول کرتا ہے۔ اگر آپ کے سسٹم پر IPv6 تشکیل شدہ ہے تو ، اس کے بجائے 0.0.0.0 بجائے :: استعمال کریں۔

MySQL تشکیل فائل کا مقام تقسیم کے لحاظ سے مختلف ہے۔ اوبنٹو اور /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 شروع ہو اور اس کی قیمت IP پتے پر سیٹ کریں جس پر ایک ایس کیو ایل سرور کو سننا چاہئے۔

پہلے سے طے شدہ طور پر ، قیمت 127.0.0.1 سیٹ کی گئی ہے (صرف لوکل ہوسٹ میں سنتی ہے)۔

اس مثال میں ، ہم مائک ایس کیو ایل سرور کو آئی پی وی 4 انٹرفیس پر سننے کے 0.0.0.0 قیمت کو 0.0.0.0 تبدیل کریں گے۔

mysqld.cnf

bind-address = 0.0.0.0 # skip-networking

اگر skip-networking پر مشتمل کوئی لائن موجود ہو تو ، اسے حذف کریں یا لائن کے آغاز میں # شامل کرکے اس پر تبصرہ کریں۔

ایس کیو ایل 8.0 اور اس سے زیادہ میں ، bind-address ہدایت موجود نہیں ہوسکتی ہے۔ اس معاملے میں ، اس کے تحت شامل کریں سیکشن

ایک بار کام کرنے کے بعد ، تبدیلیوں کے اثر انداز ہونے کے لئے MySQL سروس کو دوبارہ شروع کریں۔ صرف جڑ یا سوڈو مراعات یافتہ صارفین ہی خدمات کو دوبارہ شروع کرسکتے ہیں۔

ڈیبیان یا اوبنٹو پر مائی ایس کیو ایل سروس کو دوبارہ شروع کرنے کے ل type ، ٹائپ کریں:

sudo systemctl restart mysql

ریڈ ہیٹ پر مبنی تقسیم پر جیسے سینٹوس سروس کو دوبارہ شروع کرنا:

sudo systemctl restart mysqld

ریموٹ مشین سے صارف تک رسائی فراہم کرنا

اگلا قدم دور دراز کے صارف تک ڈیٹا بیس تک رسائی کی اجازت ہے۔

ٹائپ کرکے بطور صارف MySQL سرور میں لاگ ان ہوں:

sudo mysql

mysql -uroot -p

ایس کیو ایل شیل کے اندر سے ، ریموٹ صارف کے GRANT for رسائی فراہم کرنے کے لئے گرانٹ اسٹیٹمنٹ کا استعمال کریں۔

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

کہاں:

  • database_name کا نام اس ڈیٹابیس کا نام ہے جس سے صارف رابطہ کرے گا۔ user_name MySQL صارف کا نام نام ہے۔ ip_address وہ IP پتہ ہے جہاں سے صارف رابطہ کرے گا۔ صارف کو کسی بھی IP پتے سے رابطہ قائم کرنے کی اجازت دینے کے لئے % کا استعمال کریں۔ user_password پاس ورڈ صارف کا پاس ورڈ ہے۔

مثال کے طور پر ، آئی پی 10.8.0.5 کلائنٹ مشین سے پاس ورڈ my_passwd ساتھ foo نامی صارف کو ڈیٹا بیس کے dbname نام تک رسائی فراہم کرنے کے 10.8.0.5 ، آپ چلائیں گے:

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

کسی مخصوص IP پتے سے رسائی کی اجازت دیں:

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

UFW

یو ایف ڈبلیو اوبنٹو میں ڈیفالٹ فائر وال والا ٹول ہے۔ انٹرنیٹ پر کسی بھی IP پتے سے رسائی کی اجازت دینے کے لئے (انتہائی غیر محفوظ) رن:

sudo ufw allow 3306/tcp

کسی مخصوص IP پتے سے رسائی کی اجازت دیں:

sudo ufw allow from 10.8.0.5 to any port 3306

فائر وال

فائروالڈ سینٹوس میں طے شدہ فائر وال مینجمنٹ ٹول ہے۔ انٹرنیٹ پر کسی بھی IP پتے سے رسائی کی اجازت دینے کے لئے (انتہائی غیر محفوظ) قسم:

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

کسی مخصوص بندرگاہ پر مخصوص IP پتے تک رسائی کی اجازت دینے کے ل you ، آپ یا تو نیا فائر والڈ زون تشکیل دے سکتے ہیں یا ایک بھرپور اصول استعمال کرسکتے ہیں۔ اچھا ایک نیا زون بنائیں جس کا نام mysqlzone :

sudo firewall-cmd --new-zone=mysqlzone --permanent sudo firewall-cmd --reload sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32 sudo firewall-cmd --reload 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 سرور سے منسلک ہوسکتا ہے مندرجہ ذیل کمانڈ کو چلائیں:

mysql -u user_name -h mysql_server_ip -p

جہاں صارف نام اس صارف کا نام ہے جس تک آپ نے رسائی حاصل کی ہے اور mysql_server_ip اس میزبان کا IP ایڈریس ہے جہاں MySQL سرور چلتا ہے۔

اگر سب کچھ صحیح طریقے سے ترتیب دے رہا ہے تو ، آپ دور دراز کے ایس کیو ایل سرور میں لاگ ان کرسکیں گے۔

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"

نتیجہ اخذ کرنا

ڈیفالٹ کے لحاظ سے سب سے مشہور اوپن سورس ڈیٹا بیس سرور ، ایس کیو ایل ، صرف لوکل ہوسٹ پر آنے والے رابطوں کی بات سنتا ہے۔

کسی ایس کیو ایل سرور سے دور دراز رابطوں کی اجازت دینے کے ل To ، آپ کو درج ذیل اقدامات کرنے کی ضرورت ہے۔

  1. تمام یا کسی مخصوص انٹرفیس پر سننے کے لئے ایس کیو ایل سرور کو تشکیل دیں۔ دور دراز کے استعمال کنندہ تک گرانٹ رسائی حاصل کریں۔ اپنے فائر وال میں مائی ایس کیو ایل پورٹ کھولیں۔
mysql mariadb