• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

mySQL will nicht

  • Ersteller nils_langner
  • Erstellt am

nils_langner

Gast
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
 

drlecter

Wöbers Rambur
Registriert
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.
 

nils_langner

Gast
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 :(
 

drlecter

Wöbers Rambur
Registriert
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)
 

nils_langner

Gast
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.
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
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!
 

stk

Grünapfel
Registriert
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
 

nils_langner

Gast
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.
 

nils_langner

Gast
noch ein kleiner nachtrag:

mit netstat -ta bekomm ich

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

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Auf die Gefahr hin mich zu wiederholen: Du mußt in MYSQL den Zugriff übers Netzwerk zulassen.
 

nils_langner

Gast
vielleicht noch ein kleiner tipp, wie ich das mache?
 

nils_langner

Gast
ü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.
 

drlecter

Wöbers Rambur
Registriert
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?
 

nils_langner

Gast
@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.
 

nils_langner

Gast
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.
 

nils_langner

Gast
glaubt ihr auch, dass es jetzt an php und nicht am mysql server liegt?
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
Hm da muss ich auf Anhieb passen. Welche Versionen hast du denn installiert?