Roman_Romanov
@Roman_Romanov
symfony

Как пофиксить ошибку «Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user ''@'localhost'»?

Здравствуйте, наткнулся у себя на вот такую ошибку, пароль, хост, юзер, имя бд все верно. Запрос sql так же верен(протестил в бд).

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)' in D:\Server\OpenServer\domains\e-shopper.ru\app\components\db.php:8 Stack trace: #0 D:\Server\OpenServer\domains\e-shopper.ru\app\components\db.php(8): PDO->__construct('mysql:host=;dbn...', NULL, NULL) #1 D:\Server\OpenServer\domains\e-shopper.ru\app\models\Product.php(9): Db::getConnection() #2 D:\Server\OpenServer\domains\e-shopper.ru\app\controllers\SiteController.php(11): Product::getLatestProducts(6) #3 [internal function]: SiteController->actionIndex() #4 D:\Server\OpenServer\domains\e-shopper.ru\app\components\route.php(41): call_user_func_array(Array, Array) #5 D:\Server\OpenServer\domains\e-shopper.ru\index.php(6): Router->run() #6 {main} thrown in D:\Server\OpenServer\domains\e-shopper.ru\app\components\db.php on line 8

$sql = 'SELECT `id`, `name`, price, is_new FROM product '
               . 'WHERE status = "1" ORDER BY id DESC '
               . 'LIMIT :count';
        $result = $db->prepare($sql) or die('Не соединения с бд!');
        $result->bindParam(':count', $count, PDO::PARAM_INT);
        $result->setFetchMode(PDO::FETCH_ASSOC);
        $result->execute();

Заранее, спасибо за ответ
  • Вопрос задан
  • 18294 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
У юзера localhost нет доступа к базе и/или пароль пустой.
Проверьте пользователей БД и настройте доступы (phpmyadmin или подобное).
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
@SergeyZelensky-Rostov
проверьте еще раз логин и пароль к бд, SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)' , ошибка говорит о том то доступ запрещен так как не введен пароль
Ответ написан
@seriogja
Через консоль можете в mysql? (mysql -u root -p) Если можете, значит с логином/паролем у вас все верно и нужно смотреть конфиги подключения к базе.
Ответ написан
@WapGeaR
Программист
Не кажется ли вам, что проблема в том, что в ошибке выдается ''@'localhost', т.е. юзер просто не вписан. Может стоит копать в эту сторону?
Ответ написан
@StasEx
Проверьте порт для базы данных.
У меня порт другой, 3305, а не 3306.
Была подобная ошибка, решилась подобным образом.
Если порт не указан явно, то его можно просто приписал к адресу сервера, например localhost:3305
Ответ написан
Комментировать
Roman_Romanov
@Roman_Romanov Автор вопроса
symfony
return array(
    'host' => 'localhost',
    'dbname' => 'phpshop',
    'user' => 'root',
    'password' => '',
);
эти данные совпадают с данными в бд
Ответ написан
Комментировать
@Leagnus
Если на локалхосте – то проверьте среди процессов – не запущен ли mysqld или Mariadb сервис от другого стека.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы