phpMyAdmin

Beschreibung: Erklärt phpMyAdmin in seinen Grundzügen und technische Einrichtung

Kategorie: Server, PHP und MySQL

Link zu diesem Artikel: Alles auswählen

[url=https://www.phpbb.de/kb/viewarticle?a=90&sid=61e2e5b8ee3fa9b3b595c9d69a2408a0]Knowledge Base - phpMyAdmin[/url]

phpMyAdmin ist ein Datenbankverwaltungsprogram. Mehr dazu im MySQL Artikel

Hinweise zu Bedienung finden sich im Artikel Umgang mit phpMyAdmin
  1. Download
    Auf www.phpMyAdmin.net kann man die neueste Version herunterladen. (Mirror: sourceforge.net)
  2. Package entpacken
    Darauf achten, das die Dateien in ihren bestehenden Unterverzeichnissen entpackt werden und am besten das Hauptverzeichnis umbenennen (z.B. in db_tool)
  3. Voreinstellungen
    in der config.inc.php Zugangsdaten eingeben

    Code: Alles auswählen

    $cfg['Servers'][$i]['host']          = 'localhost'; // Hostname der Datenbank
    $cfg['Servers'][$i]['user']          = '';          // Username der Datenbank
    $cfg['Servers'][$i]['password']      = '';          // Passwort der Datenbank
    $cfg['Servers'][$i]['only_db']       = '';          // Name der Datenbank, wenn mehrere Datenbanken mit gleichen Zugangsdaten hier nichts eintragen
  4. Upload und..
    Den Ordner db_tool/ anschließend auf den Server laden und phpmyadmin aufrufen (z.B. http://www.domain.de/db_tool/).
    Eventuell wird eine rote Fehlermeldung (The $cfg['PmaAbsoluteUri'] directive MUST be set in your configuration file!) angezeigt
    • überprüfen ob man die Tabellen, Datenbank auswählen kann
      wenn alles funktioniert, kann man in der config.inc.php diese Fehlermeldung deaktivieren (FALSE mit TRUE ersetzen):

      Code: Alles auswählen

      $cfg['PmaAbsoluteUri_DisableWarning'] = false;
    • ansonsten muss man in der config.inc.php den Pfad zu phpMyAdmin angeben

      Code: Alles auswählen

      $cfg['PmaAbsoluteUri'] = 'http://domain.de/db_tool/';
  5. Sicherheit
    (siehe auch .htaccess-Anleitung (Verzeichnisschutz) )
    • Datei mit dem Namen .htaccess und folgendem Inhalt erstellen:

      Code: Alles auswählen

      AuthType Basic 
      AuthName "Restricted Directory" 
      AuthUserFile  /home/www/whatever/html/db_tool/.htpasswd 
      require valid-user
    • der Pfad ( /home/www/whatever/html/db_tool/ ) muss angepasst werden; wenn man den Pfad nicht kennt, kann man folgenden Code in einer pfad.php abspeichern, ins phpMyAdmin-Verzeichnis hochladen und ausführen:

      Code: Alles auswählen

      <?php echo "der absolute Pfad lautet: <b>". dirname(__FILE__) ."</b>"; ?>
    • nun erstellt man eine Datei namens .htpasswd, mit folgendem Inhalt (blau ist Username/rot ist das Passwort)
      name:2d.JddK0g5454Tls
    • um einen verschlüsselten Passwort Check zu generieren: Link (Inhalt in die .htpasswd kopieren)
    • beide Dateien ins phpMyAdmin-Verzeichnis uploaden
  6. sql-Anweisungen ausführen
    (siehe auch Backup mit phpMyAdmin )
    • eventuell Datenbank vorher auswählen
    • auf irgendeinen Tabellennamen im linken Frame oder auf "SQL" im rechten Frame klicken
    • im rechten Frame sieht man dann eine grosses Textfenster ("Querybox"), eventuell muss man ein wenig herunterscrollen
    • die sql-Anweisungen (Queries) in die Querybox kopieren (der Text, der vorher in der Querybox zu sehen war, verschwindet automatisch, was in Ordnung ist)
    • auf Go! (oder Ok-) Button klicken (man sieht dann ob man erfolgreich war)
Wenn auf dem Index eine Fehlermeldung/Anmerkung bezüglich fehlender Funktionen angezeigt wird (dortiger Link führt zu den Fehlermeldungen), muss man einige zusätzliche Tabellen erstellen (untenstehende Queries ausführen (s. Punkt 6)) und die Tabellennamen dann in der config.inc.php eintragen (blaumarkierte Zeilen). Diese Funktionen wären z.B. ein Verlaufsprotokoll oder das Erstellen von PDF´s (s. auch enthaltene Dokumentation).
(Dies ist aber nicht zwingend notwendig; phpMyAdmin funktioniert auch ohne diese Einstellungen.)

Code: Alles auswählen

//Name der Datenbank eintragen; bei mehreren Datenbank nur einen Namen eintragen
$cfg['Servers'][$i]['pmadb']         = '';

$cfg['Servers'][$i]['relation']      = 'pma_relation';
CREATE TABLE `pma_relation` (
       `master_db` varchar(64) NOT NULL default '',
       `master_table` varchar(64) NOT NULL default '',
       `master_field` varchar(64) NOT NULL default '',
       `foreign_db` varchar(64) NOT NULL default '',
       `foreign_table` varchar(64) NOT NULL default '',
       `foreign_field` varchar(64) NOT NULL default '',
       PRIMARY KEY (`master_db`, `master_table`, `master_field`),
       KEY foreign_field (foreign_db, foreign_table)
     ) TYPE=MyISAM COMMENT='Relation table';

$cfg['Servers'][$i]['table_info']    = 'pma_table_info';
CREATE TABLE `pma_table_info` (
       `db_name` varchar(64) NOT NULL default '',
       `table_name` varchar(64) NOT NULL default '',
       `display_field` varchar(64) NOT NULL default '',
       PRIMARY KEY (`db_name`, `table_name`)
     ) TYPE=MyISAM COMMENT='Table information for phpMyAdmin';

$cfg['Servers'][$i]['table_coords']  = 'pma_table_coords';
CREATE TABLE `pma_table_coords` (
       `db_name` varchar(64) NOT NULL default '',
       `table_name` varchar(64) NOT NULL default '',
       `pdf_page_number` int NOT NULL default '0',
       `x` float unsigned NOT NULL default '0',
       `y` float unsigned NOT NULL default '0',
       PRIMARY KEY (`db_name`, `table_name`, `pdf_page_number`)
     ) TYPE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output';

$cfg['Servers'][$i]['pdf_pages']     = 'pma_pdf_pages';
CREATE TABLE `pma_pdf_pages` (
       `db_name` varchar(64) NOT NULL default '',
       `page_nr` int(10) unsigned NOT NULL auto_increment,
       `page_descr` varchar(50) NOT NULL default '',
       PRIMARY KEY (page_nr),
       KEY (db_name)
     ) TYPE=MyISAM COMMENT='PDF Relationpages for PMA';

$cfg['Servers'][$i]['column_info']   = 'pma_column_info';
CREATE TABLE `pma_column_info` (
       `id` int(5) unsigned NOT NULL auto_increment,
       `db_name` varchar(64) NOT NULL default '',
       `table_name` varchar(64) NOT NULL default '',
       `column_name` varchar(64) NOT NULL default '',
       `comment` varchar(255) NOT NULL default '',
       `mimetype` varchar(255) NOT NULL default '',
       `transformation` varchar(255) NOT NULL default '',
       `transformation_options` varchar(255) NOT NULL default '',
       PRIMARY KEY (id),
       UNIQUE KEY db_name (db_name, table_name, column_name)
     ) TYPE=MyISAM COMMENT='Comments for Columns';

$cfg['Servers'][$i]['history']       = 'pma_history';
CREATE TABLE `pma_history` (
       `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
       `username` VARCHAR( 64 ) NOT NULL ,
       `db` VARCHAR( 64 ) NOT NULL ,
       `table` VARCHAR( 64 ) NOT NULL ,
       `timevalue` TIMESTAMP NOT NULL ,
       `sqlquery` TEXT NOT NULL ,
       PRIMARY KEY ( `id` ) ,
       INDEX ( `username` , `db` , `table` , `timevalue` )
       ) TYPE=MyISAM COMMENT='SQL history';