![](/img/trans.png)
[英]Access denied for user 'root'@'localhost' (using password: YES) using MAMP
[英]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.