使用mysqldump将表数据导出到csv文件中

时间:2012-03-08 09:06:50

标签: php mysql csv

我想使用mysqldump将表数据导出到csv文件中。

我想做类似的事情:

mysqldump --compact --no_create_info --tab=testing --fields-enclosed-by=\" --fields-terminated-by=, -uroot -proot mydatabase mytable

但我一直收到这个错误:

(Errcode: 13) when executing 'SELECT INTO OUTFILE'

我使我的测试文件夹可写(我使用Ubuntu作为环境)。有人可以解释如何在CSV文件中导出表格,或者如何修改我的命令shell以便工作?谢谢!

2 个答案:

答案 0 :(得分:6)

所有这些INTO OUTFILE--tab=tmpfile答案的问题在于它需要在与MySQL服务器相同的服务器上运行 mysqldump 。 / p>

我的解决方案只是将mysql(NOT mysqldump)与-B参数一起使用,用-e内联SELECT语句,然后用{{跟踪ASCII输出1}},最后用CSV包括标题字段行:

示例:

sed
  

" ID""登录""密码""夹""电子邮件"   #&34; 8""黑云杉"" 57d40c8a954bc9e65f401592062019b1457be359""黑云杉"""   " 3"" squaredesign"" b01134fac01dab765bcb55ab0ca33f9ec2885a7b"" squaredesign"" mkobylecki@squaredesign.com"   #&34; 4"" miedziak"" 601f1889667efaebb33b8c12572835da3f027f78"" miedziak"" miedziak@mail.com"   " 5""萨科"" 480225f1ac707031bae300f3f5b06dbf79ed390e""萨科"""   " 6"" Logitrans   波兰"" 9033b6b3c4acbb27418d8b0b26f4c880ea6dea22"" LogitransPoland"""   " 7""摩"" 50f5604164db2d5ff0e984f973d2202d5358b6a6""摩"""   " 9""安娜贝勒"" 07e832cb64e66fa03c13498a26a5f8e3bdebddf1""安娜贝勒"""   " 11"," Brandfathers和   儿子"" f08b194668249e4cb81fbb92df846e90569f5c01"" BrandfathersAndSons"""   " 12""想象   组"" e86f1645504c7d5a45ed41d16ecc39ed19181773"" ImagineGroup"""   " 13"" EduSquare.pl"" 80c3c099f4ecc043a19f1527400d63588567a0ad"" EduSquare.pl"""   " 101"" TMP"" b01134fac01dab765bcb55ab0ca33f9ec2885a7b"" _"" WOBC-14.squaredesign.atlassian.net @ yoMama.com"

在该一行的末尾添加 mysql -B -u username -ppassword database -h dbhost -e "SELECT * FROM accounts;" |sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" ,以获取您的CSV文件。

答案 1 :(得分:5)

查看此链接。它显示了将表导出到csv文件的替代方法。

Export CSV directly from MySQL

我希望这有用。