簡體   English   中英

當我嘗試遠程訪問mysql時,拒絕用戶'root'@'localhost'的訪問(使用密碼:是)

[英]Access denied for user 'root'@'localhost' (using password: YES) when i try accessing mysql remotely

我正在構建一個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。

轉到MySQL®數據庫,為數據庫和用戶名創建一個相似的名稱。

像這樣 :

數據庫 :myhost_mydbname

用戶名 :myhost_mydbname

下一步 :在將用戶添加到數據庫中選擇所有特權[添加按鈕]! 然后,嘗試:

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

希望這種方法對您有所幫助!

如果您使用的應用程序將在其他設備上,則不能使用“ localhost”作為主機。 由於localhost指的是您當前所在的主機,在這種情況下,它將是您的android設備。

如果您與ubuntu服務器位於同一網絡上,或者該服務器具有可公開訪問的IP,則可以提供其IP地址作為主機。 (您可以通過在ubuntu服務器上運行ifconfig找出答案)。

但是我懷疑您的root帳戶是否可以在localhost以外的任何地方訪問,因此我建議您通過運行CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';創建一個新的用戶帳戶CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

並使用這些憑據登錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM