gpt4 book ai didi

php - mysql导出后找不到文件

转载 作者:IT王子 更新时间:2023-10-29 00:20:34 36 4
gpt4 key购买 nike

我需要将数据从表格导出到 csv。我有以下结构(不是我的表,但用于演示目的)

CREATE TABLE `mytable` (
`id` int(11) DEFAULT NULL,
`mycolumn` varchar(25) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1

带数据(约 3000 条记录)。现在我想导出其中一些记录(从我通过 cronjob 运行的脚本)

SELECT * INTO OUTFILE '/tmp/mytable.sql'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM mytable;

它显示:

Query OK, 3 rows affected (0.00 sec)

然后我做:

ls: cannot access /tmp/mytable.sql: No such file or directory

我的文件在哪里?

最佳答案

当您使用 INTO OUTFILE 命令时,它会将数据导出到服务器的本地文件夹,而不是您正在执行查询的文件夹。

示例:您在计算机上 (ip: 192.168.0.100) 并使用 mysql 命令连接到 mysqlserver (ip: 192.168.0.101):mysql -uuser -h192.168.0.101 -A database 。通过执行 SELECT * INTO OUTFILE,文件将保存在 mysqlserver (ip: 192.168.0.101) 而不是您的计算机 (ip: 192.168.0.100) 上。

现在,您可以使用创建 CSV 文件的脚本(在您的 cronjob 中 - 您选择所有数据,生成文件并通过 scp 发送到其他服务器)。

或者 - 您也可以将 NFS 安装在 /shared/ 上,当您自动创建该文件时,另一台服务器将拥有它。

或者 - 您可以从第一台服务器像这样在 bash 脚本中简单地运行 mysql 命令。

mysql -uroot test -B -e "select * from test.mytable;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > /tmp/filename.csv

来源:http://tlug.dnho.net/node/209

关于php - mysql导出后找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9013166/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com