I'm trying to run the following on a MySQL database:
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';
I get the error:
SQL Error (1290): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
When I run the following:
mysql> SELECT @@secure_file_priv;
I get:
+------------------------------------------------+
| @@secure_file_priv |
+------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\ |
+------------------------------------------------+
So why is it not exporting the file even though I am using the set --secure-file-priv location?
I am used to MSSQL and new to MySQL.
In my case (Windows):
In my.ini, set
secure_file_priv=""
Use double back slash in the path like below:
Argh. It was a freakin' typo, my \'s should have been /'s
So my query is now this:
It is important to use path location mentioned in:
If you will use customized path location, you will still get this error. As mentioned by Lateralus, don't forget to change path to forward slashes.
This worked for me. It needs double backslash and if you are trying any tools in between to connect to mysql simply add escape chars.