我正在做简单的mysqli
连接到我的数据库上Godaddy windows主机,我的代码如下:
<?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'(使用密码:YES) inG: ' ' ' ' index . php文件用户'root_user_name'@'localhost'被拒绝访问密码:是的)
我得到了这个工作在本地主机相同的数据库名称和凭据使用wamp服务器,我不太进入IIS服务器和windows主机。
我曾经遇到过这个问题,并通过在连接数据库时设置主机中数据库服务器的真实IP地址来简单地解决了这个问题。要获得IP地址,登录到您的主机帐户并访问数据库,然后单击管理您想要的数据库,这将带您到phpMyAdmin。在右边有一个标题为Database Server的块,您可以在第一个列表项中找到服务器的IP地址。在$host
中使用它而不是localhost:
$host = '51.51.51.51'; // <<<< just a fake IP address for the example
我花了很多艰苦的时间来找出问题所在,我甚至联系了支持,得到了这样的答复:
Joshua -我认为权限是问题的原因。一旦你把它们适当地更新一下,问题就会消失。
他们说文件权限可能是问题所在,我更新了文件权限,但没有解决。
有时候解决方案比你想象的要近得多!!
新的MySQL数据库设置表单将接受混合大小写字符作为数据库名称/用户名,它将默默地将它们转换为小写。然后,phpMyAdmin登录是区分大小写的,所以你可能需要从控制中心复制并粘贴到phpMyAdmin,以确保你给它提供了正确的用户名。
这有点像在黑暗中捅刀子;但是你应该检查在mysql的用户表中定义的实际host
。您的WAMP解决方案可能通过ipv4 (127.0.0.1
)连接到本地主机;您当前的服务器使用ipv6 (::1
)。用于连接的用户应该具有数据库服务器中定义的相同地址。检查这一点的简单方法是确保您的数据库中有3个具有这些凭据的用户,一个用于ipv4 (127.0.0.1
),一个用于ipv6 (::1
),一个基于主机名(例如。localhost
)