GNU/Linux >> Belajar Linux >  >> Linux

Kesalahan Akses ditolak membutuhkan hak PROSES [MySQL]

Saya mencoba mencadangkan database menggunakan perintah dump MySQL, namun, perintah tersebut gagal dengan pesan kesalahan 'Error:Access Deny; Anda memerlukan (setidaknya satu dari) hak PROCESS untuk operasi ini' . Berikut pesan kesalahan lengkapnya.

$ mysqldump -u dbuser -p tg_db > tg_db.sql
Enter password:
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

Saya telah membuang database seperti ini selama bertahun-tahun dan perintah tiba-tiba gagal. Bagaimana saya mengatasi kesalahan ini? Ini dia.

Perbaiki Kesalahan:Akses ditolak; Anda memerlukan (setidaknya satu dari) hak PROCESS untuk operasi ini

Yang saya lakukan hanyalah menambahkan ‘--no-tablespaces ' ke perintah seperti yang ditunjukkan di bawah ini:

$mysqldump -u dbuser -p tg_db --no-tablespaces > tg_db.sql

Dan itu berhasil. Jadi apa itu --no-tablespaces opsi dan mengapa saya harus menambahkannya?

Nah, perubahan ini terjadi dari MySQL versi 5.7.31+ dan versi yang terinstal di server saya adalah 8.0.23. Menurut dokumentasi,

mysqldump membutuhkan setidaknya hak istimewa SELECT untuk tabel yang dibuang, SHOW VIEW untuk tampilan yang dibuang, TRIGGER untuk pemicu yang dibuang, LOCK TABLES jika opsi –transaksi tunggal tidak digunakan, dan (mulai MySQL 8.0.21) PROCESS jika –no-tablespaces pilihan tidak digunakan. Opsi tertentu mungkin memerlukan hak istimewa lain seperti yang tercantum dalam deskripsi opsi.

Lihat juga opsi –no-tablespaces. Opsi ini menghapus CREATE LOGFILE GROUP dan CREATE TABLESPACE pernyataan dari output.

Tapi kenapa PROCESS hak istimewa diperlukan untuk mysqldump memerintah? Karena mysqldump mencoba mengakses INFORMATION_SCHEMA.FILES tabel yang membutuhkan hak PROCESS. Nah, hak istimewa dapat ditambahkan melalui GRANT pada tingkat global, atau satu database atau tabel. Tapi PROCESS hak istimewa perlu ditambahkan pada tingkat global seperti yang ditunjukkan di bawah ini.

GRANT PROCESS ON *.* TO user@localhost;

Mengapa kesalahan ini tidak ditampilkan untuk semua pengguna? Pengguna root MySQL tidak terpengaruh, jelas. Perilaku ini mungkin berbeda untuk pengguna lain berdasarkan tingkat hak istimewa mereka.


Linux
  1. Cara Memperbaiki Kesalahan – ModSecurity:Akses ditolak dengan kode 44 [Apache]

  2. Linux – Blokir Akses Jaringan Suatu Proses?

  3. Ubuntu – Bagaimana Mengatasi Kesalahan “mount.nfs:Access Denied By Server”?

  1. MySQL - ERROR 1045 - Akses ditolak

  2. mysql (mariadb) ERROR 1698 (28000):Akses ditolak untuk pengguna 'root'@'localhost'

  3. Apakah saya benar-benar membutuhkan chmod rekursif untuk membatasi akses ke folder?

  1. pip freeze mengembalikan kesalahan:Izin ditolak:hg

  2. KESALAHAN:Akses Ditolak Saat Mencoba Mengakses Pengelola File di Panel Kontrol Plesk

  3. mount error(13):Izin ditolak dengan windows share