1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

mySQL will nicht

Dieses Thema im Forum "macOS & OS X Server" wurde erstellt von nils_langner, 16.01.07.

  1. Hallo zusammen,

    ich habe bei mir den mySQL Server installiert, ging auch alles ohne Probleme. Komme mit "mysql" auf die mysql Konsole. Nur per PHP und Phpmyadmin komme ich nicht auf den Server drauf.

    Phpmyadmin:
    MySQL meldet:
    #2003 - Der Server antwortet nicht.

    Woran kann das denn liegen? Hab hier noch den Auszug aus dem phpmyadmin config file. In der php.ini sind auch alle mysql dinge einkommentiert.

    Code:
    $cfg['Servers'][$i]['host']          = 'localhost'; // MySQL hostname or IP address
    $cfg['Servers'][$i]['port']          = '';          // MySQL port - leave blank for default port
    $cfg['Servers'][$i]['socket']        = '';          // Path to the socket - leave blank for default socket
    $cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL server ('tcp' or 'socket')
    $cfg['Servers'][$i]['extension']     = 'mysql';     // The php MySQL extension to use ('mysql' or 'mysqli')
    $cfg['Servers'][$i]['compress']      = FALSE;       // Use compressed protocol for the MySQL connection
                                                        // (requires PHP >= 4.3.0)
    $cfg['Servers'][$i]['controluser']   = '';          // MySQL control user settings
                                                        // (this user must have read-only
    $cfg['Servers'][$i]['controlpass']   = '';          // access to the "mysql/user"
                                                        // and "mysql/db" tables).
                                                        // The controluser is also
                                                        // used for all relational
                                                        // features (pmadb)
    $cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (config, http or cookie based)?
    $cfg['Servers'][$i]['user']          = 'root';      // MySQL user
    $cfg['Servers'][$i]['password']      = 'meinPasswort';   // MySQL password (only needed
    Grüße Nils
     
  2. drlecter

    drlecter Wöbers Rambur

    Dabei seit:
    04.11.06
    Beiträge:
    6.442
    Das Problem ist, dass das socket nicht gefunden wird. IMHO sucht PHP danach in /tmp/mysql.sock, die Standardinstallation legt diese aber in /var/tmp/mysql.sock an. Dieses kannst du in der mysql.ini (ja sie heist so) ändern.
     
  3. ok vielen dank. wo soll denn diese mysql.ini datei sein. ich hab ein tutorial gefunden, da steht drin dass die datei my.cnf heissen soll. stimmt das? die musste ich ins /etc/my.cnf legen.
    hat aber leider nicht geklappt :(
     
  4. drlecter

    drlecter Wöbers Rambur

    Dabei seit:
    04.11.06
    Beiträge:
    6.442
    Args, Asche auf mein Haupt. Die heist bei PHP so. es ist die my.cnf. Unter /usr/local/mysql/support-files findest du verschiedene Konfigurationen. Du kannst z.B. die my-medium.cnf nehmen und diese nach /etc/my.cnf kopieren. Dann in dieser Datei unter /etc einfach die Zeile so abändern.
    socket = /tmp/mysql.sock
    Komischerweise klappte der Eintrag des Socketfiles bei mir nicht in der config Datei von PHPMyAdmin. Deswegen hatte ich das da geändert (ok ich muss sagen, ich kenn die Datei auch nur unter /tmp)
     
  5. nochmal vielen dank, aber es klappt wieder nicht. ich bekomme immer noch

    Code:
    #2003 - Der Server antwortet nicht. 
    

    bin echt kurz vorn durchdrehen :( Habe schon diverse Anleitungen durch. chown mysql hab ich auch schon bei den meisten dateien gemacht. Den socket in der config von phpmyadin hab ich auch versucht, natürlich ohne erfolg.
     
  6. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Du brauchst keinen socket, da Du als Verbindungsart tcp eingestellt hast. Dazu mußt Du aber im mysql auch die Verbindung über tcp zulassen. Frag mich nicht, wie das geht, ich habe das einmal vor 3 Jahren gemacht. Aber das steht ja auch alles in den Anleitungen. Du solltest aber nicht den root User dafür verwenden!
     
  7. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    am einfachsten machst einen Link zwischen tatsächlichem und erwartetem Verzeichnis:

    Code:
    ln -s /var/tmp/mysql.sock /tmp/mysql.sock
    Die Pfade habe ich jetzt mal nicht geprüft, sondern aus obigem Posting übernommen.

    Gruß Stefan
     
  8. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Was nutzt ihm ein Socket, wenn die Verbindung über tcp läuft?
     
  9. und wieder alles probiert :( nicht hat geklappt.
    #skip-networking
    ist auskommentiert und der phpmyadmin auf tcp umgestellt ... geht nicht , die socket varianten gehen auch nicht. habe irgendwie angst, dass ich bei irgendeinem versuch was falsch gemahct hab und das die fehler jetzt "vererbt" werden.
     
  10. noch ein kleiner nachtrag:

    mit netstat -ta bekomm ich

    Proto Recv-Q Send-Q Local Adress Foreign Adress (state)
    tcp4 0 0 *.mysql *.* LISTEN
     
  11. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Auf die Gefahr hin mich zu wiederholen: Du mußt in MYSQL den Zugriff übers Netzwerk zulassen.
     
  12. vielleicht noch ein kleiner tipp, wie ich das mache?
     
  13. über telnet komm ich auf 127.0.0.1 ... und irgendwie passiert jetzt auch was, wenn ich phpmyadmin starte. aber statt der fehlermeldung bekomme ich einen leeren schirm vom system zurück.
     
  14. drlecter

    drlecter Wöbers Rambur

    Dabei seit:
    04.11.06
    Beiträge:
    6.442
    Mein Fehler, ich hab das TCP im config File übersehen. Da PHPMyAdmin immer auf der gleichen Maschine wie der Server läuft, lasse ich das immer über die Sockets laufen. TCP ist normalerweise immer aktiviert, wenn man das nicht in der my.cnf mit skip-network rausnimmt, oder mit der Firewall den Zugriff unterbindet.
    Um den TCP Zugriff zu testen kannst du im Terminal telnet misbrauchen.
    Versuche einmal telnet localhost 3306
    Wenn der mysql antwortet siehst du das.
    Hast du eigendlich Zugriff auf den Server? Das der Server läuft sieht man ja. Versuche doch aber mal im Terminal was zu machen.
    /usr/local/mysql/bin/mysqladmin drop blabla -u root -p
    versucht eine DB mit dem Namen blalba zu erstellen. -u ist klar und -p sorgt dafür, das nach einem Passwort nachgefragt wird. Somit kannst du den Zugriff einmal testen.
    Welche Version hast du eingendlich installiert?
     
  15. @drlecter da haben wir ja zum fast gleichen moment gepostet. kannst ja noch schnell lesen was ich geschrieben hab. telnet geht also, auf den server kann ich auch mit mysqladmin zugreifen.

    vielleicht liegt das ganze ja jetzt an PHP und nicht an mysql? aber die phpinfo() sieht eigentlich ganz brauchbar aus :(

    wie gesagt, hab jetzt beim phpmyadmin einen leeren screen. sieht ganz nach timeout oder so aus, denn wenn ich am anfang der index.php (phpmyadmin) ein echo "hallo" schreib, kommt das auch nicht beim browser an. aber bei nem php fehler müsste ich doch ne error_msg bekommen. zumindest ist es in der php.ini so eingestellt.
     
  16. noch mal ein kleiner nachtrag:

    wenn ich über:
    $l_db = new PDO( 'mysql:host=...);

    versuche ein neues PDO Datenbank Object zu erzeugen, dann schmiert mir mein system auch ab und bringt den leeren screen zum vorschein.
     
  17. glaubt ihr auch, dass es jetzt an php und nicht am mysql server liegt?
     
  18. drlecter

    drlecter Wöbers Rambur

    Dabei seit:
    04.11.06
    Beiträge:
    6.442
    Hm da muss ich auf Anhieb passen. Welche Versionen hast du denn installiert?
     

Diese Seite empfehlen