2015-07-31 3 views
-3

Я прочитал много других вопросов относительно этой ошибки, но это не решает мою проблему. Причина, по которой я задал этот вопрос, несмотря на очевидную мысль, что многие спрашивают об этом передо мной.ОШИБКА!: SQLSTATE [HY000] [1045] Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)

Это мой connect.php

<?php 

$user = 'root'; 
$pass = ''; 


try{ 
    $dbh = new PDO('mysql:host=localhost;dbname=Login', $user, $pass); 
    foreach($dbh->query('SELECT * from FOO') as $row){ 
     print_r($row); 
    } 

    $dbh = null; 
} catch (PDOException $e){ 
    print "ERROR!:" . $e->getMessage() . "<br/>"; 
    die(); 

} 

Но у меня возникают проблемы, я уверен, что $ пользователя и $ пасс правильно, но я до сих пор продолжаю получать это сообщение, я новичок в PDO - может ли это иметь к этому какое-либо отношение?

Когда я загружаю это на моем локальном хосте я получаю сообщение об ошибке:

ERROR!:SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

Мне кажется, что это сообщение об ошибке говорит мне, что либо в $pass = 'NO', которые он делает не так или что $ пасс неправильно? Я пытался изменить $pass = 'NO'; и получил следующее сообщение об ошибке:

ERROR!:SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

Тогда - играть глупо здесь меняю $pass = 'YES'; получил мне эту ошибку:

ERROR!:SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

+1

Вы должны добавить правильный пароль root для '$ pass' – Jens

+0

Если вы указали правильное имя пользователя и пароль, то проверьте с помощью прав пользователя для используемой вами базы данных. –

+0

Фраза 'using password' не echo _what_ пароль, который вы используете, просто независимо от того, используете ли вы его. У вас неправильный пароль для вашей учетной записи root. – halfer

ответ

1

Если вы используете wamp, это может быть возможным решением.

-> Изменить localhost127.0.0.1. Таким образом, становится

<?php 

$user = 'root'; 
$pass = ''; 


try{ 
    $dbh = new PDO('mysql:host=127.0.0.1;dbname=Login', $user, $pass); 
    foreach($dbh->query('SELECT * from FOO') as $row){ 
     print_r($row); 
    } 

    $dbh = null; 
} catch (PDOException $e){ 
    print "ERROR!:" . $e->getMessage() . "<br/>"; 
    die(); 

} 

Кроме того, просто положить весь код подключения в другом файле, скажем, «dbconnector.php». Включите его в каждую страницу, где вам нужно использовать свою БД. Теперь вы можете подключить соединение через переменную $dbh.

+0

спасибо за быстрые и приятные ответы, теперь я изменил localhost на 127.0.0.1 - я нахожусь на макете, используя мам, но теперь он вызывает еще одну ошибку: «ERROR!: SQLSTATE [HY000] [2002] Connection отказано». Это заставляет меня думать, что это может быть потому, что, как отмечалось в комментариях. что даже жестко я считаю, что 99% уверены, что $ pass = ''; должно быть что-то еще? Есть предположения? – Rook

+0

@Anders Я действительно не уверен, что все работает на Mac. Но в основном mysql-пароль для каждой установки wamp на окнах «пуст». Попробуйте загрузить на сервер и проверить его? – Akshay