mysql এবং mysqldump মতো প্রোগ্রামগুলো যারা MySQL ক্লায়েন্ট লাইব্রেরি ব্যবহার করে, তারা MySQL সার্ভারের সাথে TCP/IP, Unix সকেট ফাইল, নেমড পাইপ, শেয়ার্ড মেমরি ইত্যাদি অনেক ট্রান্সপোর্ট প্রোটোকল দিয়ে সংযোগ করতে পারে। MySQL-এর সাথে ব্যবহৃত সংযোগ ট্রান্সপোর্ট প্রোটোকলগুলো বুঝি:
নিচের টেবিলে --protocol-এর অনুমোদিত মানগুলো এবং কোন প্ল্যাটফর্মে কোন মান প্রযোজ্য তা দেখানো হলো। মনে রাখবেন মানগুলো কেস-ইনসেনসিটিভ।
| --protocol মান | ট্রান্সপোর্ট প্রোটোকল | প্রযোজ্য প্ল্যাটফর্ম |
|---|---|---|
| TCP | TCP/IP | সব |
| SOCKET | Unix সকেট ফাইল | Unix এবং Unix-লাইক সিস্টেম |
| PIPE | নেমড পাইপ | Windows |
| MEMORY | শেয়ার্ড মেমরি | Windows |
TCP/IP
TCP/IP ট্রান্সপোর্ট লোকাল বা রিমোট MySQL সার্ভার উভয়ের সাথে সংযোগ সাপোর্ট করে।
নেমড-পাইপ ট্রান্সপোর্ট
নেমড-পাইপ ট্রান্সপোর্ট রিমোট সংযোগের অনুমতি দেয়, কিন্তু এই ক্ষমতা MySQL-এ বর্তমানে বাস্তবায়ন করা হয়নি। শুধু লোকাল MySQL সার্ভারের সাথে সংযোগ সাপোর্ট করে। এটি TLS/SSL এনক্রিপ্টেড হতে পারে।
সকেট-ফাইল
সকেট-ফাইল ট্রান্সপোর্ট শুধু লোকাল MySQL সার্ভারের সাথে সংযোগ সাপোর্ট করে। এটি TLS/SSL এনক্রিপ্টেড হতে পারে।
শেয়ার্ড-মেমরি
এটি শুধু লোকাল MySQL সার্ভারের সাথে সংযোগ সাপোর্ট করে। এটি TLS/SSL এনক্রিপ্টেড হতে পারে।
সংযোগ কীভাবে সিকিউর করবেন?
একটি সংযোগ ডিফল্টভাবে সিকিউর যদি সেটি এমন একটি ট্রান্সপোর্ট প্রোটোকলের ওপর প্রতিষ্ঠিত হয় যা ডিফল্টভাবে সিকিউর। অন্যথায়, যেসব প্রোটোকল TLS/SSL এনক্রিপ্টেড হতে পারে, তাদের জন্য এনক্রিপশন ব্যবহার করে সংযোগ সিকিউর করা যায়:
TCP/IP সংযোগ ডিফল্টভাবে সিকিউর নয়, কিন্তু এনক্রিপশন দিয়ে সিকিউর করা যায়।
সকেট-ফাইল সংযোগ ডিফল্টভাবে সিকিউর। এনক্রিপশন করা যাবে, কিন্তু এটি আরও সিকিউর করে না, শুধু CPU লোড বাড়ায়।
নেমড-পাইপ সংযোগ ডিফল্টভাবে সিকিউর নয়, এবং সিকিউর করতে এনক্রিপশন বাধ্যতামূলক নয়। কিন্তু
named_pipe_full_access_groupসিস্টেম ভেরিয়েবল উপলব্ধ যা কোন MySQL ইউজারদের নেমড-পাইপ সংযোগের অনুমতি দেওয়া হবে তা নিয়ন্ত্রণ করে।শেয়ার্ড-মেমরি সংযোগ ডিফল্টভাবে সিকিউর।