Ankündigung

Einklappen
Keine Ankündigung bisher.

mySQL Datenbanken mit unterschiedlichen Port-Adressen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mySQL Datenbanken mit unterschiedlichen Port-Adressen

    Ich habe auf meinem lokalen Debian System eine mySQL Datenbank an Port 3306 am laufen.
    Mit folgenden Parametern kann ich mich auf die Datenbank verbinden:

    PHP-Code:
    $DB_HOST "127.0.0.1"// Standard Port 3306
    $DB_NAME "t2508"// Datenbankname
    $DB_BENUTZER "test"// Benutzername
    $DB_PASSWORT "test"// Passwort 
    Der MariaDB Monitor auf meinem lokalen System gibt u.a. folgendes aus:

    Code:
    Current user: root@localhost
    Server: MariaDB
    Server version: 10.1.38-MariaDB-0+deb9u1 Debian 9.8
    Protocol version: 10
    Connection: localhost via TCP/IP
    TCP port: 3306
    Wenn ich nun mein PHP-Projekt von meiner lokalen Umgebung auf den Web-Server meiner Synology NAS kopiere scheitert diese Verbindung mit "SQLSTATE[HY000] [2002] Connection refused" da hier u.a. der Port 3307 verwendet wird.
    Mit folgenden Parametern kann ich mich auf die Datenbank verbinden:

    PHP-Code:
    $DB_HOST "localhost:3307";
    $DB_NAME "t2508"// Datenbankname
    $DB_BENUTZER "test"// Benutzername
    $DB_PASSWORT "test"// Passwort 
    Der MariaDB Monitor gibt auf der Synology NAS folgendes aus:

    Code:
    Current user: root@localhost
    Server: MariaDB
    Server version: 10.3.7-MariaDB Source distribution
    Protocol version: 10
    Connection: Localhost via UNIX socket
    UNIX socket: /run/mysqld/mysqld10.sock

    Was muss ich denn wo einstellen, damit ich bei beiden Systemen den gleichen Connection Typ habe, sodass ich die gleichen Verbindungsparameter verwenden kann? Wobei ich lieber die Einstellungen an der Synology NAS unberührt lassen möchte

  • #2
    Du kannst den Port in der Konfigurationsdatei von Mysql ändern.
    Öffne my.ini
    gehe zu Punkt mysqld,
    Code:
    [mysqld]
    port=3306
    Dort den Port ändern, Datei speichern und Service neu starten.

    Kommentar


    • #3
      Das hatte ich bereits schon gemacht und hat das Problem nicht gelöst. Ich konnte nach der Umstellung auf Port 3307 mit z.B. phpMyAdmin auf mysql zugreifen und verwalten.
      Leider ließ sich aber keine Verbindung via PHP zur Datenbank herstellen.
      Ich verwende dazu:
      $db = new PDO("mysql:host=" . $DB_HOST . ";dbname=" . $DB_NAME, $DB_BENUTZER, $DB_PASSWORT, $OPTION);
      Die Fehlermeldung ist
      SQLSTATE[HY000] [2005] Unknown MySQL server host 'localhost:3307' (2)
      Mir scheint, dass das Problem mit Connection: localhost via TCP/IP TCP port: 3306 und Connection: Localhost via UNIX socket UNIX socket: /run/mysqld/mysqld10.sock zu tun hat.
      Der eine akzeptiert "localhost" der andere nicht. Das gleiche gilt für "127.0.0.1".
      Vermutlich hat das was mit "bind" und TCP bzw. UNIX Socket zu tun. Leider habe ich eine Lösung noch nicht herausgefunden.

      Kommentar


      • #4
        SQLSTATE[HY000] [2005] Unknown MySQL server host 'localhost:3307' (2)
        3307 != 3306

        Kommentar


        • #5
          Geht leider auch nicht da die eine Installation "localhost" und die andere "127.0.0.1" nicht akzeptiert.
          Ich habe das jetzt erst mal temporär mittels Abfrage der globalen Variable
          Code:
           $_SERVER['SERVER_ADDR']
          gelöst. Abhängig von der IP-Adresse setze ich die $DB_HOST. Das funktioniert einwandfrei.

          Kommentar


          • #6
            Connection: localhost via TCP/IP
            TCP port: 3306

            Connection: Localhost via UNIX socket
            UNIX socket: /run/mysqld/mysqld10.sock
            ist ja nun mal was anderes....

            Kommentar


            • #7
              Wenn MySQL und die Anwendung auf dem selben System laufen, würde ich Unix Sockets vorziehen, da so der TCP Overhead wegfällt. Du gibst in diesem Fall dann "/run/mysqld/mysqld10.sock" anstatt von localhost ein.

              Kommentar

              Lädt...
              X