MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

WHM/cPanel सर्वर पर ProxySQL के साथ MySQL प्रतिकृति:भाग एक

WHM और cPanel निस्संदेह लिनक्स आधारित वातावरण के लिए सबसे लोकप्रिय होस्टिंग कंट्रोल पैनल है। यह एप्लिकेशन डेटास्टोर के रूप में कई डेटाबेस बैकएंड - MySQL, MariaDB और PostgreSQL का समर्थन करता है। WHM केवल स्टैंडअलोन डेटाबेस सेटअप का समर्थन करता है और आप इसे बाहरी डेटाबेस सर्वर के साथ एकीकृत करके स्थानीय रूप से (डिफ़ॉल्ट कॉन्फ़िगरेशन) या दूरस्थ रूप से तैनात कर सकते हैं। बाद वाला बेहतर होगा यदि आप बेहतर लोड वितरण चाहते हैं, क्योंकि WHM/cPanel HTTP (S), FTP, DNS, MySQL और इस तरह की कई प्रक्रियाओं और अनुप्रयोगों को संभालता है।

इस ब्लॉग पोस्ट में, हम आपको दिखाएंगे कि कैसे डेटाबेस की उपलब्धता में सुधार करने और WHM/cPanel होस्टिंग सर्वर को ऑफलोड करने के लिए बाहरी MySQL प्रतिकृति सेटअप को WHM में समेकित रूप से एकीकृत किया जाए। WHM सर्वर पर स्थानीय रूप से MySQL चलाने वाले होस्टिंग प्रदाताओं को पता होगा कि संसाधन उपयोग के मामले में MySQL की मांग कितनी है (यह होस्ट किए जाने वाले खातों की संख्या और सर्वर स्पेक्स के आधार पर)।

WHM/cPanel पर MySQL प्रतिकृति

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

इस ब्लॉग पोस्ट में, हम UNIX सॉकेट फ़ाइल के माध्यम से बाहरी MySQL सर्वर से कनेक्ट करने में WHM/cPanel को चकमा देने के लिए ProxySQL UNIX सॉकेट फ़ाइल का उपयोग करने जा रहे हैं। इस तरह, आप स्थानीय रूप से MySQL चलाने का अनुभव प्राप्त करते हैं ताकि उपयोगकर्ता अपने MySQL डेटाबेस होस्ट के रूप में पोर्ट 3306 के साथ "लोकलहोस्ट" का उपयोग कर सकें।

निम्नलिखित आरेख अंतिम वास्तुकला को दर्शाता है:

हमारे पास एक नया WHM सर्वर है, जिसे WHM/cPanel 80.0 (बिल्ड 18) के साथ स्थापित किया गया है। फिर हमारे पास एक और तीन सर्वर हैं - एक क्लस्टरकंट्रोल के लिए और दो मास्टर-स्लेव प्रतिकृति के लिए। ProxySQL को WHM सर्वर पर ही इंस्टॉल किया जाएगा।

MySQL प्रतिकृति परिनियोजित करना

इस लेखन के समय, हम WHM 80.0 (बिल्ड 18) का उपयोग कर रहे हैं जो केवल MySQL 5.7 और मारियाडीबी 10.3 तक का समर्थन करता है। इस मामले में, हम Oracle से MySQL 5.7 का उपयोग करने जा रहे हैं। हम मानते हैं कि आप पहले से ही ClusterControl सर्वर पर ClusterControl स्थापित कर चुके हैं।

सबसे पहले, पासवर्ड रहित SSH को ClusterControl सर्वर से MySQL प्रतिकृति सर्वर पर सेटअप करें। ClusterControl सर्वर पर, करें:

$ ssh-copy-id 192.168.0.31
$ ssh-copy-id 192.168.0.32

सुनिश्चित करें कि आप बीच में पासवर्ड प्रॉम्प्ट के बिना ClusterControl पर निम्न कमांड चला सकते हैं:

$ ssh 192.168.0.31 "sudo ls -al /root"
$ ssh 192.168.0.32 "sudo ls -al /root"

फिर ClusterControl -> Deploy -> MySQL प्रतिकृति . पर जाएं और आवश्यक जानकारी दर्ज करें। दूसरे चरण में, Oracle को विक्रेता के रूप में और 5.7 को डेटाबेस संस्करण के रूप में चुनें:

