INTO OUTFILE 구문 사용

쿼리시 INTO OUTFILE 구문을 사용하여 결과를 파일로 저장

SELECT order_id,product_name,qty FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
CODE


Access denied 처리

다음과  같은 에러가 날 경우 FILE 권한을 Grant

ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)

 GRANT FILE ON *.* TO 'kccfres'@'localhost';
SQL


secure-file-priv 처리

아래와 같은 에러가 나고 저장이 안 될 때

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


  1. Mysql client 로 연결후 SHOW variable 로 MySQL 환경 변수 확인

    mysql> SHOW VARIABLES LIKE "secure_file_priv";
    +------------------+-----------------------+
    | Variable_name    | Value                 |
    +------------------+-----------------------+
    | secure_file_priv | /var/lib/mysql-files/ |
    +------------------+-----------------------+
    1 row in set (0.02 sec)
    CODE
  2. INTO OUTFILE 의 저장 경로를 위의 secure_file_priv 폴더로 변경 

    1. INTO OUTFILE '/tmp/orders.csv' →  INTO OUTFILE '/var/lib/mysql-files/orders.csv' 

  3. 쿼리 재실행