PHP MySql(1045)拒绝用户访问

时间:2014-01-29 17:05:53

标签: php mysql

我试图找到这个问题的现有答案,但我找到的答案到目前为止还没有奏效。

我一直在尝试使用PHP连接到MySql数据库。我的Web主机在Linux上使用cPanel。我用来做这个的代码似乎足够标准:

$mysqli = new mysqli("localhost", "cPanelUsername_dbUsername", "dbPassword", "cPanelUsername_dbName");

我一直收到以下错误:

Failed to connect to MySQL: (1045) Access denied for user 'cPanelUsername_dbUsername'@'localhost' (using password: YES)Access denied for user 'cPanelUsername'@'localhost' (using password: NO) 
  • “localhost”是MySql服务器所在的主机服务器(看起来这样可行)
  • “cPanelUsername”是我的cpanel用户名
  • “dbUsername”是数据库用户,我添加到数据库并授予所有权限
  • “dbPassword”是dbUsername
  • 的数据库密码
  • “dbName”是数据库名称

在其他地方搜索此问题的答案之后,我最终在dbName和dbUsername之前添加了我的cPanel用户名。

看起来我已经正确设置了所有内容,但它没有连接(上面的错误)。我没有对服务器的任何直接控制,我不必询问我的网站主机,这可能需要几天才能整理出来。我的连接代码有问题吗?

4 个答案:

答案 0 :(得分:2)

首先检查您为数据库提供了正确用户访问权限的数据库,该数据库是从“添加用户”到cpanel中Mysql数据库部分的数据库中提供的。

之后再次检查,

首先在php中尝试正常的连接代码,

$con = mysql_connect("localhost","cpanel_username","cpanel_password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

答案 1 :(得分:1)

在cPanel中,请确保:

  1. 数据库用户cPanelUsername_dbName存在,密码为dbPassword
  2. 您要使用的数据库存在。
  3. 允许用户cPanelUsername_dbName访问数据库。
  4. 允许用户cPanelUsername_dbNamelocalhost127.0.0.1和服务器的IP地址访问数据库。
  5. 您的MySQL连接可能使用127.0.0.1或服务器的IP地址,如果未授予对所使用的特定IP地址的访问权限,MySQL将拒绝该连接。

答案 2 :(得分:0)

检查phpMyAdmin处的数据库名称拼写。通常名称格式为user_dbname

例如:

cpanel username: jack,  
database created: student

php脚本中,dbname应为jack_student

答案 3 :(得分:0)

这对我有用:

  • 根据您拥有的MySQL版本,确保您的PHP文件config.inc.php文件中有匹配的密码和主机名。

如果您需要更改MySQL 5.7.6及更高版本的密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5及更早版本:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
  • 如果您尝试从另一台计算机(仿真器,另一台计算机)访问本地主机服务器,请确保使用的是 localhost 的实际IP地址,请勿使用 localhost 作为主机名。因为这就像告诉机器连接到自身 - 但服务器位于不同的IP地址。