फिर, मास्टर और दास का आईपी पता निर्दिष्ट करें:

आईपी ​​​​एड्रेस से ठीक पहले हरे रंग की टिक पर ध्यान दें। इसका मतलब है कि ClusterControl सर्वर से जुड़ने में सक्षम है और अगले चरण के लिए तैयार है। परिनियोजन प्रारंभ करने के लिए परिनियोजन पर क्लिक करें। परिनियोजन प्रक्रिया में 15 से 20 मिनट लगने चाहिए।

WHM/cPanel पर ProxySQL परिनियोजित करना

चूंकि हम चाहते हैं कि ProxySQL डिफ़ॉल्ट MySQL पोर्ट 3306 को ले ले, हमें पहले WHM द्वारा स्थापित मौजूदा MySQL सर्वर को अन्य पोर्ट और अन्य सॉकेट फ़ाइल को सुनने के लिए संशोधित करना होगा। /etc/my.cnf में, निम्नलिखित पंक्तियों को संशोधित करें (यदि मौजूद नहीं हैं तो उन्हें जोड़ें):

socket=/var/lib/mysql/mysql2.sock
port=3307
bind-address=127.0.0.1

फिर, cPanel सर्वर पर MySQL सर्वर को रीस्टार्ट करें:

$ systemctl restart mysqld

इस बिंदु पर, स्थानीय MySQL सर्वर को पोर्ट 3307 पर सुनना चाहिए, केवल लोकलहोस्ट से जुड़ना चाहिए (हम इसे अधिक सुरक्षित होने के लिए बाहरी एक्सेस से बंद कर देते हैं)। अब हम ProxySQL को WHM होस्ट, 192.168.0.16 पर ClusterControl के माध्यम से परिनियोजित करने के लिए आगे बढ़ सकते हैं।

सबसे पहले, पासवर्ड रहित SSH को ClusterControl नोड से WHM सर्वर पर सेटअप करें जिसे हम ProxySQL इंस्टॉल करना चाहते हैं:

(clustercontrol)$ ssh-copy-id [email protected]

सुनिश्चित करें कि आप बीच में पासवर्ड प्रॉम्प्ट के बिना ClusterControl पर निम्न कमांड चला सकते हैं:

(clustercontrol)$ ssh 192.168.0.16 "sudo ls -al /root"

फिर, ClusterControl -> प्रबंधित करें -> बैलेंसर्स लोड करें -> प्रॉक्सीएसक्यूएल -> प्रॉक्सीएसक्यूएल तैनात करें पर जाएं। और आवश्यक जानकारी निर्दिष्ट करें:

आरेख में ऊपर दिए गए तीरों द्वारा हाइलाइट किए गए सभी आवश्यक विवरण भरें। सर्वर का पता WHM सर्वर है, 192.168.0.16. WHM सर्वर पर लिसनिंग पोर्ट 3306 है, जो स्थानीय MySQL को ले रहा है जो पहले से ही पोर्ट 3307 पर चल रहा है। इसके अलावा, हम ProxySQL एडमिन और मॉनिटरिंग यूजर्स के पासवर्ड को निर्दिष्ट करते हैं। फिर दोनों MySQL सर्वरों को लोड बैलेंसिंग सेट में शामिल करें और फिर इंप्लिसिट ट्रांजैक्शन सेक्शन में "नहीं" चुनें। परिनियोजन प्रारंभ करने के लिए ProxySQL परिनियोजित करें क्लिक करें।

हमारा ProxySQL अब MySQL प्रतिकृति के लिए दो होस्ट समूहों के साथ स्थापित और कॉन्फ़िगर किया गया है। एक लेखक समूह (होस्टग्रुप 10) के लिए, जहां सभी कनेक्शन मास्टर और रीडर समूह (होस्टग्रुप 20) को सभी रीड-ओनली वर्कलोड के लिए अग्रेषित किए जाएंगे जो दोनों MySQL सर्वरों के लिए संतुलित होंगे।

