MySql :: läuft nicht :: mysql.sock nicht gefunden

dackel

dackel

Aktives Mitglied
Thread Starter
Dabei seit
22.10.2003
Beiträge
899
Reaktionspunkte
12
MySql :: läuft nicht :: mysql.sock nicht gefunden [GELÖST!]

Hey Leute,

zuvor eines: Ich habe im Forum schon mal nach dem Thema gesucht, aber nichts passendes gefunden. Schade.

Mein PHP rennt wie Sau - also richtig gut. Nutze übrigens den OS-X-eigenen Apache.

Wenn ich lokal eine Seite, die SQL benötigt, aufrufe, erscheint die Fehlermeldeung "could not connect to database".
Soweit so gut.

Jetzt wollte ich ins phpmyadmin rein und bekomme folgende Fehelermeldung:
"#2002 - Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38) "

Unter /var ... habe ich kein mysql.sock. Wohl aber unter /tmp.
Kopiere ich die in das vvar-Verzeichnis, bekomme ich keine Änderung.

Den Rechner habe ich ein paar mal neu gestartet, php und sql mal neu gestartet - keine Änderung. SQL auch mal neu installliert.

Noch ein paar Versionen:

OS-X 10.4.4
phpMyAdmin 2.5.5
mySQL 4.0.21 von serverlogistics (mit mamp will ich das nicht so recht bauen).

Noch ein Frage:
Wenn ich das SQL deinstalliere, sind dann meine wichtigen Datenbanken weg? Das darf in keinem Fall passieren.


Noch ein Wort zum Terminal:
So wunderbar kann ich damit nicht umgehen. Falls ich darüber was machen muss ... dann bitte für Hausfrauen erklären.


Ich danke euch für jede hilfreiche Antwort.


Die schönsten Grüße aus dem Schnee.


Bodo
 
Zuletzt bearbeitet:
dackel schrieb:
Hey Leute,

zuvor eines: Ich habe im Forum schon mal nach dem Thema gesucht, aber nichts passendes gefunden. Schade.

Mein PHP rennt wie Sau - also richtig gut. Nutze übrigens den OS-X-eigenen Apache.

Fein!

dackel schrieb:
Wenn ich lokal eine Seite, die SQL benötigt, aufrufe, erscheint die Fehlermeldeung "could not connect to database".
Soweit so gut.

Jetzt wollte ich ins phpmyadmin rein und bekomme folgende Fehelermeldung:
"#2002 - Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38) "

Unter /var ... habe ich kein mysql.sock. Wohl aber unter /tmp.
Kopiere ich die in das vvar-Verzeichnis, bekomme ich keine Änderung.

Den Rechner habe ich ein paar mal neu gestartet, php und sql mal neu gestartet - keine Änderung. SQL auch mal neu installliert.

Noch ein paar Versionen:

OS-X 10.4.4
phpMyAdmin 2.5.5
mySQL 4.0.21 von serverlogistics (mit mamp will ich das nicht so recht bauen).
Nimm doch bitte einmal die Version von MySQL selbst und nicht eine von »dritter« Seite.

Das gibt's hier als Installations-PKG:
http://dev.mysql.com/downloads/mysql/4.1.html
und dann unter "Mac OS X downloads" (nicht zu weit herunter, die Tar-Pakete bringen Dir vermutlich nichts).

Einfach installieren. Aber Vorsicht!
dackel schrieb:
Noch ein Frage:
Wenn ich das SQL deinstalliere, sind dann meine wichtigen Datenbanken weg? Das darf in keinem Fall passieren.

Dann solltest Du in das »alte« MySQL-Verzeichnis navigieren und den Ordner »data« (zum Beispiel in /usr/local/mysql/) bis nach der Neu-Installation verschieben und anschließend wieder zurückschieben.

dackel schrieb:
Noch ein Wort zum Terminal:
So wunderbar kann ich damit nicht umgehen. Falls ich darüber was machen muss ... dann bitte für Hausfrauen erklären.


Ich danke euch für jede hilfreiche Antwort.


Die schönsten Grüße aus dem Schnee.


Bodo

Definiere »Hausfrau« ;D
 
Zum Terminal und dem alten MySQL-Verzeichnis mache ich das ungefähr so:

