יצירה וניהול של מסדי נתונים

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

למכונה חדשה שנוצרה יש ארבעה מסדי נתונים של המערכת:

  • ‫information_schema: מספק גישה למטא-נתונים של מסד הנתונים, מידע על שרת MySQL.
  • ‫mysql: סכימת המערכת. הוא מכיל טבלאות שמאחסנות מידע שנדרש לשרת MySQL בזמן שהוא פועל.
  • ‫performance_schema: תכונה למעקב אחרי הביצועים של שרת MySQL ברמה נמוכה.
  • ‫sys: מכילה קבוצה של אובייקטים שעוזרים למנהלי מסדי נתונים ולמפתחים לפרש נתונים שנאספו על ידי סכימת הביצועים.

למידע נוסף על מסדי נתונים של MySQL, קראו את המסמכים של MySQL.

לפני שמתחילים

לפני שתבצעו את המשימות שבדף הזה, אתם צריכים:

אם אתם מתכוונים להשתמש בלקוח mysql כדי ליצור או לנהל את מסדי הנתונים, אתם צריכים:

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

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, לוחצים על Databases.
  4. לוחצים על Create database.
  5. בתיבת הדו-שיח Create a database, מציינים את שם מסד הנתונים, ואם רוצים גם את ערכת התווים וההשוואה.

    מידע נוסף על ערכות תווים ואיסופים זמין במאמר ערכות תווים, איסופים, Unicode.

  6. לוחצים על יצירה.

gcloud

למידע נוסף, ראו gcloud sql databases create.

מידע נוסף על מערכות תווים ואוספים זמין במאמר מערכות תווים, אוספים, Unicode.

gcloud sql databases create DATABASE_NAME \
--instance=INSTANCE_NAME \
[--charset=CHARSET] \
[--collation=COLLATION]

Terraform

כדי ליצור מסד נתונים, משתמשים במשאב של Terraform.

resource "google_sql_database" "database" {
  name     = "my-database"
  instance = google_sql_database_instance.instance.name
}

החלה של השינויים

כך מחילים את ההגדרות של Terraform בפרויקט ב- Google Cloud :

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

למחוק את השינויים

כדי למחוק את השינויים:

  1. כדי להשבית את ההגנה מפני מחיקה, בקובץ התצורה של Terraform מגדירים את הארגומנט deletion_protection לערך false.
    deletion_protection =  "false"
  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:
    terraform apply
  1. כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה:

    terraform destroy

REST v1

הבקשה הבאה משתמשת ב-method‏ databases:insert כדי ליצור מסד נתונים חדש במכונה שצוינה.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫project-id: מזהה הפרויקט
  • ‫instance-id: מזהה המכונה
  • database-name: השם של מסד נתונים במכונה של Cloud SQL

ה-method של ה-HTTP וכתובת ה-URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

תוכן בקשת JSON:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

הבקשה הבאה משתמשת ב-method‏ databases:insert כדי ליצור מסד נתונים חדש במכונה שצוינה.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫project-id: מזהה הפרויקט
  • ‫instance-id: מזהה המכונה
  • database-name: השם של מסד נתונים במכונה של Cloud SQL

ה-method של ה-HTTP וכתובת ה-URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

תוכן בקשת JSON:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

לקוח mysql

למידע נוסף, קראו את המאמר CREATE DATABASE במסמכי התיעוד של MySQL.

מידע נוסף על ערכות תווים ואיסופים זמין במאמר ערכות תווים, איסופים, Unicode.

CREATE DATABASE database_name
  [[CHARACTER SET charset_name][COLLATE collation_name]];

הצגת רשימה של מסדי הנתונים

כדי להציג את כל מסדי הנתונים במכונה:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. בתפריט שמימין, לוחצים על Databases. בדף Databases מופיעה רשימה של מסדי נתונים, יחד עם סוג ה-collation, ערכת התווים וסוג מסד הנתונים שלהם.

gcloud

למידע נוסף, ראו gcloud sql databases list.

gcloud sql databases list \
--instance=INSTANCE_NAME

REST v1

הבקשה הבאה משתמשת ב-method‏ databases:list כדי להציג את מסדי הנתונים של מכונה.

כשמציגים את מסדי הנתונים באמצעות ה-API, רואים מסדי נתונים נוספים של תבניות ומסד נתונים של המערכת שלא מוצגים במסוף. אי אפשר למחוק או לנהל את מסד הנתונים של המערכת.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫project-id: מזהה הפרויקט
  • ‫instance-id: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

הבקשה הבאה משתמשת ב-method‏ databases:list כדי להציג את מסדי הנתונים של מכונה.

כשמציגים את מסדי הנתונים באמצעות ה-API, רואים מסדי נתונים נוספים של תבניות ומסד נתונים של המערכת שלא מוצגים במסוף. אי אפשר למחוק או לנהל את מסד הנתונים של המערכת.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫project-id: מזהה הפרויקט
  • ‫instance-id: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

לקוח mysql

למידע נוסף, קראו את המאמר SHOW DATABASES במסמכי התיעוד של MySQL.

SHOW DATABASES;

מחיקה של מסד נתונים

כדי למחוק מסד נתונים במכונה של Cloud SQL:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. בתפריט שמימין, לוחצים על Databases.
  4. ברשימת מסדי הנתונים, מוצאים את מסד הנתונים שרוצים למחוק ולוחצים על סמל פח האשפה.
  5. בתיבת הדו-שיח Delete database, מזינים את שם מסד הנתונים ולוחצים על Delete.

gcloud

למידע נוסף, ראו gcloud sql databases delete.

gcloud sql databases delete DATABASE_NAME \
--instance=INSTANCE_NAME

REST v1

הבקשה הבאה משתמשת ב-method‏ databases:delete כדי למחוק את מסד הנתונים שצוין.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫project-id: מזהה הפרויקט
  • ‫instance-id: מזהה המכונה
  • database-name: השם של מסד נתונים במכונה של Cloud SQL

ה-method של ה-HTTP וכתובת ה-URL:

DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

הבקשה הבאה משתמשת ב-method‏ databases:delete כדי למחוק את מסד הנתונים שצוין.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫project-id: מזהה הפרויקט
  • ‫instance-id: מזהה המכונה
  • database-name: השם של מסד נתונים במכונה של Cloud SQL

ה-method של ה-HTTP וכתובת ה-URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

לקוח mysql

למידע נוסף, קראו את המאמר DROP DATABASE במסמכי התיעוד של MySQL.

DROP DATABASE [database_name];

המאמרים הבאים