יצירת מסד נתונים מנוהל של MySQL באמצעות Cloud SQL

‫Google Cloud SQL הוא שירות מנוהל של מסד נתונים, שבעזרתו אפשר ליצור, לתחזק ולנהל מסדי נתונים רלציוניים של MySQL בענן.

בשיעור ה-Lab הזה ניצור מכונה חדשה וריקה של Cloud SQL, נתחבר אליה באמצעות ממשק שורת הפקודה של MySQL וניצור מסד נתונים חדש וריק.

מה תלמדו

  • איך ניגשים לממשק המשתמש באינטרנט של Cloud SQL במסוף Google Cloud.
  • איך יוצרים מופע Cloud SQL באמצעות Google Cloud Console.
  • איך מגדירים סיסמת שורש באמצעות מסוף Google Cloud.
  • איך מתחברים למכונה של Cloud SQL דרך Cloud Shell.
  • איך מוחקים את מופע Cloud SQL באמצעות Google Cloud Console.

מה נדרש

איך תשתמשו במדריך הזה?

רק קוראים את המאמר קוראים את המאמר ומבצעים את התרגילים

מהו הדירוג המתאים לחוויית השימוש שלך בשירותי Google Cloud Platform וב-Firebase?

מתחילים ביניים מומחים

הגדרת סביבה בקצב אישי

אם עדיין אין לכם חשבון Google (Gmail או Google Apps), אתם צריכים ליצור חשבון. נכנסים ל-Google Cloud Platform Console‏ (console.cloud.google.com) ויוצרים פרויקט חדש:

Screenshot from 2016-02-10 12:45:26.png

חשוב לזכור את מזהה הפרויקט, שהוא שם ייחודי בכל הפרויקטים ב-Google Cloud (השם שמופיע למעלה כבר תפוס ולא יתאים לכם, מצטערים!). בהמשך ה-codelab הזה, נתייחס אליו כאל PROJECT_ID.

בשלב הבא, תצטרכו להפעיל את החיוב ב-Cloud Console כדי להשתמש במשאבים של Google Cloud.

העלות של התרגיל הזה לא אמורה להיות גבוהה, אבל היא יכולה להיות גבוהה יותר אם תחליטו להשתמש ביותר משאבים או אם תשאירו אותם פועלים (ראו את הקטע 'ניקוי' בסוף המסמך הזה).

משתמשים חדשים ב-Google Cloud Platform זכאים לתקופת ניסיון בחינם בשווי 300$.

ב-Google Cloud Console, לוחצים על סמל התפריט בפינה הימנית העליונה של המסך:

גוללים למטה ובוחרים באפשרות SQL בקטע המשנה אחסון:

עכשיו אמור להופיע ממשק המשתמש האינטרנטי של Cloud SQL. אם אתם משתמשים בפרויקט שאין בו כרגע מופעים של Cloud SQL, יופיע תיבת דו-שיח עם הצעה ליצור מופע חדש של Cloud SQL.

אם אתם משתמשים בפרויקט שכבר יש בו מכונה אחת או יותר של Cloud SQL, תוצג לכם רשימה של המכונות האלה:

בהנחה שאין בפרויקט מכונות של Cloud SQL, לוחצים על הלחצן יצירת מכונה כדי ליצור אחת:

אם אתם משתמשים בפרויקט שכבר יש בו מכונה אחת או יותר של Cloud SQL, לוחצים על הלחצן יצירת מכונה במסך מכונות כמו שמוצג כאן:

בכל מקרה, עכשיו אמור להופיע הדף Choose an instance type (בחירת סוג אירוע). במעבדת התכנות הזו ניצור מכונה מדור שני של Cloud SQL. לוחצים על בחירת דור שני.

2ndGenCloudSQLCreate.png

תועברו לדף Create an instance. כאן צריך לציין שם למופע. השם הזה צריך להיות ייחודי בתוך הפרויקט, אבל לא בין פרויקטים. לכן, אפשר להשתמש באותו שם מכונה codelab-0 שמופיע בדוגמה הזו, בהנחה שאין לכם מכונות Cloud SQL אחרות בפרויקט. מזינים codelab-0 בתיבה Instance ID (מזהה מכונה). לצורך ה-codelab הזה, אפשר להשאיר את שאר ההגדרות עם ערכי ברירת המחדל.

שימו לב: כשמוחקים מופע Cloud SQL, אי אפשר להשתמש בשם המופע הזה שוב למשך שבוע. אם אתם מתכננים להשתמש בפרויקט הזה למטרות נוספות מעבר להתנסות, חשוב לבחור שם מופע ששונה משם מופע שתרצו להשתמש בו לעבודה אמיתית, אחרת יכול להיות שלא תוכלו להשתמש שוב בשם המופע הזה למשך תקופה מסוימת.

