我正在尝试使用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 = '***$***';
答案 0 :(得分:1)
有时...您需要使用127.0.0.1而不是localhost作为主机。