簡體   English   中英

MySQL:連接到遠程數據庫錯誤

[英]MySQL: Connect to a remote Database error

我有一個簡單的HTML表單,該表單試圖連接到遠程服務器上托管的數據庫。 該表單嘗試使用以下腳本連接到數據庫:(根據davejal建議進行編輯)

 <?php
 ini_set('display_errors', 1);
 ini_set('log_errors', 1);
 ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
 error_reporting(E_ALL);
 $error='';

 echo "<p>Test</p>" ;
 define('DB_HOST', 'mysql.utk.edu:3306');
 define('DB_NAME', 'emoschan_test');
 define('DB_USER','emoschan');
 define('DB_PASSWORD','NewPass');

echo "   Does mysql  exist?". var_dump(function_exists('mysql_connect'));
echo "   Does mysqli exist?". var_dump(function_exists('mysqli_connect'));
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Failed to connect to MySQL: " . mysql_error());

if (mysql_connect_error($con)) { echo "Third Failed to connect to MySQL:" . mysql_connect_error();  }
else { echo "<p>Successfully connected to your database</p>"; }
?>

連接失敗,我收到跟隨錯誤(我包括錯誤的屏幕截圖):

無法連接到MySQL:客戶端不支持服務器請求的身份驗證協議。 考慮升級MySQL客戶端

當我單擊“提交”表單時輸出

如您所見,mysqli不存在。

我試圖將密碼更改為舊加密,仍然收到錯誤(phpmyadmin屏幕截圖): 更改為OLD password

第二次編輯。 phpinfo()顯示PHP版本5.3.0和“客戶端API版本:4.0.31”

不建議使用mysql_connect函數。

在您聲明$con更改為mysqli的行上

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Failed to connect to MySQL: " . mysql_error());

變成:

$con=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Failed to connect to MySQL: " . mysql_error());

您可以刪除選擇數據庫的行,因為在創建連接時已經選擇了它,方法是將其作為第四個變量傳遞。

不要忘記將if部分也變成:

if (mysqli_connect_error($con)) { echo "Third Failed to connect to MySQLi:" . mysqli_connect_error();  }

要顯示所有錯誤,請在打開php后添加以下內容

 ini_set('display_errors', 1); 
 ini_set('log_errors', 1); 
 ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); 
 error_reporting(E_ALL);
 $error='';

暫無
暫無

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

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