首页 文章

PHP MySql(1045)拒绝用户访问

提问于
浏览
3

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

我一直在尝试使用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

    这对我有用:

    • 根据您拥有的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');
    
    • 如果您尝试从另一台计算机(即模拟器,另一台计算机)访问本地主机服务器,请确保使用本地主机的实际IP地址,请勿使用localhost作为主机名 . 因为这就像告诉机器连接到自身 - 但服务器位于不同的IP地址 .
  • 1

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

    之后再检查一下,

    首先尝试php中的普通连接代码,

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

    在cPanel中,确保:

    • 数据库用户 cPanelUsername_dbName 存在,密码为 dbPassword

    • 您要使用的数据库存在 .

    • 允许用户 cPanelUsername_dbName 访问数据库 .

    • 允许用户 cPanelUsername_dbNamelocalhost127.0.0.1 和服务器的IP地址访问数据库 .

    您的MySQL连接可能使用 127.0.0.1 或服务器的IP地址,如果未对所使用的特定IP地址授予访问权限,MySQL将拒绝连接 .

  • 0

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

    例如:

    cpanel username: jack,  
    database created: student
    

    php 脚本中, dbname 应为 jack_student

相关问题