本頁面說明 Cloud SQL 中可能出現的部分錯誤訊息。
總覽
Cloud SQL 的錯誤訊息來源眾多,且會出現在多個位置。部分錯誤訊息來自資料庫引擎本身、Cloud SQL 服務或用戶端應用程式,有些則是呼叫 Cloud SQL Admin API 時傳回。
本頁面列出 Cloud SQL 中一些最常見的錯誤。如果在這裡找不到您要的錯誤代碼或訊息,可以前往下列網址查看來源參考資料:
如果找不到您看到的錯誤訊息參考資料,也可以在下列位置搜尋,其他使用者可能會有相關經驗:
- Stack Overflow 上的 Cloud SQL 問題
- Cloud SQL 公開 Issue Tracker
- 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
| 錯誤訊息 | 疑難排解 |
|---|---|
| 已取消與資料庫 DB_NAME 的連線 xxx。 | 應用程式未正確結束連線。
請檢查下列情況:
|
| 存取遭拒;您需要 (至少一項) SUPER 權限才能執行這項作業。 | 來源資料庫中可能有檢視表、函式或程序,以 Cloud SQL 不支援的方式參照 DEFINER。更新外部資料庫中的定義者,例如從 |
| 使用者「XXX」@「XXX」的存取權遭拒 (使用密碼:XXX) | 可能的原因有很多種,包括:
試試這些做法 ...
|
| 在網路中找不到分配的 IP 範圍。 | 修改或移除分配範圍後,未更新虛擬私有雲對接。 您必須修改私人連線。請使用下列指令,並務必使用 gcloud services vpc-peerings update \ --network=VPC_NETWORK \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force |
| ANY command denied to user 'root'@'%' for table ... | 使用者不具備這項作業所需的所有權限。
試試看:
|
| 錯誤訊息 | 疑難排解 |
|---|---|
| 要求錯誤。 | 看到這則訊息的原因有很多,Illegal Argument 是最常見的其中一種。在這種情況下,要求使用了錯誤的引數或無效的引數值。如果是其他原因,錯誤訊息可能會提供實用提示。如果是 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 無法修改 CreateConnection 中的分配範圍。請改用 UpdateConnection。 | 修改或移除分配範圍後,未更新虛擬私有雲對接。
您需要修改私人連線。請使用下列指令,並務必使用 gcloud services vpc-peerings update \ --network=VPC_NETWORK \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force |
| 對等方已重設連線。 | 如果您嘗試執行匯出作業,但 Cloud Storage 在特定時間範圍內未收到任何資料,連線就會重設。 請嘗試使用 |
| constraints/sql.restrictAuthorizedNetworks。 | Authorized Networks 設定會封鎖複製作業。Authorized Networks
在 Google Cloud 控制台的「連線」部分設為公開 IP 位址,且基於安全性考量,不允許複製。
如果可以,請從 Cloud SQL 執行個體中移除所有 |
檔案群組 PRIMARY 的磁碟空間不足,因此無法為資料庫 database_name 分配新頁面。 |
PRIMARY 檔案群組是資料庫中的主要和預設檔案群組,空間已用盡。使用 請考慮下列解決方案:
|
| 錯誤訊息 | 疑難排解 |
|---|---|
資料庫「user」不存在。 |
gcloud sql connect --user 僅適用於預設的 postgres 使用者。連線至預設使用者,然後變更使用者。 |
| 磁碟已滿。 | 建立副本時,主要執行個體磁碟空間可能會用盡。 編輯主要執行個體,升級至較大的磁碟。 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 無法建立子網路。 | IP 範圍內沒有可用的位址。 在已分配的 IP 範圍中找不到可用區塊。請為這個服務供應商分配新的範圍。 分配的 IP 範圍內沒有其他可用位址。 請考慮以下可能的情境:
針對上述各個情境,您可以選擇擴充現有 IP 範圍,或為私人服務連線分配額外的 IP 範圍。 分配新範圍時,請注意不要建立與任何現有分配項目重疊的分配項目。 建立新的 IP 範圍後,請使用下列指令更新虛擬私有雲對接: 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 範圍後,請使用下列指令更新虛擬私有雲對接: 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 位址。 | 您正嘗試使用 Cloud Shell 連線至私人 IP 執行個體。 不支援從 Cloud Shell 連線至僅有私人 IP 位址的執行個體。 |
傾印資料表時,封包大小超過 max_allowed_packet 個位元組。 |
封包大小超過設定允許的上限。
使用 如要進一步瞭解如何使用 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| InnoDB: Write to file ./ibtmp1 failed at offset XXXX, YYYY bytes should have been written, only 0 were written. | 執行個體在執行自動備份時達到硬性限制。 請確認作業系統和檔案系統支援這個大小的檔案。 確認磁碟未滿或未超出磁碟配額。您可以透過 Google Cloud 控制台申請提高配額,或編輯執行個體,升級至更大的磁碟。 |
| 發生內部錯誤。 | 專案可能缺少這項功能所需的 Service Networking 服務帳戶。 如要手動建立服務帳戶,請按照「建立服務代理並授予角色」一文中的操作說明進行。 |
| 要求無效:執行個體的 Service Networking 設定有誤。 | 專案未啟用 Service Networking API。在專案中啟用 |
| 執行個體不符合建立副本的條件。 | 主要執行個體不符合必要的複製條件。如需相關規定清單,請參閱「複製作業限制」。 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 使用者「XXX」登入失敗。 | 請確認使用者具備嘗試連線的執行個體和資料庫權限,並確保使用正確的憑證。 |
| 登入「test」擁有一或多個資料庫。請先變更資料庫擁有者,再捨棄登入資訊。 | 如要捨棄與已停用資料庫擁有者相關聯的使用者登入資訊,必須先指派新的資料庫擁有者。 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 中繼資料表已鎖定。 | 其他查詢、程序或交易阻擋了您的查詢,並鎖定資料表。 找出鎖定資料表的程序並停止:
|
| 錯誤訊息 | 疑難排解 |
|---|---|
| 網路關聯失敗。 | 專案未啟用 Service Networking API。
在專案中啟用 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 還有其他正在進行的作業,因此作業失敗。 | Cloud SQL 中的大多數作業都是同步作業。一次只能執行一項。
請等待前一項作業完成,再開始另一項作業。 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 使用者「postgres」的密碼驗證失敗。 | 建立新的 PostgreSQL 適用的 Cloud SQL 執行個體時,系統會建立預設管理員使用者 postgres,但不會建立密碼。您必須先為這位使用者設定密碼,對方才能登入。 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 已超過配額。 | 已達每分鐘或每日配額上限。查看 Cloud SQL 的配額與限制。 透過Google Cloud 控制台申請提高配額。 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 剩餘的連線運算單元皆為保留狀態。 | 連線數量已達上限。
提高 |
| 要求缺少有效的 API 金鑰。 | 您可能沒有有效的服務帳戶金鑰 JSON 檔案,或檔案未儲存在預期位置。 確認 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 指定的鍵過長,鍵長度上限為 767 個位元組。 | 外部主要執行個體可能已設定 innodb_large_prefix 變數。建立副本時,請將 |
| SSL 錯誤:邊框間距無效。 | 伺服器憑證錯誤。
建立新的伺服器憑證並輪替。 |
| 發生系統錯誤。 |
試試這些做法 ...
|
| 錯誤訊息 | 疑難排解 |
|---|---|
| 資料表定義已變更。 | 匯出期間,資料表發生變更。
如果在匯出作業期間使用下列陳述式,轉儲交易可能會失敗:
從傾印作業中移除任何這類陳述式。 |
| 暫存檔案大小超過 temp_file_limit。 | temp_file_limit 旗標設定過低,不符合資料庫用量。增加 |
| 資料表「db.table」不存在 | 如果 MySQL 重新啟動後,一或多個 InnoDB 資料表消失,且 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 關閉 MySQL 工作階段的 請修正外鍵不相符的問題,以免發生其他問題。
|
| 匯出時發生 (逾時)。 | CSV 和 SQL 格式的匯出方式不同。SQL 格式包含整個資料庫,可能需要較長時間才能完成。 使用 CSV 格式,並執行多個較小的匯出工作,縮減每項作業的大小和長度。 |
| 連線數量過多。 | 如果 max_connections 旗標值設得太高,可能會導致這項錯誤。如果未依序啟用旗標,也可能發生這種情況。
降低 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| 未經授權,無法連線。 | 授權會在多個層級進行,因此可能有多種原因:
試試這些做法 ...
|
information_schema 中有不明資料表 COLUMN_STATISTICS。 |
如果您使用 MySQL 8.0 的 mysqldump 二進位檔,從 MySQL 5.7 資料庫轉儲資料,並匯入 MySQL 8.0 資料庫,就會發生這種情況。如果您從 MySQL 5.7 資料庫轉儲資料,並匯入 MySQL 8.0 資料庫,請務必使用 MySQL 5.7 的 |
| 錯誤訊息 | 疑難排解 |
|---|---|
| x509:憑證不適用於任何名稱。 | 已知問題:Cloud SQL Proxy 撥號器目前與 Go 1.15 不相容。 在問題修正前,請參閱 GitHub 上的這項討論,其中包含解決方法。 |
不明錯誤
下表列出可能發生 Unknown Error 的已知情況,以及適用的特定解決方法。不過,這份清單並未涵蓋所有情況。如果表格中沒有您的案例,請查看 Cloud SQL 的公開 Issue Tracker。如果找不到問題,請考慮提交報告,或查看其他支援選項。
| 作業 | 問題可能出在... | 試試以下功能... |
|---|---|---|
| 新增使用者 | 如果使用者已存在於資料庫中,您嘗試新增使用者時可能會發生這項錯誤。 | 請確認資料庫中沒有該使用者。 |
| 備份 | 如果在自動或手動備份期間看到這則訊息,可能是執行個體磁碟已滿。 | 如果暫存檔案占用過多空間,您可以重新啟動執行個體來移除檔案,並釋出磁碟空間。否則,您可能需要將執行個體升級至較大的磁碟大小。 |
| 複製 | 如果所選可用區的資源不足,就可能發生這種情況。 | 請改用該區域的其他可用區,或稍後再試。 |
| 建立執行個體 |
|
|
| 匯出 | 如果您在嘗試將資料庫匯出至 Cloud Storage bucket 時看到這則訊息,可能是頻寬問題導致移轉失敗。 | Cloud SQL 執行個體可能與 Cloud Storage bucket 位於不同區域。在不同洲之間讀取及寫入資料會耗用大量網路資源,並可能導致這類間歇性問題。 |
| 容錯移轉 (自動) | 如果服務偵測到主要執行個體仍有回應,自動容錯移轉作業可能會產生這則錯誤訊息。 | 在這種情況下,您無須採取任何行動。由於不需要容錯移轉,因此不會發生。 |
| 匯入 | 匯入檔案可能包含需要超級使用者角色的陳述式。 | 編輯檔案,移除任何需要超級使用者角色的陳述式。 |
Cloud SQL 也會使用一些第三方二進位檔 (例如 mysqld),這可能會產生不明錯誤訊息。這類錯誤屬於第三方二進位檔內部錯誤,不在 Cloud SQL 的範圍內。不過,有時您可以在大約同一時間的 Cloud SQL 記錄檔中找到更具體的錯誤。
此外,有時會出現不明錯誤代碼。在這種情況下,完整訊息可以是 Unknown Error Code。