云SQL第二代是否兼容mysqldump命令?

3

我试图从本地计算机导出Cloud SQL实例数据库。

我知道我应该使用gcloud命令,但在我将要使用的项目中,重新编写所有的mysqldump指令将是一个真正的痛苦。

我可以通过MySQL客户端连接到Cloud 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权限... :/

有人知道是否有解决方法吗?

2个回答

2

是的,它可以接受,但您必须首先使用cloud_sql_proxy,并具有正确的权限。此外,目前文档中没有作为警告或官方方法。仍然不喜欢使用中间存储桶进行转储。

在Mac OS上,最新的mysqldump(截至目前为止)存在问题(我发布了遇到的问题示例,可能会因操作系统和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 

1
根据他们的文档, 看起来你有两个选项。
第一个选项是使用gcloud命令, 但你不喜欢这个选项。
第二个选项是使用RESTful API访问该服务,该服务在幕后由gcloud命令使用。你可以在代码内使用相同的请求。请看这里

只要您不需要超级权限,就可以通过cloud_sql_proxy或常规连接使用mysqldump。 - zardilior

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接