首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试删除Google Cloud SQL postgres数据库的未知INTERNAL_ERROR

尝试删除Google Cloud SQL postgres数据库的未知INTERNAL_ERROR
EN

Stack Overflow用户
提问于 2018-02-16 01:37:08
回答 3查看 3.2K关注 0票数 2

我已经创建了一个Google SQL实例和一些数据库。我需要删除一个数据库,但由于某些原因,目前我得到一个未知的错误。

以下是调试输出:

代码语言:javascript
复制
$ 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文档中没有任何关于它的条目。有没有人有这个错误?

任何帮助都将不胜感激。

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2018-02-22 23:28:24

我的直觉是,数据库仍然有打开的连接,这会阻止您删除它。

我认为这个问题在postgres数据库中比在MySQL数据库中更常见,因为postgres更有可能是连接滞后(这是postgres问题,而不是GCP问题)。

要测试这一点,请连接到云SQL实例的shell并运行以下命令,以防止将来连接到数据库:

代码语言:javascript
复制
REVOKE CONNECT ON DATABASE DATABASE_NAME FROM public; 

然后,连接到您想要删除的数据库,并通过发出以下命令终止与此数据库的所有连接(当前连接除外):

代码语言:javascript
复制
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命令。

票数 5
EN

Stack Overflow用户

发布于 2018-09-26 18:22:06

我也有同样的问题。我的问题是数据库不属于postgres用户。

为了能够以数据库所有者用户的身份连接到数据库,您需要在云sql [数据库]选项卡中创建数据库。命名数据库,就像你的用户名一样。然后,您应该能够登录:

代码语言:javascript
复制
gcloud sql connect <instance name> --user=<owner of database> --quiet

现在只需执行

代码语言:javascript
复制
DROP DATABASE <database name>;

如果成功,响应应为: DROP DATABASE

票数 2
EN

Stack Overflow用户

发布于 2020-01-17 23:05:58

在GCP中删除cloud SQL上的MysQL数据库时,我也遇到了同样的问题。原来我需要事先禁用数据库的一些配置,然后才能像here解释的那样删除它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48813186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档