2017-02-07 2 views
-3

Ich muß zu einem entfernten MySQL-Server mit PHP verbinden, aber ich erhalte die folgenden Fehler:PHP nicht auf Remote-Verbindung mit MySQL

Warning: mysqli::mysqli(): (HY000/2003): Can't connect to MySQL server on ... (13) in /var/www/html/index.php on line 16 

Warning: mysqli::query(): Couldn't fetch mysqli in /var/www/html/index.php on line 17 

Fatal error: Call to a member function fetch_assoc() on a non-object in /var/www/html/index.php on line 18 

Der Remote-Server firewal ist offen, Benutzerberechtigung von jedem beliebigen Host zu verbinden hat, und ich bin in der Lage, vom lokalen Server mit mysql Befehlszeile zu verbinden, aber nicht in der Lage, mit PHP zu verbinden.

Was könnte das Problem hier sein?

EDIT: Bereits mit anderen Verbindungscode versucht, aber immer gleichen Fehler.

Dies ist das späteste:

$mysqli = new mysqli(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); 
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS msg"); 
$row = $result->fetch_assoc(); 
echo $row['msg']; 
+1

Wie sollen wir das sagen? Sie geben Ihren Verbindungscode nicht frei. – baao

+0

Bearbeitet, um den Verbindungscode hinzuzufügen. Anyway hat schon verschiedene Codes ausprobiert und hat nicht funktioniert. Dies scheint irgendwo eine Einstellung zu sein, aber konnte auf php.ini nichts finden, was entfernte MySQL-Verbindungen beeinträchtigen könnte. – BeoWulf

+0

Debuggen Sie es mit http://php.net/manual/en/mysqli.connect-error.php glhf. –

Antwort

3

Dies ist ein Problem mit SELinux, das keine httpd-Netzwerkverbindungen zulässt.

Executing:

setsebool -P httpd_can_network_connect=1 

das Problem gelöst.

0

Stellen Sie sicher, dass Informationen in den Verbindungsinformationen eingefügt. Ersetzen Sie DB_DATABASE und andere Schlüsselwörter durch Ihre Datenbankinformationen in einfachen Anführungszeichen.