引言
最近在修改線上資料的時候,需要現將修改的資料繼續備份,但是線上客戶的伺服器是不能直接連接,而是通過了一台Bastion Host,這就說我們不能通過可視化用戶端直接連接mysql的,所以所有的操作都是需要通過sql語句的,下面看一下匯出的sql:
mysql> select count(1) from table into outfile '/tmp/test.xls';
直接在我們查詢的結果後面增加 into outfile '路徑即可',但是在開始的時候我後面添加的路徑不是 /tmp 而是/data 這樣執行以後拋出下面的錯誤:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
這是因為mysql設定的許可權,我們可以通過下面sql查看一下使用權限設定:
show variables like '%secure%';
匯出的資料必須是這個值的指定路徑才可以匯出,預設有可能是NULL就代表禁止匯出,所以需要設定一下;
我們需要在/etc/mysql/mysql.conf.d/mysqld.cnf 檔案的末尾進行設定,在末尾添加一句secure_file_priv="/"即可將資料匯出到任意目錄;
secure_file_priv
1、限制mysqld 不允許匯入 | 匯出
secure_file_prive=null
2、限制mysqld 的匯入 | 匯出 只能發生在/tmp/目錄下
secure_file_priv=/tmp/
3、不對mysqld 的匯入 | 匯出做限制
secure_file_priv
4、可以匯出至任意目錄
secure_file_priv="/"
這樣設定以後我們就可以,實現我們一些自訂的的匯出了!
相關文章:
MySQL查詢結果匯出到檔案的另類方法
通過命令列,怎麼把sql檔案匯入mysql中
相關視頻:
SQL入門教程手冊