2ndGenCloudSQLCreate_2.png

גוללים לתחתית הדף ולוחצים על יצירה.

2ndGenCloudSQLCreate_3.png

תועברו לדף Instances (מופעים), שבו יופיע המופע החדש עם סמל של גלגל מסתובב מימין, שמציין שהמופע עדיין בתהליך יצירה:

תוך שתיים או שלוש דקות, המכונה תהיה זמינה, וסימן וי ירוק יחליף את סמל הטעינה הכחול. חשוב לרענן את הדף מדי פעם:

המופע של Cloud SQL מוכן עכשיו לשימוש.

לוחצים על שם המופע כדי להציג את דף הפרטים של המופע, ואז לוחצים על Access Control (בקרת גישה):

בכרטיסייה Access Control (בקרת גישה), לוחצים על Users (משתמשים):

בכרטיסייה 'משתמשים', לוחצים על שינוי סיסמת הבסיס:

מזינים סיסמה חדשה בדף 'שינוי סיסמה' ומקישים על אישור:

מפעילים את Google Cloud Shell על ידי לחיצה על לחצן ההנחיה במסוף Google Cloud:

אם זו הפעם הראשונה שאתם משתמשים ב-Google Cloud Shell בפרויקט הזה, יוצג לכם המסך של Google Cloud Shell. מקישים על הפעלת Cloud Shell.

cloudShellWelcome.png

ה-Cloud Shell החדש יוצג בחלק התחתון של Google Cloud Console, או אחרי שתלחצו על Start Cloud Shell במסך Cloud Shell אם זו הפעם הראשונה שמשתמשים בו בפרויקט הזה, או מיד אחרי שתלחצו על הלחצן Activate Google Cloud Shell אם השתמשתם בו בעבר.

Screen Shot 2016-03-07 at 12.18.01.png

מתחברים למופע Cloud SQL באמצעות הפקודה gcloud 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)

אם השאילתה חוזרת עם OK, המופע שלכם עובד. נצא מהממשק ונטען נתונים לדוגמה כדי להריץ שאילתות אמיתיות.

מקלידים exit;‎ ומקישים על Enter כדי לצאת מההנחיה של mysql.

נטען את מערך נתוני הדוגמה של העובדים שמופיע במסמכי התיעוד הרשמיים של 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;

אחרי שמסיימים להריץ שאילתות על מערך הנתונים לדוגמה של העובדים, משתמשים בפקודה exit כדי לצאת מההנחיה של mysql.

השלב הזה הוא אופציונלי. אם אתם רוצים להמשיך להתנסות עם מופע Cloud SQL, אתם לא צריכים למחוק אותו בשלב הזה. עם זאת, הפרויקט שבו אתם משתמשים ימשיך להיות מחויב על המופע. אם אין לכם יותר צורך במכונה הזו, מומלץ למחוק אותה עכשיו כדי להימנע מהחיובים האלה.

שימו לב: כשמוחקים מופע Cloud SQL, אי אפשר להשתמש בשם המופע הזה שוב למשך שבוע.

יש שתי אפשרויות למחיקת מופע Cloud SQL.

‫1) משתמשים ב-gcloud בסביבת Cloud Shell. שוב, מחליפים את 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) חוזרים לדף המכונות של Cloud SQL על ידי לחיצה על SQL בפינה הימנית העליונה:

פותחים את התפריט הנפתח לצד המופע שרוצים למחוק ובוחרים באפשרות 'מחיקה':

מחיקת מופע היא פעולה בלתי הפיכה. אי אפשר לשחזר את הנתונים מהמופע הזה. כדי למנוע מחיקה של מופע לא נכון בטעות, צריך לאשר את המחיקה על ידי הזנת שם המופע בתיבת דו-שיח לאישור:

מזינים את שם המופע ולוחצים על מחיקה.

יצרתם מכונה חדשה של Cloud SQL, הגדרתם סיסמת בסיס, יצרתם מסד נתונים ריק ו (אופציונלית) מחקתם את המכונה של Cloud SQL.

מה למדנו

  • יצירת מופעים של Cloud SQL דרך מסוף Google Cloud.
  • הגדרת סיסמת בסיס ל-SQL דרך Google Cloud Console.
  • מתחברים למסד הנתונים באמצעות לקוח MySQL.
  • יצירת מסד נתונים חדש של MySQL דרך שורת הפקודה של MySQL.
  • המכונה של Cloud SQL נמחקת.

מידע נוסף