मंगलवार, 15 अप्रैल 2025

होमलैब

 https://anothermysqldba.blogspot.com/2025/04/homelab.html

सिर्फ मनोरंजन के लिए...

MySQL और सामान्य डेटाबेस इंस्टैंस के परीक्षण के लिए कई विकल्प मौजूद हैं।

यह सिर्फ एक उदाहरण है कि आप कैसे  प्रोक्समॉक्स का उपयोग करके  दोहराए जाने वाले परीक्षण और पहुंच के लिए एक सरल, तेज सेटअप प्राप्त कर सकते हैं।

यह उदाहरण MySQL और अन्य किसी भी चीज़ के लिए होम लैब बनाने का एक अच्छा और सस्ता विकल्प है।

मैंने जो होमलैब वर्चुअलाइजेशन चुना वह  विस्तारित NFS स्टोरेज के लिए प्रॉक्समॉक्स  और  ओपनमीडियावॉल्ट था ( ओपनमीडियावॉल्ट  पर 100% बेचा नहीं गया  , डेबियन अकेले ही यह कर सकता था)

हार्डवेयर मैंने एक सरल और कॉम्पैक्ट सेटअप चुना:

यह वर्चुअलाइजेशन आपको ऐसा वातावरण प्रदान करता है जिसे आवश्यकतानुसार चलाया जा सकता है, बंद किया जा सकता है, या जब चाहें तब हटाया और वापस लाया जा सकता है। 

एक बार सेटअप हो जाने पर, यदि आप चाहें तो अतिरिक्त इंस्टेंस और परीक्षण के लिए प्रत्येक इंस्टेंस को क्लोन करने की भी अनुमति देता है। 

यह इन सभी के लिए एक बहुत ही सरल प्रत्यक्ष सेटअप होगा।

यदि आप चाहें तो प्रत्येक डेटा निर्देशिका या NFS के लिए ब्लॉक डिवाइस बना सकते हैं, लेकिन यह सब डेमो के लिए स्थानीय प्रत्यक्ष इंस्टॉलेशन होगा।

परीक्षण और डेमो का लक्ष्य:

  • स्थापित करना
  • निगरानी
  • वॉल्ट पासवर्ड रोटेशन

डेबियन बेस 

4GB और 4 CPU के साथ Debian 12 इंस्टेंस सेट करें।
फिर मैंने इसे एक टेम्पलेट के रूप में परिवर्तित किया ताकि मैं इससे अन्य सभी इंस्टेंस को लिंक कर सकूँ।
इससे अन्य इंस्टेंस सेट करना बहुत तेज़ हो जाता है और साथ ही शुरू करने के लिए एक ही आधार भी मिलता है।


┌──(रूट㉿debian12-सर्वर)-[~]
└─# uname -a
Linux debian12-server 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64 GNU/Linux

उपयुक्त इंस्टॉल अनज़िप
सीडी /usr/स्थानीय/src/
wget https://releases.hashicorp.com/vault/1.4.2/vault_1.4.2_linux_amd64.zip
vault_1.4.2_linux_amd64.zip अनज़िप करें
एमवी वॉल्ट /usr/bin/
सेटकैप cap_ipc_lock=+ep /usr/bin/vault
# वॉल्ट -v
वॉल्ट v1.4.2

मारियाडीबी 11 रोलिंग 

vi /etc/नेटवर्क/इंटरफेस
ऑटो ens18
iface ens18 inet स्टेटिक
    पता 192.168.3.100
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4

# होस्टनाम
mariadb1.sqlhjalp.com

sudo apt-get install apt-transport-https कर्ल
सुडो mkdir -p /etc/apt/keyrings
सुडो कर्ल -ओ /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
vi /etc/apt/sources.list.d/mariadb.sources

┌──(root㉿mariadb1)-[~]
└─# बिल्ली /etc/apt/sources.list.d/mariadb.sources
# MariaDB 11 रोलिंग रिपोजिटरी सूची - 2025-04-01 15:13 UTC पर बनाई गई
# https://mariadb.org/download/
X-रेपोलिब-नाम: MariaDB
प्रकार: डेब
# deb.mariadb.org एक डायनेमिक मिरर है, अगर आपका पसंदीदा मिरर ऑफ़लाइन हो जाता है। विवरण के लिए https://mariadb.org/mirrorbits/ देखें।
# यूआरआई: https://deb.mariadb.org/11/debian
यूआरआई: https://mirror.its.dal.ca/mariadb/repo/11.rolling/debian
सुइट्स: किताबी कीड़ा
घटक: मुख्य
हस्ताक्षरित: /etc/apt/keyrings/mariadb-keyring.pgp

┌──(root㉿mariadb1)-[~]
└─# apt-get अपडेट

┌──(root㉿mariadb1)-[~]
└─# apt-get install mariadb-server -y

┌──(root㉿mariadb1)-[~]
└─# मारियाडीबी
MariaDB मॉनिटर में आपका स्वागत है। कमांड ; या \g से समाप्त होते हैं।
आपका MariaDB कनेक्शन आईडी 32 है
सर्वर संस्करण: 11.7.2-MariaDB-deb12 mariadb.org बाइनरी वितरण

कॉपीराइट (c) 2000, 2018, ओरेकल, मारियाडीबी कॉर्पोरेशन एबी और अन्य।

मदद के लिए 'help;' या '\h' टाइप करें। वर्तमान इनपुट स्टेटमेंट को साफ़ करने के लिए '\c' टाइप करें।

मारियाडीबी [(कोई नहीं)]>
मारियाडीबी [(कोई नहीं)]> बाहर निकलें
अलविदा

┌──(root㉿mariadb1)-[~]
└─# systemctl स्टॉप mariadb.service

बस स्पष्ट होने के लिए। हाँ, एक प्रॉक्समॉक्स लिंक्ड सर्वर के साथ आप पुनः आरंभ कर सकते हैं और यह आपके सभी मान और सेटअप को बनाए रखता है

┌──(root㉿mariadb1)-[~]
└─# अपटाइम
 10:27:29 1 मिनट तक, 2 उपयोगकर्ता, लोड औसत: 0.15, 0.11, 0.04

┌──(root㉿mariadb1)-[~]
└─# मारियाडीबी
MariaDB मॉनिटर में आपका स्वागत है। कमांड ; या \g से समाप्त होते हैं।
आपका MariaDB कनेक्शन आईडी 33 है
सर्वर संस्करण: 11.7.2-MariaDB-deb12 mariadb.org बाइनरी वितरण

कॉपीराइट (c) 2000, 2018, ओरेकल, मारियाडीबी कॉर्पोरेशन एबी और अन्य।

मदद के लिए 'help;' या '\h' टाइप करें। वर्तमान इनपुट स्टेटमेंट को साफ़ करने के लिए '\c' टाइप करें।

MariaDB [(none)]> स्थिति
--------------
11.7.2 से मारियाडीबी-मारियाडीबी, क्लाइंट 15.2 डेबियन-लिनक्स-ग्नू (x86_64) के लिए EditLine रैपर का उपयोग कर रहा है

कनेक्शन आईडी: 33
वर्तमान डेटाबेस:
वर्तमान उपयोगकर्ता: root@localhost
SSL: उपयोग में आने वाला सिफर TLS_AES_256_GCM_SHA384 है, प्रमाणपत्र ठीक है
वर्तमान पेजर: stdout
आउटफ़ाइल का उपयोग: ''
सीमांकक का उपयोग करना: ;
सर्वर: मारियाडीबी
सर्वर संस्करण: 11.7.2-MariaDB-deb12 mariadb.org बाइनरी वितरण
प्रोटोकॉल संस्करण: 10
कनेक्शन: UNIX सॉकेट के माध्यम से लोकलहोस्ट
सर्वर कैरेक्टरसेट: utf8mb4
डीबी कैरेक्टरसेट: utf8mb4
क्लाइंट कैरेक्टरसेट: utf8mb3
कनेक्ट कैरेक्टरसेट: utf8mb3
यूनिक्स सॉकेट: /run/mysqld/mysqld.sock
अपटाइम: 1 मिनट 45 सेकंड

थ्रेड: 1 प्रश्न: 61 धीमी क्वेरीज़: 0 ओपन: 33 खुली टेबल: 26 क्वेरीज़ प्रति सेकंड औसत: 0.580
--------------

MySQL नवाचार 

vi /etc/नेटवर्क/इंटरफेस
ऑटो ens18
iface ens18 inet स्टेटिक
    पता 192.168.3.101
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4


# apt इंस्टॉल gnupg -y
# सीडी /usr/स्थानीय/src/
# wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
# dpkg -i mysql-apt-config_0.8.33-1_all.deb

