是 Cloud SQL 第二代。与 mysqldump 命令兼容?

Is Cloud SQL 2nd gen. compatible with mysqldump commands?

我尝试从我的本地计算机转储我的 Cloud SQL 实例数据库。

我知道我应该使用 gcloud 命令,但在我将使用的项目中,重写所有 mysqldump 指令真的很痛苦。

我可以通过 MySQL 客户端连接到云 SQL,但是当我尝试使用 mysqldump 时,我得到以下信息:

mysqldump --databases testdb -h 130.211.xxx.xxx -u root -p > testdump.sql

mysqldump: Got error: 1227: Access denied; you need (at least one of) the SUPER privilege(s) for this operation when using LOCK TABLES

当然 CloudSQL 不支持 SUPER 权限... :/

有谁知道有什么办法吗?

根据他们的 documentation,您似乎有 2 个选择。
第一个,您不喜欢的是使用 gcloud 命令.
第二,使用 RESTful API 访问 gcloud 命令在后台使用的服务。您可以在代码内部使用相同的请求。看看here.

是的,它接受它,但您必须首先使用 cloud_sql_proxy,并拥有正确的权限。此外,这目前不在文档中,既不作为警告也不作为官方方法。我不喜欢仍然使用中间桶进行转储。

在 Mac OS 中使用最新的 mysqldump 截至目前(pos我遇到的问题示例可能因 os 和 mysqldump 版本而异)

mysqldump --column_statistics=0 -h 127.0.0.1 -u <user> -p <db> --set-gtid-purged=OFF> <dumpFile>

// this is because I use the tcp connection sample for the cloud sql proxy
mysql -h 127.0.0.1 -u <user> -p -D <database> < DBs/mysqldump100519.sql