3

我在 Godaddy Windows 主机上与我的数据库进行简单mysqli连接,我的代码如下:

<?php 

        error_reporting(E_ALL & ~(E_STRICT|E_NOTICE));

            $host = 'localhost'; 
            $user = 'root_user_name'; 
            $password = 'root_user_pass'; 
            $db = 'my_database'; 
            $cxn = mysqli_connect($host,$user,$password) or 
                     die(mysqli_connect_error()); // <<<<<< line 9
            mysqli_select_db($cxn, $db ) or die(mysqli_connect_error()); 


        die('test');

我确信授予的用户名和密码以及数据库名称,我的所有凭据都是正确的,但我收到此错误:

警告:mysqli_connect(): (HY000/1045): Access denied for user 'root_user_name'@'localhost' (using password: YES) in G:\path\to\file\index.php on line 9 Access denied for user ' root_user_name'@'localhost'(使用密码:YES)

我使用 wamp 服务器在具有相同数据库名称和凭据的 localhost 上工作,我不太喜欢 IIS 服务器和 Windows 托管。任何帮助将不胜感激。

4

3 回答 3

6

我曾经遇到过这个问题,只是在连接数据库时通过在我的主机中设置数据库服务器的真实IP地址来解决它。要获取 IP 地址,请登录您的主机帐户并访问数据库,然后单击管理您想要的数据库,这将带您进入 phpMyAdmin。右侧有一个标题为Database Server的块,您可以在第一个列表项中找到服务器 IP 地址。在您的$host而不是 localhost 中使用它:

 $host = '51.51.51.51'; // <<<< just a fake IP address for the example

我花了很多时间来找出问题所在,我什至联系了支持人员并得到了以下回复:

Joshua - 我认为权限是问题的原因。正确更新它们后,问题应该会消失。

他们说文件权限可能是问题,我更新了文件权限但没有解决。

有时解决方案比您想象的要近得多!

于 2015-07-22T16:58:00.107 回答
1

新的 MySQL 数据库设置表单将接受混合大小写字符作为数据库名称/用户名,它会默默地将它们转换为您的小写字母。phpMyAdmin 登录名区分大小写,因此您可能需要从控制中心复制并粘贴到 phpMyAdmin 中,以确保输入正确的用户名。

于 2015-07-18T18:11:08.410 回答
0

这有点像在黑暗中刺伤。但是您应该检查host在 mysql 的用户表中定义的实际值。您的 WAMP 解决方案可能通过 ipv4 ( 127.0.0.1) 连接到 localhost;并且您当前的服务器使用 ipv6 ( ::1)。您用来连接的用户应该具有在数据库服务器中定义的相同地址。检查这一点的简单方法是确保您的数据库中有 3 个具有这些凭据的用户,一个用于 ipv4(127.0.0.1),一个用于 ipv6(::1),一个基于主机名(例如localhost

于 2015-07-18T17:56:55.343 回答