[解決済み] エラー1044 (42000)。すべての権限を持つ'root'のためのアクセスが拒否されました。
質問
おかしなエラーが発生します。コマンドラインからローカルのMysqlにrootとしてログインしています。データベースを作成した後
create database some_db;
次に、あるユーザーに特権を与える。
grant all privileges on some_db.* to some_user@'localhost' identified by 'password';
これはエラーになります。
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'some_db'
root(show grants;)のパーミッションが表示されます。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*8919C53DC7A4DFBF3F8584382E96463583EB7FDA'
また、rootでログインしていることを確認しています。
select current_user();
そして、これは私が'root'@'localhost'としてログインしていることを確認するものです。
これまで何度もデータベースを作成し、ユーザーを割り当ててきましたが、問題はありませんでした。なぜ、rootでログインしているときに、rootで作成したデータベースにユーザーを割り当てることができないのでしょうか?
p.s. 他の投稿から、私はこの問題はいくつかの奇妙なユーザーによって引き起こされるかもしれないと考えています。
select host, user from mysql.user;
追加していないのに表示されるユーザーがいます。
MY_COMPuTER_name.local | ''
MY_COMPuTER_name.local | root
これらのユーザーを削除しようとしました。
drop user 'root'@'MY_COMPuTER_name.local';
drop user ''@'MY_COMPuTER_name.local';
しかし、クエリの実行は成功したと表示されますが、権限をフラッシュしてもユーザーは削除されません。なぜユーザーを削除できないのでしょうか?どのようなヘルプも非常に高く評価されます
解決方法を教えてください。
まず、ログインしているユーザーを確認します。
select user();
select current_user();
最初のコマンドの結果は、あなたがログインしようとしたもので、2番目のコマンドは、あなたが実際に接続したものです。次のようにログインしていることを確認します。
root@localhost
をmysqlで実行します。
Grant_priv
から
root@localhost
. 以下はその確認方法です。
mysql> SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
+-----------+------------------+-------------------------------------------+------------+------------+
| host | user | password | Grant_priv | Super_priv |
+-----------+------------------+-------------------------------------------+------------+------------+
| localhost | root | ***************************************** | N | Y |
| localhost | debian-sys-maint | ***************************************** | Y | Y |
| localhost | staging | ***************************************** | N | N |
+-----------+------------------+-------------------------------------------+------------+------------+
root@localhost の Grant_priv が N になっているのがわかります。これはYにする必要があります。以下は、これを修正する方法です。
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
再ログインしたら大丈夫でした。
関連
-
[解決済み】MySQLを使用してランダムでユニークな8文字の文字列を生成する方法
-
[解決済み] WHEREで集計関数は使用できません "というエラーを回避する方法
-
[解決済み] ローカルマシンからリモートDBをmysqldumpする方法
-
[解決済み] Mysql: const テーブルを読み込んだ後、不可能な場所に気づいた。
-
[解決済み] mysqlのテーブルからユニークキーを削除する方法
-
[解決済み] 1行目の列 'id' に不正な整数値 '' があります。
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?
-
[解決済み] エラー 1698 (28000)。ユーザー 'root'@'localhost' のアクセスが拒否されました。
-
[解決済み] MySQL Error: : 'Access denied for user 'root'@'localhost'
-
[解決済み] ユーザー 'root'@'localhost' に権限を付与しようとしたところ、アクセスが拒否されました。どのようにすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】カラムのデータが切り捨てられた?
-
[解決済み】Fatal error: mysqldをrootで実行する方法は、マニュアルの「セキュリティ」セクションをお読みください。
-
MySQLとのPython統合でAttributeErrorが発生する: モジュール 'socket' には 'AF_UNIX' という属性がない
-
[解決済み】MySQL エラー #1133 - ユーザー テーブルに一致する行が見つかりません。
-
[解決済み] テーブル 'performance_schema.session_variables' は存在しません。
-
[解決済み] mysqladmin: 'localhost'のサーバーへの接続に失敗しました。
-
[解決済み] テーブルのストレージエンジンは修復をサポートしていません。InnoDB または MyISAM?
-
[解決済み] MYSQLのTIMESTAMP比較
-
[解決済み] 日付の挿入時にエラーが発生しました - 日付の値が正しくありません。
-
[解決済み] DEFAULT NULLとCHECKBOX NULL mysqlの違いは何ですか?