MySQL-কে ফরওয়ার্ড করা TCP পোর্ট ব্যবহার করান
যখন একটি MySQL ক্লায়েন্টের SSH TCP ফরওয়ার্ডের মাধ্যমে সংযোগ করার কথা, তখন স্থানীয় Unix সকেট বেছে নেওয়া এড়ান।
SSH ফরওয়ার্ড স্থানীয় পোর্ট 13306-এ শোনে, কিন্তু mysql তখনও স্থানীয় ডেটাবেসে সংযোগ করে—বা জানায় যে এর স্থানীয় সকেট নেই। Unix-এ localhost দেওয়া একটি MySQL ক্লায়েন্ট TCP-এর বদলে Unix সকেট বেছে নিতে পারে। পোর্ট দিলে সেই পছন্দ নাও বদলাতে পারে।
একটি বিদ্যমান অনুমোদিত TCP ফরওয়ার্ডের জন্য প্রোটোকলটি স্পষ্ট করুন:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
ব্যবহারকারীর নামটি কেবল উদাহরণ; পাসওয়ার্ড অপশনটি একটি ইন্টারঅ্যাকটিভ প্রম্পট চায়। কমান্ডটি Unix সকেটের বদলে স্থানীয় TCP শ্রোতার সঙ্গে সংযোগ করে।
দুটি লগইন আলাদা রাখুন
একটি নির্দিষ্ট SSH রুটের এই রূপ হতে পারে:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
গেটওয়ের SSH সার্ভার db.internal:3306-এ পৌঁছায়। তারপর MySQL সেই বাইট প্রবাহের মাধ্যমে ডেটাবেস অ্যাকাউন্ট প্রমাণীকরণ করে। গৃহীত SSH কী ডেটাবেস লগইন দেয় না, এবং ডেটাবেসের উৎস নিষেধাজ্ঞা দেখে সংযোগটি রুটের ওই দিক থেকে আসছে।
এটি একটি নির্দিষ্ট TCP অ্যাডাপ্টার, mysql যে SOCKS সেটিং ব্যবহার করে তা নয়। অ্যাপ্লিকেশনটির SOCKS আলোচনার দরকার নেই কারণ ফরওয়ার্ডিং এন্ডপয়েন্টের একটি পূর্বনির্ধারিত লক্ষ্য আছে।
যেখানে ব্যবহার হয় সেখানে অভীষ্ট ডেটাবেস TLS পরিচয় ও সার্টিফিকেট নীতি রাখুন। সকেটটি loopback-এ সংযুক্ত করলে ডেটাবেস সার্টিফিকেট ভিন্ন সার্ভিস নামের জন্য বৈধ হয় না। সফল স্থানীয় TCP সংযোগ পরিবহন পছন্দ নির্ধারণ করে, পরবর্তী ডেটাবেস প্রমাণীকরণ বা TLS পরীক্ষা নয়।