SORU
6 Mayıs 2010, PERŞEMBE


Ne DOSYASI İÇİNE SEÇİN ile Errcode 13 MySQL kurtulmak miyim?

Csv dosyası kullanarak bir MySQL DOSYASI ifadesine SEÇMEK için bir tablo içeriğini dökümü için çalışıyorum. Eğer yaparsam:

SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;

dosyası.csv bu veritabanı saklanan dosyaları aynı dizine sunucu üzerinde oluşturulur.

Benim sorgu için değiştirdim, ancak:

SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;

Anlıyorum:

ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)

Errcode 13 izinleri ile ilgili bir hata olduğunu, ama eğer /veri sahipliği:mysql ve 777 izinleri vermek değiştirirsem ben bile anladım. MySQL kullanıcı olarak çalışıyor"". mysql

Garip bir şekilde /tmp dosyayı, sadece başka bir dizin oluşturabilirsiniz denedim, izinleri kullanıcı mysql dizinine yazmak gerekir böyle bir set bile.

Bu MySQL 5.0.75 Ubuntu üzerinde çalışıyor.

CEVAP
7 HAZİRAN 2010, PAZARTESİ


Hangi versiyonunu Ubuntu bu ve bu Server Edition Ubuntu mi?

Son Ubuntu Server Sürümleri (10.04) AppArmor ile gemi ve MySQL profili varsayılan modu zorlama olabilir. Böyle sudo aa-status yürüterek bu kontrol edebilirsiniz:

# sudo aa-status
5 profiles are loaded.
5 profiles are in enforce mode.
   /usr/lib/connman/scripts/dhclient-script
   /sbin/dhclient3
   /usr/sbin/tcpdump
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/sbin/mysqld
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode :
   /usr/sbin/mysqld (1089)
0 processes are in complain mode.

Eğer kullanın modu zorlamak dahil ise, o zaman yazma muhtemelen inkar. Girişleri de AppArmor blok/erişir yazar /var/log/messages yazılı olurdu. Ne yapabilirim /etc/apparmor.d/usr.sbin.mysqld ve düzenleme: dibe yakın /data/ /data/* ekleyin

...
{ . /usr/sbin/kullanın ^br> ...
/var/log/mysql/ r
/* rw. /var/log/mysql ^br> /var/run/mysqld/mysqld.pıd w,
/var/run/mysqld/mysqld.w çorap
r, . /data/ ^br> /* rw. /veri
}

Ve sonra AppArmor profilleri yeniden yapmak.

# sudo /etc/init.d/apparmor reload

UYARI: MySQL ve /okumak ve yazmak için izin verir yukarıdaki değişiklik veri dizini. Zaten bu güvenlik uygulamalarını kabul ettik umuyoruz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • audivila

    audivila

    5 HAZİRAN 2009
  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • MisterBrightside

    MisterBright

    24 Mart 2006