微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – mysql导出后找不到文件

我需要将数据从表导出到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发送到其他服务器).

或者 – 您也可以在/ shared /上安装NFS,当您自动创建文件时,其他服务器也会使用它.

或者 – 您可以在第一台服务器上的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

原文地址:https://www.jb51.cc/php/137441.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