GNU/Linux >> Tutoriels Linux >  >> Linux

Erreur Accès refusé nécessite le privilège PROCESS [MySQL]

J'essayais de sauvegarder la base de données à l'aide de la commande MySQL dump, cependant, la commande a échoué avec un message d'erreur 'Erreur :Accès refusé; vous avez besoin d'au moins un des privilèges PROCESS pour cette opération' . Voici le message d'erreur complet.

$ 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

J'ai vidé la base de données comme ça pendant de nombreuses années et la commande a soudainement échoué. Comment ai-je résolu cette erreur ? C'est parti.

Correction d'erreur :accès refusé ; vous avez besoin d'au moins un des privilèges PROCESS pour cette opération

Tout ce que j'ai fait a été d'ajouter '--no-tablespaces ‘ à la commande comme indiqué ci-dessous :

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

Et cela a fonctionné. Alors qu'est-ce que --no-tablespaces option et pourquoi devrais-je l'ajouter ?

Eh bien, ce changement s'est produit à partir de la version MySQL 5.7.31+ et la version installée sur mon serveur était la 8.0.23. Selon la documentation,

mysqldump nécessite au moins le privilège SELECT pour les tables vidées, SHOW VIEW pour les vues vidées, TRIGGER pour les déclencheurs vidés, LOCK TABLES si l'option –single-transaction n'est pas utilisée, et (à partir de MySQL 8.0.21) PROCESS si le –no-tablespaces option n'est pas utilisée. Certaines options peuvent nécessiter d'autres privilèges, comme indiqué dans les descriptions des options.

Jetez également un œil à l'option –no-tablespaces. Cette option supprime le CREATE LOGFILE GROUP et CREATE TABLESPACE déclarations de la sortie.

Mais pourquoi PROCESS le privilège est requis pour mysqldump commande? Parce que mysqldump essaie d'accéder à INFORMATION_SCHEMA.FILES table qui requiert le privilège PROCESS. Eh bien, les privilèges peuvent être ajoutés via GRANT au niveau global, ou une seule base de données ou table. Mais le PROCESS le privilège doit être ajouté au niveau global, comme indiqué ci-dessous.

GRANT PROCESS ON *.* TO user@localhost;

Pourquoi cette erreur ne s'affiche-t-elle pas pour tous les utilisateurs ? L'utilisateur root de MySQL n'est évidemment pas affecté. Le comportement peut être différent pour les autres utilisateurs en fonction de leurs niveaux de privilège.


Linux
  1. ERREUR :Accès refusé lors de la tentative d'accès au gestionnaire de fichiers dans le panneau de configuration de Plesk

  2. Correction d'une erreur SSH d'autorisation refusée (clé publique) sous Linux

  3. MySQL - ERREUR 1045 - Accès refusé

  4. ERREUR 1045 (28000) :Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe :OUI)

  5. Erreur Android Studio 13 =autorisation refusée sous Linux

Comment résoudre l'erreur MySQL :Accès refusé pour l'utilisateur [protégé par e-mail]

[Résolu] Impossible d'accéder au fichier de stockage, autorisation refusée Erreur dans KVM Libvirt

Dépannage :Erreur MySQL/MariaDB #1044 Е Accès refusé pour l'utilisateur

Correction de HTTP Basic :accès refusé et erreur d'échec d'authentification fatale avec GitLab

Bloquer l'accès réseau d'un processus ?

erreur de montage 13 =Autorisation refusée