発生している問題
PHPでPDOを使用してMariaDBに接続しようとしています。
コンソールで以下のように全く同じパスワード(コピー&ペーストで確認済み)を使ったところ、正常に接続できました。また、データベースの使用もできています。
$ mysql -h localhost -u <Username> -p Enter Password:<Password> MariaDB [(none)]> use <Dbname>; Database changed MariaDB [(<dm_name>)]>
しかし、PDOからアクセスしようとすると以下のようなエラーが発生しています。
[Fri Mar 12 11:54:37.427335 2021] [php:error] [pid 62097] [client <IP>:61320] PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user <Username>@'localhost' (using password: YES) in <Path>:4\nStack trace:\n#0 <Path>(4): PDO->__construct()\n#1 {main}\n thrown in <Path> on line 4
正常に接続できるようにする方法教えていただければ幸いです。
該当開所のソースコード
php
1<?php 2require_once(dirname(__FILE__).'/config.php'); 3 4$dbh = new PDO("mysql:host=$host; dbname=$dbname; charset=utf8", "$username", "$password"); 5?>
config.php
php
1$host = 'localhost'; 2$username = ''; 3$password = ''; 4$dbname = ''; 5
DBの権限は以下のようにしてあります
MariaDB [(none)]> SHOW GRANTS FOR <Username>@'localhost'; +----------------------------------------------------------------------------------------------------+ | Grants for <Username>@localhost | +----------------------------------------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO `<Username>`@`localhost` IDENTIFIED BY PASSWORD '<Hashedpassword>' | | GRANT ALL PRIVILEGES ON `<Dbname>`.* TO `<Username>`@`localhost` | +----------------------------------------------------------------------------------------------------+
環境
- Arch linux ARM aarch64
- Apache 2.4.46
- PHP 8.0.3
- MariaDB 10.5.9
回答1件
あなたの回答
tips
プレビュー