On Sat, Jun 18, 2005 at 10:27:51PM +0200, Julien Lacroix wrote: > Hagen Kuehnel wrote: > > >>050617 21:22:44 InnoDB: Started > >>050617 21:22:44 Fatal error: Can't open privilege tables: Table > >>'mysql.host' doesn't exist > >>050617 21:22:44 Aborting > > Und? Tut sie oder nicht? (s.u.) > > Sie existiert nicht. > find / -name "mysql.host" findet z.B. nichts. > Nee, diese Datei gibt es nicht - MySQL meldet Dir dass für den Start eine Tabelle "mysql.host" existieren muss - das ist sozusagen der Full-qualified-Name einer Tabelle und bedeutet: Datenbank: "mysql" Tabelle: "host"
In der Datenbank liegen bekanntlich Systemtabellen für den MySQLd, unter anderem host-Privilegien (welcher host darf was). Üblicherweise werden hier keine Einstellungen gemacht, daher ist die Datei "mysql.MYD" leer, diese kannst Du mit touch anlegen. Das hilft aber nicht viel, weil weiterhin die Dateien "host.MYI" und "host.frm" benötigt werden. Zum einen ist das eine Index-Datei und frm ist mir gerade entfallen (google) Du suchst also in Deinem System nach: find / -name "host.MYD" find / -name "host.MYI" find / -name "host.frm" Wenn Du diese nicht mehr hast *tststs*, kannst Du sie Dir von einem anderen MySQL-Server holen - Zugriffsrechte auf die Datenbank-Dateien sind dabei sehr wichtig. > > Benötigst Du InnoDB? oder ist das nur mal so eingeschaltet weil es > > default ist? > > Nein ich brauch InnoDB nicht. Letzendlich konnte ich aber auch keinen > Nachteil darin sehen es zu benutzen. Es sei denn der Fehler resultiert > aus der Verwendung von InnoDB :) Wenn ich einen Webserver als Server zum simplen ausliefern von Bildern benötige, werde ich mit Sicherheit keinen Apache mit allen nur möglichen Modulen aufsetzen. Irgendwann benötigt man die Performance. InnoDB ist ein separater Treiber und muss extra geladen werden, macht damit MySQLd ein stückweit langsamer - InnoDB sollte aber auch vor allem sehr gut konfiguriert werden (Logfiles, DB-space, Größe der Dateien etc.) > >Als welcher mysql-user (Rechte), > > root Typisch ;) auch ein mysql-root sollte nur für CREATE DATABASE und in der Datenbank "mysql" genutzt werden, den Rest sollten alles niedrig priveligiert user machen. Ich sag's ja nur. > >welche Version von Apache. > > Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-15 Server > Ampache, sorry - Hast Du verifiziert, was die Installation macht? Üblicherweise verschwindet eine Datei nicht von allein. > >>Wo krieg ich da weitere Anhaltspunkte? Wäre Schade wenns die DB > >>zerrissen hätte =( > > ls -l /var/lib/mysql/mysql/ Hier ist der Standard-Debian-Pfad für die MySQL-Datenbank, da müssen die drei host.*-Dateien drin sein (und auch noch andere). Ist das Verzeichnis überhaupt da? > > man mysqldump > > man mysqlhotcopy > > Ok. Dann geh ich erst das durch. Ein freundlicher Hinweis meinerseits, dass man mit Backups einen aufgetretenen Fehler beheben kann. So etwas sollte als cronjob laufen. Daten die nicht gesichert werden gelten als "zur Löschung freigegeben". Das gilt insbesondere für Datenbanken - wie der Name schon sagt. Lösung für Dich, nimm Dir drei default-host-Dateien und fahre damit den Datenbankserver hoch. Aber in die Ursachenforschung für das Problem würde ich schon einige Stunden stecken - Du hast vermutlich auch kein MySQL-Log aktiviert? Hagen -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

