MySQL nur auf localhost; nicht im Netzwerk

  • Hey Leute,


    ich habe ein kleines Problem, denn ich kann von meinem Client-Pc nicht auf die MySQL-Datenbank meines Pis zugreifen. Ist ja nicht so, dass ich das nicht schon zich mal eingerichtet habe und es jedes mal funktioniert hat aber dieses mal irgendwie nicht ...


    Vom Pi komme ich auf die DB, sprich localhost funktioniert alles. Auf phpmyadmin kann ich mittels dem Client-Pc zugreifen, indem ich IP/phpmyadmin adressiere. Auch Berechtigungen sind alle gegeben, also der richtige user mit Host from % angelegt.


    Wenn ich über mysqladmin versuche über "-h 'myip' --port=3306 version'' drauf zugreifen geht nix. Aber status alles ok, mysqld läuft. Nur über localhost geht es. Was kann das sein? Jemand eine Idee? Vielen Dank für Feedback!



    Gruß
    mobby
    [hr]
    *hust* .... erstaunlich wie schnell man den Fehler findet, nachdem man es wo gepostet hat ^^ ... my.cnf "bind-address = 127.0.0.1" war nicht auskommentiert xD

  • Code
    netstat -a | grep LISTEN | grep 3306


    gibt was aus?
    Musste nicht neben dem User einträgen auch host und DB Einträge die Berechtigungen für localhost und remote enthalten? (ist zu lange her)

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Das Problem liegt bei der Zugriffsbeschränkung vom Server selbst. Logins ausserhalb der eigenen Maschine sind aus Sicherheitsgründen beim root(also der MySQL-Account, nicht der Linuxuser mit den meisten Rechten) standardmässig verboten. Abhilfe schafft ein neuer Account. Den kann man easy ohne grosse Kenntnisse bei PHPMyAdmin erstellen (Aber dann nicht vergessen, dass er von allen Interfaces einloggen kann).


    MfG


    miny

    Edited once, last by miny1997 ().

  • MySQL ist standardmäßig so konfiguriert das er auf 127.0.0.1 lauscht, also auch nur Verbindungen von localhost stattfinden können.


    Abhilfe schafft man indem man in /etc/mysql/my.cnf entweder:

    • 0.0.0.0 einstellt
    • die IP der Netzwerkschnittstelle eth0 oder wlan0 etc.

    Welche Zeile damit gemeint ist:

    Code
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address            = 127.0.0.1


    Nachdem das erledigt ist den Dienst neu starten.


    Und dann sicherstellen das ein Benutzer existiert dessen Host eingetragen ist (notfalls ginge auch % um alle zu erlauben, aber Vorsichtig damit! % ist in MySQL ein *)