│ आप कौन सा सर्वर संस्करण प्राप्त करना चाहते हैं? │
  मायएसक्यूएल-8.0  
  mysql-innovation <-- इसे चुना गया
  mysql-8.4-lts    
  mysql-क्लस्टर-8.0   
  mysql-क्लस्टर-नवाचार    
  mysql-क्लस्टर-8.4-lts    
  कोई नहीं

 आप कौन सा MySQL उत्पाद कॉन्फ़िगर करना चाहते हैं?                                                                                                                           
 MySQL सर्वर और क्लस्टर (वर्तमान में चयनित: mysql-innovation)
 MySQL कनेक्टर (वर्तमान में चयनित: सक्षम)
 ठीक है

# apt-अपडेट प्राप्त करें
# apt-get mysql-server -y स्थापित करें

─# mysql -u रूट -p
पास वर्ड दर्ज करें:
MySQL मॉनिटर में आपका स्वागत है। कमांड्स ; या \g से समाप्त होते हैं।
आपका MySQL कनेक्शन आईडी 9 है
सर्वर संस्करण: 9.2.0 MySQL सामुदायिक सर्वर - GPL

कॉपीराइट (c) 2000, 2025, ओरेकल और/या उसके सहयोगी।

ओरेकल ओरेकल कॉर्पोरेशन और/या उसके का एक पंजीकृत ट्रेडमार्क है
अन्य नाम उनके संबंधित ट्रेडमार्क हो सकते हैं
मालिकों.

मदद के लिए 'help;' या '\h' टाइप करें। वर्तमान इनपुट स्टेटमेंट को साफ़ करने के लिए '\c' टाइप करें।

mysql> स्थिति
--------------
MySQL संस्करण 9.2.0 लिनक्स के लिए x86_64 पर (MySQL सामुदायिक सर्वर - GPL)

कनेक्शन आईडी: 9
वर्तमान डेटाबेस:
वर्तमान उपयोगकर्ता: root@localhost
SSL: उपयोग में नहीं
वर्तमान पेजर: stdout
आउटफ़ाइल का उपयोग: ''
सीमांकक का उपयोग करना: ;
सर्वर संस्करण: 9.2.0 MySQL सामुदायिक सर्वर - GPL
प्रोटोकॉल संस्करण: 10
कनेक्शन: UNIX सॉकेट के माध्यम से लोकलहोस्ट
सर्वर कैरेक्टरसेट: utf8mb4
डीबी कैरेक्टरसेट: utf8mb4
क्लाइंट कैरेक्टरसेट: utf8mb4
कनेक्ट कैरेक्टरसेट: utf8mb4
यूनिक्स सॉकेट: /var/run/mysqld/mysqld.sock
बाइनरी डेटा इस रूप में: हेक्साडेसिमल
अपटाइम: 47 सेकंड

थ्रेड: 2 प्रश्न: 6 धीमी क्वेरीज़: 0 ओपन: 119 फ्लश टेबल: 3 ओपन टेबल: 38 क्वेरीज़ प्रति सेकंड औसत: 0.127

MySQL इनोवेशन NDB क्लस्टर 

बिल्ली /etc/नेटवर्क/इंटरफेस
ऑटो ens18
iface ens18 inet स्टेटिक
    पता 192.168.3.102
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4

ऑटो ens18
iface ens18 inet स्टेटिक
    पता 192.168.3.103
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4

ऑटो ens18
iface ens18 inet स्टेटिक
    पता 192.168.3.103
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4

# apt इंस्टॉल gnupg -y
# सीडी /usr/स्थानीय/src/
# wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
# dpkg -i mysql-apt-config_0.8.33-1_all.deb

│ आप कौन सा सर्वर संस्करण प्राप्त करना चाहते हैं?                                                                                                                            
 मायएसक्यूएल-8.0  
 mysql-नवाचार     
 mysql-8.4-lts        
 mysql-क्लस्टर-8.0       
 mysql-cluster-innovation <-- इसे चुना गया    
 mysql-क्लस्टर-8.4-lts   
 कोई नहीं

 आप कौन सा MySQL उत्पाद कॉन्फ़िगर करना चाहते हैं?                                                                             
  MySQL सर्वर और क्लस्टर (वर्तमान में चयनित: mysql-cluster-innovation)  
  MySQL कनेक्टर (वर्तमान में चयनित: सक्षम)     
  ठीक है

# apt-अपडेट प्राप्त करें
# apt-get mysql-cluster-community-server -y स्थापित करें
# apt-get install mysql-cluster-community-management-server <-- हम बाद में चुन सकते हैं कि किसका उपयोग करना है
# apt-get mysql-cluster-community-data-node -y इंस्टॉल करें

# vi /etc/mysql/conf.d/mysql.cnf

[मायएसक्यूएलडी]
# mysqld प्रक्रिया के लिए विकल्प:
ndbcluster # NDB स्टोरेज इंजन चलाएँ

[mysql_क्लस्टर]
# NDB क्लस्टर प्रक्रियाओं के लिए विकल्प:
ndb-connectstring=192.168.3.102 # प्रबंधन सर्वर का स्थान

# mkdir /var/lib/mysql-क्लस्टर
# सीडी /var/lib/mysql-क्लस्टर
# vi कॉन्फ़िगरेशन.ini
[एनडीबीडी डिफ़ॉल्ट]
# सभी डेटा नोड्स पर ndbd प्रक्रियाओं को प्रभावित करने वाले विकल्प:
NoOfReplicas=2 # खंड प्रतिकृतियों की संख्या
DataMemory=98M # डेटा संग्रहण के लिए कितनी मेमोरी आवंटित की जाए

[एनडीबी_एमजीएमडी]
# प्रबंधन प्रक्रिया विकल्प:
HostName=192.168.3.102 # प्रबंधन नोड का होस्टनाम या IP पता
DataDir=/var/lib/mysql-cluster # प्रबंधन नोड लॉग फ़ाइलों के लिए निर्देशिका

[एनडीबीडी]
# डेटा नोड "A" के लिए विकल्प:
                                # (प्रति डेटा नोड एक [ndbd] अनुभाग)
होस्टनाम=192.168.3.103 # होस्टनाम या आईपी पता
NodeId=2 # इस डेटा नोड के लिए नोड आईडी
DataDir=/var/lib/mysql/data # इस डेटा नोड की डेटा फ़ाइलों के लिए निर्देशिका

[एनडीबीडी]
# डेटा नोड "B" के लिए विकल्प:
होस्टनाम=192.168.3.104 # होस्टनाम या आईपी पता
NodeId=3 # इस डेटा नोड के लिए नोड आईडी
DataDir=/var/lib/mysql/data # इस डेटा नोड की डेटा फ़ाइलों के लिए निर्देशिका

[मायएसक्यूएलडी]
# SQL नोड विकल्प:
होस्टनाम=192.168.3.102 # होस्टनाम या आईपी पता
                                # (अतिरिक्त mysqld कनेक्शन जोड़ा जा सकता है)
                                # इस नोड के लिए विभिन्न प्रकार से निर्दिष्ट
                                # प्रयोजन जैसे ndb_restore चलाना)


┌──(रूट㉿ndb1)-[/var/lib/mysql-क्लस्टर]
└─# ndb_mgmd --initial -f /var/lib/mysql-cluster/config.ini
MySQL क्लस्टर प्रबंधन सर्वर mysql-9.2.0 ndb-9.2.0
चेतावनी: जब mgmd को -f या config-file से प्रारंभ किया जाता है तो --ndb-connectstring को नजरअंदाज कर दिया जाता है।

┌──(रूट㉿ndb2)-[/var/lib/mysql-क्लस्टर]
└─#एनडीबीडी
2025-04-01 11:53:11 [ndbd] जानकारी -- एंजेल '192.168.3.102:1186' से कनेक्ट हो गया
2025-04-01 11:53:12 [ndbd] जानकारी -- एन्जेल को नोडआईडी आवंटित किया गया: 2

┌──(रूट㉿ndb3)-[/var/lib/mysql-क्लस्टर]
└─#एनडीबीडी
2025-04-01 11:53:19 [ndbd] जानकारी -- एंजेल '192.168.3.102:1186' से कनेक्ट हो गया
2025-04-01 11:53:20 [ndbd] जानकारी -- एन्जेल को नोडआईडी आवंटित किया गया: 3


┌──(रूट㉿ndb1)-[/var/lib/mysql-क्लस्टर]
└─# एनडीबी_एमजीएम
-- एनडीबी क्लस्टर -- प्रबंधन क्लाइंट --
ndb_mgm> दिखाएँ
192.168.3.102 पोर्ट 1186 पर प्रबंधन सर्वर से कनेक्ट किया गया (क्लियरटेक्स्ट का उपयोग करके)
क्लस्टर कॉन्फ़िगरेशन
---------------------
[ndbd(NDB)] 2 नोड
id=2 @192.168.3.103 (mysql-9.2.0 ndb-9.2.0, नोडग्रुप: 0, *)
id=3 @192.168.3.104 (mysql-9.2.0 ndb-9.2.0, नोडग्रुप: 0)

[ndb_mgmd(एमजीएम)] 1 नोड
आईडी=1 @192.168.3.102 (mysql-9.2.0 ndb-9.2.0)

[mysqld(API)] 1 नोड
id=4 (कनेक्ट नहीं है, 192.168.3.102 से कनेक्ट स्वीकार कर रहा है)

┌──(रूट㉿ndb1)-[/var/lib/mysql-क्लस्टर]
└─# mysql -u root -p -e "select @@hostname"
पास वर्ड दर्ज करें:
+-------------------+
| @@होस्टनाम |
+-------------------+
| ndb1.sqlhjalp.com |
+-------------------+

┌──(रूट㉿ndb2)-[/var/lib/mysql-क्लस्टर]
└─# mysql -u root -p -e "select @@hostname"
पास वर्ड दर्ज करें:
+-------------------+
| @@होस्टनाम |
+-------------------+
| ndb2.sqlhjalp.com |
+-------------------+

┌──(रूट㉿ndb3)-[/var/lib/mysql-क्लस्टर]
└─# mysql -u root -p -e "select @@hostname"
पास वर्ड दर्ज करें:
+-------------------+
| @@होस्टनाम |
+-------------------+
| ndb3.sqlhjalp.com |
+-------------------+

पेरकोना सर्वर 

# बिल्ली /etc/नेटवर्क/इंटरफेस
 
ऑटो ens18
iface ens18 inet स्टेटिक
    पता 192.168.3.105
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4

# apt इंस्टॉल कर्ल gnupg gnupg2 lsb-release -y
# सीडी /usr/स्थानीय/src/
# कर्ल -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
# dpkg -i percona-release_latest.generic_all.deb
# percona-release केवल सक्षम ps-84-lts रिलीज़
# percona-release उपकरण रिलीज़ सक्षम करें
# apt इंस्टॉल percona-server-server

┌──(रूट㉿ps1)-[/usr/local/src]
└─# ps -ef |grep mysql
MySQL 5832 1 0 11:58 ? 00:00:03 /usr/sbin/mysqld
रूट 5924 501 0 12:04 अंक/1 00:00:00 grep --color=ऑटो mysql

┌──(रूट㉿ps1)-[/usr/local/src]
└─# mysql -u रूट -p
पास वर्ड दर्ज करें:
MySQL मॉनिटर में आपका स्वागत है। कमांड्स ; या \g से समाप्त होते हैं।
आपका MySQL कनेक्शन आईडी 9 है
सर्वर संस्करण: 8.4.4-4 पेरकोना सर्वर (GPL), रिलीज़ '4', संशोधन '844fde07'

कॉपीराइट (c) 2009-2025 पेरकोना एलएलसी और/या इसके सहयोगी
कॉपीराइट (c) 2000, 2025, ओरेकल और/या उसके सहयोगी।

ओरेकल ओरेकल कॉर्पोरेशन और/या उसके का एक पंजीकृत ट्रेडमार्क है
अन्य नाम उनके संबंधित ट्रेडमार्क हो सकते हैं
मालिकों.

मदद के लिए 'help;' या '\h' टाइप करें। वर्तमान इनपुट स्टेटमेंट को साफ़ करने के लिए '\c' टाइप करें।

पेरकोना क्लस्टर 

# बिल्ली /etc/नेटवर्क/इंटरफेस
iface ens18 inet स्टेटिक
    पता 192.168.3.106
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4

iface ens18 inet स्टेटिक
    पता 192.168.3.106
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4

iface ens18 inet स्टेटिक
    पता 192.168.3.106
    नेटमास्क 255.255.255.0
    गेटवे 192.168.3.1
    डीएनएस-नेमसर्वर 8.8.8.8 8.8.4.4

# apt इंस्टॉल कर्ल gnupg gnupg2 lsb-release -y
# सीडी /usr/स्थानीय/src/
# कर्ल -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
# dpkg -i percona-release_latest.generic_all.deb
# उपयुक्त अद्यतन
# percona-रिलीज़ सेटअप pxc80
# apt install -y percona-xtradb-क्लस्टर

 
बिल्ली /etc/my.cnf
[ग्राहक]
सॉकेट=/var/run/mysqld/mysqld.sock

[एक्सट्राबैकअप]
खुली-फ़ाइलें-सीमा = 1000000

[मायएसक्यूएलडी]
सर्वर-आईडी=1
डेटा निर्देशिका = / var / lib / mysql
सॉकेट=/var/run/mysqld/mysqld.sock
लॉग-त्रुटि=/var/log/mysql/error.log
pid-file=/var/run/mysqld/mysqld.pid
सुरक्षित-लॉग-पथ=/var/lib/mysql-फ़ाइलें/
# बाइनरी लॉग समाप्ति अवधि 604800 सेकंड है, जो 7 दिनों के बराबर है
binlog_expire_logs_seconds=604800

यूजरस्टेट = 1

 └─# cat /etc/my.cnf | grep एन्क्रिप्ट
pxc-एन्क्रिप्ट-क्लस्टर-ट्रैफ़िक = बंद
 
┌──(रूट㉿pxc1)-[/]
└─# cat /etc/my.cnf | grep पता
wsrep_cluster_address = gcomm://192.168.3.106,192.168.3.107,192.168.3.108
# नोड आईपी पता
wsrep_node_address=192.168.3.106

┌──(रूट㉿pxc1)-[/etc/mysql/conf.d]
└─# systemctl प्रारंभ mysql@bootstrap

mysql> 'wsrep_c%' जैसी स्थिति दिखाएं;
+--------------------------------+--------------------------------------+
| चर_नाम | मान |
+--------------------------------+--------------------------------------+
| wsrep_cert_deps_distance | 0 |
| wsrep_commit_oooe | 0 |
| wsrep_commit_oool | 0 |
| wsrep_commit_window | 0 |
| wsrep_cert_index_size | 0 |
| wsrep_cert_bucket_count | 1 |
| wsrep_causal_reads | 0 |
| wsrep_cert_interval | 0 |
| wsrep_cluster_weight | 1 |
| wsrep_क्लस्टर_क्षमताएं | |
| wsrep_cluster_conf_id | 1 |
| wsrep_cluster_size | 1 |
| wsrep_cluster_state_uuid | 71a6ebf4-0f20-11f0-b4eb-0a0f463a7185 |
| wsrep_cluster_status | प्राथमिक |
| wsrep_connected | चालू |
+--------------------------------+--------------------------------------+
सेट में 15 पंक्तियाँ (0.00 सेकंड)

┌──(रूट㉿pxc2)-[/etc]
└─# cat /etc/my.cnf | grep पता
wsrep_cluster_address = gcomm://192.168.3.106,192.168.3.107,192.168.3.108
# नोड आईपी पता
wsrep_node_address=192.168.3.107

┌──(root㉿pxc2)-[/var/lib/mysql]
└─# आरएम-आरएफ *

┌──(root㉿pxc2)-[/var/lib/mysql]
└─# एलएस -tla
कुल 8
drwxr-x--- 2 mysql mysql 4096 अप्रैल 1 13:36 .
drwxr-xr-x 26 रूट रूट 4096 अप्रैल 1 12:34 ..

┌──(root㉿pxc2)-[/var/lib/mysql]
└─# systemctl mysql प्रारंभ करें

┌──(रूट㉿pxc2)-[/etc]
└─# cat /etc/my.cnf | grep पता
wsrep_cluster_address = gcomm://192.168.3.106,192.168.3.107,192.168.3.108
# नोड आईपी पता
wsrep_node_address=192.168.3.107
 ┌──(root㉿pxc3)-[/var/lib/mysql]
└─# आरएम-आरएफ *

┌──(root㉿pxc3)-[/var/lib/mysql]
└─# systemctl mysql प्रारंभ करें


mysql> 'wsrep_c%' जैसी स्थिति दिखाएं;
+--------------------------------+--------------------------------------+
| चर_नाम | मान |
+--------------------------------+--------------------------------------+
| wsrep_cert_deps_distance | 0 |
| wsrep_commit_oooe | 0 |
| wsrep_commit_oool | 0 |
| wsrep_commit_window | 0 |
| wsrep_cert_index_size | 0 |
| wsrep_cert_bucket_count | 1 |
| wsrep_causal_reads | 0 |
| wsrep_cert_interval | 0 |
| wsrep_cluster_weight | 3 |
| wsrep_क्लस्टर_क्षमताएं | |
| wsrep_cluster_conf_id | 3 |
| wsrep_cluster_size | 3 |
| wsrep_cluster_state_uuid | 71a6ebf4-0f20-11f0-b4eb-0a0f463a7185 |
| wsrep_cluster_status | प्राथमिक |
| wsrep_connected | चालू |
+--------------------------------+--------------------------------------+
सेट में 15 पंक्तियाँ (0.00 सेकंड)

MySQL एक्सपोर्टर्स और प्रोमेथियस सेटअप करें 

प्रत्येक मशीन के लिए...

apt install -y प्रोमेथियस-mysqld-एक्सपोर्टर
 
CREATE USER IF NOT EXISTS 'prometheus'@'localhost' IDENTIFIED BY '<PASSWORDHERE>'; 
mysql> show grants for 'prometheus'@'localhost'; +------------------------------------------------------------------------------------------------+ | prometheus@localhost के लिए अनुदान | +------------------------------------------------------------------------------------------------+ | `prometheus`@`localhost` को *.* पर चयन, प्रक्रिया, प्रतिकृति क्लाइंट प्रदान करें | +------------------------------------------------------------------------------------------------+ सेट में 1 पंक्ति (0.00 सेकंड) ┌──(रूट㉿pxc1)-[~] └─# ls -ltr /etc/mysql/debian.cnf -rw-r--r-- 1 रूट रूट 50 अप्रैल 1 16:52 /etc/mysql/debian.cnf # vi /etc/default/prometheus-mysqld-exporter systemctl पुनः प्रारंभ prometheus-mysqld-exporter.service # systemctl पुनः प्रारंभ prometheus-mysqld-exporter.service

प्रोमेथियस सर्वर 

रूट@प्रोमेथियस:/etc/प्रोमेथियस# vi प्रोमेथियस.yml


  - नौकरी का नाम: mysqld-एक्सपोर्टर
    स्थैतिक_कॉन्फ़िगरेशन:
      - लक्ष्य:
          - 'mysql1.sqlhjalp.com:9104'
          - 'mariadb1.sqlhjarp.com:9104'
          - 'ps1.sqlhjalp.com:9104'
          - 'pxc1.sqlhjalp.com:9104'
          - 'pxc2.sqlhjalp.com:9104'
          - 'pxc3.sqlhjalp.com:9104'
          - 'ndb1.sqlhjalp.com:9104'
          - 'ndb2.sqlhjalp.com:9104'
          - 'ndb3.sqlhjalp.com:9104'
        लेबल:
          देश: अमेरिका
          db_env: 'होम'
          वातावरण: "डेमो"
          लिनक्स: डेबियन
          नोड्यूज़: सर्वर


mysql_up{पर्यावरण="डेमो"}

