mysql - 在 Cloud SQL 中使用 LOAD DATA INFILE 和 SELECT INTO OUTFILE

标签 mysql google-cloud-sql load-data-infile select-into-outfile

我正在测试 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 实例上创建文件夹?您认为最好的解决方案是什么?

提前致谢

最佳答案

根据页面关于Importing data into Cloud SQL ,

you can also use the LOAD DATA LOCAL INFILE statement in the mysql client, which loads a local file to the database

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

可以应用相同的步骤进行导出,并且可以按原样使用语法SELECT...INTO OUTFILE。与其他替代方案一起,也可以在 Exporting data from Cloud SQL 上找到。 :

Exporting in CSV format is equivalent to running the following SQL statement:

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

执行完操作后,建议check their status特别是如果它长时间运行或发生错误。

关于mysql - 在 Cloud SQL 中使用 LOAD DATA INFILE 和 SELECT INTO OUTFILE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56022810/

相关文章:

php - 从 fputcsv : data not recorded 加载数据本地 INFILE

php - 如何在php中的两个不同数据库的两个不同表中插入数据

mysql - 有人可以向我解释一下我在哪里可以获取从谷歌云连接到 SQL 数据库的属性吗?

mysql - Cloud SQL 数据库无法从 mysql 客户端连接

PHP LOAD DATA INFILE 忽略行

php - 使用 LOAD DATA LOCAL INFILE 在 mysql 中成功导入 CSV 后没有 SQL 查询结果

php - 在 PHP、MySQL 中检索值

Php-Django Chimera : is it possible?

java - 带有重复键更新的 MySQL Batchupdate()

php - 如何让 PDO 与 Google 的 Cloud SQL 的持久连接正常工作?