我尝试从本地计算机转储我的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权限......:/
有没有人知道是否有办法解决?
答案 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