0

我正在测试 Google Cloud SQL,我必须测试说明LOAD DATA INFILESELECT...INTO OUTFILE.

我知道LOAD DATA LOCAL INFILE可以使用该指令代替LOAD DATA INFILE,但是如何在 Cloud SQL 中使用它?

指令SELECT...INTO OUTFILE可以按原样使用吗?

感谢 Renzo 的回答,但是当我连接到 Cloud SQL 实例时尝试执行指令 SELECT.. INTO OUTFILE 时,我收到以下错误消息:

第 1 行的错误 1045 (28000):用户 'root'@'%' 的访问被拒绝

我尝试从连接到 MySQL 上的 Cloud SQL 实例的计算机中使用指令 LOAD DATA LOCAL INFILE 并且它有效。我使用计算机上的文件成功将 CSV 数据导入表中。但我想知道我是否可以使用存储桶中的文件来做同样的事情......

我试图解释我需要做什么:

我们正在将我们的网站迁移到 GCP App Engine/Cloud SQL。我们广泛使用这两个指令 LOAD DATA INFILE 从文件夹“ftp”中选择文件以将它们加载到数据库中。同样,我们使用 SELECT INTO OUTFILE 将数据导出为 CSV 文件到我们网站的文件夹中。所以我关心的是能否在 App Engine/Cloud SQL 上使用相同的流程。

不同之处在于网站实例和数据库实例在 GCP 上是分开的。我们应该在 GCP 上使用存储桶来替换我们的文件夹吗?还是我们应该在 App Engine / Cloud SQL 实例上创建文件夹?您认为最好的解决方案是什么?

提前致谢

4

1 回答 1

1

根据有关将数据导入 Cloud SQL的页面,

您还可以使用mysql客户端LOAD DATA LOCAL INFILE中的语句,它将本地文件加载到数据库中

您可以按照此链接中的示例步骤通过首先通过 Cloud Shell 连接到您的 Cloud SQL 实例来启动mysql 客户端。连接后,您将能够执行导入语句:LOAD DATA LOCAL INFILE.

可以将相同的步骤应用于导出,并且SELECT...INTO OUTFILE可以按原样使用语法。与其他替代方案一起,这也可以在从 Cloud SQL 导出数据中找到:

以 CSV 格式导出相当于运行以下 SQL 语句:

SELECT <query> INTO OUTFILE ... CHARACTER SET 'utf8mb4'
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
        ESCAPED BY '\\' LINES TERMINATED BY '\n'

执行操作后,还建议检查它们的状态,尤其是在长时间运行或发生错误的情况下。

于 2019-05-08T02:20:33.030 回答