mysql显示访问被拒绝1045,即使用户拥有所有特权

时间:2018-09-18 08:18:15

标签: php mysqli database-connection

我正在尝试使用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');
}

但是我得到的是

  

无法连接:拒绝用户访问   1045年'almawakeb_khawaneej'@'localhost'(使用密码:是)

当我检查该用户的权限时

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框架配置文件

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

应该是什么问题?


编辑

已解决!实际问题是密码中的$,如果连接字符串中包含$,则不能在连接字符串中使用字符串密码。将密码声明为变量。

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

1 个答案:

答案 0 :(得分:1)

有时...您需要使用127.0.0.1而不是localhost作为主机。