בדף הזה מוסבר איך להשתמש בלקוח sqlcmd, שמותקן במכונה של Compute Engine, כדי להתחבר ל-Cloud SQL.
אפשר להשתמש בכתובת IP פרטית, בכתובת IP ציבורית, בשרת proxy ל-Cloud SQL Auth או בקובץ אימג' של Docker של שרת proxy ל-Cloud SQL Auth.
הוראות מפורטות להפעלת אפליקציית אינטרנט לדוגמה ב-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. מוסיפים כתובת IP סטטית מסוג 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.
שרת proxy ל-Cloud SQL Auth
כדי להתחבר באמצעות שרת proxy ל-Cloud SQL Auth מ-Compute Engine:1. מפעילים את Cloud SQL Admin API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים
2. יוצרים חשבון שירות.
- נכנסים לדף Service accounts במסוף Google Cloud .
- בוחרים את הפרויקט שמכיל את מופע Cloud SQL.
- לוחצים על יצירת חשבון שירות.
- בשדה Service account name, מזינים שם תיאורי לחשבון השירות.
- משנים את מזהה חשבון השירות לערך ייחודי וקל לזיהוי, ואז לוחצים על יצירה והמשך.
-
לוחצים על השדה Select a role (בחירת תפקיד) ובוחרים באחד מהתפקידים הבאים:
- 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 principals (הוספת חשבונות), מציינים את השם של חשבון השירות ובוחרים תפקיד שכולל את ההרשאה
cloudsql.instances.connect(כל תפקיד מוגדר מראש של Cloud SQL מלבד Viewer יתאים).אפשר גם להשתמש בתפקיד הבסיסי 'עריכה' על ידי בחירה באפשרות פרויקט > עריכה, אבל התפקיד הזה כולל הרשאות בכל 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 סיביות
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.linux.amd64
- הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
Linux 32 סיביות
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.linux.386
- אם הפקודה
curlלא נמצאה, מריצים את הפקודהsudo apt install curlוחוזרים על פקודת ההורדה. - הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
Windows 64 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.x64.exe ובוחרים באפשרות שמירת קישור בשם כדי להוריד את שרת ה-proxy ל-Cloud SQL Auth. משנים את שם הקובץ ל-cloud-sql-proxy.exe.
Windows 32 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.x86.exe ובוחרים באפשרות שמירת קישור בשם כדי להוריד את שרת ה-proxy ל-Cloud SQL Auth. משנים את שם הקובץ ל-cloud-sql-proxy.exe.
קובץ אימג' של Docker לשרת proxy ל-Cloud SQL Auth
לשרת ה-proxy ל-Cloud SQL Auth יש תמונות קונטיינר שונות, כמו distroless, alpine ו-buster. קובץ האימג' של קונטיינר ברירת המחדל של שרת proxy ל-Cloud SQL Auth משתמש ב-distroless, שלא מכיל מעטפת. אם אתם צריכים מעטפת או כלים קשורים, אתם יכולים להוריד תמונה שמבוססת על alpine או על buster.
מידע נוסף זמין במאמר תמונות קונטיינר של Cloud SQL Auth Proxy.
אפשר למשוך את התמונה העדכנית ביותר למחשב המקומי באמצעות Docker באמצעות הפקודה הבאה:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.22.1
מערכת הפעלה אחרת
במערכות הפעלה אחרות שלא נכללות כאן, אפשר לקמפל את Cloud SQL Auth Proxy מהמקור.6. מפעילים את שרת ה-proxy ל-Cloud SQL Auth.
אפשר להפעיל את שרת ה-proxy ל-Cloud SQL Auth באמצעות שקעי TCP או קובץ האימג' של Docker של שרת ה-proxy ל-Cloud SQL Auth. קובץ הבינארי של שרת proxy ל-Cloud SQL Auth מתחבר למכונה אחת או יותר של 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.
אפשר גם לציין כתובת אחרת לחיבור המקומי.
לדוגמה, כך מגדירים את שרת ה-proxy ל-Cloud SQL Auth להאזין בכתובת 0.0.0.0:1234 לחיבור המקומי:
./cloud-sql-proxy --address 0.0.0.0 --port 1234 INSTANCE_CONNECTION_NAME
מעתיקים את INSTANCE_CONNECTION_NAME. אפשר למצוא את כתובת ה-IP בדף Overview של המופע במסוףGoogle Cloud או על ידי הפעלת הפקודה הבאה:
gcloud sql instances describe INSTANCE_NAME --format='value(connectionName)'
לדוגמה: myproject:myregion:myinstance.
- אם למכונה מוגדרות כתובות IP ציבוריות ופרטיות, ואתם רוצים ששרת proxy ל-Cloud SQL Auth ישתמש בכתובת IP פרטית, אתם צריכים לספק את האפשרות הבאה כשמפעילים את שרת proxy ל-Cloud SQL Auth:
--private-ip
- אם אתם משתמשים בחשבון שירות כדי לאמת את שרת ה-proxy ל-Cloud SQL Auth, שימו לב למיקום במכונת הלקוח של קובץ המפתח הפרטי שנוצר כשנוצר חשבון השירות.
- מפעילים את שרת ה-proxy ל-Cloud SQL Auth.
מחרוזות אפשריות להפעלת שרת proxy ל-Cloud SQL Auth:
- שימוש באימות Cloud SDK:
היציאה שצוינה לא יכולה להיות בשימוש, למשל על ידי שרת מסד נתונים מקומי../cloud-sql-proxy --port 1433 INSTANCE_CONNECTION_NAME
- שימוש בחשבון שירות וציון מפורש של שם החיבור של המופע (מומלץ לסביבות ייצור):
./cloud-sql-proxy \ --credentials-file PATH_TO_KEY_FILE INSTANCE_CONNECTION_NAME &
מידע נוסף על האפשרויות של שרת proxy ל-Cloud SQL Auth זמין במאמר אפשרויות לאימות שרת proxy ל-Cloud SQL Auth.
- שימוש באימות Cloud SDK:
Docker
כדי להריץ את שרת ה-proxy ל-Cloud SQL Auth במאגר Docker, משתמשים בקובץ האימג' של Docker של שרת ה-proxy ל-Cloud SQL Auth שזמין ב-Google Container Registry.
אפשר להפעיל את Cloud SQL Auth Proxy באמצעות שקעי TCP או שקעי Unix, עם הפקודות שמוצגות בהמשך. האפשרויות משתמשות ב-INSTANCE_CONNECTION_NAME כמחרוזת החיבור כדי לזהות מכונה של Cloud SQL. אפשר למצוא את INSTANCE_CONNECTION_NAME בדף Overview של המופע במסוףGoogle Cloud , או על ידי הפעלת הפקודה הבאה:
gcloud sql instances describe INSTANCE_NAME
לדוגמה: myproject:myregion:myinstance.
בהתאם לשפה ולסביבה שלכם, אתם יכולים להפעיל את שרת ה-proxy ל-Cloud SQL Auth באמצעות שקעי TCP או שקעי Unix. אין תמיכה בשקעי Unix באפליקציות שנכתבו בשפת התכנות Java או בסביבת Windows.
שימוש בשקעי 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.22.1 \\ --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 לא ייחשף מחוץ למארח המקומי. הערך '0.0.0.0' בפרמטר instances נדרש כדי לאפשר גישה ליציאה מחוץ למאגר Docker.
שימוש בסוקטים של Unix
docker run -d -v /cloudsql:/cloudsql \\ -v PATH_TO_KEY_FILE:/path/to/service-account-key.json \\ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.22.1 --unix-socket=/cloudsql \\ --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.
אם אתם משתמשים באימג' שעבר אופטימיזציה לקונטיינר, השתמשו בספרייה שאפשר לכתוב בה במקום /cloudsql, לדוגמה:
-v /mnt/stateful_partition/cloudsql:/cloudsql
אפשר לציין יותר ממופע אחד, ולהפריד ביניהם באמצעות פסיקים. אפשר גם להשתמש במטא-נתונים של Compute Engine כדי לקבוע באופן דינמי את המכונות להתחברות. מידע נוסף על הפרמטרים של Cloud SQL Auth Proxy
7. מפעילים את סשן sqlcmd.
מחרוזת החיבור שבה משתמשים תלויה בשיטה שבה הפעלתם את שרת ה-proxy ל-Cloud SQL Auth: באמצעות שקע TCP או Docker.
שקעי TCP
- מפעילים את לקוח sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
כשמתחברים באמצעות שקעי TCP, מתבצעת גישה לשרת ה-proxy ל-Cloud SQL Auth דרך
127.0.0.1. - אם מופיעה בקשה, מזינים את הסיסמה.
- מופיעה הנחיה של sqlcmd.
דרושה לך עזרה? לקבלת עזרה בפתרון בעיות בשרת ה-proxy, אפשר לעיין במאמר בנושא פתרון בעיות בחיבורים של שרת proxy ל-Cloud SQL Auth או בדף תמיכה ב-Cloud SQL.
המאמרים הבאים
- פתרון בעיות בחיבור לשרת proxy ל-Cloud SQL Auth.
- יוצרים משתמשים ומסדי נתונים.
- מידע נוסף על כתובות IP פרטיות
- אפשרויות לחיבור למכונה מהאפליקציה
- מידע על אפשרויות התמיכה