2

GRANT ALLステートメントを実行しようとしています:

GRANT ALL ON daisyrepository.* TO daisy@localhost IDENTIFIED BY 'password_here';

リモートデスクトップを使用してサーバー自体でこのステートメントを実行しました。

  • PHPMyAdmin
  • MySQL管理者
  • コマンドラインクライアント

このステートメントを実行するたびに、次のエラーが発生します。

ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'daisyrepository'

特権に関する情報:

根@%

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, EXECUTE 

root @ localhost

ALL PRIVILEGES 

私が正しく理解していれば、サーバーに接続していても、MySQLは私のステートメントをリモートの場所から来たように扱っていますか?

編集#1 明確化:私が接続しているサーバーは、MySQLも実行されている場所です。

Edit #2 Once in RDP, I log into MySQL using the command line. If I run select current_user(), I get root@127.0.0.1. The my.ini file also has skip_name_resolve in it.

4

1 に答える 1

4

(Linux の Unix ソケットや Windows の名前付きパイプではなく) 常に TCP 経由で接続しているように見えます。ini ファイルに skip_name_resolve があるため、サーバーは IP 127.0.0.1 を localhost に戻す DNS を逆にしないため、表示されるユーザーは root@localhost ではなく root@127.0.0.1 になります。

可能であれば、skip_name_resolve を ini ファイルから削除し、ホスト ファイルに「127.0.0.1 localhost」があることを Abe Petrillo が言及していることを確認してください。これにより、root@localhost として接続できるようになります。skip_name_resolve を元に戻す必要がある場合は、必ず実行してください。

GRANT ALL on *.* to 'root'@'127.0.0.1' identified by '$roots_password' WITH GRANT OPTION;

これにより、skip_name_resolve を ini ファイルに戻すことができます。

于 2011-05-06T15:49:43.163 に答える