我正在尝试导出我在Google Cloud SQL中创建的数据库并将其导入新的外部服务器。
我尝试通过谷歌控制台创建一个sql备份,下载它并通过filezilla将其复制到新服务器,然后启动以下命令:
psql -U postgres -d ciclods-db -1 -f Backup-db_Cloud_SQL_Export_2019-03-23 (17_01_19)
但我得到这个输出:
错误:角色"cloudsqladmin"不存在撤回
错误:角色"cloudsqlsuperuser" 不存在 GRANT
在这些情况下,正确的程序是什么?
"cloudsqladmin"从导出的 sql 文件中查找并删除两行来解决同样的问题。无论如何,我的应用程序都不使用它。
就我而言,我的SQL文件约为10 GB。因此,无法使用约定文本编辑器直接删除这两行。搜索后,我发现我可以使用sed来删除它们。这是命令:
sed '/cloudsqladmin|cloudsqlsuperuser/d' backup.sql > fixedbackup.sql
要执行此任务,您可以按照官方 GCP 指南了解如何从云 SQL 导出数据[1] 在该文档中,他们为您提供了将数据导出到转储文件或 CSV 文件中的选项,这些文件可用于其他工具。
https://cloud.google.com/sql/docs/mysql/import-export/exporting
为了创建导出文件,您必须从命令行执行此操作并使用其他标志。根据文档的"将数据导出到 SQL 转储文件",有一个关于从外部管理的数据库服务器导出数据的部分。
此外,您还可以在那里找到将数据导出为CSV文件的选项。