[英]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.