我已经创建了一个Google SQL实例和一些数据库。我需要删除一个数据库,但由于某些原因,目前我得到一个未知的错误。
以下是调试输出:
$ gcloud sql databases delete myDatabase -i myInstance --verbosity debug
DEBUG: Running [gcloud.sql.databases.delete] with arguments: [--
instance: "myInstance", --verbosity: "debug", DATABASE: "myDatabase"]
The database will be deleted. Any data stored in the database will be
destroyed. You cannot undo this action.
Do you want to continue (Y/n)?
Deleting Cloud SQL database...failed.
DEBUG: (gcloud.sql.databases.delete) INTERNAL_ERROR
Traceback (most recent call last):
File "~/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 797, in Execute
resources = calliope_command.Run(cli=self, args=args)
File "~/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 757, in Run
resources = command_instance.Run(args)
File "~/google-cloud-sdk/lib/surface/sql/databases/delete.py", line 84, in Run
'Deleting Cloud SQL database')
File "~/google-cloud-sdk/lib/googlecloudsdk/api_lib/sql/operations.py", line 81, in WaitForOperation
sleep_ms=_BaseOperations._INITIAL_SLEEP_MS)
File "~/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 226, in RetryOnResult
if not should_retry(result, state):
File "~/google-cloud-sdk/lib/googlecloudsdk/api_lib/sql/operations.py", line 65, in ShouldRetryFunc
raise result
OperationError: INTERNAL_ERROR
ERROR: (gcloud.sql.databases.delete) INTERNAL_ERROR在Google文档中没有任何关于它的条目。有没有人有这个错误?
任何帮助都将不胜感激。
谢谢!
发布于 2018-02-22 23:28:24
我的直觉是,数据库仍然有打开的连接,这会阻止您删除它。
我认为这个问题在postgres数据库中比在MySQL数据库中更常见,因为postgres更有可能是连接滞后(这是postgres问题,而不是GCP问题)。
要测试这一点,请连接到云SQL实例的shell并运行以下命令,以防止将来连接到数据库:
REVOKE CONNECT ON DATABASE DATABASE_NAME FROM public; 然后,连接到您想要删除的数据库,并通过发出以下命令终止与此数据库的所有连接(当前连接除外):
SELECT pid, pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = current_database() AND pid <> pg_backend_pid(); 退出postgres shell。
我还建议禁用自动备份。如果正在进行自动备份,并且您同时尝试删除数据库,则可能会产生异常。
现在再次尝试gcloud sql databases delete命令。
发布于 2018-09-26 18:22:06
我也有同样的问题。我的问题是数据库不属于postgres用户。
为了能够以数据库所有者用户的身份连接到数据库,您需要在云sql [数据库]选项卡中创建数据库。命名数据库,就像你的用户名一样。然后,您应该能够登录:
gcloud sql connect <instance name> --user=<owner of database> --quiet现在只需执行
DROP DATABASE <database name>;如果成功,响应应为: DROP DATABASE
发布于 2020-01-17 23:05:58
在GCP中删除cloud SQL上的MysQL数据库时,我也遇到了同样的问题。原来我需要事先禁用数据库的一些配置,然后才能像here解释的那样删除它。
https://stackoverflow.com/questions/48813186
复制相似问题