2

在这里快速提问,我是网络托管的新手,我只是想看看是什么。我创建了以下 PHP 文档并将其托管在我的免费 000webhost 域上:

<?php 

$mysql_host = "mysqlXX.000webhost.com"; 
$mysql_database = "***********_people"; 
$mysql_user = "*************_admin"; 
$mysql_password = "******************"; 

// Create connection 
$con=mysqli_connect($mysql_host,$mysql_database,$mysql_user,$mysql_password); 

// Check connection 
if (mysqli_connect_errno($con)) 
  { 
  echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
?>

我已经(希望正确)在我的数据库中设置了一个包含 3 个字段的小表:

  1. ID - 无 Null、自动递增、整数、主要
  2. 名字 - VarChar,长度 20
  3. 姓氏 - VarChar,长度 20

并为每一个输入数据。当我从控制面板打开文件时,出现以下错误:

警告:mysqli_connect() [function.mysqli-connect]: (28000/1045): /home/a4935911/public_html/MySQL+PHP 中的用户 'a4935911_people'@'10.1.1.45' 的访问被拒绝(使用密码:YES)。第 9 行的 php

无法连接到 MySQL:用户 'a4935911_people'@'10.1.1.45' 的访问被拒绝(使用密码:是)

任何想法,任何人?

4

6 回答 6

6

这里的参数顺序错误:

$con=mysqli_connect($mysql_host,$mysql_database,$mysql_user,$mysql_password);

看消息:Access denied for user 'a4935911_people'@'10.1.1.45' (using password: YES)where a4935911_peopleis not a user, it is your database's name as set up $mysql_database = "***********_people";.

使用:Host, user, password, dbname文档中所述。

解决方案:

$con=mysqli_connect($mysql_host, $mysql_user, $mysql_password, $mysql_database);
于 2013-10-17T17:31:58.483 回答
2
argument sequence is following order.
$host ="localhost" // change to your host 
$username ="root"     // change to your mysql user name by default root 
$pass =" "       //add password if any 
mysql_connect($host,$username,$pass) //don't change the sequence 
mysql_select("test") // create the test database in mysql
于 2015-10-15T06:27:43.833 回答
0

两个可能的原因:

  1. 错误的用户名/密码 - 仔细检查。

  2. 您无法远程连接,只能通过 localhost 进行连接。检查您的托管网站以获取此类信息。如果不允许,您将无能为力。

于 2013-10-17T17:23:40.743 回答
0

除了@ElonThan 提供的可能结论...

您的用户名也可能缺乏对您要连接的数据库的适当权限。

于 2013-10-17T17:25:48.027 回答
0

您需要设置 mysql 以允许MySQL 数据库服务器中特定用户的远程连接,即此处的mysqlXX.000webhost.com。默认语法是:

grant <permission> on <database> to <user>@<location> identified by <password>

所以在这里你必须使用(因为你已经指定了参数) -

grant all on ***********_people.* to '*************_admin'@'10.1.1.45' identified by '******************'

因此,对于您的情况,请运行以下命令- grant all on database_name.* to 'username'@'your_ipaddress' identified by 'password'

在 MySQL 命令提示符下运行此命令。

这将允许用户名使用该密码从您的 IP 连接,并授予对指定数据库中所有表的所有权限。

  • 要允许任何用户从任何 IP 地址连接并使用任何数据库中的所有表,请使用以下语法-

grant all on *.* to '%'@'%' identified by 'password'

最后,您必须使用以下命令-

FLUSH PRIVILEGES;

重新加载所有权限。

于 2013-10-17T17:36:11.113 回答
-1

对于 000webhost.com(免费托管服务),您应该通过将代码上传到 000webhost.com 服务器来在线测试您的代码。

这肯定会解决你的问题。

于 2013-10-17T17:28:30.793 回答