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

pgccezyw  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(317)

我正在构建一个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";
}

?>

当我在家里的系统上本地执行此操作时(当然,进行了必要的更改),它工作得非常好,并返回“successful”。即使运行android应用程序,它也会按预期更新表。
但当我尝试在服务器上远程执行上述php脚本时,它会说:
“拒绝访问用户‘root’@‘localhost’(使用密码:yes)”
即使我可以在家里的终端上使用mysql。服务器运行的是ubuntu 16.04。

new9mtju

new9mtju1#

转到mysql® 数据库,为数据库和用户名创建一个类似的名称。
这样地:
数据库:myhost\u mydbname
用户名:myhost\u mydbname
下一步:在添加用户到数据库[添加按钮]上选择所有权限!然后,试试这个:

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

我希望这个方法能对你有所帮助!

vhmi4jdf

vhmi4jdf2#

如果你使用的是另一台设备上的应用程序,你不能使用“localhost”作为你的主机。因为localhost指的是您当前所在的主机,在本例中,它将是您的android设备。
如果你和ubuntu服务器在同一个网络上,或者它有一个可公开访问的ip,你可以把它的ip地址作为主机(你可以通过跑步找到答案 ifconfig 在你的ubuntu服务器上)。
但我怀疑你的根帐户将可从任何其他地方,但本地主机,所以我建议你创建一个新的用户帐户运行 CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'; 并使用这些凭据登录。

相关问题