2016-12-23 115 views
0

Linux。沒有SELinux(禁用)。 我試着爲我linuxuser運行此命令(組的mysql的成員):mysqldump:執行'SELECT INTO OUTFILE'時出現錯誤:1:「無法創建/寫入文件'* .txt'(Errcode:13」Permission denied「)」

mysqldump --user=root --tab "/some/folder" dbname

收到此錯誤:

mysqldump: Got error: 1: "Can't create/write to file 'sometable.txt' (Errcode: 13 "Permission denied")" when executing 'SELECT INTO OUTFILE'

如果我看的文件夾中,有一個sometable.sql文件,但沒有txt文件。 據我所知,sql文件是從運行該命令的用戶名(在我的情況下爲linuxuser)創建的,但txt文件是由mysql服務器(本例中爲mysql用戶)生成的。請注意,mysql用戶也是mysql組的成員。

可能是什麼問題?試了一切:)

+2

這可能是一個簡單的權限問題,你可以通過確認文件模式'777 /一些/如果mysql仍然無法寫入數據文件,請檢查父目錄權限。 – siloko

+0

是的,謝謝。我認爲這是由於父文件夾權限。 – ACV

回答

0

解決的辦法是將"some/folder"更改爲外部位置。看起來有權限問題,因爲最初提到的文件夾在Perforce root下,可能只有只讀權限。

然後我換了新的文件夾權限:

mylinuxuser:mysql

確保,無論是用戶與該進程啓動,以及MySQL服務器寫入權限那裏。這是因爲sql文件是從用戶名寫入的,而txt文件是從mysql服務器的名稱寫入的。

我還將我的用戶添加到mysql組。

-1

了什麼工作對我來說(在Windows),嘗試使用導出文件:

SELECT * INTO OUTFILE 'C:/documents/dumps' from file 
  1. MySQL的服務屬性 - >登錄:需要定義筆記帳戶。
  2. 目錄C:\文件\轉儲 - >屬性 - >安全性:上述需要定義帳戶的讀/寫權限
+0

這是操作系統權限相關問題 –

相關問題