search
subnavi
Werbung

phpMyAdmin

Frage: Was ist phpMyAdmin?

Antwort von Tobias Ratschiller:

phpMyAdmin ist eine in PHP geschriebene Verwaltungsoberfläche für MySQL. Weitere Informationen dazu finden Sie auf der Homepage .

Frage: Ich bin kein MySQL-Administrator. Wie kann ich phpMyAdmin nur für mich selbst installieren?

Antwort von Tobias Ratschiller:

Holen Sie sich die Distribution (TarGz or Zip) von der phpMyAdmin-Homepage . Bitte folgen Sie dann den Anweisungen in der Datei INSTALL; für's erste Ausprobieren genügt es, in die Datei config.inc.php Ihren MySQL-Benutzernamen und -Passwort einzutragen.

Frage: Ich bin MySQL-Administrator und möchte ein Exemplar phpMyAdmin für alle meine User installieren.

Antwort von Tobias Ratschiller:

Seit phpMyAdmin 2.0.3 ist es möglich, eine zentrale Kopie von phpMyAdmin zu installieren, in die sich die einzelnen Benutzer mit Benutzername und Passwort einloggen. phpMyAdmin benutzt dafür das Rechte-System von MySQL. Benutzer müssen daher korrekt in das Rechte-System eingetragen sein: Für jeden Benutzer, der auf phpMyAdmin zugreifen können soll, muss ein Eintrag in die mysql.user und mysql.db -Tabelle gemacht werden. Um dem Benutzer foo Zugriff auf die Datenbank foo_db zu geben, würden Sie folgende SQL-Statements benutzen:

INSERT INTO user (Host, User, Password, Select_priv, Insert_priv,
                 Update_priv, Delete_priv, Create_priv, Drop_priv,
                 Reload_priv, Shutdown_priv, Process_priv,
                 File_priv, Grant_priv, References_priv, Index_priv,
                 Alter_priv)
          VALUES ('localhost', 'foo', PASSWORD('bar'), 'N', 'N',
                 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',
                 'N', 'N')
INSERT INTO db   (Host, Db, User, Select_priv, Insert_priv,
                 Update_priv, Delete_priv, Create_priv, Drop_priv,
                 Grant_priv, References_priv, Index_priv, Alter_priv)
          VALUES ('localhost', 'foo_db', 'foo', 'Y', 'Y', 'Y', 'Y',
                 'Y', 'Y', '', '', '', '') 

Bitte beachten Sie, dass Sie nach dieser Änderung ein FLUSH PRIVILEGES -Statement ausführen müssen, damit sie wirksam wird.

Seit phpMyAdmin 2.0.6 werden auch Wildcards im Rechte-System unterstützt; damit können Sie dem Benutzer foo beispielsweise Zugriff auf alle Datenbanken geben, deren Name mit foo_ beginnt. Weitere Informationen zum Setup eines solchen Benutzers finden Sie im MySQL-Handbuch.

Frage: Wieso kann ich den Inhalt meiner Tabelle nicht editieren?

Antwort von Tobias Ratschiller:

Bis phpMyAdmin 2.0.6 können Sie den Inhalt einer Tabelle nur dann ändern, wenn ein Primärschlüssel in der Tabelle gesetzt ist. Ab 2.0.6 können Sie den Inhalt in allen Fällen editieren. Falls kein Primärschlüssel existiert, wird allerdings der Inhalt aller Zeilen mit zu der aktuellen Zeile äquivalenten Inhalten geändert, da es im relationalen Datenbankmodell unmöglich ist, diese Zeilen voneinander zu unterscheiden.

Es ist gutes Datenbankdesign, wenn man für eine jede Tabelle eine Spalte (atomarer Primärschlüssel) oder eine Kombination von Spalten (zusammengesetzter Primärschlüssel) als Primärschlüssel deklariert, sodass keine zwei Zeilen existieren können, die in den als Primärschlüssel deklarierten Spalten dieselben Werte haben können. Alle Zeilen werden durch ihre Primärschlüsselwerte überhaupt erst unterscheidbar.

Frage: Wieso werden TIMESTAMP-Felder nicht auf die aktuelle Zeit gesetzt, wenn ich eine neue Zeile einfüge?

Antwort von Tobias Ratschiller:

phpMyAdmin trägt einen leeren String ( '' ) ein, wenn Sie keinen Wert angeben. MySQL konvertiert dies zu 0000-00-00 00:00:00 . Um den Default-Wert eines Feldes einzutragen (im Falle von TIMESTAMP die aktuelle Zeit) geben Sie im Eintragsformular "null" (ohne Anführungszeichen) als Wert ein.

Frage: Wieso kann ich in phpMyAdmin mehrere durch Semikolon getrennte SQL-Statements ausführen, nicht aber mit normalen PHP-Funktionen?

Antwort von Tobias Ratschiller:

SQL selbst definiert nur einzelne Anweisungen, keine Anweisungsfolgen. phpMyAdmin trennt die Zeichenkette auf und generiert dann automatisch mehrere einzelne Anfragen. PHP selbst macht das nicht, also müssen Sie selbst die Anweisungen nacheinander einzeln senden.

Frage: Fehler: Die zusätzlichen Funktionen für verknüpfte Tabellen wurden automatisch deaktiviert.

Antwort von Frank Wiegand:

Seit Version 2.2.4 bietet phpMyAdmin die Möglichkeit, Relationen zwischen Tabellen zu definieren. Diese Relationen sind nur für den Gebrauch von phpMyAdmin, sie wirken sich nicht auf die Tabellen selbst aus. Dazu muss eine Datenbank definiert, sowie einige Tabellen angelegt werden. Kann phpMyAdmin diese Tabellen nicht finden, kommt es zu der Fehlermeldung. Wie man die Tabellen anlegt und phpMyAdmin entsprechend konfiguriert, steht in der Dokumentation .

Frage: "Das $cfg['PmaAbsoluteUri']-Verzeichnis MUSS in Ihrer Konfigurationsdatei angegeben werden!"

Antwort von Frank Wiegand:

phpMyAdmin nutzt in einigen Dateien eine HTTP-Umleitung nach RFC 2616, 14.30 (HTTP/1.1). Das RFC verlangt, dass der Location -Header immer einen absoluten URI sendet. In die Konfigurationsdatei config.inc.php(3) trägt man also ein:

$cfg['PmaAbsoluteUri'] = 'http://example.com/phpmyadmin/'; 

Wobei http://example.com/phpmyadmin/ die Adresse ist, unter der man phpMyAdmin im Browser erreichen kann. Der Slash am Ende darf nicht vergessen werden. Seit Version 2.3.0 versucht phpMyAdmin diesen Wert selbständig zu ermitteln. Die Meldung verschwindet dadurch allerdings nicht. Man kann sie abschalten, indem man in der Konfigurationsdatei folgendes einträgt:

$cfg['PmaAbsoluteUri_DisableWarning'] = FALSE; 

Mehr Informationen dazu findet man in der Dokumentation .