Code:
benutzername% su -
Password:
root# cd /usr/local/mysql
root# tar -cf data.tar ./data
{warten}
root# mv ./data.tar /tmp/.
{jetzt MySQL installieren, aber NICHT den Rechner neu starten}
root# cd /usr/local/mysql/
root# /Library/StartupItems/MySQL/MySQL stop
Stopping MySQL database server
root# mv ./data ./data-dist
root# mv /tmp/data.tar ./.
root# tar xf ./data.tar
root# /Library/StartupItems/MySQL/MySQL start
Starting MySQL database server
root# exit
Benutzername% exit

Diese Schritte sollten es tun, wenn Du Dich aber mit dem Terminal nicht auskennst, solltest Du Dir Zeit nehmen und vorsichtig sein. Zudem habe ich hier den root-Account via NetInfo-Manager zuvor aktiviert.

Wichtig: Alle Zeilen die "Benutzername%" oder "root #" davor enthalten, sind Deine Eingaben, aber ohne "Benutzername%" oder "root #" selbst.

Wenn da also steht
Code:
root# cd /usr/local/mysql
... dann tippst Du nur "cd /usr/local/mysql" ein, also ohne "root#". Angaben in geschweiften Klammern sind meine Kommentare. Zeilen ohne Benutzernamen/root am Anfang sind Meldungen von Deinem System.

Viel Glück.
 
Hilarious schrieb:
Dann solltest Du in das »alte« MySQL-Verzeichnis navigieren und den Ordner »data« (zum Beispiel in /usr/local/mysql/) bis nach der Neu-Installation verschieben und anschließend wieder zurückschieben.

ähm ... den Data-Ordner finde ich nicht so recht.

was mach ich nur.

Hilarious schrieb:
Definiere »Hausfrau« ;D

Ein Mensch, der mit den höheren Techniken dieser Welt nicht so recht klar kommt. Für gewöhnlich, selbstverständlich. ;-)

Die beiden Codes aus dem verlinken Thread habe ich übrigens probiert ... keine Änderung.
 
suche mal nach "MAMP"

ist ein praktisches programm, das dir auf einfachste weise einen server mit php mysql, ..... bietet und auf einen klick startet und stoppt -ich finds sehr praktisch :)

gruss simu
 
Ist das nicht reichlich überflüssig, MySQL zu löschen und wieder aufzuspielen, nur weil
der Pfad zur mysql.sock falsch angegeben ist?

Entweder also den Pfad zur mysql.sock in der php.ini umstellen, oder in der my.cnf
einstellen, wo dieses Socket hin soll. Das Problem ist nur, dass ich nicht weiss, wo
diese Dateien bei deiner PHP/MySQL sind, aber sowas wie
Code:
find / -type f -name "my.cnf"
sollte das klären.

Wenn du nun den Pfad dieser Dateien hast, benötigst du erstmal root-Rechte (su root),
dann öffnest du die Datei mit vi /pfad/zur/datei, kommst mit i in den Eingabemodus,
und suchst dann die Zeile "socket = /var/irgendwas" (direkt unter "[mysqld]" und
"port = 3306"), und stellst den Wert auf "/tmp/mysql.sock" um. Mit Escape, dann
Doppelpunkt, dann "wq", dann "Return" speicherst du die Änderung und verlässt vi.

Dann einmal MySQL neustarten, sollte dann klappen.
 
moses_78 schrieb:
Ist das nicht reichlich überflüssig, MySQL zu löschen und wieder aufzuspielen, nur weil
der Pfad zur mysql.sock falsch angegeben ist?

Entweder also den Pfad zur mysql.sock in der php.ini umstellen, oder in der my.cnf
einstellen, wo dieses Socket hin soll. Das Problem ist nur, dass ich nicht weiss, wo
diese Dateien bei deiner PHP/MySQL sind, aber sowas wie
Code:
find / -type f -name "my.cnf"
sollte das klären.

Wenn du nun den Pfad dieser Dateien hast, benötigst du erstmal root-Rechte (su root),
dann öffnest du die Datei mit vi /pfad/zur/datei, kommst mit i in den Eingabemodus,
und suchst dann die Zeile "socket = /var/irgendwas" (direkt unter "[mysqld]" und
"port = 3306"), und stellst den Wert auf "/tmp/mysql.sock" um. Mit Escape, dann
Doppelpunkt, dann "wq", dann "Return" speicherst du die Änderung und verlässt vi.

Dann einmal MySQL neustarten, sollte dann klappen.

Jetzt das ganze nochmal für Hausfrauen. Ich hab's am Anfang aber gesagt.