अगला कदम MySQL रूट यूजर को देना और इसे ProxySQL में इम्पोर्ट करना है। कभी-कभी, WHM किसी तरह UNIX सॉकेट फ़ाइल को दरकिनार करते हुए TCP कनेक्शन के माध्यम से डेटाबेस से जुड़ता है। इस मामले में, हमें अपने प्रतिकृति क्लस्टर में MySQL रूट को [email protected] और [email protected] (WHM सर्वर का IP पता) दोनों से एक्सेस करने की अनुमति देनी होगी।

इस प्रकार, मास्टर सर्वर (192.168.0.31) पर निम्न कथन चलाना आवश्यक है:

(master)$ mysql -uroot -p
mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]'192.168.0.16' IDENTIFIED BY '[email protected]' WITH GRANT OPTION;

फिर, ClusterControl -> Nodes -> ProxySQL नोड चुनें -> उपयोगकर्ता -> आयात उपयोगकर्ता पर जाकर हमारे MySQL सर्वर से 'रूट'@'लोकलहोस्ट' उपयोगकर्ता को ProxySQL उपयोगकर्ता में आयात करें। . आपको निम्नलिखित संवाद के साथ प्रस्तुत किया जाएगा:

[email protected] चेकबॉक्स पर टिक करें और नेक्स्ट पर क्लिक करें। उपयोगकर्ता सेटिंग . में पृष्ठ, उपयोगकर्ता के लिए होस्टग्रुप 10 को डिफ़ॉल्ट होस्टग्रुप के रूप में चुनें:

फिर हम निम्न कमांड का उपयोग करके सत्यापित कर सकते हैं कि WHM/cPanel सर्वर पर ProxySQL सही तरीके से चल रहा है या नहीं:

$ netstat -tulpn | grep -i proxysql
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      17306/proxysql
tcp        0      0 0.0.0.0:6032            0.0.0.0:*               LISTEN      17306/proxysql

पोर्ट 3306 वह है जो प्रॉक्सीएसक्यूएल को सभी MySQL कनेक्शन स्वीकार करने के लिए सुनना चाहिए। पोर्ट 6032 प्रॉक्सीएसक्यूएल एडमिन पोर्ट है, जहां हम उपयोगकर्ता, होस्टग्रुप, सर्वर और वेरिएबल जैसे प्रॉक्सीएसक्यूएल घटकों को कॉन्फ़िगर और मॉनिटर करने के लिए कनेक्ट होंगे।

इस बिंदु पर, यदि आप ClusterControl -> टोपोलॉजी . पर जाते हैं , आपको निम्न टोपोलॉजी देखनी चाहिए:

MySQL UNIX सॉकेट को कॉन्फ़िगर करना

लिनक्स वातावरण में, यदि आप MySQL होस्ट को "लोकलहोस्ट" के रूप में परिभाषित करते हैं, तो क्लाइंट/एप्लिकेशन UNIX सॉकेट फ़ाइल के माध्यम से कनेक्ट करने का प्रयास करेगा, जो डिफ़ॉल्ट रूप से cPanel सर्वर पर /var/lib/mysql/mysql.sock पर स्थित होता है। सॉकेट फ़ाइल का उपयोग करना MySQL सर्वर तक पहुँचने का सबसे अनुशंसित तरीका है, क्योंकि इसमें TCP कनेक्शन की तुलना में कम ओवरहेड होता है। एक सॉकेट फ़ाइल में वास्तव में डेटा नहीं होता है, यह इसे स्थानांतरित करता है। यह एक स्थानीय पाइप की तरह है, सर्वर और क्लाइंट एक ही मशीन पर अनुरोधों और डेटा को जोड़ने और एक्सचेंज करने के लिए उपयोग कर सकते हैं।

ऐसा कहकर, यदि आपका एप्लिकेशन डेटाबेस होस्ट और पोर्ट के रूप में "लोकलहोस्ट" और पोर्ट 3306 के माध्यम से जुड़ता है, तो यह सॉकेट फ़ाइल के माध्यम से कनेक्ट होगा। यदि आप "127.0.0.1" और पोर्ट 3306 का उपयोग करते हैं, तो सबसे अधिक संभावना है कि एप्लिकेशन टीसीपी के माध्यम से डेटाबेस से जुड़ जाएगा। यह व्यवहार MySQL प्रलेखन में अच्छी तरह से समझाया गया है। सरल शब्दों में, स्थानीय संचार के लिए सॉकेट फ़ाइल (या "लोकलहोस्ट") का उपयोग करें और यदि एप्लिकेशन दूरस्थ रूप से कनेक्ट हो रहा है तो टीसीपी का उपयोग करें।

