GNU/Linux >> Belajar Linux >  >> Linux

Izin SELECT INTO OUTFILE ditolak tetapi pengguna dapat menulis ke direktori

Ini mungkin disebabkan oleh izin pengguna mysql.

Seperti yang dinyatakan di sini https://dba.stackexchange.com/questions/17029/cannot-output-mysql-data-to-file

Untuk memberi diri Anda hak istimewa FILE, lakukan hal berikut:

  1. service mysql restart --skip-networking --skip-grant-tables
  2. mysql <hit enter>
  3. UPDATE mysql.user SET File_priv = 'Y' WHERE user='lea' AND host='localhost';
  4. exit
  5. service mysql restart

Pengguna linux bisa menulis file. Tetapi layanan mysql mungkin diblokir oleh apparmor.

Periksa file ini:/etc/apparmor.d/usr.sbin.mysqld .

Tambahkan folder proyek Anda di sana:

/usr/sbin/mysqld {
    [...]
    /home/datam/xfers/online/ r,
    /home/datam/xfers/online/* rw
    [...]
}

Terakhir, lakukan

sudo /etc/init.d/apparmor reload

Pada sistem modern, mariaDB &mysql diinstal dengan dukungan systemd. Antara lain, ia memiliki pengaturan ini di /etc/systemd/system/mysql.service:

Cegah mengakses /home, /root dan /run/user

ProtectHome=true

Itulah yang menghentikannya untuk menulis di /home.


Linux
  1. Tetapkan Akses Baca/Tulis ke Pengguna di Direktori Tertentu di Linux

  2. Izin Sudo Ditolak Tapi Su Memberikan Izin?

  3. Python – Tidak Ada File Atau Direktori Seperti Itu Tapi Saya Bisa Melihatnya!?

  1. Howto MySQL:Buat pengguna dan berikan izin ke database

  2. Apa tujuan dari pengguna "mysql.sys@localhost"?

  3. Tidak dapat menemukan .so di direktori yang sama dengan executable?

  1. SELinux:Tidak dapat menulis ke direktori "Config"! [OwnCloud]

  2. Perbedaan Antara Akun Pengguna dan Layanan?

  3. Mengapa Pengguna Root Membutuhkan Izin Sudo?