GNU/Linux >> Znalost Linux >  >> Linux

Chyba Přístup odepřen, potřebujete oprávnění PROCESS [MySQL]

Zkoušel jsem zálohovat databázi pomocí příkazu MySQL dump, ale příkaz selhal s chybovou zprávou ‘Chyba:Přístup odepřen; pro tuto operaci potřebujete (alespoň jedno) oprávnění PROCESS’ . Zde je úplná chybová zpráva.

$ 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

Databázi jsem takto vyhazoval mnoho let a příkaz najednou selhal. Jak jsem vyřešil tuto chybu? Tady to je.

Opravit chybu:Přístup odepřen; pro tuto operaci potřebujete (alespoň jedno) oprávnění PROCESS

Vše, co jsem udělal, bylo přidat „--no-tablespaces ‘ možnost k příkazu, jak je uvedeno níže:

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

A to fungovalo. Co je tedy --no-tablespaces možnost a proč bych ji měl přidat?

Tato změna nastala od verze MySQL 5.7.31+ a verze nainstalovaná na mém serveru byla 8.0.23. Podle dokumentace

mysqldump vyžaduje alespoň oprávnění SELECT pro dumpingové tabulky, SHOW VIEW pro dumpingové pohledy, TRIGGER pro dumpingové spouštěče, LOCK TABLES, pokud není použita volba –single-transaction, a (od MySQL 8.0.21) PROCESS, pokud –no-tablespaces možnost se nepoužívá. Některé možnosti mohou vyžadovat jiná oprávnění, jak je uvedeno v popisech možností.

Podívejte se také na možnost –no-tablespaces. Tato možnost odebere CREATE LOGFILE GROUP a CREATE TABLESPACE výpisy z výstupu.

Ale proč PROCESS pro mysqldump je vyžadováno oprávnění příkaz? Protože mysqldump pokusí o přístup k INFORMATION_SCHEMA.FILES tabulka, která vyžaduje oprávnění PROCESS. Oprávnění lze přidat pomocí GRANT na globální úrovni, nebo jednu databázi či tabulku. Ale PROCESS oprávnění je třeba přidat na globální úrovni, jak je uvedeno níže.

GRANT PROCESS ON *.* TO user@localhost;

Proč se tato chyba nezobrazuje všem uživatelům? Uživatel root MySQL samozřejmě není ovlivněn. Chování ostatních uživatelů se může lišit podle úrovně jejich oprávnění.


Linux
  1. Linux – Blokovat síťový přístup procesu?

  2. Ubuntu – Jak vyřešit chybu „mount.nfs:Přístup odepřen serverem“?

  3. CHYBA:Přístup odepřen při pokusu o přístup do Správce souborů v ovládacím panelu Plesk

  1. Opravit Permission denied (publicky) Chyba SSH v Linuxu

  2. mysql (mariadb) ERROR 1698 (28000):Přístup odepřen uživateli 'root'@'localhost'

  3. Opravdu potřebuji rekurzivní chmod k omezení přístupu ke složce?

  1. Jak opravit chybu – ModSecurity:Přístup odepřen s kódem 44 [Apache]

  2. mount error(13):Oprávnění odepřeno se sdílením systému Windows

  3. Potřebuje můj Oracle DBA přístup root?