cPanel में, MySQL सॉकेट फ़ाइल की निगरानी cpservd प्रक्रिया द्वारा की जाती है और यदि हम डिफ़ॉल्ट पथ से भिन्न पथ कॉन्फ़िगर करते हैं तो इसे किसी अन्य सॉकेट फ़ाइल से जोड़ा जाएगा। उदाहरण के लिए, मान लें कि हमने एक गैर-डिफ़ॉल्ट MySQL सॉकेट फ़ाइल को कॉन्फ़िगर किया है जैसा कि हमने पिछले अनुभाग में कॉन्फ़िगर किया था:

$ cat /etc/my.cnf | grep socket
socket=/var/lib/mysql/mysql2.sock

cPanel cpservd प्रक्रिया के माध्यम से डिफ़ॉल्ट सॉकेट पथ के लिए एक सिमलिंक बनाकर इसे ठीक करेगा:

(whm)$ ls -al /var/lib/mysql/mysql.sock
lrwxrwxrwx. 1 root root 34 Jul  4 12:25 /var/lib/mysql/mysql.sock -> ../../../var/lib/mysql/mysql2.sock

इसे स्वचालित रूप से पुन:ठीक करने के लिए cpservd से बचने के लिए (cPanel में इस व्यवहार के लिए एक शब्द है जिसे "स्वचालित रूप से" कहा जाता है), हमें WHM -> सर्विस मैनेजर पर जाकर MySQL मॉनिटरिंग को अक्षम करना होगा। (हम वैसे भी स्थानीय MySQL का उपयोग नहीं करने जा रहे हैं) और MySQL के लिए "मॉनिटर" चेकबॉक्स को अनचेक करें जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है:

WHM में परिवर्तन सहेजें। अब डिफ़ॉल्ट सॉकेट फ़ाइल को निकालना सुरक्षित है और निम्न कमांड के साथ ProxySQL सॉकेट फ़ाइल के लिए एक सिमलिंक बनाएं:

(whm)$ ln -s /tmp/proxysql.sock /var/lib/mysql/mysql.sock

सॉकेट सत्यापित करें MySQL सॉकेट फ़ाइल अब ProxySQL सॉकेट फ़ाइल पर पुनर्निर्देशित है:

(whm)$ ls -al /var/lib/mysql/mysql.sock
lrwxrwxrwx. 1 root root 18 Jul  3 12:47 /var/lib/mysql/mysql.sock -> /tmp/proxysql.sock

हमें /root/.my.cnf के अंदर डिफ़ॉल्ट लॉगिन क्रेडेंशियल को भी निम्नानुसार बदलना होगा:

(whm)$ cat ~/.my.cnf
[client]
#password="T<y4ar&cgjIu"
user=root
password='[email protected]'
socket=/var/lib/mysql/mysql.sock

थोड़ा सा स्पष्टीकरण - पहली पंक्ति जिस पर हमने टिप्पणी की, वह स्थानीय MySQL सर्वर के लिए cPanel द्वारा उत्पन्न MySQL रूट पासवर्ड है। हम उसका उपयोग नहीं करने जा रहे हैं, इसलिए '#' पंक्ति के आरंभ में है। फिर, हमने अपने MySQL प्रतिकृति सेटअप और UNIX सॉकेट पथ के लिए MySQL रूट पासवर्ड जोड़ा, जो अब ProxySQL सॉकेट फ़ाइल के लिए सिमलिंक है।

इस बिंदु पर, WHM सर्वर पर आप केवल "mysql" टाइप करके हमारे MySQL प्रतिकृति क्लस्टर को रूट उपयोगकर्ता के रूप में एक्सेस करने में सक्षम होना चाहिए, उदाहरण के लिए:

