有任何想法吗? SELECT * INTO OUTFILE '/home/myacnt/docs/mysqlCSVtest.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '*' LINES TERMINATED BY '\n' FROM tbl_property WHERE managerGroupID = {$managerGroupID} 错误: Access denied for user 'asdfsdf'@'localhost' (using password: YES)
在使用MySQL INTO OUTFILE时,是否可以包含标题?
我有一个时间表的数据库表与一些常见的feilds。 id, client_id, project_id, task_id, description, time, date 有更多,但那是它的要点。 我在该表上运行一个导出到CSV文件的导出,以便为用户提供其数据的备份。 它也被用来作为一个macrosExcel文件的数据导入与一些自定义报告。 这一切都与我一起循环使用php的时间表,并打印到一个文件的行。 问题是一个大的数据库可能需要几个小时才能运行,这是不可接受的。 所以我用MySQL INTO OUTFILE命令重写了它,并将其减less到几秒钟,以便运行,这非常棒。 现在的问题是我似乎无法逃避描述字段中的所有新行字符等。 真的,用户可以在这里input潜在的任何字符组合,包括回车/换行。 这是我有的MySQL代码片段: SELECT id, client, project, task, REPLACE(REPLACE(ifnull(ts.description,''),'\n',' '),'\r',' ') AS description, time, date INTO OUTFILE '/path/to/file.csv' FIELDS ESCAPED BY '""' TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM …. 但… 当我尝试查看输出文件的源代码时,文件中仍然存在换行符,因此Excel的CSV导入将打破Excel向导创build的所有花式macros和数据透视表。 任何关于最佳行动的想法?
我正在尝试使用MySQL SELECT INTO OUTFILE语句将表的内容转储到csv文件。 如果我做: SELECT column1, column2 INTO OUTFILE 'outfile.csv' FIELDS TERMINATED BY ',' FROM table_name; outfile.csv将在服务器上的这个数据库的文件存储在同一个目录下被创build。 但是,当我将我的查询更改为: SELECT column1, column2 INTO OUTFILE '/data/outfile.csv' FIELDS TERMINATED BY ',' FROM table_name; 我得到: ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13) Errcode 13是一个权限错误,但即使我将/ data的所有权更改为mysql:mysql,并给予它777权限,我也可以得到它。 MySQL以用户“mysql”运行。 奇怪的是我可以在/ tmp中创build文件,而不是在我试过的任何其他目录下,即使设置了权限,以使用户mysql应该能够写入目录。 这是在Ubuntu上运行的MySQL 5.0.75。