本頁討論 Cloud SQL 中遇到的一些錯誤訊息。
總覽
Cloud SQL 的錯誤訊息來源眾多,且會顯示在許多地方。部分錯誤訊息來自資料庫引擎本身、部分來自 Cloud SQL 服務、部分來自用戶端應用程式,還有部分是呼叫 Cloud SQL Admin API 時傳回的訊息。
本頁列出 Cloud SQL 中最常見的錯誤,如果在這裡找不到您要查詢的錯誤代碼或訊息,請參閱以下來源參考資料:
如果找不到您看到的錯誤訊息參考資料,也可以在下列位置搜尋,其他使用者可能會有相關經驗:
- Stack Overflow 上的 Cloud SQL 問題
- 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
錯誤訊息 | 疑難排解 |
---|---|
Aborted connection xxx to db: DB_NAME. | 應用程式未正確結束連線。
請檢查下列情況:
|
存取遭拒;您需要 (至少一項) SUPER 權限才能執行這項作業。 | 來源資料庫中可能存在參照 DEFINER 的檢視畫面、函式或程序,但 Cloud SQL 不支援這種參照方式。更新外部資料庫中的定義者,例如從 |
Access denied for user 'XXX'@'XXX' (using password: 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 |
Constraints/sql.restrictAuthorizedNetworks。 | 複製作業遭到 Authorized Networks 設定封鎖。Authorized Networks
在 Google Cloud 控制台的「連線」部分中,設定為使用公開 IP 位址,且基於安全考量,不允許複製。
盡可能從 Cloud SQL 執行個體中移除所有 |
錯誤訊息 | 疑難排解 |
---|---|
磁碟空間已滿。 | 建立副本時,主要執行個體的磁碟大小可能會達到上限。
編輯主要執行個體,將其升級為較大的磁碟大小。 |
錯誤訊息 | 疑難排解 |
---|---|
無法建立子網路。 | 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 對等互連: gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID \ --force |
錯誤訊息 | 疑難排解 |
---|---|
(gcloud.sql.connect) It seems your client does not have ipv6 connectivity and the database instance does not have an ipv4 address. | 您嘗試使用 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 API 。
在專案中啟用 |
錯誤訊息 | 疑難排解 |
---|---|
中繼資料表已鎖定。 | 其他查詢、程序或交易封鎖了您的查詢,並鎖定資料表。 找出鎖定資料表的程序並停止:
|
錯誤訊息 | 疑難排解 |
---|---|
網路關聯失敗。 | 專案未啟用 Service Networking API 。
在專案中啟用 |
錯誤訊息 | 疑難排解 |
---|---|
還有其他正在進行的作業,因此作業失敗。 | Cloud SQL 中的大多數作業都是同步作業。一次只能執行一項作業。
請先等待上一個作業完成,再開始其他作業。 |
這項作業不適用於這個執行個體。 | 這是對 instances.restoreBackup 進行 API 呼叫時傳回的錯誤,表示您無法將備份還原至儲存空間大小 (XX GB) 小於備份大小 (YY GB) 的執行個體。編輯目標執行個體,增加儲存空間大小。 |
錯誤訊息 | 疑難排解 |
---|---|
超過配額。 | 您已達到每分鐘或每日配額的上限。查看 Cloud SQL 的配額與限制。 透過Google Cloud 主控台要求增加配額。 |
錯誤訊息 | 疑難排解 |
---|---|
剩餘的連線運算單元皆為保留狀態。 | 連線數量已達上限。
增加 |
要求缺少有效的 API 金鑰。 | 您可能沒有有效的服務帳戶金鑰 JSON 檔案,或該檔案未儲存在預期位置。
確認您存在 |
錯誤訊息 | 疑難排解 |
---|---|
指定的鍵過長,鍵長度上限為 767 個位元組。 | 外部主要執行個體可能已設定變數 innodb_large_prefix 。
建立副本時,請將 |
SSL 錯誤:填補無效。 | 伺服器憑證錯誤。
建立新的伺服器憑證並輪替。 |
發生系統錯誤。 |
請嘗試下列做法:
|
錯誤訊息 | 疑難排解 |
---|---|
資料表定義已變更。 | 匯出期間表格發生變更。
如果在匯出作業期間使用下列陳述式,傾印交易可能會失敗:
請從傾印作業中移除任何這類陳述式。 |
資料表「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 Dialer 目前與 Go 1.15 不相容。 在修正問題前,請參閱 GitHub 上的這項討論,其中包含解決方法。 |
不明錯誤
下表列出一些已知的 Unknown Error
案例,並在適用情況下提供具體解決方法。不過,這並非完整清單。如果表格中沒有您的案件,請查看 Cloud SQL 的公開問題追蹤器。如果找不到問題,請考慮
提交報告,或查看其他支援選項。
作業 | 問題可能出在... | 建議做法... |
---|---|---|
新增使用者 | 如果使用者已存在於資料庫中,嘗試新增時可能會發生這個錯誤。 | 確認資料庫中沒有該使用者。 |
備份 | 如果在自動或手動備份期間看到這則訊息,可能是執行個體磁碟空間已滿。 | 如果暫時檔案大小佔用太多空間,您可以重新啟動執行個體來移除檔案,並釋出磁碟空間。否則,您可能需要將執行個體升級為較大的磁碟大小。 |
複製 | 如果所選可用區的資源不足,就可能發生這種情況。 | 請嘗試使用該區域中的其他可用區,或稍後再試。 |
建立執行個體 |
|
|
建立備用資源 | 記錄檔中可能會有更具體的錯誤。 | 檢查 Cloud Logging 中的記錄,找出實際錯誤。 如果錯誤是 如果錯誤是 |
匯出 | 如果您在嘗試將資料庫匯出至 Cloud Storage bucket 時看到這則訊息,可能是因為頻寬問題導致轉移失敗。 | Cloud SQL 執行個體可能與 Cloud Storage 值區位於不同區域。從一個洲讀取資料並寫入另一個洲,會耗用大量網路資源,並可能導致這類間歇性問題。 |
容錯移轉 (舊版) | 如果您使用舊版容錯移轉設定,當容錯移轉複製機器不夠大,無法處理容錯移轉時,就會發生這種情況。 | 最佳解決方案是遷移至目前的 高可用性設定。否則,您必須將容錯移轉副本更新為較大的機器。 |
容錯移轉 (自動) | 如果服務偵測到主要執行個體仍有回應,自動容錯移轉作業可能會產生這則錯誤訊息。 | 在此情況下,您無須採取任何行動。由於不需要容錯移轉,因此不會發生容錯移轉。 |
匯入 | 匯入檔案可能含有需要超級使用者角色的陳述式。 | 編輯檔案,移除需要超級使用者角色的陳述式。 |
Cloud SQL 也會使用一些第三方二進位檔 (例如 mysqld
),這些二進位檔可能會產生不明錯誤訊息。這類錯誤是第三方二進位檔的內部錯誤,不在 Cloud SQL 的範圍內。不過,有時您可以在大約同一時間的 Cloud SQL 記錄檔中,找到更具體的錯誤。
此外,有時會出現不明的錯誤代碼。在這個例子中,完整訊息可以是 Unknown Error Code
。