データベースを使うPHPスクリプトを実行して「Access denied for user ‘abcd’@’localhost’」と表示されることがあります。
主な原因は、次のいずれかです。
- ユーザー「abcd」に対するパスワードが間違っている
- ユーザー「abcd」が存在しない
(1)の場合は単純な入力ミスです。修正しましょう。
(2)のケースは、書籍のサンプルスクリプトやインターネットで入手したデータベースアプリケーションをそのまま動かすと発生する場合があります。
自分が使っているデータベース(XAMPPでインストールしたMySQLなど)には、「abcd」という名前のユーザーが登録されていないからです。解決するには、次のいずれかの方法をとります。
- 既に登録済みのユーザー名とパスワードを設定する
- データベースにabcdというユーザーを追加登録する
(1)の場合は、PHPスクリプトのユーザー名とパスワードを指定している部分を任意の内容に修正します。たとえば、XAMPP(MySQL)のインストール直後には、「root」という名前のユーザーが追加されています。
(2)の場合、ユーザーの追加は、XAMPPインストール直後から使用可能になっているphpMyAdminの「特権」メニューから行うことができます。追加するのは必ずしもサンプルスクリプト通りのユーザー名である必要はありません。任意の名前、パスワードで追加したユーザー情報を、PHPスクリプトの方で指定します。
※さくらインターネットなど、レンタルサーバーでもphpMyAdminを使うことができますが、ユーザーを追加するというより、レンタルサーバー側で指定されたユーザー名を使うのが一般的です。