try {
$dsn = 'mysql:host=localhost;dbname=chat';
$username = 'chat';
$password = '1234';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND = > 'SET NAMES utf8',
);
$dbh = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
echo $e->getMessage();
}
Такая ошибка:
SQLSTATE[HY000] [1045] Access denied for user 'chat'@'localhost' (using password: YES)
Одним из самых необходимых для программиста качеств является способость верить своим глазам. Не воображению, а объективной реальности, данной нам в ощущениях.
В данном случае - сообщению об ошибке. В котором недвусмысленно написано, что у пользователя chat отсутствуют права на подключение а БД. Либо потому что такого пользователя в БД нет, либо потому что указан неверный пароль.
Поняв и поверив сообщению об ошибке, следует приступать к ее исправлению. а именно - проверке логина и пароля из консоли.
В качестве бонса приведу правильный вариант кода соединения. Это не имеет отношения к проблеме неверного пароля, но зато исправляет много других проблем.
$dsn = 'mysql:host=localhost;dbname=chat;charset=utf8';
$username = 'chat';
$password = '1234';
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
$dbh = new PDO($dsn, $username, $password, $options);
Скорей всего Вы запускаете скрипт не на той же машине на которой находиться ваша БД. Ваш пользователь создан как пользователь который может авторизоваться в базе только с той машини на которой база запущена. Об этом говорит надпись localhost
после @
в имени пользователя 'chat'@'localhost'
.
Для того чтобы иметь возможность подключаться из сети к базе(читай запускать скрипт откуда угодно) нужно создать нового пользователя(если такового нет)
CREATE USER 'chat'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON chat.* TO 'chat'@'localhost';
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно написать программу, которая будет выводить числа от 1 до n по спирали в таком направлении: 1 в левом верхнем углу, спускаемся вниз, вправо,...
Дали мне задание написать написать генератор случайных чисел методом фибоначчи с запаздываниемЯ нашёл, что subtract_with_carry_engine как раз то что...
Возможно ли при передаче пака параметров принять его по ссылке и что-то изменить в одном из параметров?