MySQL एक लोकप्रिय डेटाबेस प्रबंधन प्रणाली है जिसका उपयोग वेब और सर्वर अनुप्रयोगों के लिए किया जाता है। हालाँकि, MySQL अब CentOS के रिपॉजिटरी में नहीं है और MariaDB की पेशकश की जाने वाली डिफ़ॉल्ट डेटाबेस प्रणाली बन गई है। मारियाडीबी को MySQL के लिए एड्रॉप-इन प्रतिस्थापन माना जाता है और यदि आपको सामान्य रूप से डेटाबेस सिस्टम की आवश्यकता होती है तो यह पर्याप्त होगा। स्थापना निर्देशों के लिए CentOS 7 मार्गदर्शिका में हमाराMariaDB देखें।
यदि आप फिर भी MySQL को पसंद करते हैं, तो यह मार्गदर्शिका आपको बताएगी कि CentOS 7 चलाने वाले लाइनोड पर इसे कैसे स्थापित, कॉन्फ़िगर और प्रबंधित किया जाए।
बड़े MySQL डेटाबेस को काफी मात्रा में मेमोरी की आवश्यकता हो सकती है। इस कारण से, हम ऐसे सेटअप के लिए हाई मेमोरी लाइनोड का उपयोग करने की सलाह देते हैं।
नोट यह मार्गदर्शिका गैर-रूट उपयोक्ता के लिए लिखी गई है। जिन आदेशों के लिए उन्नत विशेषाधिकारों की आवश्यकता होती है, उनके आगेsudo
. लगा होता है . अगर आपsudo
. से परिचित नहीं हैं आदेश, आप हमारे उपयोगकर्ता और समूह मार्गदर्शिका देख सकते हैं।
शुरू करने से पहले
-
सुनिश्चित करें कि आपने गेटिंग स्टार्टिंग एंड सिक्योरिंग योर सर्वर गाइड्स का पालन किया है, और लिनोड का होस्टनाम सेट है।
अपना होस्टनाम चलाने की जाँच करने के लिए:
hostname hostname -f
पहली कमांड को आपका संक्षिप्त होस्टनाम दिखाना चाहिए, और दूसरे को आपका पूरी तरह से योग्य डोमेन नाम (FQDN) दिखाना चाहिए।
-
अपना सिस्टम अपडेट करें:
sudo yum update
-
आपको आवश्यकता होगी
wget
इस गाइड को पूरा करने के लिए। इसे निम्नानुसार स्थापित किया जा सकता है:yum install wget
MySQL इंस्टॉल करें
MySQL को कम्युनिटी रिपॉजिटरी से इंस्टॉल किया जाना चाहिए।
-
डाउनलोड करें और रिपॉजिटरी जोड़ें, फिर अपडेट करें।
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update
-
हमेशा की तरह MySQL स्थापित करें और सेवा शुरू करें। स्थापना के दौरान, आपसे पूछा जाएगा कि क्या आप .rpm फ़ाइल के GPG सत्यापन से परिणाम स्वीकार करना चाहते हैं। यदि कोई त्रुटि या बेमेल नहीं होता है, तो
y
दर्ज करें ।sudo yum install mysql-server sudo systemctl start mysqld
MySQL डिफ़ॉल्ट रूप से लोकलहोस्ट (127.0.0.1) से जुड़ जाएगा। SSH का उपयोग करके अपने डेटाबेस से कनेक्ट करने के बारे में जानकारी के लिए कृपया हमारी MySQL रिमोट एक्सेस गाइड देखें।
नोट सार्वजनिक आईपी पर MySQL तक अप्रतिबंधित पहुंच की अनुमति देने की सलाह नहीं दी जाती है, लेकिन आपbind-address
को संशोधित करके उस पते को बदल सकते हैं जिस पर वह सुनता है।/etc/my.cnf
में पैरामीटर . यदि आप MySQL को अपने सार्वजनिक IP से बाँधने का निर्णय लेते हैं, तो आपको फ़ायरवॉल नियम लागू करने चाहिए जो केवल विशिष्ट IP पतों से कनेक्शन की अनुमति देते हैं।
MySQL सर्वर को सख्त करें
-
mysql_secure_installation
चलाएं डिफ़ॉल्ट MySQL स्थापना में कई सुरक्षा चिंताओं को दूर करने के लिए स्क्रिप्ट।sudo mysql_secure_installation
आपको MySQL रूट पासवर्ड बदलने, अनाम उपयोगकर्ता खातों को हटाने, लोकलहोस्ट के बाहर रूट लॉगिन को अक्षम करने और परीक्षण डेटाबेस को हटाने का विकल्प दिया जाएगा। यह अनुशंसा की जाती है कि आप yes
का उत्तर दें इन विकल्पों के लिए। आप स्क्रिप्ट के बारे में MySQL संदर्भ मैनुअल में अधिक पढ़ सकते हैं।
नोटयदि MySQL 5.7 स्थापित किया गया था, तो आपको स्थापना के दौरान बनाए गए अस्थायी पासवर्ड की आवश्यकता होगी। यह पासवर्ड
/var/log/mysql.log
. में नोट किया गया है फ़ाइल, और निम्न आदेश का उपयोग करके जल्दी से पाया जा सकता है।sudo grep 'temporary password' /var/log/mysqld.log
MySQL का उपयोग करना
MySQL के साथ इंटरैक्ट करने के लिए मानक टूल mysql
है क्लाइंट जो mysql-server
. के साथ स्थापित होता है पैकेट। MySQL क्लाइंट का उपयोग टर्मिनल के माध्यम से किया जाता है।
रूट लॉगिन
-
MySQL में रूट यूजर के रूप में लॉग इन करने के लिए:
mysql -u root -p
-
संकेत मिलने पर, mysql_secure_installation स्क्रिप्ट चलाते समय आपके द्वारा असाइन किया गया रूट पासवर्ड दर्ज करें।
फिर आपको एक स्वागत हेडर और MySQL प्रॉम्प्ट के साथ प्रस्तुत किया जाएगा जैसा कि नीचे दिखाया गया है:
mysql>
-
MySQL प्रॉम्प्ट के लिए कमांड की सूची बनाने के लिए,
\h
enter दर्ज करें . फिर आप देखेंगे:List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for `help'. clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute an SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement. For server side help, type 'help contents' mysql>
एक नया MySQL उपयोगकर्ता और डेटाबेस बनाएं
-
नीचे दिए गए उदाहरण में,
testdb
डेटाबेस का नाम है,testuser
उपयोगकर्ता है, औरpassword
उपयोगकर्ता का पासवर्ड है।create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser' identified by 'password';
आप जबकि . उपयोगकर्ता बनाकर इस प्रक्रिया को छोटा कर सकते हैं डेटाबेस अनुमतियाँ असाइन करना:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
फिर MySQL से बाहर निकलें।
exit
नमूना तालिका बनाएं
-
testuser
. के रूप में वापस लॉग इन करें ।mysql -u testuser -p
-
ग्राहक . नामक एक नमूना तालिका बनाएं . यह पूर्णांक के लिए INT प्रकार के ग्राहक आईडी फ़ील्ड (प्राथमिक कुंजी के रूप में उपयोग किए जाने वाले नए रिकॉर्ड के लिए स्वत:वृद्धि) के साथ-साथ ग्राहक के नाम को संग्रहीत करने के लिए दो फ़ील्ड के साथ एक तालिका बनाता है।
use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
फिर MySQL से बाहर निकलें।
exit
MySQL रूट पासवर्ड रीसेट करें
यदि आप अपना रूट MySQL पासवर्ड भूल जाते हैं, तो इसे रीसेट किया जा सकता है।
-
वर्तमान MySQL सर्वर इंस्टेंस को रोकें, फिर पासवर्ड न मांगने के विकल्प के साथ इसे पुनरारंभ करें।
sudo systemctl stop mysqld sudo mysqld_safe --skip-grant-tables &
-
MySQL सर्वर से MySQL रूट खाते से फिर से कनेक्ट करें।
mysql -u root
-
रूट का पासवर्ड रीसेट करने के लिए निम्न कमांड का उपयोग करें।
password
बदलें एक मजबूत पासवर्ड के साथ।use mysql; update user SET PASSWORD=PASSWORD("password") WHERE USER='root'; flush privileges; exit
-
फिर MySQL को पुनरारंभ करें।
sudo systemctl start mysqld
MySQL ट्यून करें
MySQL ट्यूनर एक पर्ल स्क्रिप्ट है जो MySQL के चल रहे इंस्टेंस से जुड़ती है और वर्कलोड के आधार पर कॉन्फ़िगरेशन अनुशंसाएं प्रदान करती है। आदर्श रूप से, MySQL इंस्टेंस को ट्यूनर चलाने से कम से कम 24 घंटे पहले काम करना चाहिए था। इंस्टेंस जितना लंबा चल रहा है, MySQL ट्यूनर उतनी ही बेहतर सलाह देगा।
-
MySQL ट्यूनर को अपने होम डायरेक्टरी में डाउनलोड करें।
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
-
इसे चलाने के लिए:
perl ./mysqltuner.pl
आपसे MySQL रूट यूजर का नाम और पासवर्ड मांगा जाएगा। आउटपुट रुचि के दो क्षेत्रों को दिखाएगा:सामान्य अनुशंसाएं और चर समायोजित करने के लिए।
MySQL ट्यूनर एक MySQL सर्वर को ऑप्टिमाइज़ करने के लिए एक उत्कृष्ट प्रारंभिक बिंदु है, लेकिन आपके लाइनोड पर MySQL का उपयोग करने वाले एप्लिकेशन के अनुरूप कॉन्फ़िगरेशन के लिए अतिरिक्त शोध करना समझदारी होगी।
अभी भी कुछ प्रश्न हैं?हमारे समुदाय में शामिल हों और आपकी मदद करने के लिए अन्य लिनोड और लिनक्स उत्साही लोगों के लिए अपने प्रश्न पोस्ट करें।
संबंधित प्रश्न:
- Centos7 पर phpMyAdmin कैसे स्थापित करें
- मैं अपने लाइनोड पर LAMP/LEMP स्टैक कैसे सेटअप कर सकता हूं?
- मैं MySQL और MongoDB दोनों को कैसे चलाऊं?
अधिक जानकारी
आप इस विषय पर अतिरिक्त जानकारी के लिए निम्नलिखित संसाधनों से परामर्श करना चाह सकते हैं। हालांकि ये इस उम्मीद में प्रदान किए जाते हैं कि वे उपयोगी होंगे, कृपया ध्यान दें कि हम बाहरी रूप से होस्ट की गई सामग्री की सटीकता या समयबद्धता की पुष्टि नहीं कर सकते।
- MySQL 5.6 संदर्भ मैनुअल
- PHP MySQL मैनुअल
- DBD::mysql के लिए पर्ल DBI उदाहरण
- MySQLdb उपयोगकर्ता मार्गदर्शिका
- MySQL ट्यूनर ट्यूटोरियल