בדף הזה נסביר על חלק מהודעות השגיאה שנתקלים בהן ב-Cloud SQL.
סקירה כללית
הודעות שגיאה ב-Cloud SQL מגיעות ממקורות רבים ומופיעות במקומות רבים. חלק מהודעות השגיאה מגיעות ממנועי מסדי הנתונים עצמם, חלק משירות Cloud SQL, חלק מאפליקציות לקוח וחלק מוחזרות על ידי קריאות ל-Cloud SQL Admin API.
בדף הזה מפורטות כמה מהשגיאות הנפוצות ביותר ב-Cloud SQL. אם לא מצאתם כאן את קוד השגיאה או את הודעת השגיאה שחיפשתם, תוכלו לעיין בחומר העזר הזה:
אם לא מצאתם את חומר העזר להודעת השגיאה שמוצגת לכם, אתם יכולים גם לחפש במקומות הבאים, שבהם משתמשים אחרים אולי נתקלו בבעיה דומה:
- שאלות בנושא Cloud SQL ב-Stack Overflow
- כלי ציבורי למעקב אחר בעיות ב-Cloud SQL
- DBA Stack Exchange
- קבוצת דיון בנושא Cloud SQL
- Google Cloud קהילת Slack
- Google Cloud ב-Reddit
שגיאות תפעוליות
A | B | C | D | E | F | G | I | L | M | N | O | P | Q | R | S | T | U | W
| הודעת השגיאה | פתרון בעיות |
|---|---|
| החיבור xxx למסד הנתונים: DB_NAME בוטל. | האפליקציה לא מסיימת את החיבורים כמו שצריך.
בודקים את התנאים הבאים:
|
| הגישה נדחתה. נדרשת (לפחות אחת מ)הרשאה SUPER לפעולה הזו. | יכול להיות שיש תצוגה, פונקציה או פרוצדורה במסד הנתונים של המקור שמפנים אל DEFINER באופן שלא נתמך על ידי Cloud SQL.
מעדכנים את המגדיר במסדי הנתונים החיצוניים, לדוגמה
מ- |
| הגישה נדחתה למשתמש 'XXX'@'XXX' (באמצעות סיסמה: XXX) | יכולות להיות לכך כמה סיבות, למשל:
אפשר לנסות את הפעולות הבאות…
|
| לא נמצא טווח כתובות IP שהוקצה ברשת. | לא בוצע עדכון של חיבורי VPC לאחר שינוי או הסרה של טווח שהוקצה.
צריך
לשנות את החיבור הפרטי. משתמשים בפקודה הבאה, ומקפידים להשתמש בארגומנט gcloud services vpc-peerings update \ --network=VPC_NETWORK \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force |
| הפקודה ANY נדחתה למשתמש 'root'@'%' בטבלה ... | למשתמש אין את כל ההרשאות שנדרשות לפעולה הזו.
אפשר לנסות את הפעולות הבאות:
|
| הודעת השגיאה | פתרון בעיות |
|---|---|
| בקשה שגויה. | יכולות להיות הרבה סיבות להודעה הזו. Illegal Argument הוא אחד מהם. במקרה הזה, הבקשה משתמשת בארגומנט שגוי או בערך לא תקין לארגומנט. במקרים רבים אחרים, הודעת השגיאה עשויה להכיל רמז מועיל.
במקרה של |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| אי אפשר לשנות את הטווחים שהוקצו ב-CreateConnection. צריך להשתמש ב-UpdateConnection. | לא בוצע עדכון של חיבורי VPC לאחר שינוי או הסרה של טווח שהוקצה.
צריך לשנות את החיבור הפרטי.
משתמשים בפקודה הבאה, ומוודאים שמשתמשים בארגומנט gcloud services vpc-peerings update \ --network=VPC_NETWORK \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force |
| Constraints/sql.restrictAuthorizedNetworks. | הפעולה של שיבוט נחסמת על ידי ההגדרה Authorized Networks. Authorized Networks
מוגדרות לכתובות IP ציבוריות בקטע Connectivity (קישוריות) במסוף Google Cloud , ושיבוט לא מותר בגלל שיקולי אבטחה.
אם אפשר, מסירים את כל הערכים של |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| הדיסק מלא. | יכול להיות שהגודל של הדיסק של המופע הראשי יתמלא במהלך יצירת רפליקה.
עורכים את המופע הראשי כדי לשדרג אותו לגודל דיסק גדול יותר. |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| יצירת רשת משנה נכשלה. | אין יותר כתובות זמינות בטווח כתובות ה-IP.
לא נמצאו בלוקים פנויים בטווחי כתובות ה-IP שהוקצו. צריך להקצות טווחים חדשים לספק השירות הזה. אין יותר כתובות זמינות בטווח כתובות ה-IP שהוקצה. כדאי לשקול את התרחישים האפשריים הבאים:
בכל אחד מהתרחישים שצוינו למעלה, אתם יכולים להרחיב את טווח כתובות ה-IP הקיים או להקצות טווח כתובות IP נוסף לחיבור הפרטי לשירות. אם מקצים טווח חדש, חשוב לוודא שהוא לא חופף להקצאות קיימות. אחרי שיוצרים טווח IP חדש, מעדכנים את הקישור בין רשתות ה-VPC באמצעות הפקודה הבאה: gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com --ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \ --network=VPC_NETWORK --project=PROJECT_ID \ --force אם מרחיבים הקצאה קיימת, חשוב להקפיד להגדיל את טווח ההקצאה ולא להקטין אותו. לדוגמה, אם ההקצאה המקורית הייתה 10.0.10.0/24, ההקצאה החדשה צריכה להיות לפחות 10.0.10.0/23. באופן כללי, אם מתחילים מהקצאה של /24, מומלץ להקטין את /mask ב-1 לכל תנאי (קבוצת סוגי מופעים נוספת, אזור נוסף). לדוגמה, אם מנסים ליצור שתי קבוצות של סוגי מכונות באותו הקצאה, מעבר מ- /24 ל- /23 מספיק. אחרי הרחבת טווח כתובות IP קיים, מעדכנים את ה-VPC Peering באמצעות הפקודה הבאה: gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID \ --force |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| (gcloud.sql.connect) נראה שללקוח שלך אין קישוריות IPv6 ולמופע של מסד הנתונים אין כתובת IPv4. | אתם מנסים להתחבר למופע של כתובת IP פרטית באמצעות Cloud Shell.
אי אפשר להתחבר מ-Cloud Shell למופע עם כתובת IP פרטית בלבד. |
Got packet bigger than max_allowed_packet bytes when
dumping table. |
החבילה הייתה גדולה יותר מהמותר לפי ההגדרות.
משתמשים ב- מידע נוסף על שימוש בדגלים של |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| InnoDB: הכתיבה לקובץ ./ibtmp1 נכשלה בהיסט XXXX, YYYY בייטים היו אמורים להיכתב, רק 0 נכתבו. | המופע הגיע למגבלה קשיחה כשבוצע גיבוי אוטומטי.
בודקים שמערכת ההפעלה ומערכת הקבצים תומכות בקבצים בגודל הזה. מוודאים שהדיסק לא מלא או חורג ממכסת הדיסק. אתם יכולים לבקש להגדיל את המכסות דרך מסוףGoogle Cloud או לערוך את המופע כדי לשדרג אותו לגודל דיסק גדול יותר. |
| שגיאה פנימית. | יכול להיות שבפרויקט חסר חשבון השירות של Service Networking שנדרש לתכונה הזו.
כדי לתקן את הרשאות השירות, משביתים את |
| בקשה לא תקינה: הגדרה שגויה של Service Networking למופע. | Service Networking API לא מופעל בפרויקט.
מפעילים את |
| המופע אינו זכאי ליצירת רפליקה. | המופע הראשי לא עומד בדרישות הדרושות לשכפול. רשימת הדרישות מופיעה במאמר בנושא מגבלות השכפול. |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| טבלת המטא-נתונים נעולה. | שאילתה, תהליך או עסקה אחרים חוסמים את השאילתה שלכם ונועלים את הטבלה.
מאתרים את התהליך שגרם לנעילת הטבלה ומפסיקים אותו:
|
| הודעת השגיאה | פתרון בעיות |
|---|---|
| שיוך הרשת נכשל. | ה-Service Networking API לא מופעל בפרויקט.
מפעילים את |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| הפעולה נכשלה כי פעולה אחרת כבר הייתה בתהליך. | רוב הפעולות ב-Cloud SQL הן סינכרוניות. אפשר להריץ רק אחת בכל פעם.
צריך לחכות שהפעולה הקודמת תסתיים לפני שמתחילים פעולה אחרת. |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| חריגה מהמכסה. | הגעתם למגבלה של המכסה לדקה או למכסה היומית. כדאי לעיין במכסות ובמגבלות של Cloud SQL.
אפשר לבקש להגדיל את המכסות מGoogle Cloud המסוף. |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| יחידות הקיבולת שנותרו שמורות. | הגעתם למספר המקסימלי של חיבורים שמותרים.
מגדילים את הערך של הדגל |
| בבקשה חסר מפתח API תקין. | יכול להיות שאין לכם קובץ JSON תקין של מפתח חשבון שירות, או שהוא לא מאוחסן במיקום הצפוי.
מוודאים שיש לכם קובץ JSON תקין עם מפתח של חשבון שירות במיקום שמאוחסן במשתנה הסביבה |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| המפתח שצוין היה ארוך מדי. אורך המפתח המקסימלי הוא 767 בייטים. | יכול להיות שמוגדר המשתנה innodb_large_prefix במופע הראשי החיצוני.
מגדירים את הדגל |
| שגיאת SSL: מרווח פנימי לא תקין. | שגיאה באישור השרת.
יוצרים אישור שרת חדש ומבצעים רוטציה. |
| אירעה שגיאת מערכת. |
אפשר לנסות את הפעולות הבאות…
|
| הודעת השגיאה | פתרון בעיות |
|---|---|
| ההגדרה של הטבלה השתנתה. | במהלך תהליך הייצוא, חל שינוי בטבלה.
יכול להיות שהעברת הנתונים תיכשל אם משתמשים בהצהרות הבאות במהלך פעולת הייצוא:
מסירים את ההצהרות האלה מפעולת ה-dump. |
| הטבלה db.table לא קיימת | אם טבלה אחת או יותר של InnoDB נעלמו אחרי הפעלה מחדש של MySQL, ובאותו הזמן יש באותו יומן שגיאות של MySQL את האזהרות הבאות, הבעיה היא שעמודות המפתח הזר ועמודות המפתח שאליהן יש הפניה לא מסונכרנות.
[Warning] InnoDB: Load table db.table failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again. [Warning] InnoDB: Cannot open table db/table from the internal data dictionary of InnoDB though the .frm file for the table exists. See InnoDB troubleshooting for more information. אחרי הפעלה מחדש של מסד נתונים, מערכת MySQL צריכה לטעון טבלאות למטמון המילון של InnoDB בפעם הראשונה שמתבצעת גישה. אם המערכת מזהה את אי ההתאמה, היא חוסמת את הגישה לטבלה. mysql> select * from db.table; ERROR 1146 (42S02): Table db.table doesn't exist השבתה של כדי למנוע בעיות נוספות, צריך לתקן את אי ההתאמה של המפתח הזר.
|
| (Timeout) במהלך הייצוא. | הייצוא בפורמטים CSV ו-SQL מתבצע באופן שונה. פורמט ה-SQL כולל את כל מסד הנתונים, ולכן סביר להניח שייקח יותר זמן להשלים את הפעולה.
כדי להקטין את הגודל ואת משך הזמן של כל פעולה, כדאי להשתמש בפורמט CSV ולהפעיל כמה משימות ייצוא קטנות יותר. |
| יותר מדי חיבורים. | הגדרת ערך גבוה מדי לדגל max_connections עלולה לגרום לשגיאה הזו. הבעיה יכולה לקרות גם אם מפעילים דגל לא לפי הסדר.
צריך להקטין את ערך הדגל |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| אין הרשאה להתחבר. | יכולות להיות לכך הרבה סיבות, כי ההרשאה מתבצעת בכמה רמות:
אפשר לנסות את הפעולות הבאות…
|
טבלה לא ידועה COLUMN_STATISTICS ב-information_schema. |
זה קורה אם משתמשים בקובץ הבינארי mysqldump מ-MySQL 8.0 כדי לבצע dump של נתונים ממסד נתונים של MySQL 5.7 ולייבא אותם למסד נתונים של MySQL 8.0.
אם אתם מבצעים dump של נתונים ממסד נתונים של MySQL 5.7 ומייבאים אותם למסד נתונים של MySQL 8.0, הקפידו להשתמש בקובץ הבינארי |
| הודעת השגיאה | פתרון בעיות |
|---|---|
| x509: האישור לא תקף לאף שם. | בעיה ידועה:
Cloud SQL Proxy Dialer לא תואם ל-Go 1.15 בשלב הזה.
עד שהבעיה תיפתר, אפשר לעיין בדיון הזה ב-GitHub, שכולל פתרון עקיף. |
שגיאות לא ידועות
בטבלה הבאה מפורטים כמה מקרים מוכרים שבהם יכולה להתרחש שגיאה Unknown Error, ופתרונות ספציפיים במקרים הרלוונטיים. עם זאת, זוהי רשימה חלקית. אם לא מצאתם את הפנייה שלכם בטבלה, כדאי לבדוק בכלי הציבורי למעקב אחרי בעיות ב-Cloud SQL.
אם הבעיה לא מופיעה שם, אפשר
לשלוח דוח או לעיין באפשרויות תמיכה אחרות.
| פעולה | יכול להיות שהבעיה היא... | דברים שכדאי לנסות... |
|---|---|---|
| הוספת משתמש | אם המשתמש כבר קיים במסד הנתונים, השגיאה הזו יכולה להופיע כשמנסים להוסיף אותו. | בודקים שהמשתמש לא קיים כבר במסד הנתונים. |
| גיבוי | אם ההודעה הזו מופיעה במהלך גיבוי אוטומטי או ידני, סביר להניח שהדיסק של המופע מלא. | אם הקובץ הזמני תופס יותר מדי מקום, אפשר להפעיל מחדש את המופע כדי להסיר את הקובץ ולפנות מקום בדיסק. אחרת, יכול להיות שתצטרכו לשדרג את המכונה לגודל דיסק גדול יותר. |
| שכפל | זה יכול לקרות כשאין מספיק משאבים באזור שנבחר. | אפשר לנסות אזור אחר באזור, או לחכות ולנסות שוב מאוחר יותר. |
| ליצירת מופע |
|
|
| יצירת רפליקה | סביר להניח ששגיאה ספציפית יותר מופיעה בקובצי היומן. | בודקים את היומנים ב-Cloud Logging כדי למצוא את השגיאה בפועל.
אם השגיאה היא |
ב-Cloud SQL נעשה שימוש גם בקבצים בינאריים של צד שלישי (לדוגמה, mysqld), שיכולים ליצור הודעות שגיאה לא ידועות. שגיאות כאלה הן פנימיות לקבצים הבינאריים של הצד השלישי ולא נכללות בהיקף של Cloud SQL.
עם זאת, לפעמים אפשר למצוא שגיאה ספציפית יותר ב קבצי היומן של Cloud SQL בערך באותו הזמן.
בנוסף, לפעמים מדובר בקוד שגיאה לא ידוע. במקרה כזה, אפשר Unknown Error Codeלראות את ההודעה המלאה.