このエラーメッセージは通常、使用しているパスワードが、接続しているユーザーのパスワードであるとMySQLが判断したものと一致しないか、一致するMySQLユーザーが存在しない(作成されていない)ことを意味します。
MySQLでは、ユーザーはユーザー名( "test2")との両方で識別されます。 ホスト(「localhost」)。
エラーメッセージはユーザーを識別します ("test2")とホスト ("localhost")値...
'test2'@'localhost'
接続可能なクライアントからのこのクエリを使用して、ユーザーが存在するかどうかを確認できます。
SELECT user, host FROM mysql.user
ユーザーの「test2」を含む行を探しています 、および hostの場合は「localhost」 。
user host
------- -----------
test2 127.0.0.1 cleanup
test2 ::1
test2 localhost
その行が存在しない場合、ホストは%
のワイルドカード値に設定されている可能性があります 、一致しない他のホストと一致させるため。
行が存在する場合、パスワードが一致しない可能性があります。パスワードを変更できます(十分な権限を持つユーザーとして接続している場合、例:root
SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('mysecretcleartextpassword')
また、ユーザーがデータベース内のオブジェクトに対する権限を持っていることを確認することもできます。
GRANT SELECT ON jobs.* TO 'test2'@'localhost'
編集
DML操作(INSERT、UPDATE、DELETE)を使用してmysql特権テーブルに変更を加えた場合、それらの変更は、MySQLがテーブルを再読み取りするまで有効になりません。 FLUSH PRIVILEGES
を使用して強制的に再読み込みすることで、変更を効果的に行うことができます。 特権ユーザーによって実行されるステートメント。