(whm)$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 239
Server version: 5.5.30 (ProxySQL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

ध्यान दें कि सर्वर संस्करण 5.5.30 (ProxySQL) है। यदि आप ऊपर के रूप में कनेक्ट कर सकते हैं, तो हम अगले भाग में वर्णित अनुसार एकीकरण भाग को कॉन्फ़िगर कर सकते हैं।

WHM/cPanel एकीकरण

WHM कई डेटाबेस सर्वर का समर्थन करता है, जैसे कि MySQL 5.7, MariaDB 10.2 और MariaDB 10.3। चूंकि WHM अब केवल ProxySQL देख रहा है और इसे संस्करण 5.5.30 (जैसा कि ऊपर बताया गया है) के रूप में पाया गया है, WHM असमर्थित MySQL संस्करण के बारे में शिकायत करेगा। आप WHM -> SQL Services -> MySQL प्रोफाइल प्रबंधित करें . पर जा सकते हैं और Validate बटन पर क्लिक करें। आपको इस त्रुटि के बारे में बताते हुए शीर्ष-दाएं कोने पर एक लाल टोस्टर सूचना मिलनी चाहिए।

इसलिए, हमें प्रॉक्सीएसक्यूएल में MySQL संस्करण को हमारे MySQL प्रतिकृति क्लस्टर के समान संस्करण में बदलना होगा। आप मास्टर सर्वर पर निम्न कथन चलाकर यह जानकारी प्राप्त कर सकते हैं:

mysql> SELECT @@version;
+------------+
| @@version  |
+------------+
| 5.7.26-log |
+------------+

फिर, mysql-server_version . को बदलने के लिए ProxySQL व्यवस्थापक कंसोल में लॉगिन करें चर:

(whm)$ mysql -uproxysql-admin -p -h192.168.0.16 -P6032

नीचे दिए गए SET कथन का उपयोग करें:

mysql> SET mysql-server_version = '5.7.26';

फिर वेरिएबल को रनटाइम में लोड करें और इसे लगातार बनाने के लिए डिस्क में सेव करें:

mysql> LOAD MYSQL VARIABLES TO RUNTIME;
mysql> SAVE MYSQL VARIABLES TO DISK;

अंत में उस संस्करण को सत्यापित करें जो ProxySQL प्रतिनिधित्व करेगा:

mysql> SHOW VARIABLES LIKE 'mysql-server_version';
+----------------------+--------+
| Variable_name        | Value  |
+----------------------+--------+
| mysql-server_version | 5.7.26 |
+----------------------+--------+

यदि आप "mysql" कमांड चलाकर फिर से MySQL से कनेक्ट करने का प्रयास करते हैं, तो अब आपको टर्मिनल में "सर्वर संस्करण:5.7.26 (ProxySQL)" मिलना चाहिए।

अब हम WHM -> SQL Services -> MySQL प्रोफाइल प्रबंधित करें . के अंतर्गत MySQL रूट पासवर्ड को अपडेट कर सकते हैं . हमारे प्रतिकृति क्लस्टर के MySQL रूट पासवर्ड के साथ नीचे पासवर्ड फ़ील्ड को बदलकर लोकलहोस्ट प्रोफ़ाइल को संपादित करें। एक बार हो जाने के बाद सेव बटन पर क्लिक करें। फिर हम यह सत्यापित करने के लिए "मान्य" पर क्लिक कर सकते हैं कि क्या WHM हमारे MySQL प्रतिकृति क्लस्टर को ProxySQL सेवा के माध्यम से सही तरीके से एक्सेस कर सकता है। आपको शीर्ष दाएं कोने में निम्न हरा टोस्टर मिलना चाहिए:

यदि आपको हरी टोस्टर सूचना मिलती है, तो हम cPanel हुक के माध्यम से ProxySQL को एकीकृत करने के लिए आगे बढ़ सकते हैं।

cPanel हुक के माध्यम से ProxySQL एकीकरण

WHM और MySQL प्रतिकृति के बीच मध्य-पुरुष के रूप में ProxySQL को प्रत्येक MySQL उपयोगकर्ता के लिए एक उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है जो इससे गुजरेगा। वर्तमान आर्किटेक्चर के साथ, यदि कोई नियंत्रण कक्ष (खाता निर्माण के माध्यम से WHM या MySQL डेटाबेस विज़ार्ड के माध्यम से cPanel) के माध्यम से एक उपयोगकर्ता बनाता है, तो WHM स्वचालित रूप से [email protected] (जिसे आयात किया गया है) का उपयोग करके सीधे हमारे MySQL प्रतिकृति क्लस्टर में उपयोगकर्ता बना देगा। ProxySQL में पहले से)। हालांकि, वही डेटाबेस उपयोगकर्ता ProxySQL mysql_users तालिका में स्वचालित रूप से नहीं जोड़ा जाएगा।

