Cloud SQL के साथ मैनेज किया गया MySQL डेटाबेस बनाना

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 इंस्टेंस को मिटाने का तरीका.

आपको इनकी ज़रूरत होगी

  • ब्राउज़र, जैसे कि Chrome या Firefox

आप इस ट्यूटोरियल का इस्तेमाल कैसे करेंगे?

सिर्फ़ इसे पढ़ें इसे पढ़ें और कसरत करें

Google Cloud Platform सेवाओं और Firebase का इस्तेमाल करने के अपने अनुभव को आप कितनी रेटिंग देंगे?

शुरुआती बीच का लेवल असरदार

अपनी सुविधा के हिसाब से एनवायरमेंट सेट अप करना

अगर आपके पास पहले से कोई Google खाता (Gmail या Google Apps) नहीं है, तो आपको एक खाता बनाना होगा. Google Cloud Platform Console (console.cloud.google.com) में साइन इन करें और एक नया प्रोजेक्ट बनाएं:

10-02-2016 का स्क्रीनशॉट 12:45:26.png

प्रोजेक्ट आईडी याद रखें, सभी Google क्लाउड प्रोजेक्ट में दिया गया नाम (ऊपर दिया गया नाम पहले ही लिया जा चुका है और यह आपके लिए काम नहीं करेगा!). इसे बाद में इस कोडलैब (कोड बनाना सीखना) में PROJECT_ID के तौर पर बताया जाएगा.

इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग को चालू करना होगा.

इस कोडलैब के जवाब में कुछ डॉलर से ज़्यादा खर्च नहीं करना चाहिए. हालांकि, अगर आप संसाधनों का इस्तेमाल करना जारी रखते हैं या उन्हें चलाना बंद कर देते हैं, तो यह ज़्यादा भी हो सकता है.

Google Cloud Platform के नए उपयोगकर्ता, 300 डॉलर का मुफ़्त ट्रायल पा सकते हैं.

Google Cloud Console में, स्क्रीन के सबसे ऊपर बाईं ओर मेन्यू आइकॉन पर क्लिक करें:

नीचे स्क्रोल करें और स्टोरेज सब-सेक्शन में SQL चुनें:

अब आपको Cloud SQL वेब यूज़र इंटरफ़ेस (यूआई) दिखेगा. मान लें कि आप किसी ऐसे प्रोजेक्ट का इस्तेमाल कर रहे हैं जिसमें फ़िलहाल कोई Cloud SQL इंस्टेंस नहीं है. आपको एक डायलॉग बॉक्स दिखेगा, जिसमें आपको नया Cloud SQL इंस्टेंस बनाने के लिए न्योता दिया जाएगा.

अगर आप किसी ऐसे प्रोजेक्ट का इस्तेमाल कर रहे हैं जिसमें पहले से एक या उससे ज़्यादा Cloud SQL इंस्टेंस हैं, तो आपको इसके बजाय उन इंस्टेंस की सूची दिखेगी:

यह मानते हुए कि आपके प्रोजेक्ट में कोई भी Cloud SQL इंस्टेंस नहीं है, इंस्टेंस बनाएं बटन दबाएं:

अगर आप ऐसे प्रोजेक्ट का इस्तेमाल कर रहे हैं जिसमें एक या उससे ज़्यादा Cloud SQL इंस्टेंस हैं, तो यहां बताए गए इंस्टेंस स्क्रीन पर इंस्टेंस बनाएं बटन दबाएं:

दोनों में से किसी भी मामले में, अब आपको इंस्टेंस टाइप चुनें पेज दिखेगा. इस कोडलैब में, हम Cloud SQL का दूसरा जनरेशन इंस्टेंस बनाने जा रहे हैं. दूसरी जनरेशन चुनें पर क्लिक करें.

2ndGenCloudSQLCreate.png

इससे आप इंस्टेंस बनाएं पेज पर पहुंच जाएंगे. यहां आपको अपने इंस्टेंस के लिए एक नाम डालना होगा. यह नाम आपके प्रोजेक्ट में अलग होना चाहिए, लेकिन सभी प्रोजेक्ट में नहीं. इसलिए, यह मानते हुए कि आपके प्रोजेक्ट में कोई दूसरा Cloud SQL इंस्टेंस नहीं है, आप इस उदाहरण में दिखाए गए उसी इंस्टेंस नाम codelab-0 का इस्तेमाल कर सकते हैं. इंस्टेंस आईडी बॉक्स में "codelab-0" डालें. इस कोडलैब के लिए, बाकी कॉन्फ़िगरेशन को उनकी डिफ़ॉल्ट वैल्यू के साथ छोड़ा जा सकता है.

