MySQL可能正在将文件写入其自己的数据目录,如/var/lib/mysql /< databasename>例如。要指定路径,请使用完整路径。
但是,它必须是可由MySQL服务器守护程序运行的用户帐户写入的目录。因此,我经常使用/ tmp:
指定要写入的路径,如:
INTO OUTFILE '/tmp/mydata.csv'
请注意,MySQL将在MySQL服务器上写入文件,而不是在客户端计算机上。因此,远程连接将在远程服务器上创建输出文件。有关更多详细信息和解决方法,请参阅SELECT INTO OUTFILE local ?。
系统& Linux
有关在运行systemd的Linux系统上写入/ tmp的注意事项:
几年后,最初发布此,我发现我无法找到写入/ tmp通过文件
...INTO OUTFILE '/tmp/outfile.csv'
在运行Fedora Linux with systemd的MariaDB 5.5服务器上。不是按照指定将文件直接写入/tmp/outfile.csv,而是在/ tmp中的systemd目录下创建该目录和文件:
/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv
虽然文件outfile.csv本身和tmp /子目录都创建为世界可写,但systemd服务目录本身有700个权限,并且是root用户,需要sudo访问来检索其中的文件。
不是将MariaDB中的绝对路径指定为/tmp/outfile.csv并将其相对指定为outfile.csv,而是将文件按预期写入MariaDB的当前选定数据库的数据目录中。