У меня была та же проблема, и я исправил ее с помощью запроса UPDATE, например:
UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE Host = 'some_host' AND User = 'some_user';
Не знаю почему, но SET Password не работает.
Чтобы быть уверенным, что проблема в том, я думаю, вы должны выполнить этот запрос в базе данных mysql:
SELECT
`user`.`Password`
FROM
`user`
WHERE
`user`.`User` = 'youruser' AND
`user`.`Host` = 'yourhost'
если пароль не начинается с *, проблема в том, что у вас все еще есть старая надпись
EDIT _ Вот функция php для создания действительного пароля для MYSQL (взято из здесь ):
function mysql_41_password($in)
{
$p=sha1($in,true);
$p=sha1($p);
return "*".strtoupper($p);
}
Таким образом, вы можете установить пароль вручную:
//newpwd is the passowr dgenerated in php
UPDATE mysql.user SET Password = 'newpwd' WHERE Host = 'some_host' AND User = 'some_user';
FLUSH PRIVILEGES;