当我尝试远程访问mysql时,拒绝用户'root'@'localhost'的访问(使用密码:是)

时间:2018-07-10 12:22:49

标签: php android mysql server

我正在构建一个android应用程序,并希望使用mysql将用户凭据存储在表中。我在其他地方有一个服务器,并已创建表并根据需要配置了所有内容。

这是连接到mysql数据库的php文件:

<?php

$db_name="mydbname";
$mysql_user="root";
$mysql_pass="mypassword";
$server_name="localhost";

$con=mysqli_connect($server_name, $mysql_user, $mysql_user, $db_name);
if(!$con){
    echo "Connection error...".mysqli_connect_error();

}
else{
    echo "Successful";
}

?>

当我在家里的系统上本地执行此操作时(当然,进行了必要的更改),它可以正常工作并返回“成功”。即使在运行android应用程序时,它也会按预期更新表。

但是当我尝试在服务器上远程执行上述php脚本时,它说:

  

“拒绝访问用户'root'@'localhost'(使用密码:是)”

即使我可以在终端上在家中使用mysql。服务器正在运行Ubuntu 16.04。

2 个答案:

答案 0 :(得分:0)

转到MySQL®数据库,为数据库和用户名创建一个相似的名称。

像这样:

数据库:myhost_mydbname

用户名:myhost_mydbname

下一步:在将用户添加到数据库中的[添加按钮]上选择所有特权! 然后,尝试以下方法:

$db_name="myhost_mydbname";
$mysql_user="myhost_mydbname";
$mysql_pass="mypassword";
$server_name="localhost";

希望这种方法对您有帮助!

答案 1 :(得分:-1)

如果您使用的应用程序将在另一台设备上,则不能使用“ localhost”作为主机。本地主机是指您当前所在的主机,在这种情况下,它将是您的android设备。

如果您与ubuntu服务器位于同一网络上,或者该服务器具有可公开访问的IP,则可以提供其IP地址作为主机。 (这可以通过在ubuntu服务器上运行ifconfig来解决)。

但是我怀疑您的root帐户可以在localhost以外的任何地方访问,因此我建议您通过运行来创建一个新的用户帐户 CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

并使用这些凭据登录。