লিনাক্সে ডিফল্ট মাইএসকিউএল/মারিয়াডিবি পোর্ট কীভাবে পরিবর্তন করবেন


এই গাইডটিতে আমরা মাইএসকিউএল/মারিয়াডিবি ডাটাবেস সেন্টোস 7 এবং ডেবিয়ান-ভিত্তিক লিনাক্স বিতরণে যে ডিফল্ট পোর্টটি আবদ্ধ করে তা কীভাবে পরিবর্তন করব তা শিখব। মাইএসকিউএল ডাটাবেস সার্ভারের ডিফল্ট পোর্টটি লিনাক্সের অধীনে চলছে এবং ইউনিক্স 3306/টিসিপি রয়েছে।

লিনাক্সের ডিফল্ট মাইএসকিউএল/মারিয়াডিবি ডাটাবেস পোর্টটি পরিবর্তন করতে, নীচের কমান্ডটি জারি করে সম্পাদনার জন্য মাইএসকিউএল সার্ভার কনফিগারেশন ফাইলটি খুলুন।

# vi /etc/my.cnf.d/server.cnf                   [On CentOS/RHEL]
# vi /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu] 

লাইন স্ট্যাটটির সন্ধান [mysqld] দিয়ে শুরু হয় এবং নীচের ফাইলের অংশগুলিতে বর্ণিত হিসাবে [mysqld] বিবৃতিতে নীচের পোর্ট নির্দেশটি রাখুন। সেই অনুযায়ী পোর্ট ভেরিয়েবল প্রতিস্থাপন করুন।

[mysqld] 
port = 12345

আপনি নতুন মাইএসকিউএল/মারিয়াডিবি পোর্ট যুক্ত করার পরে কনফিগারেশন ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন এবং সেন্ট্রোস 7 এর অধীনে নিম্নলিখিত প্যাকেজটি ইনস্টল করুন যাতে নতুন বোর্টে ডাটাবেস বাঁধতে অনুমতি দেওয়ার জন্য প্রয়োজনীয় সেলইনক্স বিধি প্রয়োগ করতে হবে।

# yum install policycoreutils-python

এরপরে, নতুন পোর্টে মাইএসকিউএল সকেটকে বাঁধতে নীচের SELinux নিয়মটি যুক্ত করুন এবং নিম্নলিখিত কমান্ডগুলি জারি করে পরিবর্তনগুলি প্রয়োগ করতে ডাটাবেস ডেমন পুনরায় চালু করুন। আবার মাইএসকিউএল পোর্ট ভেরিয়েবলটি আপনার নিজের পোর্ট নম্বরের সাথে মেলে replace

--------------- On CentOS/RHEL --------------- 
# semanage port -a -t mysqld_port_t -p tcp 12345
# systemctl restart mariadb

--------------- On Debian/Ubuntu ---------------
# systemctl restart mysql      [On Debian/Ubuntu]  

মাইএসকিউএল/মারিয়াডিবি ডাটাবেস সার্ভারের জন্য পোর্ট কনফিগারেশনটি সফলভাবে প্রয়োগ করা হয়েছে কিনা তা যাচাই করতে, নতুন মাইএসকিউএল পোর্টটি সহজেই সনাক্ত করতে গ্রেপ কমান্ডটি জারি করুন।

# ss -tlpn | grep mysql
# netstat -tlpn | grep mysql

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

# mysql -h localhost -u root -p -P 12345
MariaDB [(none)]> show variables like 'port';

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

# mysql -u root -p
MariaDB [(none)]> grant all privileges on *.* to 'root'@'192.168.1.159' identified by 'strongpass';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

নিচের কমান্ডটি জারি করে নতুন বন্দরে কমান্ড লাইন ক্লায়েন্টের মাধ্যমে দূরবর্তীভাবে মাইএসকিউএল সার্ভারে লগ ইন করুন।

# mysql -h 192.168.1.159 -P 12345 -u root -p  

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