mysqldump: Got error: 1: Can't create/write to file '/data/export/test.txt' (Errcode: 13)

問題

需要將數據已csv格式導出到/data/export/路徑下,遇到問題:
mysqldump: Got error: 1: Can’t create/write to file ‘/data/export/test.txt’ (Errcode: 13) when executing ‘SELECT INTO OUTFILE’

分析

環境
OS: Ubuntu 14.04 LTS
MySQL: 5.6.x #datadir=/data/mysql

通過mysqldump -T 導出的數據是兩個文件,數據表結構我test.sql,數據文件爲test.txt。導出過程中,test.sql創建成功了,但是test.txt文件提示不能寫入,實際也沒有創建。
於是,檢查權限,將/data/export修改爲mysql:mysql還是報錯。
這是因爲ubuntu安全機制的原故。apparmor對於mysqld默認沒有配置路徑/data/export/的訪問權限。這個導出,test.sql是mysqldump來完成的,成功創建,但是,test.txt是通過mysqld的select into outfile來完成,所以因爲沒有權限,無法創建。

解決方案

  1. 修改/etc/apparmor.d/mysqld
    vim /etc/apparmor.d/mysqld

  2. 增加
    /data/export/** rw,

  3. 重新載入配置
    /etc/init.d/apparmor reload

  4. 再次導出即可。


Wait for your reward

這裏寫圖片描述 這裏寫圖片描述 這裏寫圖片描述 這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章