Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable secure priv for data loading on MySQL

Tags:

I'm running MySQL 5.7 on a Windows 10 machine. I've read through all the SO threads on this topic and still haven't figured out how to get my data to load and get past this error:

Error Code: 1290. The MySQL server is running with the --secure-file-priv  option so it cannot execute this statement 

I have 1) checked the settings to change them to be able to load from the directory in which I've saved my dataset, 2) opened up MySQL as administrator and checked the command line and have confirmed that the secure file does indeed point to my directory, 3) and confirmed in the init file that it's pointing to the correct directory containing my file. I tried changing the location of the dataset so it would be in a new folder and confirmed it had been moved there with the above methods, and it still did not work.

Any and all help would be welcome, thank you.

like image 415
dataelephant Avatar asked Jun 02 '16 15:06

dataelephant


People also ask

How do I disable secure priv in MySQL?

To disable it, set the variable to a NULL value. This was successful. You have learned to configure secure-file-priv variable to fit your use case. Until next time, thanks for using our guide to solve “MySQL server is running with the –secure-file-priv” error when trying to load or save data.

How do I change the secure file priv in MySQL?

The secure_file_priv value is a read-only value, so you can't change it directly using SQL query. To change the value of secure_file_priv variable, you need to create a MySQL configuration file that sets the value of the variable under [mysqld] options.

How do I fix MySQL error 1290?

Fixing the MySQL error 1290 by reconfiguring and restarting Go to start menu and type services. msc then press Ctrl+Shift+Enter to run it as an administrator. Locate the MySQL service and double-click to open its properties dialog. Check the Path to Executable for the –defaults-file option to determine where my.

What does mysqld command do?

mysqld, also known as MySQL Server, is a single multithreaded program that does most of the work in a MySQL installation. It does not spawn additional processes. MySQL Server manages access to the MySQL data directory that contains databases and tables.


1 Answers

I can't reproduce the problem.

mysql> SELECT VERSION(); +-----------+ | VERSION() | +-----------+ | 5.7.13    | +-----------+ 1 row in set (0,00 sec)  mysql> SELECT @@GLOBAL.secure_file_priv; +---------------------------+ | @@GLOBAL.secure_file_priv | +---------------------------+ | NULL                      | +---------------------------+ 1 row in set (0,00 sec)  -- USE ...  mysql> LOAD DATA INFILE '/var/lib/mysql-files/myfile.csv'     -> INTO TABLE `test_files`     -> COLUMNS TERMINATED BY ',' ENCLOSED BY '\"'     -> LINES TERMINATED BY '\n'; ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 

Change file: /etc/mysql/my.cnf

[mysqld] . . . secure_file_priv=/var/lib/mysql-files/ . . . 

Restart MySQL.

mysql> SELECT @@GLOBAL.secure_file_priv; +---------------------------+ | @@GLOBAL.secure_file_priv | +---------------------------+ | /var/lib/mysql-files/     | +---------------------------+ 1 row in set (0,00 sec)  mysql> LOAD DATA INFILE '/var/lib/mysql-files/myfile.csv'     -> INTO TABLE `test_files`     -> COLUMNS TERMINATED BY ',' ENCLOSED BY '\"'     -> LINES TERMINATED BY '\n'; Query OK, 3 rows affected (0,00 sec) Records: 3  Deleted: 0  Skipped: 0  Warnings: 0 

See 6.1.4 Server System Variables :: secure_file_priv

like image 103
wchiquito Avatar answered Sep 28 '22 09:09

wchiquito