[英]Connect to server database from localhost
我正在嘗試從本地主機連接到服務器數據庫。
$host = 'http://www.my-domain.com/phpmyadmin/';
$user = 'u5er';
$pass = 'pa55w0rd';
$db = 'db_name';
$con = mysqli_connect($host,$user,$pass,$db) or die("Error " . mysqli_error($con));
$sql = "SELECT col FROM test WHERE id = '1'";
$result = mysqli_query($con,$sql);
失誤
Warning: mysqli_connect(): in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362
Warning: mysqli_connect(): in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362
Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362
Error
有可能解決嗎? 如何確定我的服務器是否允許外部連接? 以及如何定義應從哪個IP地址訪問數據庫?
感謝您的任何建議。
編輯:好的,我已經將主機更改為my-domain.com,現在它報告以下錯誤。 我的IP無法訪問MySQL服務器...
Warning: mysqli_connect(): (HY000/1130): Host '88.146.210.54' is not allowed to connect to this MySQL server in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362
Failed to connect to MySQL: Host '88.146.210.54' is not allowed to connect to this MySQL server
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 368
如果您將本地主機文件上傳到Web服務器,某些主機提供程序,也請使用“本地主機”作為主機名
$host = 'localhost';
$user = 'u5er';
$pass = 'pa55w0rd';
$db = 'db_name';
當您未將主機配置為授予訪問數據庫權限時,會出現“不允許主機'XXX.XXX.XXX'連接到該MySQL服務器”
您的日志記錄有以下行中的錯誤:
$con = mysqli_connect($host,$user,$pass,$db) or die("Error " . mysqli_error($con));
永遠不會$con
分配值(基礎mysqli_connect
失敗),並且您會將其傳遞給mysqli_error()
。
請嘗試以下操作-它會為您提供有關為什么無法連接的信息:
$con = mysqli_connect($host,$user,$pass,$db);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
如用戶Dagon所述,您的主機字符串應類似於my-domain.com
,甚至更有可能是localhost
而不是http://www.my-domain.com/phpmyadmin/
大多數外部數據庫通過具有正確端口號的IP或域/子域連接。 您已經放置了“ http”,它是端口80。大多數MySQL是3306。您的主機/外部提供程序應該已經為您提供了數據庫服務器的IP和登錄詳細信息...
您的IP地址必須注冊到主機才能連接到數據庫
是的,有可能解決該問題。 將變量$ host更改為正確的主機名(localhost或其他)。
要了解服務器是否允許外部連接,可以使用在線端口掃描來查看您的mysql端口(默認為3306)是否對外界開放。
要定義哪些IP地址可以訪問您的數據庫,您應該使用防火牆規則。
主機字符串錯誤。 有效的mysql URL格式為“ mysql://hostname.tld/database”。 但是,管理員使Internet上的SQL數據庫可用是非常不尋常的。 您很可能應該嘗試從與數據庫服務器相同的服務器或網絡上運行php應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.