0

所以我正在尝试建立一个访问和写入数据库的 PHP 站点。这应该相对简单,但我已经被一堆权限问题淹没了,而且我是 PHP 新手,所以我不知道如何解决所有问题。

首先,尝试访问数据库时会出现此警告:

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 的版本控制,此警告与密码哈希有关(链接

但是,尝试在该页面上运行解决方案会给我以下错误:

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 工作台来运行查询)

4

1 回答 1

0

我想mysql正在您网络中的另一台机器上运行。试试这个看看它是否有效:

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

如果用户已经在您的系统中但具有不同的 IP,那么您应该使用您的 mysql 服务器的 IP 再次创建它。您也可以在 create user 和 grant 语句中尝试%而不是 IP,但不建议在生产中使用。

于 2013-04-05T20:41:17.297 回答