在mysql中能夠使用 select[列名] from table [where 語句] into outfile '目標文件' [option] 將一張表的內容導出到外部文件中。可是mysql
select * from pmx.score into outfile '~/score.sql'; ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
執行時卻報錯了。。。好了,問題拋出來,下面開始庖丁解牛。sql
1.mysql服務能夠在沒有配置文件的狀況下運行,此時系統變量爲默認值ide
使用 "show variables like 變量名" 查看具體變量值this
2.MAMP中的mysql是沒有配置文件的,全局搜索不到my.cnfspa
3.rest
mysqld --verbose --help|grep -A 1 'Default options' 2018-08-03 16:12:17 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path. 2018-08-03 16:12:17 0 [Note] mysqld (mysqld 5.6.38) starting as process 18398 ... 2018-08-03 16:12:17 18398 [Warning] Setting lower_case_table_names=2 because file system for /Applications/MAMP/db/mysql56/ is case insensitive 2018-08-03 16:12:17 18398 [Note] Plugin 'FEDERATED' is disabled. Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf ~/.my.cnf 2018-08-03 16:12:17 18398 [Note] Binlog end 2018-08-03 16:12:17 18398 [Note] Shutting down plugin 'MyISAM' 2018-08-03 16:12:17 18398 [Note] Shutting down plugin 'CSV'
注意列出的my.cnf路徑,mysqld會按照如上順序尋找my.cnf。若是四個路徑都沒有找到,則使用默認值來初始化系統變量code
4.根據第二條mamp的mysql沒有配置文件,爲了自定義系統變量咱們能夠手動建立一個my.cnf文件,放到任意一個上面的路徑下。我選擇放到MAMP/conf文件夾下server
5.對於不熟悉配置文件的同窗來講,爲了不書寫有誤,最好是能拷貝一份現成的配置文件。MAMP提供了Library/support-files/my-default.cnf文件。能夠將該文件拷貝到conf文件夾下,必須重命名爲my.cnfblog
6.it
show variables like 'secure_file_priv'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | secure_file_priv | NULL | +------------------+-------+
系統變量"secure_file_priv"指定了mysqld可否導出表
當secure_file_priv值爲null,表示禁止導入導出
當secure_file_priv值爲某個文件夾,表示限制導入導出僅能發生在特定文件夾下
當secure_file_priv值爲空,表示隨便導,愛咋咋地
7.修改my.cnf內容,在mysqld一欄下,添加內容
8.保存my.cnf,而後必須重啓mysqld,使配置生效