mysql показывает отказано в доступе 1045, даже если у пользователя есть все привилегии - PullRequest
0 голосов
/ 18 сентября 2018

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

$con = mysqli_connect("localhost","almawakeb_khawaneej","******");
mysqli_select_db($con, "moodle_amsk_2018");
if (mysqli_connect_errno())
{
die('Could not connect: ' . mysqli_connect_error(). mysqli_connect_errno().'');
}
else {
die('Connection success');
}

Но я получаю

Не удалось подключиться: доступ запрещен для пользователя 'almawakeb_khawaneej' @ 'localhost' (используя пароль: ДА) 1045

Когда я проверял привилегии для этого пользователя

mysql> SHOW GRANTS FOR 'almawakeb_khawaneej'@'localhost';
+-----------------------------------------------------------------------------------+
| Grants for almawakeb_khawaneej@localhost                                          |
+-----------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'almawakeb_khawaneej'@'localhost'                  |
| GRANT ALL PRIVILEGES ON `moodle_amsk_2018`.* TO 'almawakeb_khawaneej'@'localhost' |
+-----------------------------------------------------------------------------------+

Имеет все необходимые привилегии. Пароль также правильный, поскольку он работает для файла конфигурации yii2 framework , который находится на том же сервере.

mysql> select version();
+-------------------------+
| version()               |
+-------------------------+
| 5.7.23-0ubuntu0.16.04.1 |
+-------------------------+

В чем должна быть проблема?


EDIT

Решено! Фактическая проблема была $ в пароле, вы не можете использовать строку пароля в строке подключения, если она содержит $. Объявите пароль как переменную.

$password = '***$***'; 

1 Ответ

0 голосов
/ 18 сентября 2018

Иногда ... Вам нужно использовать 127.0.0.1 вместо localhost в качестве хоста.

...