これは重複した質問だと思う前に、私はそれがやや曖昧なケースであっても一意であると信じています。MySQLデータベースから特権を削除する
数日前、私はUbuntu 10.04サーバーのMySQLバージョンを5.3.3にアップグレードしました(これは10.04のUbuntuリリースよりも先です)。今日は、何かのためにphpMyAdminにログインしようとしましたが、やや恐ろしいConnection for controluser as defined in your configuration failed
エラーを発見しました。
これを修正する方法に関するいくつかの質問から、私は固まってしまった。
- 私はreconfigure phpMyAdminにしようとしましたが、成功しませんでした。
- 私はuninstall phpMyadmin and reinstallにしようとしましたが、dbから権限を削除できず、失敗しました。
- その後私はユーザーのmanually remove the privilegesにやってみた。少しばかげて、データベースから追加して、次にdbを落としてから、ユーザー(
flush privileges
)を追加した。 - 私は、全体が(アプリケーションと/ etc/phpMyAdminのディレクトリを削除)と再インストール(apt-getを使用)完全にphpMyAdminののインストールを落としますが、phpMyAdminのユーザの権限がすでに存在していたと述べた:
granting access to database phpmyadmin for [email protected]: already exists
を
ここに私が残したものがあります。
mysql> show grants for 'phpmyadmin'@'localhost';
+-------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected] |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY PASSWORD '*46CFC7938B60837F46B610A2D10C248874555C14' |
| GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO 'phpmyadmin'@'localhost' |
+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.26 sec)
mysql> revoke usage on *.* from 'phpmyadmin'@'localhost';
ERROR 1141 (42000): There is no such grant defined for user 'phpmyadmin' on host 'localhost'
mysql> revoke usage on *.* from 'phpmyadmin'@'localhost' identified by 'trustno1';
ERROR 1141 (42000): There is no such grant defined for user 'phpmyadmin' on host 'localhost'
(私はもうこのパスワードを使用しない、心配、それが以前に使用されたパスワードであり、それは私が選んだのパスワードではありませんしないでください。私は、変更、また取り消すことはできません助成金を持っています新しいphpmyadminインストール用)。
これらの権限/特権を完全に削除するにはどうすればよいですか?私は必要があれば最初からやり直すことができてうれしいです(phpmyadmin、つまりdbではありません)。
これに続いて「特権を取らなければなりませんか? –
今日までこれを見ることができず、あなたの答えは特権問題を解決しました。ありがとうございました。しかし、私の 'あなたの設定で定義されたControluserのためのConnection failed 'エラーは残っていますが、これは別の問題です。 – Cyntech
'DROP USER'は、mysql.userテーブルとmysql.dbテーブルからユーザアクセスを完全に削除するために必要なものです。 'REVOKE'は、指定されたパーミッションのためにこれらのテーブルの一方または両方のパーミッションフラグを 'N'にトグルするだけですが、ユーザはそのままです。そして、はい、あなたは 'REVOKE'ステートメントの後で' FLUSH PRIVILEGES'を必要としますが、 'DROP'オペレーションの後ではありません。 –