sql >> データベース >  >> RDS >> Mysql

SQLSTATE[HY000][1045]CakePHPを使用したユーザー'username'@'localhost'のアクセスが拒否されました

    このエラーメッセージは通常、使用しているパスワードが、接続しているユーザーのパスワードであると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を使用して強制的に再読み込みすることで、変更を効果的に行うことができます。 特権ユーザーによって実行されるステートメント。



    1. Postgresのあるデータベースから別のデータベースにテーブルをコピーします

    2. 最も一般的なPostgreSQLの障害シナリオ

    3. T-SQLで重複スペースを単一スペースに置き換えます

    4. エラー:複数の戻り値を持つクエリのTypedQueryを作成できません