Donnerstag, 31. Dezember 2009

MySQL

Mit dem guten WebMin (wie oft mir das doch schon den A** gerettet hat!) sehe ich wenigstens die alten Datenbanken.

phpMyAdmin wurde mir beim Update gelöscht!! Schweinerei.
Also neu installieren.

Erledigt. Nun meldet phpMyAdmin
#2002 - Der Server antwortet nicht. (evtl. ist auch der Socket des lokalen MySQL-Servers socket nicht korrekt konfiguriert)

Also muss mySQL auch neu aufgesetzt werden. Ohne WebMin wäreauch dies wieder ein Riesen-Akt.
WebMin fragt freundlich nach einem Modul "DBD mysql", damit es besser arbeiten kann, und bietet an, dies zu installieren. Nach einem Klick wird es fehlerfrei installiert. So sollte es eben laufen, liebe YaST- und sonstige Frickler!

Zurück zu phpMyAdmin. Warum kann das Teil nicht auf die Datenbank zugreifen - WebMin kann's doch?
Also wieder in Foren suchen..

mysqld mal manuell starten.
"091230 19:13:27 [Warning] mysqld: ignoring option '--character-set-client-handshake' due to invalid value 'cp1251'"
Das scheint eine unkritische Meldung zu sein, aber muss das sein, bei einer neuen Installation?

Wie erreiche ich nun, dass mysql automatisch (oder überhaupt mal) korrekt gestartet wird? In Config-Files rumfrickeln?

Nach "rcmysql restart" ist mysqld da. Aber warum muss ich das von Hand eingeben?
phpMyAdmin spuckt aber immer noch dieselbe Meldung aus.

Also mal nachschauen:
mysql status gibt u.a. aus:
UNIX socket:            /var/lib/mysql/mysql.sock

Wenn ich in PHP.ini alle Warnungen ausgeben lasse, kommt bei phpmyadmin/setup u.a.
Warning in ./libraries/dbi/mysql.dbi.lib.php#35
mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)

 Aha. Da scheint der Wurm zu stecken.
Die Datei mysql.sock gibt es hier nur unter /var/lib/mysql
So steht es auch in der my.cnf

Wie bringe ich phpmyadmin das jetzt bei?
Eintrag in die config.inc.php
$cfg['Servers'][$i]['socket'] = '/var/lib/mysql/mysql.sock';

Super - jetzt kommt die Meldung in /setup schon nicht mehr.
Aber auch, wenn ich den Server in /setup eintrage (samt "Socket") geht nix.
Die von /setup geschriebene config.inc.php wird ins /config directory geschrieben (meine von früher war im Stammordner).
Aber hallo - auch wenn ich alle config.inc.php umbenenne, kommt dieselbe Meldung!
Es wird offenbar noch gar nicht versucht, sich einzuloggen bzw. den "socket" Eintrag aus der config zu lesen.

Es ist auch eindeutig ein Problem von phpmyadmin, micht mysql (WebMin kann ja zugreifen)

Jetzt wo die configs unsichtbar sind, kommt plötzlich wieder die "Warning" von oben.

Ich will nachschauen, ob phpinfo() die korrekte mysql-Erweiterung eingebunden hat.
Per Browser kommt nur der "beliebte" weiße Bildschirm (leere Seite).
Auf der Kommandozeile kommt aber:
PHP Fatal error:  Unknown: Failed opening required 'info.php' (include_path='.:/usr/share/php5:/usr/share/php5/PEAR') in Unknown on line 0

Tja, was ist jetzt "Unknown"? Wenn du's nicht weißt, woher soll ich es wissen? :-(

Die Datei info.php gibt es aber definitiv. Besitzer zwar root:root, Zugriffsrechte aber rw-r--r--, also Leserechte für alle.

Also habe ich jetzt ein Problem mit PHP und mit phpMyAdmin - hoffentlich ist Letzteres nur ein Folgefehler.
Endlich habe ich phpinfo() zum Laufen bekommen. Da sehe ich unter "mysql"
MYSQL_SOCKET     /var/run/mysql/mysql.sock
Aha - der Übeltäter ist gefasst :)
Keine Ahnung, wie das da reinkam, aber jetzt muss ich schauen, wo man das einstellt.
Unter php/conf.d jedenfalls nicht. In php.ini auch nicht. Und jetzt? Wieder in Foren suchen :-|
In /usr/include/mysql/mysql_version.h scheint es definiert zu sein. Aber wo kann ich das konfigurieren?

Endlich habe ich die Einstellung in php.ini gefunden: "mysql.default_socket". Achtung, die gibt es zweimal (unter [MySQL] und [MySQLi])

Wow - phpMyAdmin startet - endlich.

Bei aller Freude: wieder über zwei Stunden Lebenszeit für diesen unkreativen Kack verbraten.

Keine Kommentare:

Kommentar veröffentlichen