कैसे लिनक्स में डिफ़ॉल्ट MySQL / MariaDB पोर्ट बदलने के लिए


इस मार्गदर्शिका में हम डिफ़ॉल्ट पोर्ट को बदलना सीखेंगे कि MySQL/MariaDB डेटाबेस CentOS 7 और Debian -आधारित लिनक्स वितरण में बांधता है। डिफ़ॉल्ट पोर्ट जिसे MySQL डेटाबेस सर्वर लिनक्स और यूनिक्स के तहत चला रहा है 3306/TCP है।

लिनक्स में डिफ़ॉल्ट MySQL/MariaDB डेटाबेस पोर्ट को बदलने के लिए, नीचे दिए गए आदेश को जारी करके संपादन के लिए MySQL सर्वर कॉन्फ़िगरेशन फ़ाइल खोलें।

# 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

आपके द्वारा नई MySQL/MariaDB पोर्ट जोड़ने के बाद, कॉन्फ़िगरेशन फ़ाइल को सहेजें और बंद करें और आवश्यक SELinux लागू करने के लिए CentOS 7 के तहत निम्न पैकेज स्थापित करें डेटाबेस को नए पोर्ट पर बाँधने की अनुमति देने के लिए नियम।

# yum install policycoreutils-python

इसके बाद, नए पोर्ट पर MySQL सॉकेट को बांधने के लिए SELinux नियम जोड़ें और निम्नलिखित आदेश जारी करके, परिवर्तन लागू करने के लिए डेटाबेस डेमॉन को पुनरारंभ करें। फिर, अपने खुद के पोर्ट नंबर से मिलान करने के लिए MySQL पोर्ट वेरिएबल को बदलें।

--------------- 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]  

सत्यापित करने के लिए कि पोर्ट कॉन्फ़िगरेशन के लिए MySQL/MariaDB डेटाबेस सर्वर सफलतापूर्वक लागू किया गया है, netstat या ss कमांड जारी करें और आसानी से पहचान करने के लिए grep कमांड के माध्यम से परिणाम फ़िल्टर करें। नया MySQL पोर्ट।

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

आप रूट खाते के साथ MySQL डेटाबेस में लॉग इन करके और नीचे दिए गए आदेश को जारी करके नए MySQL पोर्ट को भी प्रदर्शित कर सकते हैं। हालाँकि, इस बात से अवगत रहें कि लोकलहोस्ट पर MySQL के सभी कनेक्शन MySQL यूनिक्स डोमेन सॉकेट के माध्यम से बने हैं, टीसीपी सॉकेट के माध्यम से नहीं। लेकिन टीसीपी पोर्ट नंबर को स्पष्ट रूप से कमांड कोड रिमोट कनेक्शन के मामले में MySQL डेटाबेस के लिए -P फ्लैग का उपयोग करके निर्दिष्ट किया जाना चाहिए।

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

MySQL डेटाबेस से दूरस्थ कनेक्शन के मामले में, रूट उपयोगकर्ता को स्पष्ट रूप से कॉन्फ़िगर किया जाना चाहिए ताकि आने वाले कनेक्शनों को सभी नेटवर्क या सिर्फ एक IP पते की अनुमति दी जा सके, नीचे MySQL कंसोल में जारी करके।

# 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 सर्वर में दूरस्थ रूप से प्रवेश करें।

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

अंत में, एक बार जब आप MySQL/MariaDB डेटाबेस सर्वर पोर्ट को बदल देते हैं, तो आपको नए TCP पोर्ट पर आने वाले कनेक्शन की अनुमति देने के लिए अपने वितरण फ़ायरवॉल नियमों को अपडेट करने की आवश्यकता होती है ताकि दूरस्थ क्लाइंट सफलतापूर्वक डेटाबेस से जुड़ सकें।