अंतिम-उपयोगकर्ता के दृष्टिकोण से, यह काम नहीं करेगा क्योंकि इस बिंदु पर सभी लोकलहोस्ट कनेक्शन को ProxySQL के माध्यम से पारित किया जाना चाहिए। हमें cPanel को ProxySQL के साथ एकीकृत करने का एक तरीका चाहिए, जिससे WHM और cPanel द्वारा किए गए किसी भी MySQL उपयोगकर्ता से संबंधित संचालन के लिए, ProxySQL को अधिसूचित किया जाना चाहिए और इसकी आंतरिक mysql_users तालिका को जोड़ने/निकालने/अपडेट करने के लिए आवश्यक क्रियाएं करनी चाहिए।

इन घटकों को स्वचालित और एकीकृत करने का सबसे अच्छा तरीका cPanel मानकीकृत हुक सिस्टम का उपयोग करना है। मानकीकृत हुक अनुप्रयोगों को ट्रिगर करते हैं जब cPanel और WHM कोई क्रिया करता है। इस सिस्टम का उपयोग कस्टम कोड (हुक एक्शन कोड) को निष्पादित करने के लिए करें ताकि यह अनुकूलित किया जा सके कि cPanel और WHM विशिष्ट परिदृश्यों (हुक करने योग्य ईवेंट) में कैसे कार्य करता है।

सबसे पहले, /usr/local/cpanel निर्देशिका के अंतर्गत ProxysqlHook.pm नामक एक पर्ल मॉड्यूल फ़ाइल बनाएं:

$ touch /usr/local/cpanel/ProxysqlHook.pm

फिर, यहां से लाइनों को कॉपी और पेस्ट करें। अधिक जानकारी के लिए, ProxySQL cPanel Hook पर Github रिपॉजिटरी देखें।

ProxySQL व्यवस्थापक इंटरफ़ेस को पंक्ति 16 से 19 तक कॉन्फ़िगर करें:

my $proxysql_admin_host = '192.168.0.16';
my $proxysql_admin_port = '6032';
my $proxysql_admin_user = 'proxysql-admin';
my $proxysql_admin_pass = 'mys3cr3t';

अब जबकि हुक लगा हुआ है, हमें इसे cPanel हुक सिस्टम के साथ पंजीकृत करने की आवश्यकता है:

(whm)$ /usr/local/cpanel/bin/manage_hooks add module ProxysqlHook
info [manage_hooks] **** Reading ProxySQL information: Host: 192.168.0.16, Port: 6032, User: proxysql-admin *****
Added hook for Whostmgr::Accounts::Create to hooks registry
Added hook for Whostmgr::Accounts::Remove to hooks registry
Added hook for Cpanel::UAPI::Mysql::create_user to hooks registry
Added hook for Cpanel::Api2::MySQLFE::createdbuser to hooks registry
Added hook for Cpanel::UAPI::Mysql::delete_user to hooks registry
Added hook for Cpanel::Api2::MySQLFE::deletedbuser to hooks registry
Added hook for Cpanel::UAPI::Mysql::set_privileges_on_database to hooks registry
Added hook for Cpanel::Api2::MySQLFE::setdbuserprivileges to hooks registry
Added hook for Cpanel::UAPI::Mysql::rename_user to hooks registry
Added hook for Cpanel::UAPI::Mysql::set_password to hooks registry