Hab übrigens nochmal "Original-mySQL" installier - keine Änderung.
 
dackel schrieb:
Jetzt das ganze nochmal für Hausfrauen. Ich hab's am Anfang aber gesagt.

Hab übrigens nochmal "Original-mySQL" installier - keine Änderung.
Sorry, wesentlich einfacher kann ich das gar nicht formulieren. Du musst im
Grunde nur den ganzen Kram in die Konsole eintippen, und die my.cnf ist
eben die zentrale Konfigurationsdatei vom MySQL-Server.
 
dackel schrieb:
Jetzt das ganze nochmal für Hausfrauen. I

mysql ist nichts für "Hausfrauen" ohne tiefgreifendere Ahnung von Computersystemen!! Du wirst Dich schon mit der Thematik genauer auseinandersetzen müssen! Ein DBMS ist keine Klickibunti-Software mehr ( und mysql eine einfaches DBMS!). Alle Informationen die Du benötigst gibt es hier im Forum in mehrfacher Ausführung ( such mal nach mysql.sock), denn Du bist nicht der Erste mit dem Problem.


Eine Lösung findest Du hier (mit der von Dir schon bemühten Suchfunktion):

https://www.macuser.de/forum/showthread.php?t=141334&highlight=mysql+socket

um's verstehen und Anwenden wirst Du aber nicht umhin kommen !
 
dackel schrieb:
Wenn ich das SQL deinstalliere, sind dann meine wichtigen Datenbanken weg? Das darf in keinem Fall passieren.
1) Das heißt, die Serverinstallation als solche läuft und du hast schon Daten reinbekommen?
2) Wie?
3) Kann es sein, dass die Fehlermeldung mit den Sockets in die Irre führt und vielleicht einfach nur der Port zu ist (Firewall) oder User /Passwort nicht stimen?
4) Mach ein Dump: /Pfad/zum/Programm/mysqldump -e -u benutzer -p --All-DATABASES > backup.sql
Das kannst Du später mit mysql -u -p < /Pfad/zum/Programm/backup.sql wieder reinspielen.
 
@ruerueka:
/Library/mysql/bin/mysqldump: unknown option '--All-DATABASES'

@wegus:

nach
mkdir /private/var/mysql/
ln -s /private/tmp/mysql.sock /private/var/mysql/mysql.sock

kommt
ln: /private/var/mysql/mysql.sock: File exists


nach
sudo bash
ln -s /tmp /var/mysql

kommt
ln: /var/mysql/tmp: File exists


nach
ln -s /private/tmp/mysql.sock /private/var/mysql/mysql.sock

kommt
ln: /private/var/mysql/mysql.sock: File exists


nach
mysql.default_socket = /tmp/mysql.sock

kommt
tcsh: mysql.default_socket: Command not found.

Das:
Code:
benutzername% su -
Password:
root# cd /usr/local/mysql
root# tar -cf data.tar ./data
{warten}
root# mv ./data.tar /tmp/.
{jetzt MySQL installieren, aber NICHT den Rechner neu starten}
root# cd /usr/local/mysql/
root# /Library/StartupItems/MySQL/MySQL stop
Stopping MySQL database server
root# mv ./data ./data-dist
root# mv /tmp/data.tar ./.
root# tar xf ./data.tar
root# /Library/StartupItems/MySQL/MySQL start
Starting MySQL database server
root# exit
Benutzername% exit

auch gemacht.
NAch
root# /Library/StartupItems/MySQL/MySQL start

kommt aber nicht "Starting MySQL database server".
Auch keine Fehlermeldung.


nun steh ich hier, ich armer Thor und bin so schlau als wie zuvor.
 
