介於我們平時在使用MySQL導入導出數據很是頻繁,我特別搜集整理了一下,希望對小伙伴們有所幫助!
一、導出表文件
查詢表tb_user中的nickname,phone字段,導出到/tmp目錄下的test.csv文件。
SELECT nickname,phone FROM tb_user
INTO OUTFILE '/tmp/test.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n';
FIELDS TERMINATED BY ---- 字段終止字符
OPTIONALLY ENCLOSED BY ---- 封套符
LINES TERMINATED BY ---- 行終止符
特別注意:以上語句的導出經常會出現如下的錯誤
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement。
mysql> SHOW VARIABLES LIKE "secure_file_priv"; +------------------+-----------------------+ | Variable_name | Value | +------------------+-----------------------+ | secure_file_priv | /var/lib/mysql-files/ |
解決此方法:
一些版本的mysql對通過文件導入導出作了限制,默認不允許,
查看配置,執行mysql命令
SHOW VARIABLES LIKE "secure_file_priv";
如果value值為null,則為禁止,如果有文件夾目錄,則只允許改目錄下文件(測試子目錄也不行),如果為空,則不限制目錄;
修改配置可修改mysql配置文件,查看是否有
secure_file_priv =
這樣一行內容,如果沒有,則手動添加,
secure_file_priv = /home
表示限制為/home文件夾
secure_file_priv =
修改完配置文件后,重啟mysql生效
正常導出結果為:
mysql> SELECT nickname,phone FROM vwc_user_wechat INTO OUTFILE '/var/lib/mysql-files/test.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'; Query OK, 513 rows affected (0.01 sec)
未完待續........