所以我正在尝试建立一个访问和写入数据库的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版本控制(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 :(得分:0)
我想mysql正在你网络中的另一台机器上运行。试试看它是否有效:
CREATE USER 'user'@'IP' IDENTIFIED BY 'your password';
GRANT ALL ON database_name.* TO 'user'@'IP';
如果用户已经在您的系统中但具有不同的IP,那么您应该使用您的mysql服务器的IP再次创建它。您也可以在创建用户和授权声明中尝试%而不是IP,但不建议在制作中使用。