2015-12-21 5 views
0

У меня есть простая форма HTML, которая пытается подключиться к базе данных, размещенной на удаленном сервере. Форма пытается подключиться к базе данных с помощью следующего сценария: (отредактированная следующие davejal предложения)MySQL: подключение к удаленной ошибке базы данных

<?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>"; } 
?> 

соединения не удается, и я получаю followin ошибки (я включаю скриншот ошибки):

Не удалось подключиться к MySQL: клиент не поддерживает протокол аутентификации, запрошенный сервером; подумайте об обновлении MySQL клиенту

output when I click "submit" the form

Как вы видите MySQLi не существует.

Я попытался изменить пароль к старому шифрования, до сих пор получить (скриншот PhpMyAdmin) ошибки: change to OLD password

2nd EDIT. phpinfo() показывает версию PHP 5.3.0 и «Версия клиентского API: 4.0.31»

+0

, если вы запустите 'phpInfo();' то вы увидите много информации о PHP, версии и т. д., а также о том, какие драйверы загружены и т. д. –

+0

@Ryan phpInfo() показывает: версия PHP - 5.3.0, а версия MYSQL Client API: 4.0.31 " – Lefteris

+0

пытается пропустить порт на вашем хост-пути: define ('DB_HOST', 'mysql.utk.edu'); У меня была аналогичная проблема в последнее время и решена таким образом –

ответ

0

Функция mysql_connect устарела.

+0

Вы думаете или знаете? – davejal

+0

Google ответит на этот вопрос ... – csmckelvey

+0

Я пробовал один и тот же код для подключения к localhost (база данных на моем компьютере), и он отлично работает – Lefteris

0

на линии, где вы объявляете $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 (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=''; 
+0

Я включил эту проверку: echo «Существует ли mysqli ?». var_dump (function_exists ('mysqli_connect')); Он возвращает false. mysqli не входит. – Lefteris

+0

Я думаю, что вам нужно добавить mysqli, потому что mysql устарел – davejal

+0

проверить, какие ошибки выдаются с заключительной частью моего отредактированного ответа, и посмотреть, что вызывает ошибки – davejal

Смежные вопросы