2013-04-05 86 views
0

所以我试图建立一个访问和写入数据库的PHP站点。这应该是相对简单的,但我已经陷入了一堆权限问题,我是PHP的新手,所以我不知道如何解决所有问题。需要帮助整理MySQL权限和连接

首先,试图访问数据库时出现这样的警告:

Warning: mysqli_connect(): The server requested authentication method unknown to the client [mysql_old_password] 

连接也失败,因为这样的:

Warning: mysqli_connect(): (HY000/2054): The server requested authentication method umknown to the client 

在我的研究,我发现这个警告是有关由于PHP版本化导致的密码哈希(link

但是试图在该页面上运行解决方案时,出现以下错误:

Error Code: 1044. Access denied for user 'user'@'host' to database 'mysql' 

而我不知道如何获得该数据库的权限。

这是我参考的PHP代码(敏感信息已删除):

$con=mysqli_connect("IP:port","user","password","database_name"); 
// Check connection 
if (mysqli_connect_errno($con)) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
else 
{ 
    echo "Succesfully connected"; 
echo "<br />"; 
} 

$result = mysqli_query($con, "SELECT * FROM OWNERS") or die("Error: ".mysqli_error($con)); 
while($row = mysqli_fetch_array($result)) 
{ 
    echo $row['email'] . " " . $row['type']; 
echo "<br />"; 
} 

谁能帮我这一个?我知道这很多,但似乎所有问题都是相关的,我不知道从哪里开始修复它们。 (我使用XAMPP运行php和MySQL工作台来运行查询)

回答

0

我想mysql运行在您网络中的不同机器上。试试这个,看看它的工作原理:

CREATE USER 'user'@'IP' IDENTIFIED BY 'your password'; 
GRANT ALL ON database_name.* TO 'user'@'IP'; 

如果用户已经在你的系统,但具有不同的IP,那么你应该重新创建它使用MySQL服务器的IP。您也可以尝试使用而不是IP创建用户和授权语句,但不建议在生产中使用。

+0

我使用的是一个hostgator数据库,我通过他们的服务创建了用户,但是当我通过工作台运行用户时,我的IP上。那是问题吗?我已使用SHOW GRANTS检查帐户的权限,并拥有完整权限。 – Hiero7 2013-04-05 20:54:05

+0

但你能连接到从hostgator网络服务器的MySQL?可能是防火墙问题。打开mysql端口到互联网并让任何人尝试连接到它并不是一个好主意。 – 2013-04-05 20:56:06

+0

hostgator只允许您创建数据库和用户,而不是修改它们。您可以在创建用户时授予权限并检查所有权限。您必须使用像mySQL workbench这样的外部应用程序来实际修改数据库。 – Hiero7 2013-04-05 21:03:32