PhpMyAdmin: Unterschied zwischen den Versionen

Aus Mediawiki Ferdinand Gruber
Zur Navigation springen Zur Suche springen
Zeile 61: Zeile 61:
 
=== Index erstellen ===
 
=== Index erstellen ===
 
In der Haupttabelle <tt>musiktitel</tt>, welche einen oder mehrere '''Fremdschlüssel''' enthält, muss zunächst für jeden Fremdschlüssel ein '''Index''' hinzugefügt werden.
 
In der Haupttabelle <tt>musiktitel</tt>, welche einen oder mehrere '''Fremdschlüssel''' enthält, muss zunächst für jeden Fremdschlüssel ein '''Index''' hinzugefügt werden.
: Beispiel: Die Tabelle "musiktitel" enthält das Feld "komponist_Id". Es wird daher in Index über die Spalte "komponist_Id" hinzugefügt.
+
: Beispiel: Die Tabelle <tt>musiktitel</tt> enthält das Feld "komponist_Id". Es wird daher in Index über die Spalte "komponist_Id" hinzugefügt.
 
[[Datei:Phpmyadmin 5.png|ohne]]
 
[[Datei:Phpmyadmin 5.png|ohne]]
 
Der Index darf nicht die Eigenschaft UNIQUE haben.
 
Der Index darf nicht die Eigenschaft UNIQUE haben.

Version vom 1. April 2022, 18:47 Uhr

Installation und Konfiguration

Siehe auch folgende Anleitung

  • Gegenenfalls eine vorhandene alte Version umbenennen
 mv /srv/www/htdocs/phpMyAdmin /srv/www/htdocs/phpMyAdmin_old
tar xzvf ./phpMyAdmin-2.11.1-all-languages.tar.gz
  • Verzeichnis für Konfigurationsdatei erzeugen:
md /srv/www/htdocs/phpMyAdmin/config
chown wwwrun.www /srv/www/htdocs/phpMyAdmin/config -R
  • Setup im Browser aufrufen
http://hs-schallerbach.at/phpMyAdmin/setup
  • Serverdaten bearbeiten
Authentication type: cookie
  • Konfigurationsdatei ins phpMyAdmin Verzeichnis verschieben
mv /srv/www/htdocs/phpMyAdmin/config/config.inc.php /srv/www/htdocs/phpMyAdmin
chmod 770 /phpMyAdmin/config.inc.php
  • Konfigurationsverzeichnis löschen
rm /srv/www/htdocs/phpMyAdmin/config -R

Troubleshooting

  • Fehlermeldung

Die Sitzung konnte nicht ohne Fehler gestartet werden, schauen Sie bitte in das Fehlerprokoll von PHP und/oder Ihres Webservers und konfigurieren Sie PHP entsprechend (session.save_path, Schreibrechte)

Lösung: Browsercache löschen!


Benutzerdefinierte Einstellungen

  • Datenbank für Benutzereinstellungen anlegen

Die Einstellungen werden in einer MySQL Datenbank mit dem Namen phpmyadmin gespeichert. Zum Anlegen der Datenbank inklusive der notwendigen Tabellen gibt es ein Script:

phpMyAdmin/sql/create_tables.sql

Diese Datei mit phpMyAdmin importieren oder die Datei mit einem Editor öffnen und den Code in das SQL Fenster von phpMyAdmin kopieren und die Abfrage ausführen.

Unter openSuse ist das Verzeichnis /php/Admin/sql nicht vorhanden, daher eine Vollversion von phpMyAdmin downloaden und entpacken, um an diese Datei heranzukommen: https://www.phpmyadmin.net/downloads/
  • Konfiguration ergänzen

Achtung: Unter openSUSE befindet sich die Konfiguration in /etc/phpMyAdmin/config.inc.php

Ausschnitt aus der Liste:
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '*************';

