[英]PHP mysqli connection to remote database
第一次嘗試連接到與我的站點不在同一主機上的數據庫,但運氣不佳。 該數據庫位於godaddy主機上,我已將其配置為允許遠程訪問:
$dbc = mysqli_connect($db_host,$db_user,$db_pass,$db_name);
if (!$dbc) {
die('Connect Error: ' . mysqli_connect_error());
}
我在頁面上看到以下內容:
警告:mysqli_connect()[function.mysqli-connect]:[2002]連接超時(嘗試通過第3行上的“路徑”中的“ mydbhostname:3306連接”)
警告:mysqli_connect()[function.mysqli-connect]:(HY000 / 2002):連接在第3行的'path'中超時
連接錯誤:連接超時
我需要在終端上尋找什么,還是腳本中可能導致這種情況的任何東西?
編輯:好吧,當我使用mysql而不是mysqli時,似乎一切正常,並且在服務器上啟用了mysqli。
我在Digitalocean Ubuntu 14.04服務器上遇到了同樣的問題,其中防火牆配置是罪魁禍首。 ufw防火牆規則不允許在端口3306上使用Mysql。
解:
$ sudo ufw status
$ sudo ufw allow mysql
$ sudo ufw reload
我不了解mysqli和mysql之間的區別,但是我在GoDaddy上發現使用:
mysqli_connect不起作用。 mysql_connect確實起作用。
嘗試使用以下示例代碼來查看是否可以連接到至少需要一個表中的數據的數據庫:
<?php
//Variables for connecting to your database.
//These variable values come from your hosting account.
$hostname = "XXXXXXX.db.XXXXXXXX.hostedresource.com";
$username = "XXXXXXX";
$dbname = "XXXXXXX";
//These variable values need to be changed by you before deploying
$password = "XXXXXXX";
$usertable = "XXXXXXX";
$yourfield = "XXXXXXX";
//Connecting to your database
mysql_connect($hostname, $username, $password) OR DIE ("Unable to
connect to database! Please try again later.");
mysql_select_db($dbname);
//Fetching from your database table.
$query = "SELECT * FROM $usertable";
$result = mysql_query($query);
if ($result) {
while($row = mysql_fetch_array($result)) {
$name = $row["$yourfield"];
echo "<h2>some data</h2>";
echo "$name<br>";
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.