Google Cloud SQL, पूरी तरह से मैनेज की गई डेटाबेस सेवा है. इसकी मदद से, क्लाउड में अपने मिलते-जुलते MySQL डेटाबेस को आसानी से सेट अप किया जा सकता है. साथ ही, उसे बनाए रखने, मैनेज करने, और सही तरीके से चलाने में भी मदद मिलती है.
इस लैब में, हम एक नया और खाली Cloud SQL इंस्टेंस बनाएंगे. इसके बाद, MySQL के कमांड लाइन इंटरफ़ेस का इस्तेमाल करके इससे कनेक्ट करेंगे. साथ ही, एक नया और खाली डेटाबेस बनाएंगे.
आपको क्या सीखने को मिलेगा
- Google Cloud Console में Cloud SQL के वेब यूज़र इंटरफ़ेस (यूआई) को ऐक्सेस करने का तरीका.
- Google Cloud Console का इस्तेमाल करके, Cloud SQL इंस्टेंस बनाने का तरीका.
- Google Cloud Console का इस्तेमाल करके, रूट पासवर्ड सेट करने का तरीका.
- Cloud Shell के ज़रिए, Cloud SQL इंस्टेंस से कनेक्ट करने का तरीका.
- Google Cloud Console का इस्तेमाल करके, Cloud SQL इंस्टेंस मिटाने का तरीका.
आपको किन चीज़ों की ज़रूरत होगी
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Google Cloud Platform की सेवाओं और Firebase को इस्तेमाल करने के अपने अनुभव को आप क्या रेटिंग देंगे?
अपने हिसाब से एनवायरमेंट सेट अप करना
अगर आपके पास पहले से कोई Google खाता (Gmail या Google Apps) नहीं है, तो आपको एक खाता बनाना होगा. Google Cloud Platform Console (console.cloud.google.com) में साइन इन करें और एक नया प्रोजेक्ट बनाएं:
प्रोजेक्ट आईडी याद रखें. यह सभी Google Cloud प्रोजेक्ट के लिए एक यूनीक नाम होता है. ऊपर दिया गया नाम पहले ही इस्तेमाल किया जा चुका है. इसलिए, यह आपके लिए काम नहीं करेगा. माफ़ करें! इस कोड लैब में इसे बाद में PROJECT_ID
के तौर पर दिखाया जाएगा.
इसके बाद, Google Cloud संसाधनों का इस्तेमाल करने के लिए, आपको Cloud Console में बिलिंग चालू करनी होगी.
इस कोडलैब को पूरा करने में आपको कुछ डॉलर से ज़्यादा खर्च नहीं करने पड़ेंगे. हालांकि, अगर आपको ज़्यादा संसाधनों का इस्तेमाल करना है या उन्हें चालू रखना है, तो यह खर्च बढ़ सकता है. इस दस्तावेज़ के आखिर में "सफ़ाई" सेक्शन देखें.
Google Cloud Platform के नए उपयोगकर्ता, 300 डॉलर के क्रेडिट के साथ मुफ़्त में आज़माने की सुविधा पा सकते हैं.
Google Cloud Console में, स्क्रीन पर सबसे ऊपर बाईं ओर मौजूद मेन्यू आइकॉन पर क्लिक करें:
नीचे की ओर स्क्रोल करें और स्टोरेज सब-सेक्शन में जाकर, एसक्यूएल चुनें:
अब आपको Cloud SQL का वेब यूज़र इंटरफ़ेस (यूआई) दिखेगा. अगर आपने ऐसा प्रोजेक्ट इस्तेमाल किया है जिसमें फ़िलहाल कोई Cloud SQL इंस्टेंस नहीं है, तो आपको एक डायलॉग बॉक्स दिखेगा. इसमें आपको नया Cloud SQL इंस्टेंस बनाने का न्योता दिया जाएगा.
अगर किसी ऐसे प्रोजेक्ट का इस्तेमाल किया जा रहा है जिसमें पहले से ही एक या उससे ज़्यादा Cloud SQL इंस्टेंस हैं, तो आपको उन इंस्टेंस की सूची दिखेगी:
मान लें कि आपके प्रोजेक्ट में कोई Cloud SQL इंस्टेंस नहीं है. इसलिए, एक इंस्टेंस बनाने के लिए, इंस्टेंस बनाएं बटन दबाएं:
अगर आपको ऐसे प्रोजेक्ट का इस्तेमाल करना है जिसमें पहले से ही एक या उससे ज़्यादा Cloud SQL इंस्टेंस मौजूद हैं, तो इंस्टेंस स्क्रीन पर इंस्टेंस बनाएं बटन दबाएं. यह बटन यहां दिखाया गया है:
दोनों ही मामलों में, अब आपको Choose an instance type पेज दिखेगा. इस कोडलैब में, हम Cloud SQL Second Generation इंस्टेंस बनाएंगे. दूसरी जनरेशन चुनें पर क्लिक करें.
इससे आपको एक इंस्टेंस बनाएं पेज पर ले जाया जाएगा. यहां आपको अपने इंस्टेंस का नाम डालना होगा. यह नाम आपके प्रोजेक्ट में यूनीक होना चाहिए, लेकिन सभी प्रोजेक्ट में नहीं. इसलिए, इस उदाहरण में दिखाया गया इंस्टेंस का नाम codelab-0 इस्तेमाल किया जा सकता है. हालांकि, ऐसा तब ही किया जा सकता है, जब आपके प्रोजेक्ट में कोई अन्य Cloud SQL इंस्टेंस न हो. इंस्टेंस आईडी बॉक्स में "codelab-0" डालें. इस कोडलैब के लिए, बाकी कॉन्फ़िगरेशन को उनकी डिफ़ॉल्ट वैल्यू के साथ छोड़ा जा सकता है.
ध्यान दें कि Cloud SQL इंस्टेंस को मिटाने के बाद, एक हफ़्ते तक उस इंस्टेंस के नाम का दोबारा इस्तेमाल नहीं किया जा सकता. अगर आपको इस प्रोजेक्ट का इस्तेमाल एक्सपेरिमेंट के अलावा किसी और काम के लिए करना है, तो पक्का करें कि आपने ऐसा इंस्टेंस नाम चुना हो जिसका इस्तेमाल आपको असली काम के लिए नहीं करना है. ऐसा न करने पर, हो सकता है कि आपको कुछ समय के लिए उस इंस्टेंस नाम का दोबारा इस्तेमाल करने की अनुमति न मिले.
पेज पर सबसे नीचे तक स्क्रोल करें और बनाएं पर क्लिक करें.
आपको Instances पेज पर ले जाया जाएगा. यहां आपको बाईं ओर एक स्पिनर के साथ अपना नया इंस्टेंस दिखेगा. इसका मतलब है कि यह अब भी बनाया जा रहा है:
दो या तीन मिनट में इंस्टेंस उपलब्ध हो जाएगा. इसके बाद, नीले रंग के स्पिनर की जगह हरे रंग का सही का निशान दिखेगा. समय-समय पर पेज को रीफ़्रेश करना न भूलें:
अब आपका Cloud SQL इंस्टेंस इस्तेमाल के लिए तैयार है.
अपने इंस्टेंस की ज़्यादा जानकारी वाला पेज खोलने के लिए, इंस्टेंस के नाम पर क्लिक करें. इसके बाद, ऐक्सेस कंट्रोल पर क्लिक करें:
ऐक्सेस कंट्रोल टैब पर, उपयोगकर्ता दबाएं:
उपयोगकर्ता टैब में, रूट का पासवर्ड बदलें पर क्लिक करें:
'पासवर्ड बदलें' पेज पर नया पासवर्ड डालें और ठीक है दबाएं:
Google Cloud Console में मौजूद प्रॉम्प्ट बटन दबाकर, Google Cloud Shell चालू करें:
अगर आपने इस प्रोजेक्ट के लिए Google Cloud Shell का इस्तेमाल पहली बार किया है, तो आपको Google Cloud Shell की स्क्रीन दिखेगी. Cloud Shell शुरू करें दबाएं
Google Cloud Console में सबसे नीचे, नया Cloud Shell दिखेगा. अगर इस प्रोजेक्ट के साथ पहली बार Cloud Shell का इस्तेमाल किया जा रहा है, तो Google Cloud Shell स्क्रीन पर Cloud Shell शुरू करें दबाने के बाद यह दिखेगा. अगर इसका इस्तेमाल पहले किया जा चुका है, तो 'Google Cloud Shell चालू करें' बटन दबाने के तुरंत बाद यह दिखेगा.
नीचे दिए गए gcloud sql कमांड का इस्तेमाल करके, अपने Cloud SQL इंस्टेंस से कनेक्ट करें. हालांकि, अगर आपके इंस्टेंस का नाम "codelab-0" से अलग है, तो उसकी जगह अपने इंस्टेंस का नाम डालें:
gcloud sql connect codelab-0 --user=root
आपको यह दिखना चाहिए:
$ gcloud sql connect codelab-0 --user=root Whitelisting your IP for incoming connection for 1 minute...done. Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11302 Server version: 5.6.29-google-log (Google) Copyright (c) 2000, 2015, 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>
यहां दिखाए गए तरीके से, आपको वह पासवर्ड डालने के लिए कहा जाएगा जो आपने पिछले चरण में सेट किया था. अब आपके पास पूरी तरह से काम करने वाला MySQL प्रॉम्प्ट है. आपने "root" के तौर पर साइन इन किया है. इसका इस्तेमाल SQL स्टेटमेंट डालने के लिए किया जा सकता है. जैसे, "codelab" नाम का नया डेटाबेस बनाने के लिए यह स्टेटमेंट:
mysql> CREATE DATABASE codelab; Query OK, 1 row affected (0.00 sec)
अगर क्वेरी का जवाब 'ठीक है' के तौर पर मिलता है, तो इसका मतलब है कि आपका इंस्टेंस काम कर रहा है. आइए, अब बाहर निकलें और कुछ सैंपल डेटा लोड करें, ताकि कुछ क्वेरी चलाई जा सकें.
mysql प्रॉम्प्ट से बाहर निकलने के लिए, ‘exit;' टाइप करें और Enter दबाएं.
हम कर्मचारी के सैंपल डेटा सेट को लोड करेंगे. यह आपको MySQL के आधिकारिक दस्तावेज़ में मिलेगा.
सबसे पहले, हमें स्क्रिप्ट और डेटा डाउनलोड करना होगा:
$ wget https://codeload.github.com/datacharmer/test_db/zip/master -O sampledb.zip $ unzip sampledb.zip && cd test_db-master
इसके बाद, हमें डेटाबेस और टेबल बनाने के साथ-साथ डेटा लोड करना होगा. अगर आपके इंस्टेंस का नाम codelab-0 से अलग है, तो उसकी जगह अपने इंस्टेंस का नाम डालें:
$ gcloud sql connect codelab-0 --user=root < employees.sql
अब हम डेटा के बारे में क्वेरी कर सकते हैं. यहां कुछ सैंपल क्वेरी दी गई हैं. आपके पास कुछ क्वेरी खुद बनाने का विकल्प भी है. डेटाबेस स्कीमा के बारे में जानने के लिए, employees.sql
फ़ाइल देखें. सबसे पहले, sql प्रॉम्प्ट में लॉग इन करें और कर्मचारी डेटाबेस पर स्विच करें. अगर आपके इंस्टेंस का नाम अलग है, तो codelab-0
की जगह अपने इंस्टेंस का नाम डालें:
$ gcloud sql connect codelab-0 --user=root mysql> USE employees; Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A Database changed mysql> SELECT avg(s.salary) avg_salary_by_hire_year, YEAR(e.hire_date) FROM employees e, salaries s WHERE e.emp_no = s.emp_no GROUP BY YEAR(e.hire_date); +-------------------------+-------------------+ | avg_salary_by_hire_year | YEAR(e.hire_date)| +-------------------------+-------------------+ | 66966.7550 | 1985 | | 66187.3453 | 1986 | ... 16 rows in set (2.70 sec) mysql> SELECT de.dept_no, sum(s.salary) sum_salaries_per_department FROM employees e, salaries s, dept_emp de WHERE e.emp_no = de.emp_no AND e.emp_no = s.emp_no GROUP BY de.dept_no; +---------+-----------------------------+ | dept_no | sum_salaries_per_department| +---------+-----------------------------+ | d001 | 13725425266 | | d002 | 11650834677 | ... +---------+-----------------------------+ 9 rows in set (4.22 sec) mysql> exit;
कर्मचारियों के सैंपल डेटासेट से क्वेरी करने के बाद, mysql प्रॉम्प्ट से बाहर निकलने के लिए ‘exit' कमांड का इस्तेमाल करें.
यह करना ज़रूरी नहीं है. अगर आपको Cloud SQL इंस्टेंस का इस्तेमाल जारी रखना है, तो इसे अभी मिटाने की ज़रूरत नहीं है. हालांकि, जिस प्रोजेक्ट का इस्तेमाल किया जा रहा है उससे इंस्टेंस का शुल्क लिया जाता रहेगा. अगर आपको इस इंस्टेंस की अब ज़रूरत नहीं है, तो इन शुल्कों से बचने के लिए इसे अभी मिटा दें.
ध्यान दें कि Cloud SQL इंस्टेंस को मिटाने के बाद, एक हफ़्ते तक उस इंस्टेंस के नाम का दोबारा इस्तेमाल नहीं किया जा सकता.
Cloud SQL इंस्टेंस को मिटाने के लिए, आपके पास दो विकल्प हैं.
1) अपने Cloud Shell एनवायरमेंट में gcloud
का इस्तेमाल करें. अगर आपके इंस्टेंस का नाम codelab-0 से अलग है, तो उसकी जगह अपने इंस्टेंस का नाम डालें:
$ gcloud sql instances delete codelab-0 All of the instance data will be lost when the instance is deleted. Do you want to continue (Y/n)? Y Deleting Cloud SQL instance...done. Deleted $
या
2) सबसे ऊपर बाईं ओर मौजूद SQL पर क्लिक करके, Cloud SQL इंस्टेंस पेज पर वापस जाएं:
आपको जिस इंस्टेंस को मिटाना है उसके बगल में मौजूद ड्रॉप-डाउन मेन्यू खोलें. इसके बाद, "मिटाएं" को चुनें:
किसी इंस्टेंस को मिटाने पर, उसे वापस नहीं लाया जा सकता! उस इंस्टेंस का डेटा वापस नहीं लाया जा सकता. गलती से गलत इंस्टेंस मिटाने से बचने के लिए, आपको पुष्टि करने वाले डायलॉग बॉक्स में इंस्टेंस का नाम डालकर, मिटाने की पुष्टि करनी होगी:
अपने इंस्टेंस का नाम डालें और मिटाएं दबाएं.
आपने एक नया Cloud SQL इंस्टेंस बनाया है, रूट पासवर्ड कॉन्फ़िगर किया है, एक खाली डेटाबेस बनाया है, और (ज़रूरी नहीं) Cloud SQL इंस्टेंस मिटाया है.
हमने क्या-क्या बताया
- Google Cloud Console की मदद से Cloud SQL इंस्टेंस बनाना.
- Google Cloud Console की मदद से, SQL के रूट खाते का पासवर्ड सेट करना.
- mysql क्लाइंट का इस्तेमाल करके डेटाबेस से कनेक्ट करना.
- mysql प्रॉम्प्ट के ज़रिए नया MySQL डेटाबेस बनाना.
- Cloud SQL इंस्टेंस मिटाया जा रहा है.
ज़्यादा जानें
- Google Cloud SQL का दस्तावेज़ देखें