$cfg['Servers'][$i]['pmadb']               = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable']       = 'pma_bookmark';
$cfg['Servers'][$i]['relation']            = 'pma_relation';
...
$cfg['Servers'][$i]['users']               = 'pma__users';
$cfg['Servers'][$i]['usergroups']          = 'pma__usergroups';
...
  • Benutzer pma

Dieser Benutzer benötigt Zugriff auf die Datenbank phpmyadmin. Dem Benutzer obiges Passwort zuteilen.

  • Troubleshooting

Manche Tabellen haben zwei Unterstriche im Tabellennamen (z.B.:pma__users. Die tatsächlichen Tabellenbezeichnungen müssen jedenfalls mit den Angaben in der Konfigurationsdatei übereinstimmen.

openSuse Linux

Wenn phpMyAdmin mit YAST installiert wird bzw. nach einem Update mit YAST befindet sich die Konfiguration nicht wie üblich im Programmverzeichnis sondern in

/etc/phpMyAdmin/config.inc.php

Außerdem gibt es noch eine Konfiguration des Apache Servers für phpMyAdmin

/etc/apache2/conf.d/phpMyAdmin.conf

Beziehungen

Um die Integrität von Fremdschlüsselbeziehungen zu gewährleisten, kann man mit Hilfe von phpMyAdmin Beziehungen definieren.

Im folgenden Beispiel ist die Haupttabelle musiktitel über den Fremdschlüssel komponist_id mit dem Primärschlüssel id der Tabelle komponisten verknüpft.

Index erstellen

In der Haupttabelle musiktitel, welche einen oder mehrere Fremdschlüssel enthält, muss zunächst für jeden Fremdschlüssel ein Index hinzugefügt werden.

Beispiel: Die Tabelle musiktitel enthält das Feld "komponist_Id". Es wird daher in Index über die Spalte "komponist_Id" hinzugefügt.
Phpmyadmin 5.png

Der Index darf nicht die Eigenschaft UNIQUE haben. Der Link +Indizes befindet sich ganz unten in der Ansicht.

Fremdschlüsselbeziehung erstellen

Das geschieht über den Link Beziehungsansicht ganz oben.

In dieser Ansicht findet man unten den Abschnitt Beschränkungen durch Fremdschlüssel.
Man wählt aus der Liste die Spalte mit dem Fremdschlüssel "komponist_Id" und stellt die Verbindung zum Primärschlüssel in der Tabelle "komponisten" her.
Phpmyadmin 5.png

Im Abschnitt "Interne Beziehungen" sollte man gar nichts eintragen.

Werte einer verknüpften Tabelle anzeigen

Zusätzlich zur Anzeige eines Fremdschlüssels kann man eine aussagekräftige Anzeigespalte festlegen. Es kann dann bei jedem Datensatz der Tabelle "musiktitel" zusätzlich zur "komponist_id" der Name des Instrumentes angezeigt werden.

In der Beziehungsansicht ganz unten den Feldnamen festlegen, dessen Inhalt angezeigt werden soll, z.B. "name".

Phpmyadmin 1.png Dies gibt natürlich nur Sinn in der Fremdschlüssel-Tabelle, also z.B. in der Tabelle "komponisten".

Dropdownliste anzeigen

Beim Ändern eines Datensatzes braucht man nun nicht mehr den Fremdschlüssel direkt eingeben. Man kann aus einer Dropdownliste den geeigneten Wert auswählen. Phpmyadmin 4.png

Fremdschlüssel oder Text

Beim Anzeigen der Daten in Tabellenform kann man umschalten zwischen Anzeige des Schlüssels "komponist_id" oder des relationalen Wertes, z.B Name des Komponisten.

In der Tabelle "musiktitel", oberhalb der angezeigten Tabelle auf den Link Optionen und dann auf "Relationaler Schlüssel" oder "Relationale Anzeigespalte" klicken.

Phpmyadmin 2.png

Dann wird statt "komponist_id" der Name des Komponisten in der Spalte angezeigt.

Phpmyadmin 3.png