Wieder jemand mit Verbindungsproblemen PHP->MariaDB auf der DS

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
214
Punkte für Reaktionen
2
Punkte
18
Moin zusammen,

sorry dass hier jemand zum Xsten Mal die Verbindung zwischen einem PHP-Script und der Maria-DB auf seiner DS nicht hinbekommt. Auf der anderen Seite sind dabei aber so viele Einstellungen zu machen, dass da sicherlich auch was schieflaufen kann. Habe hier im Forum schon mal ein paar Sachen gefunden und umgesetzt - leider keinen Erfolg.

Also:

Die Webstation ist eingerichtet, ich habe dort auch bei den Script-Einstellungen beim dem Benutzerdefinierten Profil wie auch bei phpMyAdmin die Erweiterungen aktiviert. Als PHP-Version ist bei beiden PHP 8 eingestellt. In der MariaDB hab ich zudem TCP/IP aktiviert. Die mysqli-Erweiterung wird in phpmyAdmin ebenfalls angezeigt.

Das normale Ausführen von PHP-Scripts funktioniert wunderbar, ich bekomme nur keine Verbindung zu meiner DB hin. Ich versuche das aktuell mit diesem Script:

Code:
$con = @new mysqli("192.168.1.100:3307", "root", "passwort", "db_name");

Auch wenn ich den Port 3307 hinter dem DB-Namen anhänge, bekomme ich keine Verbindung (connect_error). Als Name und Passwort habe ich jetzt das angegeben, mit dem ich mich auch per phpMyAdmin bei der Datenbank anmelde.

Es kann natürlich auch sein, dass ich an anderer Stelle noch ein paar Einstellungen machen muss, ich bin hier nach der Anleitung von Synology vorgegangen.


Wäre für jeden Tipp dankbar.

Frederic
 
Zuletzt bearbeitet:

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
214
Punkte für Reaktionen
2
Punkte
18
So, mal ein Nachtrag:

ich hab den ganzen Tag jetzt rumprobiert und ein kleines Testscript getestet: Auf meinem Webspace funktionierte dieses ohne Probleme.

Ich habe die Gelegenheit dann genutzt und meine ds218+ mal auf DSM 7.2 zu aktualisieren, habe da php 8.2 installliert (erst da soll, soweit ich weiß, execute_query funzen), hab MariaDB aktualisiert, die Script-Spracheneinstellungen, den Webdienst und das Webportal hergerichtet - nichts. Nach wie vor kann keine Verbindung hergestellt werden.

Ich weiß in der Hinsicht auch nicht, welchen Host ich jetzt überhaupt angeben muss. Passwort und DB-Name stimmen zumindest, und da ich mich bei phpMyAdmin mit "root" anmelde, denke ich mal, dass das auch stimmt.

Ich habe so etwas mal bei meiner alten DS in Zeiten von PHP 5.6 gemacht (also 10 Jahre her oder so), da fand ich das nicht so kompliziert wie jetzt und es hat auch recht schnell funktioniert.

Hier mal das Script, vielleicht fällt einem freundlichen Auge etwas auf...


Code:
<?php
        include "23-u_db_anzeigen_zeit.inc.php";

        $con = new mysqli("127.0.0.1:3307", "root", "passwort", "firma");
        if($con->connect_error)
            exit("Fehler bei Verbindung");

        $sql = "SELECT * FROM personen";
        if($res = $con->execute_query($sql))
        {
            if($res->num_rows == 0)
                echo "Keine Ergebnisse";

            while($dsatz = $res->fetch_assoc())
                echo $dsatz["name"] . ", "
                . $dsatz["vorname"] . ", "
                . $dsatz["personalnummer"] . ", "
                . $dsatz["gehalt"] . ", "
                . db_datum_aus($dsatz["geburtstag"]) . "<br>";

                $res->close();
        }
        else
            exit("Fehler bei Abfrage");

        $con->close();
    ?>
 

patrickn

Benutzer
Mitglied seit
07. Apr 2016
Beiträge
202
Punkte für Reaktionen
61
Punkte
28
Verwende mal mysqli_error vielleicht bekommst du dann eine vernünftige Fehlermeldung.

Die Portangabe ist auch nicht nötig, sofern nicht vom Standard abgewichen wird. Einfach localhost.
 
  • Like
Reaktionen: Furchensumpf

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
214
Punkte für Reaktionen
2
Punkte
18
OK, ich habe jetzt mal nach dem Verbindungsaufruf
Code:
if (mysqli_connect_errno()) {
    printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    }

eingefügt. Da kam folgendes raus:

Verbindung fehlgeschlagen: Access denied for user 'root'@'DS218Plus.fritz.box' (using password: YES)

Wenn ich jetzt aber den Port hinter der Hostangabe entferne kommt das:

Verbindung fehlgeschlagen: Connection refused

Wenn ich jetzt statt der IP meiner DS "localhost" eingebe, bekomme ich eine 500er-Fehlermeldung.

Sorry, aber ich bin bei PHP 5.6 ausgestiegen und tu mich aktuell mit den ganzen Änderungen noch etwas schwer...^^
 
Zuletzt bearbeitet:

patrickn

Benutzer
Mitglied seit
07. Apr 2016
Beiträge
202
Punkte für Reaktionen
61
Punkte
28
Wenn nach der Änderung auf "localhost" keine Fehlermeldung vom PHP Script mehr kommt, sondern ein 5xx-Error (also Serverfehler) würde ich mal vermuten, dass die Verbindung nun klappt, und der 500er Fehler eher durch eine fehlerhafte httpd-conf und/oder .htaccess ausgelöst wird.
 
  • Like
Reaktionen: Furchensumpf

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
214
Punkte für Reaktionen
2
Punkte
18
ok, nachdem ich jetzt mal versucht habe alles auf PHP 8.2 umzustellen, kommt das hier:

Fatal error: Uncaught mysqli_sql_exception: Connection refused in /volume1/web/uebungen_php/23-u_db_anzeigen.php on line 16mysqli_sql_exception: Connection refused in /volume1/web/uebungen_php/23-u_db_anzeigen.php on line 16Call Stack: 0.0000 360728 1. {main}() /volume1/web/uebungen_php/23-u_db_anzeigen.php:0 0.0001 361544 2. mysqli->__construct($hostname = '192.168.1.100', $username = 'root', $password = '[Sensitive Parameter]', $database = 'firma') /volume1/web/uebungen_php/23-u_db_anzeigen.php:16

Line 16 ist der Verbindungsaufruf...die mysqli-Erweiterungen sind alle installiert...

Nachtrag: OK, ich habe es jetzt mal testweise auf "localhost" gestellt - und es funktioniert. Keine Ahnung, aber nach einem Tag funktioniert es endlich...
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat