Computer >> कंप्यूटर >  >> प्रणाली >> Linux

मारियाडीबी:स्थापना और प्रदर्शन अनुकूलन

इस लेख में मैं Linux CentOS 7 पर डेटाबेस सर्वर मारियाडीबी की स्थापना, बुनियादी विन्यास और प्रदर्शन अनुकूलन पर विचार करूंगा। लेख के अंत में मैं मारियाडीबी कॉन्फ़िगरेशन फ़ाइलों के कुछ उदाहरण दिखाऊंगा ताकि आप सर्वश्रेष्ठ का चयन कर सकें। आपके डीबी सर्वर के लिए पैरामीटर।

मारियाडीबी:स्थापना और प्रदर्शन अनुकूलन

CentOS पर MariaDB स्थापित करें

हाल ही में, मारियाडीबी को मानक CentOS 7 बेस रिपॉजिटरी में जोड़ा गया है, लेकिन रिपॉजिटरी में इसका संस्करण 5.5 है। यह संस्करण अद्यतित नहीं है, इसमें कुछ प्रदर्शन समस्याएं हैं और यह InnoDB में पूर्ण पाठ खोज प्रदान नहीं करता है। MariaDB के वर्तमान संस्करण को स्थापित करने के लिए, आपको सबसे पहले mariadb.org डेवलपर रिपॉजिटरी को जोड़ना होगा।

नैनो इंस्टाल करें यम का उपयोग कर संपादक:

yum install nano -y

फिर इसे संपादित करने के लिए रिपॉजिटरी फ़ाइल खोलें:

nano /etc/yum.repos.d/mariadb.repo

निम्नलिखित पाठ वहां जोड़ें:

[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

mariadb.repo कॉन्फिग फाइल को सेव करें और मारियाडीबी सर्वर और क्लाइंट को इंस्टॉल करें:

yum --disablerepo=AppStream install MariaDB-server MariaDB-client -y

स्थापना पूर्ण हो गई है, अब आपको स्टार्टअप के लिए mariadb सेवा जोड़ने की आवश्यकता है:

systemctl start mariadb
systemctl enable mariadb

सेवा की स्थिति जांचें:

systemctl status mariadb

मारियाडीबी:स्थापना और प्रदर्शन अनुकूलन

mariadb सेवा सक्रिय है और चल रही है, इसलिए आप कॉन्फ़िगरेशन के साथ आगे बढ़ सकते हैं।

मारियाडीबी सर्वर को सुरक्षित करना

मारियाडीबी सर्वर को स्थापित और चलाने के बाद, हम सुरक्षा सेटिंग्स पर जा सकते हैं। अंतर्निहित स्क्रिप्ट चलाएँ:

/usr/bin/mysql_secure_installation

सबसे पहले, यह आपको रूट पासवर्ड दर्ज करने के लिए संकेत देगा (मारीडब की प्रारंभिक स्थापना के बाद कोई पासवर्ड सेट नहीं किया गया है), इसलिए हम ENTER दबाते हैं और अगले चरण में एक जटिल पासवर्ड सेट करते हैं। फिर आप परिदृश्य निष्पादन के अंत तक केवल ENTER दबा सकते हैं। अनाम उपयोगकर्ता, एक दूरस्थ रूट लॉगिन और परीक्षण तालिकाएं हटा दी जाएंगी, और विशेषाधिकार अपडेट किए जाएंगे।

mariadb सर्वर से दूरस्थ रूप से कनेक्ट करने के लिए, आपको iptables का उपयोग करके Linux फ़ायरवॉल के लिए कुछ नियम बनाने होंगे:

iptables -I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables

वैकल्पिक रूप से, आप दूरस्थ मारियाडीबी डेटाबेस के लिए आउटबाउंड कनेक्शन की अनुमति दे सकते हैं:

iptables -I OUTPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

MariaDB कनेक्शन परीक्षण

आपको यह सुनिश्चित करने की आवश्यकता है कि मारियाडीबी सफलतापूर्वक स्थापित हो गया है।

आइए बिल्ट-इन mysqladmin टूल का उपयोग करके DB सर्वर से कनेक्ट करें:

mysqladmin version

कमांड निम्नलिखित लौटाता है:

mysqladmin Ver 9.1 Distrib 10.4.7-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.4.7-MariaDB
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 59 min 35 sec
Threads: 10 Questions: 24 Slow queries: 0 Opens: 28 Flush tables: 1 Open tab

इसका मतलब है कि मारियाडीबी सफलतापूर्वक स्थापित हो गया है, डेटाबेस तैयार है और चल रहा है।

आप SQL कमांड को अंतःक्रियात्मक रूप से चलाने के लिए mariadb सर्वर कंसोल से कनेक्ट कर सकते हैं:

mysql -u root -p

MariaDB कॉन्फ़िग फ़ाइल - my.cnf

आमतौर पर, मारियाडीबी स्थापित होने के बाद, मैं अपने मानक कॉन्फ़िगरेशन को कॉन्फ़िग फ़ाइल /etc/my.cnf में जोड़ता हूं। जो अधिकांश सर्वरों पर काम करता है और अब तक कोई समस्या नहीं हुई है। my.cnf साफ़ करें और उसमें निम्न टेक्स्ट जोड़ें:

[mysqld]
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
max_allowed_packet = 128M
sql_mode = ""
log-error = /var/log/mysql-error.log
# Cache parameters
query_cache_size = 16M
table_open_cache = 4096
thread_cache_size = 16
key_buffer_size = 8M
thread_stack = 256K
join_buffer_size = 2M
sort_buffer_size = 2M
# Parameters for temporary tables
tmpdir = /tmp
max_heap_table_size = 32M
tmp_table_size = 32M
# InnoDB parameters
innodb_file_per_table
innodb_buffer_pool_size = 32M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_use_native_aio = 0
transaction-isolation = READ-COMMITTED
character-set-server = utf8
collation-server = utf8_unicode_ci
init-connect = "SET NAMES utf8 COLLATE utf8_unicode_ci"
skip-name-resolve
[mysqldump]
quick
quote-names
max_allowed_packet = 128M
default-character-set = utf8
[mysql]
[isamchk]
key_buffer = 16M
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

आइए मुख्य my.cnf मापदंडों पर अधिक विस्तार से ध्यान दें:

  • दातादिर वह निर्देशिका है जिसमें DB फ़ाइलें संग्रहीत की जाती हैं;
  • tmpdir अस्थायी फ़ाइलों को संग्रहीत करने के लिए निर्देशिका है;
  • छोड़ें-नाम-समाधान DNS नाम समाधान अक्षम करता है;
  • max_allowed_packet अधिकतम पैकेज आकार की अनुमति है। यदि आप DB ब्लॉब फ़ील्ड का उपयोग कर रहे हैं, तो इसका मान सबसे बड़े फ़ील्ड के आकार से कम नहीं हो सकता;
  • अधिकतम_कनेक्शन खुले कनेक्शन की अधिकतम संख्या है; पैरामीटर सेट करता है कि कितने क्लाइंट एक साथ mariadb सर्वर के साथ काम कर सकते हैं;
  • # कैश पैरामीटर अनुभाग में क्वेरी कैश से संबंधित सब कुछ शामिल है। बहुत अधिक मान सेट करने की अनुशंसा नहीं की जाती है क्योंकि आपका DB सर्वर अधिक संसाधनों का उपभोग करेगा;
  • # InnoDB पैरामीटर अनुभाग में innodb तालिकाओं से संबंधित सब कुछ शामिल है;
  • innodb_buffer_pool_size डेटा और इंडेक्स के लिए कैश बफर है। अगर आपके सर्वर पर 1-2 प्रोजेक्ट मौजूद हैं, तो उपलब्ध RAM के मान को 70-80% पर सेट करें;
  • innodb_flush_method Linux के लिए O_DIRECT मान सेट करें, यह OS-स्तरीय कैशिंग को अक्षम कर देगा;
  • innodb_flush_log_at_trx_commit यह पैरामीटर innoDB तालिकाओं की लेखन गति को प्रभावित करता है। इस पैरामीटर को गंभीरता से लें:यदि आप यहां 0 सेट करते हैं, तो आपके पास उच्च प्रदर्शन होगा, लेकिन डेटा हानि का जोखिम बढ़ जाता है। मैं यहां मान 2 सेट करना पसंद करता हूं, क्योंकि मैंने कोई स्पष्ट डीबी सर्वर प्रदर्शन लाभ नहीं देखा है, जबकि सुरक्षा एक प्राथमिकता है।

MariaDB के लिए प्रदर्शन अनुकूलन और ट्यूनिंग

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

अपने mariadb मापदंडों को अनुकूलित करने के लिए आप Tuning-Primer.sh स्क्रिप्ट . का उपयोग कर सकते हैं . सबसे पहले, अतिरिक्त टूल इंस्टॉल करें:

yum install bc net-tools -y

अनुकूलन स्क्रिप्ट डाउनलोड करें:

wget https://launchpadlibrarian.net/78745738/tuning-primer.sh

एक .sh फ़ाइल को निष्पादन अनुमतियाँ असाइन करें:

chmod +x tuning-primer.sh

स्क्रिप्ट चलाएँ:

./tuning-primer.sh

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

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

मारियाडीबी:स्थापना और प्रदर्शन अनुकूलन

आप इस पैरामीटर को my.cnf फ़ाइल और कंसोल दोनों में बदल सकते हैं। मैंने कम मान (10) निर्धारित किया है और स्क्रिप्ट ने इसे अनुमोदित किया है:

मारियाडीबी:स्थापना और प्रदर्शन अनुकूलन

इन जाँचों का उपयोग करके, आप अपने mariadb सर्वर के प्रदर्शन को उत्तम बना सकते हैं।

मैं यह नोट करना चाहूंगा कि अनुशंसित डीबी सर्वर निरंतर संचालन समय कम से कम 48 घंटे है, तो जानकारी अधिक सटीक होगी और आप अपने सर्वर को ट्यून करने में सक्षम होंगे।

धीमी क्वेरी लॉग को सक्रिय करने के लिए आप एक अनुभाग जोड़ सकते हैं। यह आपकी परियोजनाओं के प्रदर्शन का विश्लेषण करने में मदद करेगा। निम्नलिखित को mysqld में जोड़ें अनुभाग:

slow_query_log = 1 # enable the log of slow queries
long_query_time = 5 # set the time in seconds
slow_query_log_file = /var/log/slow-query.log # the name of your slow query log file and the path to it
log_queries_not_using_indexes # whether to write queries that do not use indexes to the log file

इसके अलावा आपको MariaDB और धीमी क्वेरी लॉग त्रुटियों के लिए लॉग फ़ाइलें बनानी होंगी:

touch /var/log/mysql-error.log
touch /var/log/slow-query.log

डीबी सेवा पुनरारंभ करें:

systemctl restart mariadb

यदि आप /var/log/slow-query.log खोलते हैं या वास्तविक समय में इसकी जांच करते हैं, तो आप अपना धीमा क्वेरी लॉग देख सकते हैं:

tail -f /var/log/slow-query.log

इस प्रकार, आप अपने प्रोजेक्ट द्वारा आपके DB को भेजे जाने वाले प्रश्नों का विश्लेषण करने और ऑडिट करने में सक्षम होंगे।

यदि आप कोई DB सेटिंग्स बदलते हैं, तो त्रुटियों के लिए अपने कॉन्फ़िगरेशन की जाँच करें। my.cnf सेटिंग्स में कोई भी बदलाव करने के बाद, आपको त्रुटियों के लिए कॉन्फ़िगरेशन की जांच करनी होगी:

systemctl status mariadb -l

मूल मारियाडीबी शेल कमांड

एक व्यवस्थापक को अक्सर मारियाडब कंसोल में उपयोग करने वाले मुख्य क्ली कमांड नीचे दिखाए गए हैं।

अपने MariaDB कंसोल पर स्थानीय रूप से लॉग ऑन करने के लिए, यह कमांड चलाएँ:

mysql -u root -p

अपने MariaDB सर्वर से दूरस्थ रूप से कनेक्ट करने के लिए:

mysql -u root -p -h 192.168.1.20

उपयोगी मारियाडीबी (MySQL) कमांड:

create database db1; — db1 नाम से एक DB बनाता है

show databases; — सर्वर पर DBs की सूची प्रदर्शित करता है

use db1; — db1 नाम से डीबी पर लॉग ऑन करें

show tables; — वर्तमान डेटाबेस में सभी तालिकाओं को सूचीबद्ध करता है

create user 'project'@'localhost' identified by '$sup#erP@ss1'; — एक उपयोगकर्ता (प्रोजेक्ट) बनाता है और उसका पासवर्ड $sup#erP@ss1

. पर सेट करता है

grant all privileges on database_name.* to project@'localhost'; — उपयोगकर्ता प्रोजेक्ट को पूर्ण विशेषाधिकार देता है

flush privileges; — सभी विशेषाधिकार अपडेट करता है

show processlist; - सक्रिय डीबी कनेक्शन देखें। आप इस कमांड का उपयोग भी कर सकते हैं:

show status where `variable_name` = 'Threads_connected';

अपने mysql कंसोल में, आप कुछ चर देख या बदल सकते हैं, जैसे:

SHOW VARIABLES LIKE 'max_error_count';

मारियाडीबी:स्थापना और प्रदर्शन अनुकूलन

बदलने के लिए:

SET max_error_count=256;

मारियाडीबी:स्थापना और प्रदर्शन अनुकूलन

अंत में मैं यह कहना चाहूंगा कि जब आप एक डीबी सर्वर को कॉन्फ़िगर करते हैं तो आपको सर्वर पर स्थित परियोजनाओं पर विचार करना चाहिए। छोटी परियोजनाओं के लिए जो लागू है वह निश्चित रूप से बड़ी परियोजनाओं के लिए उपयुक्त नहीं होगा। कोशिश करें, प्रयोग करें और हमेशा अपने लॉग देखें। अगले लेख में हम बताएंगे कि कैसे मारियाडीबी डेटाबेस सर्वर के बीच प्रतिकृति का उपयोग करके उच्च उपलब्धता प्रदान करें और ऐप प्रदर्शन को बढ़ाएं।


  1. Windows 11 को कैसे गति दें और प्रदर्शन में सुधार करें (15 तरीके)

    विंडोज 11 वास्तव में ताजी हवा का झोंका है - एक नया यूआई और कुछ बेहतरीन विशेषताएं। लेकिन, यह अभी भी त्रुटिहीन होने से बहुत दूर है। पीछा करने के लिए कट - आपने मन-उड़ाने वाले प्रदर्शन की उम्मीद करते हुए विंडोज 11 में अपग्रेड किया है और आप इसे पसंद नहीं करेंगे, उदाहरण के लिए, किसी ऐप को खोलने में हमेशा

  1. मेल्टडाउन और स्पेक्टर - प्रदर्शन और स्थिरता

    कई दिनों पहले, मैंने आपको दिखाया था कि विंडोज के लिए जनवरी 2018 मेल्टडाउन पैच कैसे स्थापित करें, भले ही आपके पास एंटी-वायरस स्थापित न हो, क्योंकि माइक्रोसॉफ्ट ने कुछ समय के लिए कुछ गैर-संगत एंटी-वायरस प्रोग्राम को ब्लैकलिस्ट करने का फैसला किया था, लेकिन नहीं किया यह समझाने की जहमत न उठाएं कि यह बिना

  1. Windows 11 की गति बढ़ाएँ और प्रदर्शन सुधारें (7 प्रभावी सुझाव)

    Microsoft ने बहुप्रतीक्षित विंडोज 11 ऑपरेटिंग सिस्टम जारी किया है, जो कुछ बेहतर सुविधाओं और बहुत कुछ के साथ एक नया डिज़ाइन लाता है। ठीक है, यह पिछली विंडोज़ 10 की तुलना में तेज़ और पूरी तरह से अनुकूलित है। लेकिन फिर भी, कुछ उपयोगकर्ता रिपोर्ट करते हैं, विंडोज़ 11 कंप्यूटर को धीमा कर देता है। जिन उपय