是Cloud SQL 2nd gen。与mysqldump命令兼容?

时间:2017-02-08 10:37:13

标签: mysql google-cloud-sql

我尝试从本地计算机转储我的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 个答案:

答案 0 :(得分:2)

根据他们的documentation,您似乎有两个选择 第一个,你不喜欢使用 gcloud命令 第二种,使用 RESTful API 来访问gcloud命令使用的服务。您可以在代码中使用相同的请求。看看here

答案 1 :(得分:0)

是的,它接受它,但是您必须首先使用cloud_sql_proxy并具有正确的权限。而且,目前这还没有出现在文档中,这既不是警告也不是官方方法。我仍然不喜欢使用中间存储桶进行转储。

在截至目前为止具有最新mysqldump的Mac OS中(我遇到的问题的示例可能随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