Schnaps: Mit mySQL DB im lokalen Netzwerk über IP verbinden?

Guten Morgen

Wir haben bei uns einen Rechner mit einer laufenden mySQL Datenbank, dieser Rechner ist bei uns im Netzwerk und auch über ssh normal zu erreichen.

Ich möchte mich nun von meinem Rechner mit einem Perl Script mit dieser Datenbank verbinden, über die IP.

Das geht aber leider nicht, User,PW, Datenbank sind alle richtig, es scheitert einfach nur an der Verbindung.

Wir haben auch schon mal zu testzwecken die Firewall aus gemacht, ging aber auch nicht.

Gibt es bestimmte Einstellungen die wir vornehmen müßen?

Oder hat evtl einer eine Anleitung oder einen Artikel wo ich etwas darüber nachlesen kann?

Gruß
Schnaps

  1. Hallo,

    Wir haben bei uns einen Rechner mit einer laufenden mySQL Datenbank, dieser Rechner ist bei uns im Netzwerk und auch über ssh normal zu erreichen.

    Ich möchte mich nun von meinem Rechner mit einem Perl Script mit dieser Datenbank verbinden, über die IP.

    Das geht aber leider nicht, User,PW, Datenbank sind alle richtig, es scheitert einfach nur an der Verbindung.

    das glaube ich nicht!
    Hast Du irgendwo nmap?
    Dann gib mal "nmap -sS <ip-des-hosts> ein.
    Siehst Du, ob Port 3306 offen ist?

    Wenn ja, dann stimmt wahrscheinlich der User nicht.
    Wahrscheinlich hat nur user@localhost Zugriffsrechte. Du brauchst aber auch welche für user@fernrechner oder - wenn Du es Dir einfach machen willst - für user@%

    Gruß
    Reiner

    1. Es klappt gerade aber nur nicht von allen Rechnern, auf einem anderen Rechner klappt es wenn man sich dort direkt mit mysql Befehlen anmeldet.

      Also kann es ja nicht an dem User liegen.

      1. Es klappt gerade aber nur nicht von allen Rechnern, auf einem anderen Rechner klappt es wenn man sich dort direkt mit mysql Befehlen anmeldet.

        Also kann es ja nicht an dem User liegen.

        Was erwartest Du jetzt?
        Ohne ein bischen Quelltext kann Dir dabei keiner helfen.

        Gruß
        Reiner

        1. Teste gerade mit einem minimal Script:

          #!/usr/bin/perl
          use strict;

          use DBI();                          #Datenbank Modul

          #################################################################################################

          Datenbank Verbindung

          my $host = "134.....";
          my $user = "ta....";
          my $password = "....";
          my $datenbank = "taxa_info";

          my $dbh = DBI->connect( "DBI:mysql:$datenbank:$host", $user, $password );

          Dabei kann ja nicht so viel falsch sein.

          Die Meldung die da raus kommt ist folgende:

          DBI connect('taxa_info:134....','ta..r',...) failed: Lost connection to MySQL server during query at ./test.pl line 14

          gruß
          schnaps

          1. DBI connect('taxa_info:134....','ta..r',...) failed: Lost connection to MySQL server during query at ./test.pl line 14

            Das heißt wohl, Du bekommst eine Verbindung, die aber direkt(?) wieder flöten geht.
            Wieviele Daten schickst Du denn rüber bzw. mach erstmal ein sehr einfaches select.
            Auf was steht denn Dein Timeout von MySQL?

            Hast Du mal den Administrator bzw. Query Browser von MySQL ausprobiert und damit vom Client auf der DB rumgefummelt?
            Funktioniert das?

            Gruß
            Reiner

            1. Hi Reiner,

              ich hab den Code jetzt um folgende Zeile erweitert.

              my $sql="SELECT * FROM taxa WHERE ";
              my $sth = $dbh->prepare($sql);
              $sth->execute();

              da kommt dann aber die selbe Fehlermeldung.(+ der aussage das prepare() nicht angewendet werden kann, was aber klar ist, da keine verbindung da ist

              1. Hallo schnaps

                Hi Reiner,

                ich hab den Code jetzt um folgende Zeile erweitert.

                my $sql="SELECT * FROM taxa WHERE ";

                Das ist kein gültiger mySQL Befehl. WHERE was?

                Struppi.

                1. ääää, hups da hab ich mich vertippt!!!

                  natürlich ohne das where, aber ändert nichts an der Fehlermeldung.

          2. Moin!

            Teste gerade mit einem minimal Script:

            Das Skript ist vollkommen ausreichend.

            my $dbh = DBI->connect( "DBI:mysql:$datenbank:$host", $user, $password );

            DBI connect('taxa_info:134....','ta..r',...) failed: Lost connection to MySQL server during query at ./test.pl line 14

            Dein Skript kann den DB-Server nicht erreichen. Warum das so ist, ist jetzt zu erforschen.

            Also erstmal die Basics:
            1. Kannst du von deinem Rechner aus den DB-Server mit PING erreichen?
            2. Hat der DB-Server TCP-Konnektivität aktiviert? Ist dort also Port 3306 offen und generell erreichbar (das kann man nämlich auch abschalten)?
            3. Funkt eventuell eine Firewall auf dem DB-Server oder auf deinem Client dazwischen?

            • Sven Rautenberg