ऊपर दिए गए आउटपुट से, यह मॉड्यूल कई cPanel और WHM इवेंट्स में शामिल हो जाता है:

  • Whostmgr::Accounts::Create - WHM -> Account Functions -> Create a New Account
  • Whostmgr::Accounts::Remove - WHM -> अकाउंट फंक्शन्स -> एक अकाउंट को टर्मिनेट करें
  • Cpanel::UAPI::Mysql::create_user - cPanel -> डेटाबेस -> MySQL डेटाबेस -> नया उपयोगकर्ता जोड़ें 
  • Cpanel::Api2::MySQLFE::createdbuser - cPanel -> डेटाबेस -> MySQL डेटाबेस -> नया उपयोगकर्ता जोड़ें (सॉफ्टेकुलस एकीकरण के लिए आवश्यक है)।
  • Cpanel::UAPI::Mysql::delete_user - cPanel -> डेटाबेस -> MySQL डेटाबेस -> उपयोगकर्ता हटाएं
  • Cpanel::Api2::MySQLFE::deletedbuser - cPanel -> डेटाबेस -> MySQL डेटाबेस -> नया उपयोगकर्ता जोड़ें (सॉफ्टेकुलस एकीकरण के लिए आवश्यक है)।
  • Cpanel::UAPI::Mysql::set_privileges_on_database - cPanel -> डेटाबेस -> MySQL डेटाबेस -> डेटाबेस में उपयोगकर्ता जोड़ें
  • Cpanel::Api2::MySQLFE::setdbuserprivileges - cPanel -> डेटाबेस -> MySQL डेटाबेस -> डेटाबेस में उपयोगकर्ता जोड़ें (सॉफ्टेकुलस एकीकरण के लिए आवश्यक है)।
  • Cpanel::UAPI::Mysql::rename_user - cPanel -> डेटाबेस -> MySQL डेटाबेस -> उपयोगकर्ता का नाम बदलें
  • Cpanel::UAPI::Mysql::set_password - cPanel -> डेटाबेस -> MySQL डेटाबेस -> पासवर्ड बदलें

यदि उपरोक्त घटना को ट्रिगर किया जाता है, तो मॉड्यूल प्रॉक्सीएसक्यूएल में mysql_users तालिका को सिंक करने के लिए आवश्यक क्रियाओं को निष्पादित करेगा। यह WHM सर्वर पर पोर्ट 6032 पर चलने वाले ProxySQL व्यवस्थापक इंटरफ़ेस के माध्यम से संचालन करता है। इस प्रकार, यह सुनिश्चित करने के लिए ProxySQL व्यवस्थापक उपयोगकर्ता के लिए सही उपयोगकर्ता क्रेडेंशियल निर्दिष्ट करना महत्वपूर्ण है कि सभी उपयोगकर्ता ProxySQL के साथ सही ढंग से समन्वयित होंगे।

ध्यान दें कि इस मॉड्यूल, ProxysqlHook.pm को वास्तविक होस्टिंग वातावरण (कई खातों और कई तृतीय-पक्ष प्लगइन्स के साथ) में कभी भी परीक्षण नहीं किया गया है और स्पष्ट रूप से cPanel के भीतर सभी MySQL संबंधित घटनाओं को कवर नहीं करता है। हमने इसे सॉफ्टेकुलस मुक्त संस्करण के साथ परीक्षण किया है और इसने cPanel API2 हुक के माध्यम से बहुत काम किया है। पूर्ण स्वचालन को अपनाने के लिए कुछ और संशोधन की आवश्यकता हो सकती है।

अभी के लिए बस इतना ही। अगले भाग में, हम परिनियोजन के बाद के संचालन और मानक स्टैंडअलोन MySQL सेटअप की तुलना में हमारे होस्टिंग सर्वर के लिए हमारे अत्यधिक उपलब्ध MySQL सर्वर समाधान के साथ क्या हासिल कर सकते हैं, इस पर गौर करेंगे।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में शो लोकेल कैसे चलाएं

  2. मारियाडीबी में एक टेबल से रैंडम पंक्तियों को वापस करें

  3. CentOS 7 . पर MariaDB कैसे स्थापित करें और सुरक्षित करें

  4. कंटेनर ऑर्केस्ट्रेशन टूल्स के बिना मारियाडीबी गैलेरा क्लस्टर चलाना:भाग एक

  5. ClusterControl का उपयोग करके स्पाइडर के साथ मारियाडीबी शेयरिंग को तैनात करना