GNU/Linux >> Linux Esercitazione >  >> Linux

Errore Accesso negato necessita del privilegio PROCESSO [MySQL]

Stavo cercando di eseguire il backup del database utilizzando il comando MySQL dump, tuttavia, il comando non è riuscito con un messaggio di errore "Errore:accesso negato; è necessario (almeno uno dei) privilegi PROCESS per questa operazione' . Ecco il messaggio di errore completo.

$ 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

Ho scaricato il database in questo modo per molti anni e il comando è fallito all'improvviso. Come ho risolto questo errore? Eccoci.

Correzione errore:accesso negato; è necessario (almeno uno dei) privilegi PROCESS per questa operazione

Tutto quello che ho fatto è stato aggiungere "--no-tablespaces ' opzione al comando come mostrato di seguito:

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

E ha funzionato. Allora cos'è --no-tablespaces opzione e perché dovrei aggiungerla?

Bene, questo cambiamento è avvenuto dalla versione MySQL 5.7.31+ e la versione installata sul mio server era 8.0.23. Secondo la documentazione,

mysqldump richiede almeno il privilegio SELECT per le tabelle scaricate, SHOW VIEW per le viste scaricate, TRIGGER per i trigger scaricati, LOCK TABLES se l'opzione –single-transaction non viene utilizzata e (a partire da MySQL 8.0.21) PROCESS se –no-tablespaces l'opzione non è utilizzata. Alcune opzioni potrebbero richiedere altri privilegi, come indicato nelle descrizioni delle opzioni.

Dai un'occhiata anche all'opzione –no-tablespaces. Questa opzione rimuove il CREATE LOGFILE GROUP e CREATE TABLESPACE dichiarazioni dall'output.

Ma perché PROCESS il privilegio è richiesto per mysqldump comando? Perché mysqldump tenta di accedere a INFORMATION_SCHEMA.FILES tabella che richiede il privilegio PROCESS. Bene, i privilegi possono essere aggiunti tramite GRANT a livello globale, o un singolo database o tabella. Ma il PROCESS il privilegio deve essere aggiunto a livello globale come mostrato di seguito.

GRANT PROCESS ON *.* TO user@localhost;

Perché questo errore non viene visualizzato per tutti gli utenti? L'utente root MySQL non è interessato, ovviamente. Il comportamento potrebbe essere diverso per gli altri utenti in base ai loro livelli di privilegi.


Linux
  1. ERRORE 1045 (28000):accesso negato per l'utente 'root'@'localhost' (utilizzando la password:YES)

  2. Errore Android Studio 13=autorizzazione negata in Linux

  3. mysql (mariadb) ERRORE 1698 (28000):accesso negato per l'utente 'root'@'localhost'

  4. Ho davvero bisogno di chmod ricorsivo per limitare l'accesso a una cartella?

  5. errore di montaggio (13):autorizzazione negata con la condivisione di Windows

Come risolvere l'errore MySQL:accesso negato all'utente [e-mail protetta]

[Risolto] Impossibile accedere al file di archiviazione, autorizzazione negata Errore in KVM Libvirt

Risoluzione dei problemi:errore MySQL/MariaDB n. 1044 e n. 1045 accesso negato all'utente

Correzione dell'errore SSH di autorizzazione negata (chiave pubblica) in Linux

Correzione di HTTP Basic:accesso negato e errore di autenticazione irreversibile con GitLab

MySQL - ERRORE 1045 - Accesso negato