PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock



Cagliostro
18.01.05, 15:46
Hallo liebe MySQL-Profis,

bin erst vor kurzem auf Linux umgestiegen und versuche mich jetzt auch noch auf MySQL. Leider klappt schon der Start des Servers nicht. Ich habe SuSE 9.2 und habe mit YAST folgende Pakete installiert:

mysql-administrator-1.0.18-1.suse91.i586.rpm
MySQL-bench-4.1.8-0.i386.rpm
MySQL-client-4.1.8-0.i386.rpm
MySQL-devel-4.1.8-0.i386.rpm
MySQL-embedded-4.1.8-0.i386.rpm
mysql-query-browser-1.1.5-1.suse91.i586.rpm
MySQL-server-4.1.8-0.i386.rpm
MySQL-shared-4.1.8-0.i386.rpm
MySQL-shared-compat-4.1.8-0.i386.rpm

Nun habe ich gelesen, dass man den Server über die Konsole mit “rcmysql start” startet. Gebe ich das an kommt folgende Meldung:

# rcmysql start
Starting service MySQL
failed
Eine Anfrage an den Server über “mysladmin -u root -h localhost ping” ergibt folgende Meldung:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!

Wenn ich mittels Konsole im Verzeichnis nachschaue so findet sich im Ordner keine Datei namens mysql.sock. Alles was in der Konsole angezeigt wird wenn ich mich in dem Verzeichnis befinde und den Befehl ls eingebe ist “. ..” . Was das sein soll weiß ich nicht.
Habe ich vielleicht versäumt irgendetwas besonders Wichtiges zu installieren (apache oder etwas ähnliches?). Natürlich habe ich schon mal in allen möglichen Foren nachgeschaut. Folgende Vorschläge haben mir NICHT weitergeholfen bzw. bin ich zu unfähig um mit diesen Vorschlägen etwas anzufangen:

1.Überprüfen, ob der Server läuft: Den Befehl “ps axu | grep sql” in die Konsole eingeben. Wird mysql nicht aufgeführt, läuft der Server nicht. Ergebnis: Die einzigen Dienste, die angezeigt werden sind bei mir mysql-administrator und ministrator-bin. Also läuft allem Anschein nach der Server nicht. Ist aber ja auch gar nicht verwunderlich, weil mein Problem eben darin besteht den Server nicht anschmeißen zu können.

2.Neuere Pakete von der MySQL-Seite runterladen. Ich habe die Neusten Pakete runtergeladen meine ich.

3.Schließlich noch ein Vorschlag, den ich überhaupt nicht hinkriege (weil ich einfach zu wenig Ahnung habe): Der Grund für das Problem sei die fehlende Berechtigung für die Gruppe root. Abhilfe schafft man durch die Vergabe von Schreibberechtigungen für die Gruppe Daemon inm Verzeichnis /var/lib/mysql. Weiterhin ist dann zu prüfen, ob die Schreibberechtigungen im Verzeichnis /var/lib/mysql/mysql für den Benutzer mysql und die Gruppe root auf rw gesetzt sind.(Ggf. ist dies mittels “chmod 660 *” als root zu korrigieren). Danach ist auf jedenfall mit /etc/init.d/mysql restart ein Neustart des Datenbankservers notwendig. Die Fehlermeldungen sollten danach beseitigt sein.

Zu Vorschlag Nr.3 habe ich folgendes Problem: Wie ändere ich in /var/lib/mysql die Schreibberechtigungen? In diesem Verzeichnis existieren bei mir zwei Dateien (linux.err und mysqld.log) sowie zwei Ordner (mysql und test). Und: löst Vorschlag Nr. 3 überhaupt mein Problem?

Sorry für die so ausführliche Beschreibung meines Problems, aber ohne Hilfe krieg es beim besten Willen nicht hin. Vielen Dank schon mal an alle, die sich das Problem anschauen wollen.

whistle
18.01.05, 16:48
Hi,
werfe doch mal einen Blick in die mysql.log.
Die Besitzer und Zugriffsberechtigungen einer Datei/Verzeichniss kannst du dir mit ls -l ansehen.
Den Benutzer änder machst du mittels chown :daemon *
Wie du Schreibrechte vergibst hast du schon geschrieben: chmod 660 *
Gruß
Whistle

Cagliostro
18.01.05, 19:15
Hi Whistle,
erstmal vielen Dank für Deine Antwort. Ich habe mir mal die mysql.log angeschaut, da steht folgendes drin :

050117 15:38:13 mysqld started
050117 15:38:13 Fatal error: Can't open privilege tables: Table 'mysql.host' doe
sn't exist
050117 15:38:13 Aborting

050117 15:38:13 /usr/sbin/mysqld: Shutdown Complete

050117 15:38:13 mysqld ended

Anschließend habe ich gleich mal nach "Table ´mysql.host´ gegoogelt und dann folgendes rausgefunden: es fehlt lediglich eine Datenbank von mysql, die wie folgt zu installieren wäre:
Einfach ins Verzeichnis /bin wechseln und dort ´mysql_install_db Script´ eingeben. Das hat das Problem sofort gelöst, Ergebnis:

linux:/bin # rcmysql start
Starting service MySQL done
linux:/bin # mysqladmin -u root -h localhost ping
mysqld is alive

:) ...Wäre also das Problem auch gelöst. Aber das ist meinerseits mit Sicherheit nicht das letzte Problem... :o

Gruß, Cagliostro

sam-network
18.05.06, 23:28
Hallo

Ich hatte auch das selbe Problem. Die Lösung wwar so einfach:

Der Ordner /var/lib/mysql/mysql muss den Benutzer Mysql und die Gruppe Root haben. Fertig. Schon gelöst.:D