तत्व मान
mysql_up{country="US",db_env="home",environment="demo",instance="mariadb1.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1
mysql_up{country="US",db_env="home",environment="demo",instance="mysql1.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1
mysql_up{country="US",db_env="home",environment="demo",instance="ndb1.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1
mysql_up{country="US",db_env="home",environment="demo",instance="ndb2.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1
mysql_up{country="US",db_env="home",environment="demo",instance="ndb3.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1
mysql_up{country="US",db_env="home",environment="demo",instance="ps1.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1
mysql_up{country="US",db_env="home",environment="demo",instance="pxc1.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1
mysql_up{country="US",db_env="home",environment="demo",instance="pxc2.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1
mysql_up{country="US",db_env="home",environment="demo",instance="pxc3.sqlhjalp.com:9104",job="mysqld-exporter",linux="debian",nodeuse="server"} 1

वॉल्ट खाता सेटअप 

mysql> यदि मौजूद नहीं है तो रोल बनाएं vaultaccess;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `vaultaccess`@`%` WITH GRANT OPTION;
 
उपयोगकर्ता `vaultadmin`@`%` बनाएं जिसे '<PASSWORDHERE>' द्वारा पहचाना गया है डिफ़ॉल्ट भूमिका `vaultaccess`@`%` कोई पासवर्ड आवश्यक नहीं है समाप्ति डिफ़ॉल्ट खाता पासवर्ड अनलॉक करें इतिहास डिफ़ॉल्ट पासवर्ड पुनः उपयोग अंतराल डिफ़ॉल्ट पासवर्ड वर्तमान डिफ़ॉल्ट आवश्यक है;
mysql> vaultadmin के लिए अनुदान दिखाएँ;

यदि READONLY मौजूद नहीं है तो भूमिका बनाएं;
`READONLY`@`%` को चयन, निष्पादन प्रदान करें;

मारियाडीबी

MariaDB [(none)]> CREATE USER `vaultadmin`@`%` IDENTIFIED BY '<PASSWORDHERE>'; 
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO `vaultadmin`@`%` WITH GRANT OPTION;

वॉल्ट डेटाबेस इंजन - प्रति DB इंस्टेंस दोहराया गया 

वॉल्ट डेटाबेस/कॉन्फ़िगरेशन/MYSQL प्लगइन_नाम=mysql-डेटाबेस-प्लगइन कनेक्शन_url="{{उपयोगकर्ता नाम}}:{{पासवर्ड}}@tcp(mysql1.sqlhjalp.com:3306)/" अनुमत_भूमिकाएं="मेरी-भूमिका" उपयोगकर्ता नाम="वॉल्टएडमिन" पासवर्ड="<पासवर्डयहां>"
वॉल्ट डेटाबेस/कॉन्फ़िगरेशन/MYSQL पढ़ें मुख्य मूल्य --- ----- अनुमत_भूमिकाएँ [] कनेक्शन_विवरण मानचित्र[बैकएंड:डेटाबेस कनेक्शन_url:{{उपयोगकर्ता नाम}}:{{पासवर्ड}}@tcp(mysql1.sqlhjalp.com:3306)/ अधिकतम_कनेक्शन_लाइफटाइम:0s अधिकतम_निष्क्रिय_कनेक्शन:0 अधिकतम_खुले_कनेक्शन:4 उपयोगकर्ता नाम:vaultadmin] स्वचालित रोटेशन अक्षम करें असत्य पासवर्ड_नीति n/a प्लगइन_नाम mysql-डेटाबेस-प्लगइन प्लगइन_संस्करण n/a रूट_क्रेडेंशियल्स_रोटेट_स्टेटमेंट्स [] रोटेशन_पीरियड 0s रोटेशन_शेड्यूल n/a रोटेशन_विंडो 0 skip_static_role_import_rotation गलत सत्यापित_कनेक्शन सत्य वॉल्ट डेटाबेस/भूमिकाएँ/DEMOREADONLY पढ़ें मुख्य मूल्य --- ----- क्रिएशन_स्टेटमेंट्स [CREATE USER '{{name}}'@'%' IDENTIFIED BY '{{password}}'; *.* पर '{{name}}'@'%';] को चयन का अधिकार प्रदान करें क्रेडेंशियल_टाइप पासवर्ड db_name MYSQL डिफ़ॉल्ट_टीटीएल 1 घंटा अधिकतम_टीटीएल 24 घंटे नवीकरण_विवरण [] निरस्तीकरण_कथन [यदि '{{name}}'@'%' मौजूद है तो उपयोगकर्ता को हटा दें;] रोलबैक_स्टेटमेंट्स []

वॉल्ट गतिशील उपयोगकर्ता उदाहरण 

वॉल्ट डेटाबेस/क्रेड्स/DEMOREADONLY पढ़ें
मुख्य मूल्य
--- -----
lease_id डेटाबेस/creds/DEMOREADONLY/1SACMdnTGXseMewbA6ek1T42
लीज़_अवधि 1 घंटा
lease_renewable सच
पासवर्ड -piWu8YfOFxUkAqR347a
उपयोगकर्ता नाम v-userpass-k-DEMOREADON-HFRYaNGE


mysql> 'v-userpass-k-DEMOREADON-HFRYaNGE'@'%' के लिए अनुदान दिखाएँ;
+----------------------------------------------------------------------+
| v-userpass-k-DEMOREADON-HFRYaNGE@% के लिए अनुदान |
+----------------------------------------------------------------------+
| `v-userpass-k-DEMOREADON-HFRYaNGE`@`%` पर चयन का अधिकार प्रदान करें |
+----------------------------------------------------------------------+
सेट में 1 पंक्ति (0.00 सेकंड)

इसके अलावा..... 

पोस्टग्रेएसक्यूएल

https://docs.ultr.com/how-to-install-postgresql-on-debian-12

# apt install -y postgresql-common
# /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
# उपयुक्त अद्यतन
# apt-cache नीति postgresql
# apt इंस्टॉल postgresql -y
# systemctl प्रारंभ postgresql
# systemctl स्थिति postgresql
# sudo -u पोस्टग्रेज psqlsudo -u पोस्टग्रेज psql
# postgres=# एन्क्रिप्टेड पासवर्ड '<पासवर्ड>' के साथ पोस्टग्रेज की भूमिका बदलें;
भूमिका बदलें
#

ओरेकल डाटाबेस XE 


wget https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
wget https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm

# yum इंस्टॉल ./oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm ./oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm

# /etc/init.d/oracle-xe-21c कॉन्फ़िगर करें

$ निर्यात ORACLE_SID=XE
$ निर्यात ORAENV_ASK=NO
$ . /opt/oracle/product/21c/dbhomeXE/bin/oraenv

ORACLE_HOME = [] ? /opt/oracle/product/21c/dbhomeXE
Oracle आधार को /opt/oracle पर सेट किया गया है


[रूट@लोकलहोस्ट ~]# इको ​​$ORACLE_HOME
/opt/oracle/product/21c/dbhomeXE
[रूट@लोकलहोस्ट ~]# सीडी $ORACLE_HOME
[रूट@लोकलहोस्ट dbhomeXE]# pwd
/opt/oracle/product/21c/dbhomeXE

[रूट@लोकलहोस्ट dbhomeXE]# सीडी बिन

[रूट@लोकलहोस्ट बिन]# sqlplus /nolog

SQL*Plus: रिलीज़ 21.0.0.0.0 - उत्पादन गुरुवार अप्रैल 3 10:35:15 2025 पर
संस्करण 21.3.0.0.0

कॉपीराइट (c) 1982, 2021, Oracle. सभी अधिकार सुरक्षित।

एसक्यूएल>

SQL> कनेक्ट SYS AS SYSDBA
पास वर्ड दर्ज करें:
जुड़े हुए।
एसक्यूएल>

SQL> सेट लाइनसाइज़ 1500
SQL> DBA_USERS से उपयोगकर्ता नाम, account_status का चयन करें;

उपयोगकर्ता नाम खाता_स्थिति
------------------------------------------------------------------------------------------------------------------------------------------------------------------
सिस्टम खुला
सिस्टम खुला
XS$NULL लॉक किया गया
OJVMSYS लॉक किया गया
LBACSYS लॉक
आउटलाइन लॉक
DBSNMP लॉक किया गया
APPQOSSYS लॉक किया गया
DBSFWUSER लॉक किया गया
GGSYS लॉक किया गया
अनाम लॉक किया गया
 
एसक्यूएल> छोड़ें
Oracle Database 21c Express Edition रिलीज़ 21.0.0.0.0 - प्रोडक्शन से डिस्कनेक्ट किया गया
संस्करण 21.3.0.0.0

एसक्यूएलसर्वर 

# कर्ल -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo
# yum इंस्टॉल -y mssql-सर्वर
# /opt/mssql/bin/mssql-conf सेटअप
# systemctl स्थिति mssql-सर्वर

कर्ल https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo

# yum इंस्टॉल -y mssql-tools18 unixODBC-devel

#यम चेक-अपडेट
# yum अपडेट mssql-tools18

इको 'एक्सपोर्ट PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
स्रोत ~/.bash_profile

# /opt/mssql/bin/mssql-conf सेट-sa-पासवर्ड
SQL सर्वर सिस्टम व्यवस्थापक पासवर्ड दर्ज करें:
SQL सर्वर सिस्टम व्यवस्थापक पासवर्ड की पुष्टि करें:
SQL सर्वर कॉन्फ़िगर किया जा रहा है...

# sqlcmd -S लोकलहोस्ट -नहीं -U sa

# sqlcmd -S लोकलहोस्ट -नहीं -U sa
पासवर्ड:
1> डेटाबेस टेस्टडीबी बनाएं;
2> sys.databases से नाम का चयन करें;
3> जाओ
नाम
--------------------------------------------------------------------------------------------------------------------------------
मालिक
टेम्पडीबी
नमूना
एमएसडीबी
टेस्टडीबी

(5 पंक्तियाँ प्रभावित)


टेस्टडीबी का उपयोग करें;

dbo.Inventory टेबल बनाएं
(
    आईडी INT, नाम NVARCHAR (50), मात्रा INT, प्राथमिक कुंजी (आईडी)
);
भगवान

INSERT INTO dbo.Inventory VALUES (1, 'केला', 150);
INSERT INTO dbo.Inventory VALUES (2, 'नारंगी', 154);

जाना


SELECT * FROM dbo.Inventory जहां मात्रा > 152;
जाना

1> dbo.Inventory से * का चयन करें;
2> जाओ
आईडी नाम मात्रा
----------- -------------------------------------------------- --------
          1 केला 150
          2 नारंगी 154

मोंगोदब - पेरकोना

https://docs.percona.com/percona-server-for-mongodb/8.0/install/apt.html

# apt इंस्टॉल -y gnupg2 gnupg कर्ल
# wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
# dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
# percona-release --help | grep psmdb
psmdb36 psmdb40 psmdb42 psmdb44 psmdb60 psmdb50 psmdb70 psmdb80 psmdb40
psmdb60pro psmdb70प्रो
psmdb-70-प्रो psmdb-60-प्रो
psmdb-36 psmdb-40 psmdb-42 psmdb-44 psmdb-60 psmdb-50 psmdb-70 psmdb-80 psmdb40
psmdb-60-प्रो psmdb-70-प्रो
psmdb-70-प्रो psmdb-60-प्रो

# percona-release psmdb-80 रिलीज़ सक्षम करें
# उपयुक्त अद्यतन
# apt percona-server-mongodb इंस्टॉल करें
# apt-cache मैडिसन percona-server-mongodb
# ls -ltr /etc/mongod.conf
-rw-r--r-- 1 रूट रूट 1403 फरवरी 11 23:56 /etc/mongod.conf

# vi /etc/systemd/system/enable-transparent-huge-pages.service
# बिल्ली /etc/systemd/system/enable-transparent-huge-pages.service
[इकाई]
विवरण=पारदर्शी विशाल पृष्ठ (THP) सक्षम करें
डिफ़ॉल्ट निर्भरताएँ=नहीं
बाद=sysinit.target स्थानीय-fs.target
पहले=mongod.service

[सेवा]
प्रकार=वनशॉट
ExecStart=/bin/sh -c 'echo हमेशा | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null && echo defer+madvise | tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null && echo 0 | tee /sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none > /dev/null && echo 1 | tee /proc/sys/vm/overcommit_memory > /dev/null'

[स्थापित करना]
वांटेडबाय=बेसिक.टारगेट

# systemctl डेमन-रीलोड
# systemctl प्रारंभ सक्षम-पारदर्शी-विशाल-पृष्ठ
# cat /sys/kernel/mm/transparent_hugepage/enabled && cat /sys/kernel/mm/transparent_hugepage/defrag && cat /sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none && cat /proc/sys/vm/overcommit_memory
[हमेशा] मैडवाइज़ कभी नहीं
हमेशा टालना [आस्थगित+विचार करना] कभी नहीं टालना
0
1

# systemctl सक्षम सक्षम-पारदर्शी-विशाल-पृष्ठ
# ls -lr /var/lib/mongodb/
कुल 0


# systemctl प्रारंभ mongod
# systemctl स्थिति mongod
# मोंगोश
वर्तमान मोंगोश लॉग आईडी: 67ed4eb0cd874b942d98ebcf
इससे कनेक्ट हो रहा है: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.3.2
MongoNetworkError: कनेक्ट ECONNREFUSED 127.0.0.1:27017

मोंगोडीबी

https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-debian/

 
# apt-get gnupg कर्ल स्थापित करें
# कर्ल -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   सुडो gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
  --डियरमोर
# इको ​​"डेब [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | सुडो टी /etc/apt/sources.list.d/mongodb-org-8.0.list
# apt-अपडेट प्राप्त करें
# apt-get install -y mongodb-org
# systemctl डेमन-रीलोड
# ulimit -c असीमित
# यूलिमिट -एन 64000
# ulimit -f असीमित
# ulimit -t असीमित
# ulimit -l असीमित
# ulimit -m असीमित
# यूलिमिट -u 64000
# यूलिमिट -ए
वास्तविक समय गैर-अवरुद्ध समय (माइक्रोसेकंड, -R) असीमित
कोर फ़ाइल आकार (ब्लॉक, -c) असीमित
डेटा सेग आकार (kbytes, -d) असीमित
शेड्यूलिंग प्राथमिकता (-e) 0
फ़ाइल आकार (ब्लॉक, -f) असीमित
लंबित सिग्नल (-i) 15471
अधिकतम लॉक मेमोरी (kbytes, -l) असीमित
अधिकतम मेमोरी आकार (kbytes, -m) असीमित
खुली फ़ाइलें (-n) 64000
पाइप आकार (512 बाइट्स, -p) 8
POSIX संदेश कतारें (बाइट्स, -q) 819200
वास्तविक समय प्राथमिकता (-r) 0
स्टैक आकार (kbytes, -s) 8192
सीपीयू समय (सेकंड, -t) असीमित
अधिकतम उपयोगकर्ता प्रक्रियाएँ (-u) 64000
वर्चुअल मेमोरी (kbytes, -v) असीमित
फ़ाइल लॉक (-x) असीमित

# systemctl प्रारंभ mongod

# wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
# dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
# percona-release --help | grep psmdb
psmdb36 psmdb40 psmdb42 psmdb44 psmdb60 psmdb50 psmdb70 psmdb80 psmdb40
psmdb60pro psmdb70प्रो
psmdb-70-प्रो psmdb-60-प्रो
psmdb-36 psmdb-40 psmdb-42 psmdb-44 psmdb-60 psmdb-50 psmdb-70 psmdb-80 psmdb40
psmdb-60-प्रो psmdb-70-प्रो
psmdb-70-प्रो psmdb-60-प्रो

# percona-release psmdb-80 रिलीज़ सक्षम करें
# उपयुक्त अद्यतन
# apt percona-server-mongodb इंस्टॉल करें
# apt-cache मैडिसन percona-server-mongodb
# ls -ltr /etc/mongod.conf
-rw-r--r-- 1 रूट रूट 1403 फरवरी 11 23:56 /etc/mongod.conf

# vi /etc/systemd/system/enable-transparent-huge-pages.service
# बिल्ली /etc/systemd/system/enable-transparent-huge-pages.service
[इकाई]
विवरण=पारदर्शी विशाल पृष्ठ (THP) सक्षम करें
डिफ़ॉल्ट निर्भरताएँ=नहीं
बाद=sysinit.target स्थानीय-fs.target
पहले=mongod.service

[सेवा]
प्रकार=वनशॉट
ExecStart=/bin/sh -c 'echo हमेशा | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null && echo defer+madvise | tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null && echo 0 | tee /sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none > /dev/null && echo 1 | tee /proc/sys/vm/overcommit_memory > /dev/null'

[स्थापित करना]
वांटेडबाय=बेसिक.टारगेट

# systemctl डेमन-रीलोड
# systemctl प्रारंभ सक्षम-पारदर्शी-विशाल-पृष्ठ
# cat /sys/kernel/mm/transparent_hugepage/enabled && cat /sys/kernel/mm/transparent_hugepage/defrag && cat /sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none && cat /proc/sys/vm/overcommit_memory
[हमेशा] मैडवाइज़ कभी नहीं
हमेशा टालना [आस्थगित+विचार करना] कभी नहीं टालना
0
1

# systemctl सक्षम सक्षम-पारदर्शी-विशाल-पृष्ठ
# ls -lr /var/lib/mongodb/
कुल 0


# systemctl प्रारंभ mongod
# systemctl स्थिति mongod
# मोंगोश
वर्तमान मोंगोश लॉग आईडी: 67ed4eb0cd874b942d98ebcf
इससे कनेक्ट हो रहा है: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.3.2
MongoNetworkError: कनेक्ट ECONNREFUSED 127.0.0.1:27017


कैसेंड्रा

https://docs.ultr.com/how-to-install-apache-cassandra-on-debian-12

# उपयुक्त अद्यतन
# बिल्ली /etc/apt/source.list
देब https://deb.debian.org/debian बुकवर्म मुख्य गैर-मुक्त-फर्मवेयर
deb http://deb.debian.org/debian bookworm-updates मुख्य
देब http://deb.debian.org/debian-security बुकवर्म-सिक्योरिटी मुख्य
deb http://deb.debian.org/debian अस्थिर मुख्य गैर-मुक्त योगदान

# उपयुक्त अद्यतन
# apt इंस्टॉल कर्ल
# apt openjdk-17-jdk इंस्टॉल करें
# जावा --संस्करण
openjdk 17.0.14 2025-01-21
OpenJDK रनटाइम एनवायरनमेंट (बिल्ड 17.0.14+7-Debian-1deb12u1)
OpenJDK 64-बिट सर्वर VM (बिल्ड 17.0.14+7-Debian-1deb12u1, मिश्रित मोड, साझाकरण)

# इको ​​"डेब [signed-by=/etc/apt/keyrings/apache-cassandra.asc] https://debian.cassandra.apache.org 41x मुख्य" | सुडो टी -a /etc/apt/sources.list.d/cassandra.sources.list
# कर्ल -o /etc/apt/keyrings/apache-cassandra.asc https://downloads.apache.org/cassandra/KEYS
# उपयुक्त अद्यतन
# apt इंस्टॉल कैसंड्रा

# ls -lr /etc/cassandra/cassandra.yaml
-rw-r--r-- 1 रूट रूट 91468 जनवरी 27 07:28 /etc/cassandra/cassandra.yaml

# vi /etc/cassandra/cassandra.yaml
# systemctl कैसंड्रा पुनः प्रारंभ करें

# ls -lr /var/log/कैसेंड्रा/
कुल 0

# systemctl स्थिति कैसंड्रा
# नोडटूल स्थिति
nodetool: '127.0.0.1:7199' से कनेक्ट करने में विफल - ConnectException: 'कनेक्शन अस्वीकृत'.

# cqlsh -u कैसंड्रा -p कैसंड्रा

चेतावनी: कमांड लाइन इंटरफ़ेस पर पासवर्ड का उपयोग असुरक्षित हो सकता है।
अनुशंसा: पासवर्ड सुरक्षित रूप से प्रदान करने के लिए क्रेडेंशियल फ़ाइल का उपयोग करें।

कनेक्शन त्रुटि: ('किसी भी सर्वर से कनेक्ट करने में असमर्थ', {'127.0.0.1:9042': ConnectionRefusedError(111, "[('127.0.0.1', 9042)] से कनेक्ट करने का प्रयास किया। अंतिम त्रुटि: कनेक्शन अस्वीकृत")})



शनिवार, 24 फ़रवरी 2024

मारियाडीबी एन्क्रिप्शन (डेटा आराम पर)

मारियाडीबी एन्क्रिप्शन के लिए कुछ विकल्प दिखाने वाला एक सरल उदाहरण नीचे दिया गया है। 

आपको यह विचार करना होगा कि आप क्या एन्क्रिप्ट करना चाहते हैं। डेटा का संचार (पारगमन में डेटा) या उदाहरण में डेटा (बाकी पर डेटा)। 

यह पोस्ट अमेज़ॅन लिनक्स पर चलने वाले AWS फ्री टियर नोड का उपयोग करके डेटा एट रेस्ट विकल्प पर केंद्रित होगी। मैं एन्क्रिप्शन के साथ वर्तमान तालिकाओं को अद्यतन करने के साथ-साथ नई लोड तालिकाओं को दिखाने के लिए 2 अलग-अलग उदाहरणों पर वैश्विक डेटाबेस का उपयोग करूंगा जो स्वचालित रूप से एन्क्रिप्ट की जाएंगी। 


सबसे पहले, हम इंस्टालेशन के साथ शुरुआत करेंगे...सिर्फ इस डेमो के लिए त्वरित और आसान। 


# yum -y install mariadb105-server
# vi /etc/my.cnf.d/mariadb-server.cnf
# cat  /etc/my.cnf.d/mariadb-server.cnf | grep server_id 
server_id=100

# cat  /etc/my.cnf.d/mariadb-server.cnf | grep server_id
server_id=200
# systemctl start mariadb.service
# mysql
MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 10.5.23-MariaDB, for Linux (x86_64) using  EditLine wrapper
Connection id: 3
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.5.23-MariaDB MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db     characterset: latin1
Client characterset: utf8
Conn.  characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 27 sec
MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         100 |
+-------------+
MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         200 |
+-------------+


हम वैश्विक डेटाबेस को उदाहरण सर्वर_आईडी 100 पर लोड करेंगे। 


# mysql < world.sql
# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.5.23-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         100 |
+-------------+
1 row in set (0.000 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| world              |
+--------------------+
4 rows in set (0.000 sec)
MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         200 |
+-------------+
1 row in set (0.000 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.000 sec)  


अब हम देख सकते हैं कि दोनों उदाहरण वर्तमान में एन्क्रिप्शन का उपयोग नहीं कर रहे हैं। 


MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         100 |
+-------------+
1 row in set (0.000 sec)
MariaDB [(none)]> SELECT NAME, ENCRYPTION_SCHEME, CURRENT_KEY_ID FROM information_schema.INNODB_TABLESPACES_ENCRYPTION ;
Empty set (0.000 sec)

MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         200 |
+-------------+
1 row in set (0.000 sec)
MariaDB [(none)]> SELECT NAME, ENCRYPTION_SCHEME, CURRENT_KEY_ID FROM information_schema.INNODB_TABLESPACES_ENCRYPTION ;
Empty set (0.000 sec)


अब दोनों प्रणालियों पर मैं यादृच्छिक कुंजियाँ स्थापित करूँगा और उन्हें एन्क्रिप्ट करूँगा। 


#  mkdir /etc/mysql/

#  mkdir /etc/mysql/encryption/
# (echo -n "1;" ; openssl rand -hex 32 ) | sudo tee -a  /etc/mysql/encryption/keyfile
# (echo -n "2;" ; openssl rand -hex 32 ) | sudo tee -a  /etc/mysql/encryption/keyfile
#  (echo -n "100;" ; openssl rand -hex 32 ) | sudo tee -a  /etc/mysql/encryption/keyfile

# cat /etc/mysql/encryption/keyfile
1;466139b487d5735b536a10502b0607d2b96dfa58a7f95ce4847d98ef585af8b5
2;a0f533c2e459dc64e0aeb1f0f8c9dfb496571e71001ca60fac35c8bbc6361096
100;4b4bfd61af39d57e068385cf1a023bdfc5972ed414a24167067ca5256fc314e6

# cat /etc/mysql/encryption/keyfile
1;f8b1b250d3bf7159e2abd15be146367415a80d3781bbcf7d96b26640d7efdc8a
2;c7eaccedd0ef561f0c08d461abfd651947230b08c71aec67c6064bbedb6408ec
100;90475521b6eb6be3c1ec02770f3e8f80b34130f37d25c89b51cf10ec6a7c5bb6

openssl rand -hex 128 > /etc/mysql/encryption/keyfile.key
openssl enc -aes-256-cbc -md sha1    -pass file:/etc/mysql/encryption/keyfile.key    -in /etc/mysql/encryption/keyfile    -out /etc/mysql/encryption/keyfile.enc

 ls -ltr /etc/mysql/encryption/
total 12
-rw-r--r--. 1 root root 203 Feb 24 23:39 keyfile
-rw-r--r--. 1 root root 257 Feb 24 23:40 keyfile.key
-rw-r--r--. 1 root root 224 Feb 24 23:41 keyfile.enc


अब हम प्लगइन के साथ-साथ एन्क्रिप्शन के विकल्पो ं को सक्षम करने के लिए सीएनएफ फ़ाइल सेट कर सकते ह ैं। 


# vi /etc/my.cnf.d/mariadb-server.cnf
[mariadb]
## File Key Management
plugin_load_add = file_key_management
loose_file_key_management_filename = /etc/mysql/encryption/keyfile
loose_file_key_management_filename = /etc/mysql/encryption/keyfile.enc
loose_file_key_management_filekey = FILE:/etc/mysql/encryption/keyfile.key
loose_file_key_management_encryption_algorithm = AES_CBC

## InnoDB/XtraDB Encryption Setup
innodb_encrypt_log = ON
innodb_encrypt_temporary_tables=ON
innodb_encryption_threads=4
innodb_encrypt_tables=ON
innodb_default_encryption_key_id=1

## Aria Encryption Setup
aria_encrypt_tables = ON

## Temp & Log Encryption
encrypt-tmp-disk-tables = 1
encrypt-tmp-files = 1
encrypt_binlog = ON

Restart MariaDB so we can check on the current status. 

systemctl restart mariadb.service
mysql
MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         100 |
+-------------+
1 row in set (0.001 sec)

MariaDB [(none)]> SELECT NAME, ENCRYPTION_SCHEME, CURRENT_KEY_ID FROM information_schema.INNODB_TABLESPACES_ENCRYPTION ;
+----------------------------+-------------------+----------------+
| NAME                       | ENCRYPTION_SCHEME | CURRENT_KEY_ID |
+----------------------------+-------------------+----------------+
| innodb_system              |                 1 |              1 |
| mysql/innodb_table_stats   |                 1 |              1 |
| mysql/innodb_index_stats   |                 1 |              1 |
| mysql/transaction_registry |                 1 |              1 |
| mysql/gtid_slave_pos       |                 1 |              1 |
| world/city                 |                 1 |              1 |
| world/country              |                 1 |              1 |
| world/countrylanguage      |                 1 |              1 |
+----------------------------+-------------------+----------------+
8 rows in set (0.000 sec)

MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         200 |
+-------------+
1 row in set (0.000 sec)

MariaDB [(none)]> SELECT NAME, ENCRYPTION_SCHEME, CURRENT_KEY_ID FROM information_schema.INNODB_TABLESPACES_ENCRYPTION ;
+----------------------------+-------------------+----------------+
| NAME                       | ENCRYPTION_SCHEME | CURRENT_KEY_ID |
+----------------------------+-------------------+----------------+
| innodb_system              |                 1 |              1 |
| mysql/innodb_index_stats   |                 1 |              1 |
| mysql/gtid_slave_pos       |                 1 |              1 |
| mysql/innodb_table_stats   |                 1 |              1 |
| mysql/transaction_registry |                 1 |              1 |
+----------------------------+-------------------+----------------+
5 rows in set (0.000 sec)


साथ ही विश्व डेटा को इंस्टेंस सर्वर_आईडी 200 पर अपलोड करें। 


# mysql < world.sql
# mysql 
MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         200 |
+-------------+
1 row in set (0.000 sec)
MariaDB [(none)]> SELECT NAME, ENCRYPTION_SCHEME, CURRENT_KEY_ID FROM information_schema.INNODB_TABLESPACES_ENCRYPTION ;
+----------------------------+-------------------+----------------+
| NAME                       | ENCRYPTION_SCHEME | CURRENT_KEY_ID |
+----------------------------+-------------------+----------------+
| innodb_system              |                 1 |              1 |
| mysql/innodb_index_stats   |                 1 |              1 |
| mysql/gtid_slave_pos       |                 1 |              1 |
| mysql/innodb_table_stats   |                 1 |              1 |
| mysql/transaction_registry |                 1 |              1 |
| world/city                 |                 1 |              1 |
| world/country              |                 1 |              1 |
| world/countrylanguage      |                 1 |              1 |
+----------------------------+-------------------+----------------+
8 rows in set (0.000 sec)


Information_schema.INNODB_TABLESPACES_ENCRYPTION के अनुसार अब हम एन्क्रिप्टेड हैं। हालाँकि, वे इसे स्कीमा स्तर पर नहीं दिखाते हैं। हालांकि वे कहते हैं कि यदि यह  INNODB_TABLESPACES_ENCRYPTION तालिका में दिखाई देता है तो यह एन्क्रिप्टेड है, मैं आश्वस्त होना पसंद करता हूं और इसे तालिका और स्कीमा में देखना पसंद करता हूं। 


MariaDB [(none)]> show create table world.city\G
*************************** 1. row ***************************
       Table: city
Create Table: CREATE TABLE `city` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` char(35) NOT NULL DEFAULT '',
  `CountryCode` char(3) NOT NULL DEFAULT '',
  `District` char(20) NOT NULL DEFAULT '',
  `Population` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`ID`),
  KEY `CountryCode` (`CountryCode`),
  CONSTRAINT `city_ibfk_1` FOREIGN KEY (`CountryCode`) REFERENCES `country` (`Code`)
) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
1 row in set (0.001 sec)


इस बिंदु तक, आप देख सकते हैं कि  स्कीमा और डेटा के पुनरारंभ या लोड होने के बाद दोनों उदाहरणों को INNODB_TABLESPACES_ENCRYPTION स्कीमा में शामिल किया गया है। 

तो...तालिका में कुछ संशोधनों से यहां मदद मिलेगी... 


MariaDB [world]> ALTER TABLE city ENCRYPTED=Yes  ENCRYPTION_KEY_ID=1;
Query OK, 0 rows affected (0.074 sec)
Records: 0  Duplicates: 0  Warnings: 0
MariaDB [world]> ALTER TABLE country ENCRYPTED=Yes  ENCRYPTION_KEY_ID=1;
Query OK, 0 rows affected (0.031 sec)
Records: 0  Duplicates: 0  Warnings: 0
MariaDB [world]> ALTER TABLE countrylanguage  ENCRYPTED=Yes  ENCRYPTION_KEY_ID=1;
Query OK, 0 rows affected (0.033 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [world]> show create table city\G
*************************** 1. row ***************************
       Table: city
Create Table: CREATE TABLE `city` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` char(35) NOT NULL DEFAULT '',
  `CountryCode` char(3) NOT NULL DEFAULT '',
  `District` char(20) NOT NULL DEFAULT '',
  `Population` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`ID`),
  KEY `CountryCode` (`CountryCode`),
  CONSTRAINT `city_ibfk_1` FOREIGN KEY (`CountryCode`) REFERENCES `country` (`Code`)
) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci `ENCRYPTED`=Yes `ENCRYPTION_KEY_ID`=1
1 row in set (0.000 sec)


यह सरल है आदि। अब तक... अब हमें बिनलॉग सक्षम करने और और अधिक जांचने की आवश्यकता है। 

vi /etc/my.cnf.d/mariadb-server.cnf
log_bin=demo

cat /etc/my.cnf.d/mariadb-server.cnf | grep log_bin
log_bin=demo

# systemctl restart mariadb.service

MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         100 |
+-------------+
1 row in set (0.000 sec)

MariaDB [(none)]> show master status\G
*************************** 1. row ***************************
            File: demo.000001
        Position: 363
    Binlog_Do_DB:
Binlog_Ignore_DB:

MariaDB [(none)]> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|         200 |
+-------------+
1 row in set (0.000 sec)

MariaDB [(none)]> show master status\G
*************************** 1. row ***************************
            File: demo.000001
        Position: 363
    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.000 sec)


बिनलॉग्स पर एक नजर डालकर जांच की जा रही है.... 


mariadb-binlog--base64-output=DECODE-ROWS --verbose  demo.000001

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;

/*!40019 SET @@session.max_insert_delayed_threads=0*/;

/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER /*!*/;

# at 4

#240225  0:06:06 server id 100  end_log_pos 256 CRC32 0x04ce3741  Start: binlog v 4, server v 10.5.23-MariaDB-log created 240225  0:06:06 at startup

# Warning: this binlog is either in use or was not closed properly.

ROLLBACK/*!*/;

# at 256

# Encryption scheme: 1, key_version: 1, nonce: eb7991b210f3f4d2f7f21537

# The rest of the binlog is encrypted!

ERROR: Error in Log_event::read_log_event(): 'Event decryption failure', data_len: 2400465656, event_type: 240

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;


यह देखकर अच्छा लगा कि यह अब एन्क्रिप्ट किया जा रहा है। 


MariaDB [world]> create table city2 like city;
Query OK, 0 rows affected (0.013 sec)

MariaDB [world]> insert into city2 select * from city;
Query OK, 4079 rows affected (0.078 sec)
Records: 4079  Duplicates: 0  Warnings: 0

MariaDB [world]> show create table city2\G
*************************** 1. row ***************************
       Table: city2
Create Table: CREATE TABLE `city2` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` char(35) NOT NULL DEFAULT '',
  `CountryCode` char(3) NOT NULL DEFAULT '',
  `District` char(20) NOT NULL DEFAULT '',
  `Population` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`ID`),
  KEY `CountryCode` (`CountryCode`)
) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci `ENCRYPTED`=Yes `ENCRYPTION_KEY_ID`=1
1 row in set (0.000 sec)


हालाँकि मैं इन लेन-देन को बिनलॉग में देखना चाहत ा हूँ.. कैसे? लॉग में डेटा देखने में सक्षम होने के लिए आप --read-from-remote-server के साथ mariadb_binlog का उपयोग कर सकते हैं...


mariadb-binlog  --base64-output=DECODE-ROWS --verbose --read-from-remote-server   demo.000001 | more
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#240225  0:06:06 server id 100  end_log_pos 256 CRC32 0x04ce3741  Start: binlog v 4, server v 10.5.23-MariaDB-log created 240225  0:06:06 at startup
ROLLBACK/*!*/;
# at 256
#240225  0:06:06 server id 100  end_log_pos 296 CRC32 0x0c89f3bb  Ignorable
# Ignorable event type 164 (Start_encryption)
# at 296
#240225  0:06:06 server id 100  end_log_pos 325 CRC32 0x535776a2  Gtid list []
# at 325
#240225  0:06:06 server id 100  end_log_pos 363 CRC32 0x2ac4a61b  Binlog checkpoint demo.000001
# at 363
#240225  0:09:40 server id 100  end_log_pos 405 CRC32 0x93e10dc4  GTID 0-100-1 ddl
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=100*//*!*/;
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
# at 405
#240225  0:09:40 server id 100  end_log_pos 501 CRC32 0x39269040  Query thread_id=5 exec_time=0 error_code=0
use `world`/*!*/;
SET TIMESTAMP=1708819780/*!*/;
SET @@session.pseudo_thread_id=5/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_
for_timestamp=0/*!*/;
SET @@session.sql_mode=1411383296/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=utf8,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create table city2 like city
/*!*/;
# at 501
#240225  0:09:49 server id 100  end_log_pos 543 CRC32 0xde82b753  GTID 0-100-2 trans
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
START TRANSACTION
/*!*/;
# at 543
# at 602
#240225  0:09:49 server id 100  end_log_pos 602 CRC32 0x05bbb9e6  Annotate_rows:
#Q> insert into city2 select * from city
#240225  0:09:49 server id 100  end_log_pos 661 CRC32 0x9e0b4e0d  Table_map: `world`.`city2` mapped to number 21
# at 661


उम्मीद है कि यह कम से कम आपको आरंभ करने में मदद कर सकता है... 


संसाधन :

https://mariadb.com/kb/en/securing-mariadb-encryption/  

गुरुवार, 12 नवंबर 2020

स्कीमा पाने के लिए अपनी FRM फ़ाइल का उपयोग करना और फिर आईडीबी फ़ाइलों को दोबारा करना ..

 यह एक ऐसा विषय है जो कुल मिलाकर आपको कभी नहीं करना चाहिए ... क्यों? क्योंकि आपने बैकअप सही बनाया है ... आपने परीक्षण किया है और बैकअप का काम जानते हैं इसलिए आप बस उन बैकअप को सुरक्षित कर सकते हैं और अपना खोया हुआ स्कीमा और संबंधित डेटा प्राप्त कर सकते हैं ... 

हालाँकि उस कोने के कार्यालय में एक उदाहरण .. आपको स्थापित करने के लिए कभी नहीं मिला .. यह महत्वपूर्ण नहीं है ... बस दुर्घटनाग्रस्त हो गया है और अब आपको एहसास हुआ कि आप वास्तव में इसका उपयोग कैसे करते हैं ... 

सब कुछ खोया नहीं है ।।  

MySQL ने अपनी MySQL उपयोग सूची को थोड़ा देर बाद जारी किया और चूंकि MySQL शेल के साथ इसे और अधिक बदल दिया गया।  

mysqlfrm अभी भी बहुत आसान है, जब एक त्वरित और सरलैंड में FRM फ़ाइल से स्कीमा को बाहर निकालने की आवश्यकता होती है और यह एक साधारण इंस्टॉल है। 

mysqlfrm --diagnostic city.frm
# WARNING: Cannot generate character set or collation names without the --server option. # CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values for the columns and the resulting statement may not be syntactically correct.
# Reading .frm file for city.frm:
# The .frm file is a TABLE.
# CREATE TABLE Statement:

CREATE TABLE `city` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` char(160) DEFAULT NULL,
  `CountryCode` char(12) NOT NULL,
  `District` char(80) NOT NULL,
  `Population` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`ID`),
KEY `CountryCode` (`CountryCode`),
KEY `popkey` (`Population`)
) ENGINE=InnoDB;

#...done.


इसलिए अब आपके पास जो स्कीमा है वह आप खो चुके हैं ... डीबी या टेबल का दोबारा करें। उदाहरण के लिए, मैं कहूंगा कि हमने दुनिया का डेटा डीबी से खो दिया है। 

$ cp  city.ibd  / tmp /  

$ cp city.ibd /tmp/
mysql> LOCK TABLES city WRITE;
mysql> ALTER TABLE city DISCARD TABLESPACE;

cp city.ibd /edb/local/mysql/data/rundeck/
chown tmdba:dba /edb/local/mysql/data/rundeck/city.ibd

mysql> ALTER TABLE city IMPORT TABLESPACE;
mysql> UNLOCK TABLES;
mysql> SELECT COUNT(*) FROM city;


सोमवार, 21 सितंबर 2020

MySQL mysql_config_editor और उम्मीद है

 यह किसी को भी मदद करने के लिए एक नोट है जो अपने बच्चों को 10.1 में mysql_config_editorand का उपयोग करना चाह सकता है। 

mysql_config_editor पासवर्ड तर्क नहीं लेता है, इसलिए उपकरण उपकरण जो आपके पासवर्ड को mysql_config_editor विफल करने के लिए उपयोग करने के लिए .my.cnf फ़ाइल सेट करने से पहले हो सकता है। 

यह संभव उपकरण के साथ यद्यपि संभव और काफी सरल है। 

 yum -y install expect  

यह उपयुक्त नहीं है के लिए भी काम करता है। 


इसलिए इस उदाहरण में, मैं एक सरल बैश स्क्रिप्ट संस्करण दिखाऊंगा। 

1 .. मेरा लॉगिन पथ काम नहीं करता है ... 

mysql --login-path=local

ERROR 1045 (28000): Access denied for user


यह उम्मीद के साथ सेट करें 

आप इसे अपने बैश स्क्रिप्ट के माध्यम से निष्पादित करेंगे।  

expect <<EOD

spawn mysql_config_editor set --login-path=local --host=localhost --user=root --password 

expect "password"

send  -- "<PASSWORD>\r"

interact

EOD


अब यह काम कर रहा है ...

mysql --login-path=local

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1002