Für mich bestand die Lösung darin, das Datenverzeichnis in / etc / my / cnf zu überschreiben / zu korrigieren.
Ich habe MySQL 5.5.27 aus dem Quellcode mit den Anweisungen in der Readme-Datei erstellt:
# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
shell> make
shell> make install
# End of source-build specific instructions
# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
mysqld_safe hat sich ohne Erklärung beendet. Laufen/etc/init.d/mysql.server start
führte zu dem Fehler:
"Der Server wurde beendet, ohne die PID-Datei zu aktualisieren."
Ich habe jedoch etwas Seltsames in der Installationsanleitung bemerkt. Für das Verzeichnis "data" wurde der Besitz in mysql geändert, nicht jedoch in "var". Dies ist ungewöhnlich, da ich jahrelang sicherstellen musste, dass das var-Verzeichnis mysql-beschreibbar ist. Also bin ich manuell gelaufenchown -R mysql /usr/local/mysql/var
und dann versucht, es erneut zu starten. Immer noch kein Glück. Aber schlimmer noch, keine .err-Datei im var-Verzeichnis - es war im "data" -Verzeichnis! Daher richtet scripts / mysql_install_db ein Camp in / usr / local / mysql / var ein, aber der Rest der Anwendung scheint seine Arbeit in / usr / local / mysql / data ausführen zu wollen!
Also habe ich gerade /etc/my.cnf bearbeitet und unter dem Abschnitt [mysqld] eine Direktive hinzugefügt, um das Datenverzeichnis von mysql explizit auf var zu verweisen (wie ich es normalerweise erwarte), und danach startet mysqld einfach fein. Die hinzuzufügende Anweisung sieht folgendermaßen aus:
datadir = / usr / local / mysql / var
Hat für mich gearbeitet. Hoffe es hilft dir.