בדף הזה מוסבר איך להשתמש בלקוח sqlcmd, שמותקן במכונה של Compute Engine, כדי להתחבר ל-Cloud SQL.
אפשר להשתמש בכתובת IP פרטית, בכתובת IP ציבורית, ב-Cloud SQL Auth Proxy או בקובץ אימג' של Docker ל-Cloud SQL Auth Proxy.
להוראות מפורטות להרצת אפליקציית אינטרנט לדוגמה של Compute Engine שמחוברת ל-Cloud SQL, קראו את המדריך למתחילים להתחברות מ-Compute Engine.
לפני שמתחילים
המשימה הזו לא כוללת הוראות להגדרת מכונה ב-Compute Engine. אם אתם צריכים עזרה ביצירה ובהגדרה של מכונה ב-Compute Engine, תוכלו להיעזר במאמרי העזרה של Compute Engine.
כתובת IP פרטית
כדי להתחבר ל-Cloud SQL ממכונה של Compute Engine באמצעות כתובת IP פרטית, צריך להגדיר גישה לשירותים פרטיים בסביבה שלכם ולהגדיר את מכונת Cloud SQL כך שתשתמש בכתובת IP פרטית. המופע של Compute Engine צריך להיות באותו אזור כמו המופע של Cloud SQL, וברשת שהוגדרה לחיבור פרטי. מידע נוסף
1. הגדרת המכונה לשימוש בכתובת IP פרטית
משתמשים בהוראות שבמאמר הגדרת קישוריות של כתובת IP פרטית.
2. פותחים חיבור לטרמינל של Cloud Shell למכונה של Compute Engine.
משתמשים בהוראות המתאימות, בהתאם למערכת ההפעלה של המכונה:
- ב-Linux, אפשר לעיין במאמר התחברות למכונות וירטואליות של Linux.
- ב-Windows, קראו את המאמר התחברות למכונות וירטואליות של Windows.
אם במכונה של Compute Engine פועלת תמונה ציבורית של RHEL או CentOS, יכול להיות ש-SELinux יחסום את החיבור לשרת ה-Proxy. במקרה כזה, צריך להגדיר את התכונה SELinux כך שתאפשר את החיבור.
מידע נוסף על SELinux ל-RHEL זמין ב מאמרי העזרה של RHEL. מידע נוסף על SELinux ל-CentOS מופיע במאמרי העזרה של CentOS.
3. אם הלקוח sqlcmd לא מותקן במכונה של Compute Engine, מתקינים אותו.
Debian/Ubuntu
ב-Debian וב-Ubuntu, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
CentOS/RHEL
ב-CentOS/RHEL, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
openSUSE
ב-openSUSE, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
פלטפורמות אחרות
ב דף הנחיתה להתקנת SQL Server וב דף ההורדות של SQL Server מפורט מידע נוסף.
4. מתחברים ללקוח sqlcmd.
sqlcmd -S CLOUD_SQL_PRIVATE_IP_ADDRESS -U USERNAME
אפשר למצוא את כתובת ה-IP הפרטית בדף המכונות של Cloud SQL או באמצעות הפקודה הבאה של gcloud:
gcloud sql instances list
כתובת IP ציבורית
כדי להתחבר באמצעות כתובת IP ציבורית:
1. מוסיפים כתובת IPv4 סטטית למכונת Compute Engine, אם עדיין אין לה כתובת כזו.
אי אפשר להתחבר ל-Compute Engine באמצעות IPv6. מידע על הוספת כתובת IP סטטית מופיע במאמר שמירת כתובת IP חיצונית סטטית חדשה במסמכי התיעוד של Compute Engine.
2. מאשרים את כתובת ה-IP הסטטית של המכונה ב-Compute Engine כרשת שיכולה להתחבר למכונה ב-Cloud SQL.
מידע נוסף זמין במאמר הגדרת גישה לחיבורים של כתובות IP ציבוריות.
3. פותחים חיבור טרמינל של Cloud Shell למכונה של Compute Engine.
צריך לפעול לפי ההוראות המתאימות, בהתאם למערכת ההפעלה של המופע:
- ב-Linux, קראו את המאמר התחברות למכונות וירטואליות של Linux.
- ב-Windows, אפשר לעיין במאמר התחברות למכונות וירטואליות של Windows.
אם מופעלת במכונת Compute Engine שלכם תמונה ציבורית של RHEL או CentOS, יכול להיות ש-SELinux יחסום את חיבור ה-Proxy. במקרה כזה, צריך להגדיר את התכונה SELinux כדי לאפשר את החיבור.
מידע נוסף על SELinux ל-RHEL זמין במאמרי העזרה של RHEL. מידע נוסף על SELinux ל-CentOS מופיע במאמרי העזרה של CentOS.
4. אם הלקוח sqlcmd לא מותקן במכונה של Compute Engine, מתקינים אותו.
Debian/Ubuntu
ב-Debian או ב-Ubuntu, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
CentOS/RHEL
ב-CentOS/RHEL, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
openSUSE
ב-openSUSE, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
פלטפורמות אחרות
אפשר לעיין ב דף הנחיתה להתקנת SQL Server, וגם ב דף ההורדות של SQL Server.
5. מתחברים ללקוח sqlcmd.
sqlcmd -S CLOUD_SQL_PUBLIC_IP_ADDR -U USERNAME
אפשר למצוא את כתובת ה-IP הציבורית בדף המכונות של Cloud SQL או על ידי הפעלת הפקודה הבאה של gcloud:
gcloud sql instances list
דוגמה לחיבור באמצעות SSL מופיעה במאמר בנושא חיבור באמצעות SSL.
6. מופיעה ההנחיה sqlcmd.
Cloud SQL Auth Proxy
כדי להתחבר באמצעות Cloud SQL Auth Proxy מ-Compute Engine:1. מפעילים את Cloud SQL Admin API.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
2. יוצרים חשבון שירות.
- נכנסים לדף Service accounts במסוף Google Cloud .
- בוחרים את הפרויקט שמכיל את המכונה של Cloud SQL.
- לוחצים על יצירת חשבון שירות.
- בשדה Service account name, מזינים שם תיאורי לחשבון השירות.
- משנים את מזהה חשבון השירות לערך ייחודי וקל לזיהוי, ואז לוחצים על יצירה והמשך.
-
לוחצים על השדה בחירת תפקיד ובוחרים אחד מהתפקידים הבאים:
- Cloud SQL > Cloud SQL Client
- Cloud SQL > Cloud SQL Editor
- Cloud SQL > Cloud SQL Admin
- לוחצים על Done כדי לסיים ליצור את חשבון השירות.
- לוחצים על תפריט הפעולות של חשבון השירות החדש ובוחרים באפשרות ניהול מפתחות.
- לוחצים על התפריט הנפתח Add key ואז על Create new key.
-
מוודאים שסוג המפתח הוא JSON ולוחצים על Create.
קובץ המפתח הפרטי יורד למחשב. אפשר להעביר אותו למיקום אחר. שומרים על אבטחת קובץ המַפְתח.
אם מכונת Compute Engine נמצאת בפרויקט אחר ממכונת Cloud SQL, צריך לוודא שלחשבון השירות שלה יש את ההרשאות המתאימות בפרויקט שמכיל את מכונת Cloud SQL:
- נכנסים לרשימת המכונות של Compute Engine במסוף Google Cloud .
- אם צריך, בוחרים את הפרויקט שמשויך למופע של Compute Engine.
- בוחרים את המכונה של Compute Engine כדי להציג את המאפיינים שלה.
- במאפיינים של המכונה ב-Compute Engine, מעתיקים את השם של חשבון השירות.
- נכנסים לדף IAM & Admin Projects במסוף Google Cloud .
- בוחרים את הפרויקט שמכיל את מכונת Cloud SQL.
- מחפשים את השם של חשבון השירות.
-
אם חשבון השירות כבר מופיע ויש לו תפקיד שכולל את ההרשאה
cloudsql.instances.connect, אתם יכולים להמשיך לשלב 4.התפקידים
Cloud SQL Client, Cloud SQL Editorו-Cloud SQL Adminמספקים את ההרשאה הנדרשת, כמו גם התפקידים הקודמיםEditorו-Ownerבפרויקט. - אם לא, מוסיפים את חשבון השירות בלחיצה על Add.
בתיבת הדו-שיח Add principals, מזינים את השם של חשבון השירות ובוחרים תפקיד שכולל את ההרשאה
cloudsql.instances.connect(כל תפקיד מוגדר מראש של Cloud SQL, חוץ מ-Viewer).לחלופין, אפשר להשתמש בתפקיד הבסיסי "עריכה" על ידי בחירה באפשרות Project > Editor, אבל התפקיד הזה כולל הרשאות בכל Google Cloud.
אם התפקידים האלה לא מופיעים, יכול להיות שלמשתמש Google Cloud אין את ההרשאה
resourcemanager.projects.setIamPolicy. כדי לבדוק את ההרשאות, נכנסים לדף IAM במסוף Google Cloud ומחפשים את מזהה המשתמש.- לוחצים על הוספה.
חשבון השירות יופיע ברשימה עם התפקיד שצוין.
3. פותחים חיבור טרמינל למכונה של Compute Engine.
משתמשים בהוראות המתאימות, בהתאם למערכת ההפעלה של המכונה:
- ב-Linux, אפשר לעיין במאמר התחברות למופעי Linux.
- ב-Windows, קראו את המאמר התחברות למכונות של Windows.
אם במכונה של Compute Engine פועלת תמונה ציבורית של RHEL או CentOS, יכול להיות ש-SELinux יחסום את החיבור לשרת ה-Proxy. במקרה כזה, צריך להגדיר את התכונה SELinux כך שתאפשר את החיבור.
מידע נוסף על SELinux ל-RHEL זמין ב מאמרי העזרה של RHEL. למידע נוסף על SELinux ל-CentOS, קראו את המסמכים של CentOS.
4. אם הוא עדיין לא מותקן, מתקינים את לקוח sqlcmd במכונה של Compute Engine.
Debian/Ubuntu
ב-Debian וב-Ubuntu, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
CentOS/RHEL
ב-CentOS/RHEL, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
openSUSE
ב-openSUSE, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
פלטפורמות אחרות
ב דף הנחיתה להתקנת SQL Server וב דף ההורדות של SQL Server מפורט מידע נוסף.
5. מתקינים את Cloud SQL Auth Proxy במכונה של Compute Engine.
לפני שמתחילים, צריך לזהות את הארכיטקטורה של המכונה.
אם מריצים ב-Linux או ב-Mac, אפשר למצוא את זה על ידי הרצת הפקודה הבאה:
uname -a
Linux 64 סיביות
- מורידים את Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.linux.amd64
- הופכים את Cloud SQL Auth Proxy לקובץ הפעלה:
chmod +x cloud-sql-proxy
Linux 32 סיביות
- מורידים את Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.linux.386
- אם הפקודה
curlלא נמצאה, מריצים אתsudo apt install curlוחוזרים על פקודת ההורדה. - הופכים את Cloud SQL Auth Proxy לקובץ הפעלה:
chmod +x cloud-sql-proxy
Windows 64 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.x64.exe ובוחרים באפשרות שמירת קישור בשם כדי להוריד את Cloud SQL Auth Proxy. משנים את שם הקובץ ל-cloud-sql-proxy.exe.
Windows 32 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.x86.exe ובוחרים באפשרות Save Link As כדי להוריד את Cloud SQL Auth Proxy. משנים את שם הקובץ ל-cloud-sql-proxy.exe.
קובץ אימג' של Docker ל-Cloud SQL Auth Proxy
ל-Cloud SQL Auth Proxy יש קובצי אימג' שונים של קונטיינרים, כמו distroless, alpine ו-buster. קובץ האימג' של קונטיינר ברירת המחדל של Cloud SQL Auth Proxy משתמש ב-distroless, שלא מכיל מעטפת. אם אתם צריכים מעטפת או כלים קשורים, אתם יכולים להוריד תמונה שמבוססת על alpine או על buster.
מידע נוסף מופיע במאמר קובצי אימג' של קונטיינרים של Cloud SQL Auth Proxy.
כדי להוריד את קובץ האימג' העדכני למחשב המקומי באמצעות Docker, משתמשים בפקודה הבאה:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.2
מערכת הפעלה אחרת
במערכות הפעלה אחרות שלא נכללות כאן, אפשר לקמפל את Cloud SQL Auth Proxy ממקור.6. מפעילים את Cloud SQL Auth Proxy.
אפשר להפעיל את Cloud SQL Auth Proxy באמצעות שקעי TCP או קובץ האימג' של Docker ב-Cloud SQL Auth Proxy. קובץ הבינארי של Cloud SQL Auth Proxy מתחבר למכונה אחת או יותר של Cloud SQL שצוינו בשורת הפקודה, ופותח חיבור מקומי כשקע TCP. אפליקציות ושירותים אחרים, כמו קוד האפליקציה או כלי לקוח לניהול מסדי נתונים, יכולים להתחבר למכונות של Cloud SQL דרך החיבור הזה לשקע TCP.
שקעי TCP
בחיבורי TCP, כברירת מחדל שרת ה-Proxy של Cloud SQL Auth מאזין ל-localhost(127.0.0.1).
לכן, כשמציינים --port PORT_NUMBER למכונה, החיבור המקומי הוא בכתובת 127.0.0.1:PORT_NUMBER.
לחלופין, אפשר לציין כתובת אחרת לחיבור המקומי.
לדוגמה, כך מגדירים את Cloud SQL Auth Proxy להאזין ב-0.0.0.0:1234 לחיבור המקומי:
./cloud-sql-proxy --address 0.0.0.0 --port 1234 INSTANCE_CONNECTION_NAME
מעתיקים את INSTANCE_CONNECTION_NAME. אפשר למצוא את המידע הזה בדף Overview של המכונה במסוףGoogle Cloud , או באמצעות הרצת הפקודה הבאה:
gcloud sql instances describe INSTANCE_NAME --format='value(connectionName)'
לדוגמה: myproject:myregion:myinstance.
- אם למכונה מוגדרות גם כתובת IP ציבורית וגם כתובת IP פרטית, ואתם רוצים ש-Cloud SQL Auth Proxy ישתמש בכתובת ה-IP הפרטית, אתם צריכים לספק את האפשרות הבאה כשאתם מפעילים את Cloud SQL Auth Proxy:
--private-ip
- אם אתם משתמשים בחשבון שירות כדי לאמת את Cloud SQL Auth Proxy, שימו לב למיקום במכונת הלקוח של קובץ המפתח הפרטי שנוצר כשיצרתם את חשבון השירות.
- מפעילים את Cloud SQL Auth Proxy.
מחרוזות אפשריות להפעלת Cloud SQL Auth Proxy:
- שימוש באימות של Cloud SDK:
היציאה שצוינה לא יכולה להיות בשימוש, למשל על ידי שרת מסד נתונים מקומי../cloud-sql-proxy --port 1433 INSTANCE_CONNECTION_NAME
- שימוש בחשבון שירות וציון מפורש של שם החיבור למכונה (מומלץ לסביבות ייצור):
./cloud-sql-proxy \ --credentials-file PATH_TO_KEY_FILE INSTANCE_CONNECTION_NAME &
למידע נוסף על האפשרויות של Cloud SQL Auth Proxy, ראו אפשרויות לאימות של Cloud SQL Auth Proxy.
- שימוש באימות של Cloud SDK:
Docker
כדי להריץ את Cloud SQL Auth Proxy במאגר Docker, משתמשים בקובץ האימג' של Docker של Cloud SQL Auth Proxy שזמין ב-Google Container Registry.
אפשר להפעיל את Cloud SQL Auth Proxy באמצעות שקעי TCP, עם הפקודה שמוצגת למטה. באפשרות הזו משתמשים ב-INSTANCE_CONNECTION_NAME כמחרוזת החיבור כדי לזהות מכונה של Cloud SQL. אפשר למצוא את הערך של INSTANCE_CONNECTION_NAME בדף Overview של המכונה במסוףGoogle Cloud , או על ידי הרצת הפקודה הבאה:
gcloud sql instances describe INSTANCE_NAME
לדוגמה: myproject:myregion:myinstance.
שימוש בשקעי TCP
docker run -d \ -v PATH_TO_KEY_FILE:/path/to/service-account-key.json \ -p 127.0.0.1:1433:1433 \ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.2 \ --address 0.0.0.0 --port 1433 \ --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME
אם אתם משתמשים בפרטי הכניסה שסופקו על ידי המכונה של Compute Engine, אל תכללו את הפרמטר --credentials-file ואת השורה -v PATH_TO_KEY_FILE:/path/to/service-account-key.json.
תמיד מציינים את הקידומת 127.0.0.1 ב--p כדי ששרת ה-proxy ל-Cloud SQL Auth לא ייחשף מחוץ למארח המקומי. הדגל --address 0.0.0.0 נדרש כדי שהיציאה תהיה נגישה מחוץ לקונטיינר של Docker.
7. מתחילים את הסשן של sqlcmd.
מחרוזת החיבור שבה משתמשים תלויה בשיטה שבה הפעלתם את Cloud SQL Auth Proxy: באמצעות שקע TCP או Docker.
שקעי TCP
- מפעילים את הלקוח sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
כשמתחברים באמצעות שקעי TCP, מתבצעת גישה ל-Cloud SQL Auth Proxy דרך
127.0.0.1. - אם מתבקשים, מזינים את הסיסמה.
- מופיעה שורת הפקודה של sqlcmd.
דרושה לך עזרה? לקבלת עזרה בפתרון בעיות ב-Cloud SQL Auth Proxy, אפשר לעיין במאמר פתרון בעיות בחיבורים של Cloud SQL Auth Proxy או בדף התמיכה ב-Cloud SQL.