/private/* ex. schon! Das kommt per Mac OS!
/etc, /tmp und /var sind links auf /private/*
das wird gemacht um zu UNIXen kompatibel zu sein!
Also :
/private/tmp==/tmp
/private/etc==/etc !!!


Frage1: Wo ist die my.cnf zu Deinem mysql installiert?
Frage2: Wohin zeigt der Pfad für mysql.sock in Deiner my.cnf?
Frage3: Wo steht Deine php.ini ?
Frage4: Wohin zeigt der Pfad für mysql.sock in Deiner php.ini?

Die Antworten auf Frage 2&4 müssen auf die gleiche Datei zeigen, sonst wird es schwer!!!
 
Frage 5: (Bitte weiterhin Fragen 1-4 beachten) Ich werde das Gefühl nicht los, dass entweder die 4.0.21-Installation »von serverlogistics« oder ein anderer Installationsversuch zuvor schon einmal Probleme verursacht hat, die Du versucht hattest zu beheben. Gibt es eine solche Vorgeschichte, wenn ja, was war passiert?
 
Zuletzt bearbeitet:
OK, es wird schwer...


wegus schrieb:
Frage1: Wo ist die my.cnf zu Deinem mysql installiert?
Frage2: Wohin zeigt der Pfad für mysql.sock in Deiner my.cnf?
my.cnf gibts nicht. Weder im root noch bei mir. Auch nicht unter versteckten Dateien.

wegus schrieb:
Frage3: Wo steht Deine php.ini ?
Frage4: Wohin zeigt der Pfad für mysql.sock in Deiner php.ini?
php.ini gibts auch nicht.
nur eine "php.ini.default".
Antwort 3: Die liegt in private / etc
Antwort 4: ist in der "php.ini.default" nicht angegeben

Hilarious schrieb:
...Gibt es eine solche Vorgeschichte?...
Ja gibt es, mich würde es wundern, wenn es was damit zu tun hat.

Antwort 5:
Es war ein mal ein PB G4 867MHz. Tolles Ding lief alles einwandfrei. Auch apache und SQL.
Das neue PB 1,5 GHz rief mich dann in seinen Bann. Alle Daten vom alten PB auf's Neue über FireWire mit Dienstprogramm übertragen.
Am "Apple"-Apache nix rumgefummelt. Bis auf php4 auskommentiert.
Mamp mal installiert und wieder runter gehauen. Ist ja im Grunde eh das gleiche wie das OS-X eigene.

Auf dem alten PB SQL von serverlogistics installiert (ist auf das neue PB) und ist auf das neue PB mit übertragen worden - glaube ich. Ich kann es nicht mit Gewissheit sagen, ob das einwadnfrei funktioniert hat.

Im Zuge dieses Threads habe ich SQL direkt von der SQL-Seite installiert.
Das ist auch noch installiert.

Das war die Geschichte vom kleinen Muck ... äh Bodo.
 
O.K. fangen wir mit dem an, was wir wissen:

PHP richtet sich nach einer Grundkonfiguration! Alles was davon abweicht muß in einer php.ini stehen. Die Datei muß auch GENAU so heissen. Wo diese Datei stehen muß, ist in die jeweilige PHP-Version eincompiliert. Um das zu erfahren erzeuge bitte eine PHP-Datei:

info.php
PHP:
<?
 phpinfo();
?>

Rufe diese Datei mit info.php im Browser auf und gib der Datei vorher Leserecht für Jedermann. Dann findest Du in deer (hoffentlich erscheinenden) Ausgabe auch den Pfad zur php.ini ( einfach nach php.ini suchen).

Dorthin kopierst Du schonmal eine php.ini( de php.ini.default ist eine Vorlage dafür).

Dann hast Du schonmal ne ini-Datei! Jetzt müssen wir nur noch herausbekommen, wo mysql seine aktuelle socket-Datei anlegt, diesen Pfad in die php.ini eintragen und alles ist in Butter.
 
OK.

info.php habe ich angelegt.
php.ini soll in /etc liegen (wo auch die ...default liegt). Die habe ich kopiert ind in php.ini umbenannt. Alles über den root.
Rechte habe ich nicht geändert. Steht alles auf "nur lesen"

In der php.ini habe ich noch in Richtung sql das stehen

; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =
 
Da das mit dem default wohl nicht klappt, muß genau dort der Pfad zur aktuellen Socktet-Datei hin! Danach ist ein Restart des Webservers nötig!
 
Hab ich gemacht. Ohne Erfolg.
Ja auch den resart vom webserver.

Da steht jetzt also:
Code:
mysql.default_socket = "/private/var/mysql/mysql.sock"
denn unter /private/var/mysql/ liegt die sock.

Vielleicht noch was.
Kann das so bleiben:
Code:
mysql.default_port = 
mysql.default_host = 
mysql.default_user =
 
dackel schrieb:
@ruerueka:
/Library/mysql/bin/mysqldump: unknown option '--All-DATABASES'
Sorry, war 'n Tippfehler, mangelnde Sorgfalt von mir:
Code:
-A
oder
Code:
 --all-databases
Die Optionen bekomt man übrigens mit --help angezeigt.
 
Zurück
Oben Unten