我的SELECT ... INTO OUTFILE
聲明遇到了一些權限問題。在MySQL中創建/寫入權限
當我登錄到我的數據庫,並做了簡單的導出命令,例如:
mysql> select * from XYZ into outfile '/home/mropa/Photos/Desktop/TEST.txt';
我得到的迴應:
ERROR 1 (HY000):
Can't create/write to file '/home/mropa/Photos/Desktop/TEST.txt'
(Errcode: 13)
然而,當我簡單的寫:
mysql> select * from XYZ into outfile 'TEST.txt';
Query OK, 8287 rows affected (0.73 sec)
該文件被寫入目錄/var/lib/mysql/XYZ
。 我查看了文件/etc/apparmor.d/usr.sbin.mysqld
,其中mysql似乎定義了讀寫權限,但我不知道如何修改它。
我該如何給予我自己的權限,將mysql表導出到我喜歡的任何目錄中?
@dnagirl我通常使用命令「mysql -u mropa -p」啓動mysql,因此用戶是'mropa',它應該具有寫權限。你能否詳細闡述你的答案,我不完全理解它。謝謝。 – mropa 2010-02-15 21:08:46
@mropa:當你執行'mysql -u mropa -p'時,你並沒有啓動mysqld進程。你只是登錄到它。當您寫入outfile時,它不是您正在編寫的登錄用戶,而是mysqld進程。假設你以mropa的身份登錄到shell,然後以mydb_user的身份登錄到mysql。當你從mysql寫入outfile時,mropa和mydb_user都不會去做這件事。作者是mysqld進程的所有者。 – dnagirl 2010-02-15 21:16:35
很有幫助,謝謝! – mropa 2010-02-15 21:25:56