it-swarm.com.de

Wie kann ich mit Synology von einer PHP-Seite aus eine Verbindung zu einem MySQL-Server herstellen?

Ich habe ein älteres Synology-Gerät (DSM v5.2-5967 Update 4, phpmyadmin v4.4.7-0103), das einige lokale Websites mit funktionierenden PHP-Seiten hat. Ich möchte dies auf mein neues Synology-Gerät migrieren (DSM V6.1.3-15152 Update 1, phpmyadmin v4.6.6-0172). Bei der Installation der neuen Version von phpmyadmin aus dem Package Center muss ich auch Maria DB und PHP 5.6 herunterladen, wohingegen dies in DSM 5 nicht erforderlich ist. Außerdem unterstützt DSM 6 jetzt Optionen in Web Station Hier kann ich den http-Back-End-Server und die PHP-Version konfigurieren. Ich habe dies auf 5.6 gesetzt, das neben phpmyadmin installiert ist.

Hier ist der Code, der im alten DSM für mich funktioniert hat:

<?php
define ("DB_Host", "localhost"); // Your database Host name
define ("DB_USER", "root"); // Your database user
define ("DB_PASS", ""); // Your database password
define ("DB_NAME", "groceries"); // Your database name

$link = mysql_connect(DB_Host, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
?>

Dieser Code gibt jetzt "Konnte keine Verbindung herstellen" zurück. Andere Sites, die dies nicht verarbeiten, geben einen 500-Server-Fehler zurück. Ich habe erfolglos versucht, localhost durch den Namen des Synology-Geräts zu ersetzen. PHP Dateien selbst funktionieren einwandfrei, aber ich kann keine Verbindung zu einer Datenbank herstellen. Ich kann die Systemsteuerung für Maria DB nirgendwo sehen, daher weiß ich nicht, ob mir Einstellungen fehlen. Dies ist ein neues Gerät mit einer Neuinstallation von Paketen, sodass ich das root-Passwort noch nicht einmal geändert habe.

Ich habe sogar versucht, Apache 2.4 über das Package Center zu installieren, dies in den neuen Web Station-Einstellungen als Back-End-Server festzulegen und den NAS neu zu starten. Aber phpyadmin zeigt immer noch "nginx/1.11.10" als Webserver an. Als Referenz zeigt mein altes NAS Apache unter dem Webserver an, aber ich habe das Apache-Paket nicht installiert.

Ich bin ratlos. Hat jemand versucht, mit Synology DSM 6 eine Verbindung zu einer MySQL-Datenbank herzustellen, und hat es überlebt, die Geschichte zu erzählen?

4
Freakishly

Ich verwende DSM6 mit DS716 + und der folgende Code funktioniert für mich. Es gibt zu viele Gründe, um das Verbindungsproblem zu erreichen. Wie die Erweiterung nicht aktiviert, etc. Bitte verwenden Sie phpinfo (), um zu überprüfen, bevor Sie andere Schritte ausführen. Versuchen Sie, mysqli extension anstelle von mysql zu verwenden, und fügen Sie einen Beispielcode für Sie hinzu:

<?php
$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");

$query = "SHOW TABLES";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s <br />\n", $row[0]);
    }
    $result->close();
}

$mysqli->close();

?>

 enter image description here

PS: Bitte hinterlasse einen Kommentar für wen gib mir eine Ablehnung

2
Allen Chak

mySQL-Server läuft? #service mysql statusoder #mysql in der Befehlszeile. Sie können auch #mysql -u USERNAME -p oder #mysql -u USERNAME -h localhost -p verwenden, um die Anmeldung zu überprüfen. Siehe MySQL Mann

1
Andreas Rex

sie müssen einen Port hinzufügen.

Ich benutze PDO aber du kannst mysql_connect benutzen

  try
  {
     $pdo = new PDO("mysql:Host=servernameport=3307;dbname=database", "username", "password");
  }
  catch(PDOException $e)
  {
     echo $e->getMessage();
  }
      return $pdo;

Um herauszufinden, welchen Port Sie benötigen, gehen Sie zu maria db, wenn im richtigen Fall dieses Paket automatisch installiert wird, wenn Sie phpmyadmin installieren.

1
Scorpion Code