2017-05-14 1 views
0

Ich versuche, meine MySQL-Datenbank mit dem folgenden PHP-CodeWarum kann mein PHP nicht mit MySQL verbunden werden?

<?php 

require "credentials.php"; 

$conn = mysqli_connect($hostname, $username, $password, $databaseName); 

if(mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

?> 

Und ich erhalte die folgende Ausgabe verbinden:

Failed to connect to MySQL: Connection refused 

Was könnte die Gründe, dass dies geschieht, und wie kann ich es reparieren?

Vielen Dank im Voraus.

+0

"Verbindung abgelehnt" deutet darauf hin, dass eine Firewall die Anfrage blockiert, oder vielleicht eher der MySQL-Port überhaupt nicht geöffnet ist, weil der Server nicht läuft. Stellen Sie sicher, dass der MySQL-Dienst verfügbar ist. Wenn Sie eine Verbindung zu einem lokalen Server herstellen, versuchen Sie es mit 'localhost' anstelle von' 127.0.0.1' als Verbindungshost. Wenn es sich um einen Remote-Host handelt, wenden Sie sich an den Administrator dieses Hosts, um Zugriff über seine Firewall zu erhalten. –

+0

Sind Sie sicher, dass der mysqld-Dienst läuft und läuft? – Zeke

Antwort

0

aus Ihrem Code scheint es, dass Sie nicht definierte Variablen verwenden, um eine Verbindung zur Datenbank herzustellen. wenn man sie von einem externen Datei laden, als in dieser Datei etwas wie folgt verwenden:

define("DBPASSWORD", "database_pass"); 
define("DBUSERNAME", "databaseusername"); 
define("DBNAME", "database"); 
define("DBHOST", "database_host"); 

und als Einsatz in Datei, die Sie uns gezeigt:

$conn = mysqli_connect(DBHOST, DBUSERNAME, DBPASSWORD, DBNAME); 

oder eine andere Art und Weise, die Art und Weise kann ich nicht recomend verwendet Globals.

WARNUNG: Ich rate davon ab, Globals zu verwenden, wenn sie nicht benötigt werden.

Ihre credentials.php sollte so aussehen:

global $databaseName; 
global $password; 
global $username; 
global $username; 
$databaseName= "db_name"; 
$password= "db_password"; 
$username= "db_username"; 
$hostname= "db_host"; 

und als an anderen Orten, müssen Sie zuerst vor der Verwendung die Globals nennen.

Verwandte Themen