命令行MySQL查询将输出导出到文件在Windows中不起作用

时间:2018-08-04 13:29:52

标签: mysql sql windows

mysql的版本为mysql Ver 14.14 Distrib 5.5.53, for Win64 (AMD64)

运行以下命令后,输出仍将到达stdout

mysql -uroot -proot DBinstance

select * from tablename\G INTO OUTFILE 'c:\users\12345\Downloads\some_non_existingfile'

上述命令有什么问题?

编辑:

重新更正select查询后,出现以下错误:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv opti on so it cannot execute this statement

mysql> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv | NULL  |
+------------------+-------+
1 row in set (0.00 sec)

当前G:\..\mysql> dir的文件夹为bindatalibscriptstmp

1 个答案:

答案 0 :(得分:1)

删除\ G标志。

select * from tablename INTO OUTFILE 'c:\users\12345\Downloads\some_non_existingfile'

您还需要确保 MySQL服务器未使用--secure-file-priv选项运行

允许将输出写入文件夹 通过添加/修改以下行来添加或修改mysql配置文件(my.ini)。

secure-file-priv = ""

secure-file-priv = "FOLDER-PATH-OF-YOUR-CHOICE"

然后使用重新启动mysql服务器

net stop mysql
net start mysql

有关设置的小信息

如果为空,则该变量无效。

如果设置为目录名,则服务器将限制导入和导出操作,使其仅适用于该目录中的文件。该目录必须存在;服务器将不会创建它。

如果设置为NULL,则服务器将禁用导入和导出操作。从MySQL 5.7.6开始允许使用此值。