MySQL ERROR 1290 (HY000) --secure-file-priv option

后端 未结 9 1362
醉话见心
醉话见心 2020-11-30 03:19

I am trying to write the results of MySQL script to a text file using the following code in my script.

SELECT p.title, p.content, c.name FROM post p
LEFT JOI         


        
相关标签:
9条回答
  • 2020-11-30 03:42

    This is the example of my SQL that worked perfectly in WAMP SERVER (windows):

    SELECT display_name,user_email,user_registered FROM test_wp_users
    ORDER BY user_registered ASC
    INTO OUTFILE 'C:/wamp64/tmp/usersbyemail.csv'
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n';
    

    PS: Note that bars in path should be left-to-right to work perfectly in MYSQL.

    0 讨论(0)
  • 2020-11-30 03:58

    Ubuntu 16.04 (EASY): Find out where you are allowed to write

    mysql> SELECT @@GLOBAL.secure_file_priv;
    +---------------------------+
    | @@GLOBAL.secure_file_priv |
    +---------------------------+
    | /var/lib/mysql-files/     |
    +---------------------------+
    1 row in set (0.00 sec)
    

    Then, just write there

    mysql> SELECT * FROM train INTO OUTFILE '/var/lib/mysql-files/test.csv' FIELDS TERMINATED BY ',';
    Query OK, 992931 rows affected (1.65 sec)
    
    mysql>
    

    Mac OSX: Mysql installed via MAMP

    Find out where you are allowed to write

    mysql> SELECT @@GLOBAL.secure_file_priv;
    +---------------------------+
    | @@GLOBAL.secure_file_priv |
    +---------------------------+
    | NULL                      |
    +---------------------------+
    1 row in set (0.00 sec)
    

    NULL means you're screwed so you have to create the file "~/.my.cnf"

    Enable read/write for MySQL installed via MAMP (on Mac):

    1. open "MAMP" use spotlight
    2. click "Stop Servers"
    3. edit ~/.my.cnf (using vi or your favorite editor) and add the following lines:

      $ vi ~/.my.cnf

    [mysqld_safe]
    [mysqld]
    secure_file_priv="/Users/russian_spy/"
    
    1. click "Start Servers" (in MAMP window)

    Now check if it works:

    a. start mysql (default MAMP user is root, password is also root)

    $ /Applications/MAMP/Library/bin/mysql -u root -p 
    

    b. in mysql look at the white-listed paths

    mysql> SELECT @@GLOBAL.secure_file_priv;
    +---------------------------+
    | @@GLOBAL.secure_file_priv |
    +---------------------------+
    | /Users/russian_spy/          |
    +---------------------------+
    1 row in set (0.00 sec)
    

    c. Finally, test by exporting a table train into a CSV file

    mysql> SELECT * FROM train INTO OUTFILE '/Users/russian_spy/test.csv' FIELDS TERMINATED BY ',';
    Query OK, 992931 rows affected (1.65 sec)
    
    mysql>
    
    0 讨论(0)
  • 2020-11-30 03:58

    Replace "\" to "/" in your file path.

    Like this:

    INTO OUTFILE 'D:/MySql/mysqlTest.txt';
    
    0 讨论(0)
提交回复
热议问题