MySQL - доступ запрещен для пользователя - PullRequest
0 голосов
/ 04 мая 2011

Итак, я создаю нового пользователя

CREATE USER servname_shb IDENTIFIED BY 'password';

Даруй ему все привилегии:

GRANT ALL ON *.* TO servname_shb;

Пока ошибок нет. Затем я пытаюсь подключиться к базе данных:

$dbhost = "localhost";
$dbname = "servname_shbusers";
$dbuser = "servname_shb";
$dbpass = "password";

$c = mysql_connect($dbhost,$dbuser,$dbpass) or die("Error:".mysql_error());
mysql_select_db($dbname) or die ("Error connecting to databse:".mysql_error());

И получите ошибку:

Access denied for user 'servname_shb'@'localhost' (using password: YES) in <path>

Я попробовал FLUSH PRIVILEGES, сбросив и воссоздав пользователя - безрезультатно. Что я делаю не так?

Ответы [ 2 ]

6 голосов
/ 04 мая 2011

Сообщения об ошибках уже подсказывают вам.Используйте это утверждение о предоставлении:

GRANT ALL ON *.* TO 'servname_shb'@'localhost';

Или лучше, как @grantk указывает в комментариях, уточните область доступа только к тому, что действительно необходимо.

3 голосов
/ 04 мая 2011

Вы должны использовать 'servname_shb'@'localhost' в качестве имени пользователя. Ваш запрос станет:

CREATE USER 'servname_shb'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'servname_shb'@'localhost';

Примечание: 'servname_shb'@'localhost' разрешить подключение только с локального хоста. Вы можете использовать 'servname_shb'@'%', чтобы разрешить подключение отовсюду.

...