MySQL वेबसाइटों और वेब अनुप्रयोगों के डेटा भंडारण के रूप में उपयोग किए जाने वाले लोकप्रिय रिलेशनल डेटाबेस सिस्टम में से एक है। यह ट्यूटोरियल उबंटू 20.04 एलटीएस पर MySQL 8 को स्थापित करने के लिए आवश्यक सभी चरणों को प्रदान करता है। चरण उबंटू और लिनक्स सिस्टम के अन्य संस्करणों पर समान होने चाहिए। आप उबंटू 18.04 एलटीएस पर हाउ टू इंस्टाल मायएसक्यूएल 8 को भी फॉलो कर सकते हैं। आप अन्य MySQL विशिष्ट ट्यूटोरियल में भी रुचि ले सकते हैं, जिसमें विंडोज़ पर MySQL 8 कैसे स्थापित करें और MySQL का उपयोग करके मूल SQL क्वेरीज़ सीखें।
आवश्यकताएं
यह ट्यूटोरियल मानता है कि आपने स्थानीय या उत्पादन उपयोग के लिए उबंटू 20.04 एलटीएस डेस्कटॉप या सर्वर संस्करण पहले ही स्थापित कर लिया है। आप उबंटू 20.04 एलटीएस डेस्कटॉप स्थापित करें, वीएमवेयर का उपयोग करके विंडोज़ पर उबंटू 20.04 एलटीएस स्थापित करें, और उबंटू 20.04 एलटीएस स्थापित करने के लिए अमेज़ॅन ईसी 2 पर उबंटू 20.04 एलटीएस सर्वर को स्पिन करें। यह यह भी मानता है कि आपके पास या तो रूट विशेषाधिकार हैं या sudo विशेषाधिकारों वाला एक नियमित उपयोगकर्ता है।
MySQL स्थापित करें
यह खंड Ubuntu 20.04 LTS पर MySQL डेटाबेस सर्वर संस्करण 8 को स्थापित करने के लिए आवश्यक कमांड प्रदान करता है।
# Install MySQL Server 8
sudo apt install mysql-server
# Output
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libaio1 libcgi-fast-perl libcgi-pm-perl libevent-core-2.1-7 libfcgi-perl libhtml-template-perl libmecab2 mecab-ipadic
mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-server-8.0 mysql-server-core-8.0
---
---
Setting up mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Renaming removed key_buffer and myisam-recover options (if present)
mysqld will log errors to /var/log/mysql/error.log
mysqld is running as pid 63195
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
Setting up mysql-server (8.0.20-0ubuntu0.20.04.1) ...
Processing triggers for systemd (245.4-4ubuntu3) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
मैंने MySQL पैकेजों को हाइलाइट किया है जो इंस्टॉलेशन कमांड को निष्पादित करने के बाद इंस्टॉल हो जाते हैं। यह MySQL कोर, सर्वर और क्लाइंट पैकेज स्थापित करता है। साथ ही, इस ट्यूटोरियल को लिखते समय MySQL सर्वर संस्करण 8.0.20 स्थापित किया गया था।
MySQL इंस्टालेशन को कॉन्फ़िगर और सुरक्षित करें
हमें mysql_secure_installation . कमांड का उपयोग करके इंस्टॉलेशन को कॉन्फ़िगर और सुरक्षित भी करना चाहिए नीचे दिखाए गए रूप में। यह रूट पासवर्ड और कुछ सुरक्षा प्रश्न सेट करने के लिए कहेगा।
चरण 1 - सुरक्षित स्थापना - MySQL कॉन्फ़िगरेशन प्रारंभ करने के लिए आदेश निष्पादित करें।
# Secure MySQL
sudo mysql_secure_installation
चरण 2 - पासवर्ड सत्यापनकर्ता - यह पासवर्ड को मान्य करने के लिए पासवर्ड सत्यापनकर्ता के उपयोग की पुष्टि करने के लिए कहता है। पासवर्ड प्रदान करते समय यह पासवर्ड की ताकत भी दिखाएगा।
# Password Validator Component
Press y|Y for Yes, any other key for No: y
यदि हम नहीं का चयन करते हैं, तो यह MySQL रूट और अन्य उपयोगकर्ताओं को जोड़ते समय उनके पासवर्ड की ताकत की जांच नहीं करेगा। हमें MySQL उपयोगकर्ताओं के लिए एक मजबूत पासवर्ड का उपयोग करना चाहिए, इसलिए पासवर्ड सत्यापनकर्ता घटक का उपयोग करने की अनुशंसा की जाती है।
चरण 3 - पासवर्ड सत्यापन स्तर - सुरक्षित इंस्टॉलेशन कमांड पासवर्ड सत्यापन स्तर पूछता है और निम्न (0), मध्यम (1), और मजबूत (2) में से चुनने के लिए विकल्प प्रदान करता है। कम से कम मध्यम स्तर . का उपयोग करने की अनुशंसा की जाती है सभी MySQL उपयोगकर्ताओं का एक मजबूत पासवर्ड रखने के लिए। सभी स्तरों के सत्यापन नियम नीचे सूचीबद्ध हैं।
निम्न - यह वर्णों पर बिना किसी प्रतिबंध के कम से कम 8 वर्णों वाले पासवर्ड की अपेक्षा करता है।
मध्यम - मध्यम स्तर कम से कम 8 वर्णों वाले पासवर्ड की अपेक्षा करता है और संख्यात्मक, अपरकेस, लोअरकेस और विशेष वर्णों की अनुमति देता है।
मजबूत - मजबूत स्तर एक पासवर्ड की अपेक्षा करता है जिसमें कम से कम 8 वर्ण हों और संख्यात्मक, अपरकेस, लोअरकेस और विशेष वर्णों की अनुमति देता हो। यह शब्दकोश फ़ाइल की भी अनुमति देता है।
# Password Validation Level
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
चरण 4 - रूट पासवर्ड - रूट उपयोगकर्ता के लिए MySQL द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट प्रमाणीकरण प्लगइन auth_socket . है ।
# Password Prompt
New password:<password>
Re-enter new password:<repeat password>
यदि आपने पासवर्ड सत्यापनकर्ता का उपयोग करना चुना है, तो यह रूट पासवर्ड की पासवर्ड की ताकत भी दिखाएगा और नीचे दिखाए गए अनुसार दिए गए पासवर्ड का उपयोग करने की पुष्टि करेगा।
# Confirm Password
Estimated strength of the password: 80
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
अगर हम नहीं चुनते हैं, तो यह फिर से पासवर्ड के लिए संकेत देगा।
चरण 5 - अनाम उपयोगकर्ताओं को निकालें - पासवर्ड प्रदान करने के बाद, सुरक्षित स्थापना प्रक्रिया अनाम उपयोगकर्ताओं को हटाने के लिए कहती है। MySQL परीक्षण उद्देश्यों के लिए इसे स्थापित करते समय एक अनाम उपयोगकर्ता जोड़ता है और किसी को भी पासवर्ड के बिना लॉग इन करने की अनुमति देता है। अनाम उपयोगकर्ता को निकालने की अनुशंसा की जाती है।
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
चरण 6 - दूरस्थ लॉगिन की अनुमति न दें - सुरक्षित स्थापना प्रक्रिया यह पुष्टि करने के लिए भी कहती है कि रूट उपयोगकर्ता के लिए दूरस्थ लॉगिन की अनुमति है या नहीं। रूट यूजर को लोकलहोस्ट तक सीमित रखने के लिए हमें विकल्प y चुनना चाहिए। आवश्यकता पड़ने पर दूरस्थ लॉगिन की अनुमति देने के लिए हम हमेशा अतिरिक्त उपयोगकर्ता जोड़ सकते हैं।
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
चरण 7 - परीक्षण डेटाबेस निकालें - MySQL इसे स्थापित करते समय परीक्षण डेटाबेस बनाता है। आप परीक्षण डेटाबेस को विश्लेषण उद्देश्यों के लिए रख सकते हैं और बाद में इसे छोड़ सकते हैं।
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
चरण 8 - विशेषाधिकार तालिकाएं पुनः लोड करें - अंत में, सुरक्षित इंस्टॉलेशन परिवर्तनों को तुरंत लागू करने के लिए विशेषाधिकार तालिका को फिर से लोड करने के लिए कहता है।
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
MySQL की एक नई स्थापना पर मेरे द्वारा अनुसरण किए गए पूर्ण चरण नीचे दिखाए गए हैं।
# Secure MySQL
sudo mysql_secure_installation
# Configuration
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Please set the password for root here.
New password:
Re-enter new password:
Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
उपरोक्त चरण परीक्षण डेटाबेस और अनाम उपयोगकर्ताओं को हटाते हैं। यह यह सुनिश्चित करने के लिए दूरस्थ लॉगिन की भी अनुमति नहीं देता है कि सर्वर 127.0.0.1 . का उपयोग करके स्थानीय रूप से पहुंच योग्य है या लोकलहोस्ट ।
इंस्टॉलेशन सत्यापित करें
MySQL सर्वर चल रहा है या नहीं यह जांचने के लिए हम नीचे दिखाए गए कमांड का उपयोग करके MySQL सर्वर की स्थापना को सत्यापित कर सकते हैं।
# Check MySQL Status
systemctl status mysql
# Output● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-05 19:42:35 IST; 9min ago Main PID: 63433 (mysqld) Status: "Server is operational" Tasks: 40 (limit: 4624) Memory: 319.2M CGroup: /system.slice/mysql.service └─63433 /usr/sbin/mysqld Jun 05 19:42:35 bravo systemd[1]: Starting MySQL Community Server... Jun 05 19:42:35 bravo systemd[1]: Started MySQL Community Server.
साथ ही, हमारे द्वारा इंस्टॉल किए गए सर्वर के संस्करण की जांच करें और सुनिश्चित करें कि सर्वर हमारे द्वारा कॉन्फ़िगर किए गए रूट पासवर्ड का उपयोग करके पहुंच योग्य है।
# Check version
sudo mysql --version
# Output
mysql Ver 8.0.20-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
# Login
sudo mysql
# OR
sudo mysql -u root
# Quit Database
exit
जैसा कि ऊपर दिखाया गया है, हम केवल MySQL में लॉग इन कर सकते हैं, यहां तक कि हमने MySQL सर्वर को सुरक्षित करते हुए रूट उपयोगकर्ता का पासवर्ड भी प्रदान किया है। MySQL सीधे रूट उपयोगकर्ता को अनुमति देता है क्योंकि यह auth_socket . का उपयोग करता है रूट उपयोगकर्ता के लिए प्लगइन जिसे किसी पासवर्ड की आवश्यकता नहीं है।
रूट यूजर पासवर्ड प्लगिन
हम पासवर्ड प्लगइन बदल सकते हैं रूट उपयोगकर्ता का caching_sha2_password (पसंदीदा) या mysql_native_password phpMyAdmin सहित अन्य अनुप्रयोगों को रूट उपयोगकर्ता का उपयोग करके MySQL सर्वर में लॉगिन करने की अनुमति देने के लिए। यह नीचे दिखाए गए आदेशों का उपयोग करके किया जा सकता है।
# Login to MySQL
sudo mysql
# Check password scheme of root user
SELECT user,authentication_string,plugin,host FROM mysql.user;
# Note the password plugin of root user
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$[DA
NP9|K1zAmHe`LVwrhII7zBo5b5xUoPnvOLuCa9CSJVqCn7W1rzOCCyZD | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | | auth_socket | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
# Change to new and recommended password plugin - caching_sha2_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<pw>';
# Apply changes
flush privileges;
# Check password scheme of root user
SELECT user,authentication_string,plugin,host FROM mysql.user;
# Note the password plugin of root user
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | $A$005$ZtYD-ppbn>iO�"MHhl/0TXh9Qo3xYdWK3ThKPmDB6r.QhVlZY1dcT1LWH0A | caching_sha2_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
# Change password plugin of root user to mysql_native_password - not recommended
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<pw>';
# Apply changes
flush privileges;
# Check password scheme of root user
SELECT user,authentication_string,plugin,host FROM mysql.user;
# Note the password plugin of root user
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *E5C4F73D963032BEF9BB4CA799A848C08BADC343 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
# Quit Database
exit
अतिरिक्त उपयोगकर्ता
जैसा कि नीचे दिखाया गया है, हम CREATE USER कमांड का उपयोग करके अतिरिक्त उपयोगकर्ता जोड़ सकते हैं।
# Login to MySQL - auth_socket
sudo mysql
# OR - Login to MySQL - caching_sha2_password
sudo mysql -u root -p
# Add User
CREATE USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<pw>';
# Apply changes
flush privileges;
# Quit Database
exit
आप मूल SQL क्वेरीज़ सीखने के लिए MySQL का उपयोग करके लर्न बेसिक SQL क्वेरीज़ को भी फॉलो कर सकते हैं।
महत्वपूर्ण आदेश
यह खंड सर्वर को शुरू करने, रोकने और पुनः आरंभ करने के लिए कुछ महत्वपूर्ण कमांड दिखाता है।
# Check server status
sudo service mysql status
# Stop server
sudo service mysql stop
# Start server
sudo service mysql start
# Restart server
sudo service mysql restart
सारांश
इस ट्यूटोरियल ने MySQL सर्वर के नवीनतम संस्करण यानी MySQL 8 को Ubuntu 20.04 LTS पर स्थापित करने के लिए आवश्यक सभी चरणों को प्रदान किया। इसने MySQL सर्वर इंस्टॉलेशन को और सुरक्षित करने के लिए कॉन्फ़िगरेशन चरण भी प्रदान किए।
इंस्टॉलेशन पूरा करने के बाद आप MySQL का उपयोग करके लर्न बेसिक SQL क्वेरीज़, MySQL में ब्लॉग मैनेजमेंट के लिए गाइड टू डिज़ाइन डेटाबेस, और MySQL में ऑनलाइन शॉपिंग कार्ट के लिए डेटाबेस डिज़ाइन करने के लिए गाइड का अनुसरण कर सकते हैं।