我想在MySQL数据库上运行以下命令
SELECT * FROM mysql.db
INTO OUTFILE "C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\db.csv"
FIELDS TERMINATED BY '|'
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Run Code Online (Sandbox Code Playgroud)
我收到了错误
SQL Error (1290): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
Run Code Online (Sandbox Code Playgroud)
当我运行以下
mysql> SELECT @@secure_file_priv;
Run Code Online (Sandbox Code Playgroud)
我明白了
+------------------------------------------------+
| @@secure_file_priv |
+------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\ |
+------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
那么,即使我使用set -secure-file-priv位置,为什么不导出文件呢?
我习惯于MSSQL和MySQL的新手.
先感谢您 :)
来自此文档:https://mariadb.com/kb/en/library/select-into-outfile/
我跑了
MariaDB []> select ... into outfile 'leads_ny.csv';
Query OK, 6674 rows affected (0.47 sec)
Run Code Online (Sandbox Code Playgroud)
现在我找不到该文件了。我查看了当前的工作目录、我启动的目录mysql
、我的主目录,我什至find
在每个目录上运行过,但我找不到它。我目前正在跑步$ find / -name leads_ny.csv
。
mysql 版本 15.1 Distrib 10.1.30-MariaDB
我无法在 WINDOWS10(MySQL80 服务)上使用 mysqldump 将制表符分隔的文本文件写入指定的 TSV/ 文件夹。
secure-file-priv =""
在my.ini
MySQL 配置文件中。root
用户名。命令是:
mysqldump -T C:\Users\...\20200430_Dump\TSV\ --user root -p database_name
输出:
mysqldump:出现错误:1:执行“SELECT INTO OUTFILE”时,无法创建/写入文件“C:\Users...\20200430_Dump\TSV\table_name.txt”(操作系统错误号 13 - 权限被拒绝)。
他们有很多关于 LINUX 的相关帖子,但我专门寻找WINDOWS的解决方案
我的小假设:一些 Linux 帖子建议 mysqld 使用特定的用户帐户(似乎mysql
在 Linux 中,但遗憾的是没有针对任何操作系统进行记录)。所以我想象当服务器执行时INTO OUTFILE
查询时他需要拥有 TSV/ 文件夹的权限,但我不知道如何在 WINDOWS 中给他这个权限。
最好的