GNU/Linux >> Linux の 問題 >  >> Linux

エラーアクセス拒否にはPROCESS特権が必要です[MySQL]

MySQLのdumpコマンドを使用してデータベースをバックアップしようとしましたが、コマンドが失敗し、エラーメッセージ「エラー:アクセスが拒否されました。この操作には(少なくとも1つの)PROCESS特権が必要です。 。これが完全なエラーメッセージです。

$ 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

私は何年もの間このようなデータベースをダンプしてきましたが、コマンドが突然失敗しました。このエラーをどのように解決しましたか?どうぞ。

修正エラー:アクセスが拒否されました。この操作には(少なくとも1つの)PROCESS特権が必要です

私がしたのは、「--no-tablespaces」を追加することだけでした 以下に示すように、コマンドの‘オプション:

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

そしてそれはうまくいった。つまり、--no-tablespacesとは何ですか オプションと、なぜそれを追加する必要があるのですか?

この変更はMySQLバージョン5.7.31+から発生し、サーバーにインストールされているバージョンは8.0.23でした。ドキュメントによると、

mysqldump 少なくとも、ダンプされたテーブルにはSELECT権限、ダンプされたビューにはSHOW VIEW、ダンプされたトリガーにはTRIGGER、–single-transactionオプションが使用されていない場合はLOCK TABLES、(MySQL 8.0.21以降)–no-tablespacesの場合はPROCESSが必要です。オプションは使用されません。オプションの説明に記載されているように、特定のオプションには他の特権が必要な場合があります。

–no-tablespacesオプションも確認してください。このオプションは、CREATE LOGFILE GROUPを削除します およびCREATE TABLESPACE 出力からのステートメント。

しかし、なぜPROCESS mysqldumpには特権が必要です 指図? mysqldumpのため INFORMATION_SCHEMA.FILESにアクセスしようとします PROCESS特権を必要とするテーブル。さて、特権はGRANTを介して追加できます グローバルレベル、または単一のデータベースまたはテーブル。しかし、PROCESS 以下に示すように、特権をグローバルレベルで追加する必要があります。

GRANT PROCESS ON *.* TO user@localhost;

このエラーがすべてのユーザーに表示されないのはなぜですか?明らかに、MySQLのrootユーザーは影響を受けません。他のユーザーの場合、特権レベルに基づいて動作が異なる場合があります。


Linux
  1. Linux –プロセスのネットワークアクセスをブロックしますか?

  2. Ubuntu –「mount.nfs:サーバーによってアクセスが拒否されました」エラーを解決する方法は?

  3. Linuxでのアクセスが拒否された(公開キー)SSHエラーを修正

  1. エラーを修正する方法– ModSecurity:コード44でアクセスが拒否されました[Apache]

  2. マウント エラー 13 =許可が拒否されました

  3. Oracle DBA には root アクセスが必要ですか?

  1. pipフリーズはエラーを返します:アクセスが拒否されました:hg

  2. エラー:Pleskコントロールパネルでファイルマネージャにアクセスしようとするとアクセスが拒否されました

  3. MySQL - エラー 1045 - アクセスが拒否されました