ध्यान दें कि जब आप किसी Cloud SQL इंस्टेंस को मिटाते हैं, तो आप उस इंस्टेंस नाम का एक हफ़्ते तक दोबारा इस्तेमाल नहीं कर सकते. अगर आप प्रयोग के अलावा इस प्रोजेक्ट का इस्तेमाल करने के बारे में सोच रहे हैं, तो पक्का करें कि आपने ऐसे इंस्टेंस का नाम चुना है जो किसी भी इंस्टेंस के नाम से अलग है. हो सकता है कि इस नाम का इस्तेमाल आप असली काम के लिए करना चाहें या आप कुछ समय के लिए उस नाम का दोबारा इस्तेमाल न कर पाएं.

2ndGenCloudSQLCreate_2.png

पेज में नीचे तक स्क्रोल करें और बनाएं दबाएं.

2ndGenCloudSQLCreate_3.png

आपको इंस्टेंस पेज पर ले जाया जाएगा. यहां आपको बाईं ओर स्पिनर के साथ अपना नया इंस्टेंस दिखेगा. इससे पता चलता है कि यह अब भी बनाया जा रहा है:

इंस्टेंस दो या तीन मिनट में उपलब्ध होगा. साथ ही, हरे रंग का चेकमार्क, नीले रंग के स्पिनर की जगह ले लेगा. समय-समय पर पेज को रीफ़्रेश करते रहें:

आपका Cloud SQL इंस्टेंस अब इस्तेमाल के लिए तैयार है.

इंस्टेंस की जानकारी वाले पेज को लाने के लिए अपने इंस्टेंस के नाम पर क्लिक करें, फिर ऐक्सेस कंट्रोल पर क्लिक करें:

ऐक्सेस कंट्रोल टैब पर, उपयोगकर्ता दबाएं:

उपयोगकर्ता टैब में, रूट पासवर्ड बदलें पर क्लिक करें:

पासवर्ड बदलें पेज पर नया पासवर्ड डालें और ठीक है दबाएं:

Google Cloud Console में प्रॉम्प्ट बटन को दबाकर, Google Cloud Shell को चालू करें:

अगर आप इस प्रोजेक्ट के लिए पहली बार Google Cloud Shell का इस्तेमाल कर रहे हैं, तो आपको Google Cloud Shell की स्क्रीन दिखेगी. Start Shell दबाएं

CloudShell स्वागत.png

अगर आप इस प्रोजेक्ट के लिए पहली बार Google Cloud Shell का इस्तेमाल कर रहे हैं, तो Google Cloud Console के निचले हिस्से में नया Cloud Shell दिखेगा. अगर किसी उपयोगकर्ता ने पहले Google Cloud Shell का इस्तेमाल किया है, तो उसे दबाने के तुरंत बाद, यह बटन भी दिखेगा.

07-03-2016 को 12.18.01.png पर स्क्रीन शॉट

नीचे दिखाए गए gcloud sql कमांड का इस्तेमाल करके, अपने Cloud SQL इंस्टेंस से कनेक्ट करें. हालांकि, अलग-अलग होने पर अपने इंस्टेंस के नाम से &kot;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 का प्रॉम्प्ट है, जो &kot;root&kot; के तौर पर साइन इन है. आप SQL स्टेटमेंट डालने के लिए इसका इस्तेमाल कर सकते हैं. जैसे इस तरह के एक नए डेटाबेस को बनाने के लिए &kot;codelab":

mysql> CREATE DATABASE codelab;
Query OK, 1 row affected (0.00 sec)

अगर क्वेरी के लिए ठीक है, तो आपका इंस्टेंस काम करता है. कुछ वास्तविक क्वेरी करने के लिए, एग्ज़िट से कुछ सैंपल डेटा लोड करें और लोड करें.

#exit;' टाइप करें और mysql प्रॉम्प्ट से बाहर निकलने के लिए, enter दबाएं.

हम MySQL के सैंपल डेटा सेट को लोड करेंगे, जिसे आपको MySQL के आधिकारिक दस्तावेज़ में मिलेगा.

सबसे पहले हमें स्क्रिप्ट और डेटा डाउनलोड करना होगा:

$ wget https://codeload.github.com/datacharmer/test_db/zip/master -O sampledb.zip
$ unzip sampledb.zip && cd test_db-master

दूसरा, हमें डेटाबेस और टेबल बनाने के बाद डेटा को लोड करना होगा. फिर से, कोडलैब-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 का इस्तेमाल करें. फिर से, कोडलैब-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 इंस्टेंस मिटाया जा रहा है.

ज़्यादा जानें