Willkommen zur phpMyAdmin-Dokumentation!¶
Inhalt:
Einführung¶
phpMyAdmin ist ein kostenloses, in PHP geschriebenes Softwarewerkzeug zur Verwaltung eines MySQL- oder MariaDB-Datenbankservers. Sie können phpMyAdmin verwenden, um die meisten Verwaltungsaufgaben durchzuführen, einschließlich der Erstellung einer Datenbank, der Ausführung von Abfragen und dem Hinzufügen von Benutzerkonten.
Unterstützte Funktionen¶
Zurzeit kann phpMyAdmin:
- Anlegen, durchsuchen, bearbeiten und löschen von Datenbanken, Tabellen, Ansichten, Felder und Indizes
- mehrere Ergebnissätze durch gespeicherte Prozeduren oder Abfragen anzeigen
- Datenbanken, Tabellen, Felder und Indices erstellen, kopieren, löschen, umbenennen und verändern
- Server, Datenbanken und Tabellen warten, mit Vorschlägen zur Serverkonfiguration
- beliebige SQL-Abfragen ausführen, editieren und speichern, auch Stapelverarbeitungsabfragen
- Textdateien in Tabellen laden
- Speicherauszüge (Dumps) von Tabellen erstellen [1] und lesen
- Daten in verschiedene Formate exportieren [1]: CSV, XML, PDF, ISO/IEC 26300 - OpenDocument Text und Spreadsheet, Microsoft Word 2000, und LATEX-Formate
- Daten und MySQL-Strukturen aus OpenDocument-Spreadsheets sowie XML-, CSV- und SQL-Dateien importieren
- mehrere Server administrieren
- Anlegen, bearbeiten und entfernen von MySQL Benutzern und Privilegien
- referentielle Integrität von MyISAM Tabellen überprüfen
- PDF-Grafiken Ihres Datenbankaufbaus erzeugen
- global in einer Datenbank oder einem Teil von ihr suchen
- gespeicherte Daten in ein beliebiges Format transformieren, indem eine Menge an vordefinierten Funktionen, wie BLOB-Daten als Bild oder einen Download-Link anzuzeigen, verwendet wird
- Änderungen an Datenbanken, Tabellen, Views verfolgen
- InnoDB-Tabellen und Fremdschlüssel unterstützen
- Unterstützt Mysqli, die verbesserte MySQL-Erweiterung siehe 1.17 Welche Datenbankversionen unterstützt phpMyAdmin?
- Gespeicherte Prodzeduren und Funktionen erstellen, bearbeiten, aufrufen, exportieren und löschen
- Ereignisse und Trigger erstellen, bearbeiten, exportieren und löschen
- kommunizieren in 80 verschiedene Sprachen
Schnelltasten¶
Momentan unterstützt phpMyAdmin folgende Tastenkombinationen:
- k - Konsole umschalten
- h - Zur Startseite gehen
- s - Einstellungen öffnen
- d + s - Zur Datenbankstruktur gehen (Vorausgesetzt, dass sie auf einer Datenbankseite sind)
- d + f - Datenbank durchsuchen (Vorausgesetzt, dass sie auf einer Datenbankseite sind)
- t + s - Zur Tabellenstruktur gehen (Vorausgesetzt, dass sie auf einer Tabellenseite sind)
- t + f Tabelle durchsuchen (Vorausgesetzt, dass sie auf einer Tabellenseite sind)
- Rücktaste - Bringt Sie zu der letzten Seite.
Ein paar Worte über Benutzerrechte¶
Viele Leute haben Probleme, das Benutzermanagement im Zusammenhang mit phpMyAdmin zu verstehen. Wenn sich ein Benutzer in phpMyAdmin einloggt, werden Benutzername und Passwort direkt zu MySQL übertragen. phpMyAdmin hat keine eigene Rechteverwaltung (außer dass es ermöglicht wird, MySQL Benutzer und Rechte zu verwalten); alle Benutzer müssen gültige MySQL Benutzer sein.
Fußnoten
[1] | (1, 2) phpMyAdmin kann Dumps im ZIP-, GZip- oder RFC 1952-Format sowie CSV-Exporte komprimieren, wenn Sie PHP mit Zlib-Unterstützung verwenden (-with-zlib ). Zur korrekten Unterstützung können Änderungen in php.ini nötig sein. |
Anforderungen¶
Webserver¶
Da die Oberfläche von phpMyAdmin komplett in Ihrem Browser läuft, brauchen Sie einen Webserver (wie zum Beispiel Apache, nginx, IIS), um die Dateien von phpMyAdmin dort zu installieren.
PHP¶
- You need PHP 8.1.2 or newer, with
session
support, the Standard PHP Library (SPL) extension, hash, ctype, and JSON support. - Aus Performance-Gründen wird die Erweiterung
mbstring
(siehe mbstring) dringend empfohlen. - Um ZIP-Dateien hochzuladen brauchen Sie die PHP Erweiterung
zip
. - Sie brauchen GD2 Unterstützung in PHP, um eingebettete Miniaturbilder von JPEGs („image/jpeg: inline“) mit ihrem originalen Seitenverhältnis anzuzeigen.
- Beim Verwenden von Cookie-Authentifizierung (Standard) wird die openssl-Erweiterung ausdrücklich empfohlen.
- Für Unterstützung von Upload-Fortschrittsbalken siehe 2.9 Einen Fortschrittsbalken für den Upload sehen.
- Um XML- und Open Document Spreadsheet-Importe zu unterstützen, benötigen Sie die libxml-Erweiterung.
- Für die Nutzung von reCAPTCHA auf der Login-Seite benötigen Sie die openssl-Erweiterung.
- Um das Anzeigen der letzten phpMyAdmin Version muss
allow_url_open
in der :file: php.ini aktiviert oder die curl <https://www.php.net/curl> - Erweiterung installiert sein.
Datenbank¶
phpMyAdmin unterstützt MySQL-kompatible Datenbanken.
- MySQL 5.5 oder neuer
- MariaDB 5.5 oder neuer
Webbrowser¶
Um auf phpMyAdmin zuzugreifen, brauchen Sie einen Webbrowser, in dem Cookies und Javascript aktiviert sind.
You need a browser which is supported by Bootstrap 4.5, see <https://getbootstrap.com/docs/4.5/getting-started/browsers-devices/>.
Geändert in Version 5.2.0: You need a browser which is supported by Bootstrap 5.0, see <https://getbootstrap.com/docs/5.0/getting-started/browsers-devices/>.
Installation¶
phpMyAdmin wendet keine speziellen Methoden zur Sicherung des MySQL Datenbankservers an. Es ist immer noch Aufgabe des Administrators, die richtigen Berechtigungen für die MySQL-Datenbanken zu setzen. Die Seite Benutzer in phpMyAdmin kann dafür benutzt werden.
Linux-Distributionen¶
phpMyAdmin ist in den meisten Linux-Distributionen enthalten. Verwenden Sie möglichst Distributions-Pakete – sie stellen gewöhnlich Integration in Ihre Distribution bereit, und Sie erhalten Sicherheits-Updates automatisch von Ihrer Distribution.
Debian und Ubuntu¶
Most Debian and Ubuntu versions include a phpMyAdmin package, but be aware that
the configuration file is maintained in /etc/phpmyadmin
and may differ in
some ways from the official phpMyAdmin documentation. Specifically, it does:
- Einrichtung eines Webservers (funktioniert mit Apache und lighttpd).
- Die phpMyAdmin-Konfigurationsspeicher mit dbconfig-common konfigurieren.
- Zum Absichern des Einrichtungsskriptes ziehen Sie Installationsskript für Debian, Ubuntu und deren Derivate zu Rate.
Weitere Einzelheiten zum Installieren von Debian- oder Ubuntu-Paketen sind in unserem Wiki verfügbar.
Siehe auch
More information can be found in README.Debian
(it is installed as /usr/share/doc/phpmyadmin/README.Debian
with the package).
OpenSUSE¶
OpenSUSE kommt bereits ab Werk mit einem phpMyAdmin-Paket, installieren Sie Pakete einfach vom openSUSE Build Service.
Gentoo¶
Gentoo liefert das phpMyAdmin-Paket, sowohl in einer grundlegenden Konfiguration als auch mit einer webapp-config
-Konfiguration. Verwenden Sie emerge dev-db/phpmyadmin
zum Installieren.
Mandriva¶
Mandriva liefert das phpMyAdmin-Paket im contrib
-Zweig, es kann über das normale Kontrollzentrum installiert werden.
Fedora¶
Fedora liefert das phpMyAdmin-Paket, beachten Sie jedoch, dass die Konfigurations-Datei in /etc/phpMyAdmin/
verwaltet wird und sich in mancherlei Hinsicht von der offiziellen phpMyAdmin-Dokumentation unterscheiden kann.
Red Hat Enterprise Linux¶
Red Hat Enterprise Linux itself and thus derivatives like CentOS don’t
ship phpMyAdmin, but the Fedora-driven repository
Extra Packages for Enterprise Linux (EPEL)
is doing so, if it’s
enabled.
But be aware that the configuration file is maintained in
/etc/phpMyAdmin/
and may differ in some ways from the
official phpMyAdmin documentation.
Installation auf Windows¶
Der einfachste Weg, phpMyAdmin in Windows zu installieren, besteht darin, Drittanbieter-Produkte zu verwenden, die phpMyAdmin zusammen mit einer Datenbank und einem Webserver enthalten, wie etwa XAMPP.
Weitere derartige Optionen finden Sie in der Wikipedia.
Installation aus Git heraus¶
Um aus Git zu installieren, werden folgende Programme benötigt:
- Git to download the source, or you can download the most recent source directly from Github
- Composer
- Node.js (version 14 or higher)
- Yarn
Sie können den aktuellen phpMyAdmin-Quelltext von https://github.com/phpmyadmin/phpmyadmin.git
klonen:
git clone https://github.com/phpmyadmin/phpmyadmin.git
Zusätzlich müssen Sie Abhängigkeiten mit Composer installieren:
composer update
Falls Sie nicht beabsichtigen Quelltext beizutragen, können Sie die Installation der Entwicklerwerkzeuge durch folgenden Aufruf überspringen:
composer update --no-dev
Am Ende muss Yarn verwendet werden um JavaScript Abhängigkeiten zu installieren:
yarn install --production
Installation mit Composer¶
Sie können phpMyAdmin mit Composer installieren, seit 4.7.0 werden die Releases automatisch auf das Standard-Repository Packagist gespiegelt.
Bemerkung
Der Inhalt des Composer-Repositorys wird automatisch getrennt von den Releases erzeugt, so dass der Inhalt nicht 100%-ig gleich sein muss wie beim Download des Tarballs. Es sollte jedoch keine funktionalen Unterschiede geben.
Um phpMyAdmin zu installieren, starten Sie einfach:
composer create-project phpmyadmin/phpmyadmin
Alternativ können Sie auch unser eigenes Composer-Repository verwenden, das die Release Tarballs enthält und unter <https://www.phpmyadmin.net/packages.json> verfügbar ist:
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev
Installation mit Docker¶
phpMyAdmin comes with a Docker official image, which you can easily deploy. You can download it using:
docker pull phpmyadmin
Der phpMyAdmin-Server lauscht auf Port 80. Er unterstützt mehrere Möglichkeiten, die Verbindung zum Datenbankserver zu konfigurieren, entweder über die Link-Funktion von Docker, indem Sie Ihren Datenbank-Container mit db
für phpMyAdmin verbinden (indem Sie --link ihr_db_host:db
angeben) oder über Umgebungsvariablen (in diesem Fall liegt es an Ihnen, das Netzwerk in Docker einzurichten, damit der phpMyAdmin-Container über das Netzwerk auf den Datenbank-Container zugreifen kann).
Umgebungsvariablen mit Docker¶
Sie können verschiedene Funktionen von phpMyAdmin durch Umgebungsvariablen konfigurieren:
-
PMA_ARBITRARY
¶ Damit können Sie den Hostnamen des Datenbankservers im Anmeldeformular eingeben.
Siehe auch
-
PMA_HOST
¶ Hostname oder IP-Adresse des zu nutzenden Datenbankservers.
Siehe auch
-
PMA_HOSTS
¶ Kommagetrennte Hostnamen oder IP-Adressen der zu nutzenden Datenbankserver.
Bemerkung
Wird nur benutzt, wenn
PMA_HOST
leer ist.
-
PMA_VERBOSE
¶ Ausführlicher Name des Datenbankservers.
Siehe auch
-
PMA_VERBOSES
¶ Kommagetrennte, ausführliche Namen der Datenbankserver.
Bemerkung
Wird nur benutzt, wenn
PMA_VERBOSE
leer ist.
-
PMA_USER
¶ Benutzername, der für Config-Authentifizierungsmethode verwendet werden soll.
-
PMA_PASSWORD
¶ Kennwort, das für Config-Authentifizierungsmethode verwendet werden soll.
-
PMA_PORT
¶ Port des Datenbankservers, der verwendet werden soll.
-
PMA_PORTS
¶ Kommagetrennte Hostnamen oder IP-Adressen der zu nutzenden Datenbankserver.
Bemerkung
Wird nur benutzt wenn
PMA_HOST
leer ist.
-
PMA_SOCKET
¶ Socket file for the database connection.
-
PMA_SOCKETS
¶ Comma-separated list of socket files for the database connections.
Bemerkung
Used only if
PMA_SOCKET
is empty.
-
PMA_ABSOLUTE_URI
¶ Der vollständige Pfad (
https://pma.example.net/
) unter dem der Umkehrproxy phpMyAdmin erreichbar macht.Siehe auch
-
PMA_QUERYHISTORYDB
¶ When set to true, enables storing SQL history to
$cfg['Servers'][$i]['pmadb']
. When false, history is stored in the browser and is cleared when logging out.Siehe auch
Siehe auch
-
PMA_QUERYHISTORYMAX
¶ When set to an integer, controls the number of history items.
Siehe auch
-
PMA_CONTROLHOST
¶ When set, this points to an alternate database host used for storing the „phpMyAdmin-Konfigurationsspeicher“ database.
Siehe auch
-
PMA_CONTROLUSER
¶ Defines the username for phpMyAdmin to use for the „phpMyAdmin-Konfigurationsspeicher“ database.
Siehe auch
-
PMA_CONTROLPASS
¶ Defines the password for phpMyAdmin to use for the „phpMyAdmin-Konfigurationsspeicher“ database.
Siehe auch
-
PMA_CONTROLPORT
¶ When set, will override the default port (3306) for connecting to the control host.
Siehe auch
-
PMA_PMADB
¶ When set, define the name of the database to be used for the „phpMyAdmin-Konfigurationsspeicher“ database. When not set, the advanced features are not enabled by default: they can still potentially be enabled by the user when logging in with the Null-Konfiguration feature.
Bemerkung
Suggested values: phpmyadmin or pmadb
Siehe auch
-
HIDE_PHP_VERSION
¶ Wenn angegeben, versteckt diese Option die PHP-Version (expose_php = Off). Auf einen beliebigen Wert setzen (z.B. HIDE_PHP_VERSION=true).
-
UPLOAD_LIMIT
¶ Wenn gesetzt, überschreibt diese Option den Standardwert für apache und php-fpm (die ändert die
upload_max_filesize
undpost_max_size
Werte).Bemerkung
Format: [0-9+](K,M,G) der Standardwert ist 2048K
-
MEMORY_LIMIT
¶ If set, this option will override the phpMyAdmin memory limit
$cfg['MemoryLimit']
and PHP’s memory_limit.Bemerkung
Format as [0-9+](K,M,G) where K is for Kilobytes, M for Megabytes, G for Gigabytes and 1K = 1024 bytes. Default value is 512M.
-
MAX_EXECUTION_TIME
¶ If set, this option will override the maximum execution time in seconds for phpMyAdmin
$cfg['ExecTimeLimit']
and PHP’s max_execution_time.Bemerkung
Format as [0-9+]. Default value is 600.
-
PMA_CONFIG_BASE64
¶ Wenn gesetzt, überschreibt diese Option den Vorgabewert config.inc.php mit den base64-dekodierten Inhalten der Variable.
-
PMA_USER_CONFIG_BASE64
¶ Wenn gesetzt, überschreibt diese Option den Vorgabewert config.user.inc.php mit den base64-dekodierten Inhalten der Variable.
-
PMA_UPLOADDIR
¶ If set, this option will set the path where files can be saved to be available to import (
$cfg['UploadDir']
)
-
PMA_SAVEDIR
¶ If set, this option will set the path where exported files can be saved (
$cfg['SaveDir']
)
-
APACHE_PORT
¶ If set, this option will change the default Apache port from 80 in case you want it to run on a different port like an unprivileged port. Set to any port value (such as APACHE_PORT=8090).
Standardmäßig wird Cookie-Authentifizierungsmethode verwendet, sind aber PMA_USER
und PMA_PASSWORD
gesetzt, wird auf Config-Authentifizierungsmethode umgeschaltet.
Bemerkung
Die Zugangsdaten, die Sie für die Anmeldung brauchen, sind auf dem MySQL Server gespeichert, bei Docker-Abbildern gibt es verschiedene Möglichkeiten, diese festzulegen (zum Beispiel MYSQL_ROOT_PASSWORT
beim Starten des MySQL Containers). Bitte lesen Sie die Dokumentation für MariaDB container oder MySQL container.
Konfiguration anpassen¶
Zusätzlich kann die Konfiguration über /etc/phpmyadmin/config.user.inc.php
angepasst werden. Wenn diese Datei existiert, wird sie geladen, nachdem die Konfiguration aus obigen Umgebungsvariablen erzeugt wurde, so dass Sie sich über jede Konfigurationsvariable hinwegsetzen können. Diese Konfiguration kann als Volume hinzugefügt werden, wenn Docker mit den Parametern -v /ein/lokales/verzeichnis/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php aufgerufen wird.
Beachten Sie, dass die mitgelieferte Konfigurationsdatei nach Umgebungsvariablen mit Docker angewendet wird, aber Sie können jeden der Werte überschreiben.
Um z.B. das Standardverhalten des CSV-Exports zu ändern, können Sie folgende Konfigurationsdatei verwenden:
<?php
$cfg['Export']['csv_columns'] = true;
Sie können damit auch die Serverkonfiguration definieren, anstatt die in Umgebungsvariablen mit Docker aufgeführten Umgebungsvariablen zu verwenden:
<?php
/* Override Servers array */
$cfg['Servers'] = [
1 => [
'auth_type' => 'cookie',
'host' => 'mydb1',
'port' => 3306,
'verbose' => 'Verbose name 1',
],
2 => [
'auth_type' => 'cookie',
'host' => 'mydb2',
'port' => 3306,
'verbose' => 'Verbose name 2',
],
];
Siehe auch
Siehe Konfiguration für eine genauere Beschreibung der Einstellungsmöglichkeiten.
Docker-Volumes¶
Sie können die folgenden Volumes verwenden, um das Verhalten des Images anzupassen:
/etc/phpmyadmin/config.user.inc.php
Kann für weitere Einstellungen verwendet werden, mehr Details dazu im vorherigen Kapitel.
/sessions/
Verzeichnis, in dem PHP-Sitzungen gespeichert sind. Sie können dies zum Beispiel mit Signon-Authentifizierungsmethode teilen.
/www/themes/
Verzeichnis, in dem phpMyAdmin nach Designs sucht. Standardmäßig sind nur diejenigen enthalten, die mit phpMyAdmin ausgeliefert werden, aber Sie können zusätzliche phpMyAdmin-Designs (siehe Benutzerdefinierte Designs) über Docker-Volumes einbinden.
Docker Beispiele¶
Um phpMyAdmin mit einem bestimmten Server zu verbinden, Folgendes verwenden:
docker run --name phpmyadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin:latest
Um phpMyAdmin mit weiteren Servern zu verbinden, Folgendes verwenden:
docker run --name phpmyadmin -d -e PMA_HOSTS=dbhost1,dbhost2,dbhost3 -p 8080:80 phpmyadmin:latest
Um einen beliebigen Server angeben zu können:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -e PMA_ARBITRARY=1 phpmyadmin:latest
Sie können den Datenbankcontainer auch mit Docker verbinden:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin:latest
Ausführung mit zusätzlichen Einstellungen:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php phpmyadmin:latest
Ausführung mit zusätzlichen Designs:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/custom/phpmyadmin/themeName/:/var/www/html/themes/themeName/ phpmyadmin:latest
Mit docker-compose¶
Alternativ können Sie docker-compose auch mit der docker-compose.yml von <https://github.com/phpmyadmin/docker> verwenden. Dadurch wird phpMyAdmin mit einem beliebigen Server ausgeführt - so können Sie den MySQL/MariaDB-Server auf der Anmeldeseite angeben.
docker compose up -d
Anpassen der Konfigurationsdatei mit Docker-Compose¶
Sie können eine externe Datei verwenden, um die phpMyAdmin-Konfiguration anzupassen und sie mit der Volume-Richtlinie zu übergeben:
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
environment:
- PMA_ARBITRARY=1
restart: always
ports:
- 8080:80
volumes:
- /sessions
- ~/docker/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
- /custom/phpmyadmin/theme/:/www/themes/theme/
Siehe auch
Hinter haproxy in einem Unterverzeichnis laufen lassen¶
Wenn Sie phpMyAdmin, das in einem Docker-Container in einem Unterverzeichnis läuft, verfügbar machen wollen, müssen Sie den Request-Pfad im Server-Proxy der Requests neu schreiben.
Zum Beispiel mit haproxy kann es folgendermaßen erreicht werden:
frontend http
bind *:80
option forwardfor
option http-server-close
### NETWORK restriction
acl LOCALNET src 10.0.0.0/8 192.168.0.0/16 172.16.0.0/12
# /phpmyadmin
acl phpmyadmin path_dir /phpmyadmin
use_backend phpmyadmin if phpmyadmin LOCALNET
backend phpmyadmin
mode http
reqirep ^(GET|POST|HEAD)\ /phpmyadmin/(.*) \1\ /\2
# phpMyAdmin container IP
server localhost 172.30.21.21:80
Bei der Verwendung von traefik sollte so etwas wie das Folgende funktionieren:
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
regex = "(http:\\/\\/[^\\/]+\\/([^\\?\\.]+)[^\\/])$"
replacement = "$1/"
[backends]
[backends.myadmin]
[backends.myadmin.servers.myadmin]
url="http://internal.address.to.pma"
[frontends]
[frontends.myadmin]
backend = "myadmin"
passHostHeader = true
[frontends.myadmin.routes.default]
rule="PathPrefixStrip:/phpmyadmin/;AddPrefix:/"
Sie sollten dann PMA_ABSOLUTE_URI
in der Docker-Compose-Konfiguration angeben:
version: '2'
services:
phpmyadmin:
restart: always
image: phpmyadmin:latest
container_name: phpmyadmin
hostname: phpmyadmin
domainname: example.com
ports:
- 8000:80
environment:
- PMA_HOSTS=172.26.36.7,172.26.36.8,172.26.36.9,172.26.36.10
- PMA_VERBOSES=production-db1,production-db2,dev-db1,dev-db2
- PMA_USER=root
- PMA_PASSWORD=
- PMA_ABSOLUTE_URI=http://example.com/phpmyadmin/
IBM-Cloud¶
Einer unserer Nutzer hat eine hilfreiche Anleitung für Installation von phpMyAdmin auf der IBM-Cloud-Plattform erstellt.
Schnellinstallation¶
- Choose an appropriate distribution kit from the phpmyadmin.net
Downloads page. Some kits contain only the English messages, others
contain all languages. We’ll assume you chose a kit whose name
looks like
phpMyAdmin-x.x.x-all-languages.tar.gz
. - Versichern Sie sich, dass Sie eine unverändertes Archiv heruntergeladen haben. Siehe hierzu Prüfen der phpMyAdmin Releases.
- Entpacken Sie die Distribution (stellen Sie sicher, dass Sie auch die Unterverzeichnisse entpacken):
tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz
ins Wurzelverzeichnis Ihres Webservers. Wenn Sie keinen direkten Zugriff auf dieses Verzeichnis haben, entpacken Sie die Dateien in ein Verzeichnis auf Ihrer lokalen Maschine und, nach Schritt 4, verschieben Sie das Verzeichnis auf Ihren Webserver z.B. mit FTP. - Stellen Sie sicher, dass alle Skripte den passenden Eigentümer gesetzt haben (wenn PHP im Safe-Mode läuft, werden Probleme auftreten, wenn manche Skripte verschiedene Eigentümer besitzen). Siehe 4.2 Wie kann man phpMyAdmin vor bösartigem Zugriff schützen? und 1.26 Ich habe gerade phpMyAdmin in mein Dokumentenstamm von IIS installiert, aber ich erhalte die Fehlermeldung „Keine Eingabedatei angegeben“, wenn ich versuche, phpMyAdmin auszuführen. für Empfehlungen.
- Jetzt müssen Sie Ihre Installation konfigurieren. Es gibt zwei Methoden, die benutzt werden können. Herkömmlich bearbeiteten Benutzer eine Kopie von
config.inc.php
per Hand, aber inzwischen wird ein Konfigurationsassistent für jene, die eine grafische Installation bevorzugen, zur Verfügung gestellt. Das Erstellen einerconfig.inc.php
ist dennoch ein schneller Weg um loszulegen und wird für einige erweiterte Einstellungen benötigt.
Datei manuell anlegen¶
To manually create the file, simply use your text editor to create the
file config.inc.php
(you can copy config.sample.inc.php
to get
a minimal configuration file) in the main (top-level) phpMyAdmin
directory (the one that contains index.php
). phpMyAdmin first
loads the default configuration values and then overrides those values
with anything found in config.inc.php
. If the default value is
okay for a particular setting, there is no need to include it in
config.inc.php
. You’ll probably need only a few directives to get going; a
simple configuration may look like this:
<?php
// The string is a hexadecimal representation of a 32-bytes long string of random bytes.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
// if you insist on "root" having no password:
// $cfg['Servers'][$i]['AllowNoPassword'] = true;
Oder, wenn Sie bevorzugen, nicht bei jedem Einloggen gefragt zu werden:
<?php
$i=0;
$i++;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'changeme'; // use here your password
$cfg['Servers'][$i]['auth_type'] = 'config';
Warnung
Das Speichern von Passwörtern in der Konfiguration ist unsicher, da dann jeder Ihre Datenbank verändern kann.
Für eine vollständige Erklärung aller möglichen Konfigurationswerten sehen Sie sich den Abschnitt Konfiguration dieses Dokuments an.
Mithilfe des Setup-Skripts¶
Anstelle config.inc.php
manuell zu bearbeiten, können Sie die phpMyAdmin-Setup-Funktion verwenden. Die Datei kann mit dem setup generiert werden und Sie können es zum Hochladen auf dem Server herunterladen.
Öffnen Sie nun Ihren Browser und besuchen Sie den Ort, an dem Sie phpMyAdmin installiert haben, mit dem Suffix /setup
. Die Änderungen werden nicht auf dem Server gespeichert, Sie müssen den Knopf Download benutzen, um sie auf Ihrem Computer zu speichern und dann auf den Server hochzuladen.
Jetzt ist die Datei betriebsklar. Sie können die Datei mit Ihrem bevorzugten Texteditor betrachten oder bearbeiten, wenn Sie bevorzugen, einige erweiterte Optionen zu setzen, die der Konfigurationsassistent nicht bereitstellt.
- Wenn Sie den
auth_type
„config“ verwenden, wird empfohlen, dass Sie das phpMyAdmin-Installationsverzeichnis schützen, weil durch die Benutzung von config ein Benutzer nicht dazu aufgefordert wird, ein Kennwort einzugeben, um die phpMyAdmin-Installation aufzurufen. Die Verwendung einer alternativen Authentifizierungsmethode wird empfohlen, zum Beispiel mit HTTP-AUTH in einer .htaccess-Datei oder mit einem Wechsel zuauth_type
cookie oder http. Siehe den Abschnitt ISPs, Mehrbenutzer-Installationen für weitere Informationen, insbesondere 4.4 phpMyAdmin gibt bei Verwendung der HTTP-Authentifizierung immer „Zugriff verweigert“.. - Öffnen Sie das phpMyAdmin-Hauptverzeichnis in Ihrem Webbrowser. phpMyAdmin sollte jetzt einen Willkommensbildschirm und Ihre Datenbanken anzeigen, oder einen Anmeldungsdialog, wenn Sie die HTTP- oder Cookie-Authentifizierungsmethode verwenden.
Installationsskript für Debian, Ubuntu und deren Derivate¶
Debian und Ubuntu haben die Art, wie das Installationsskript aktiviert und deaktiviert wird, auf eine Weise geändert, das für jedes von beiden ein einzelner Befehl ausgeführt werden muss.
Um eine die Bearbeitung einer Konfiguration zu gestatten, rufen Sie Folgendes auf:
/usr/sbin/pma-configure
Um die Bearbeitung einer Konfiguration zu verbieten, rufen Sie Folgendes auf:
/usr/sbin/pma-secure
Installationsskript für openSUSE¶
Einige openSUSE-Veröffentlichungen beinhalten im Paket kein Installationsskript. Falls Sie dafür eine Konfiguration generieren wollen, können Sie entweder das Originalpaket von <https://www.phpmyadmin.net/> herunterladen, oder das Installationsskript unseres Demo-Servers <https://demo.phpmyadmin.net/master/setup/> nutzen.
Prüfen der phpMyAdmin Releases¶
Seit Juli 2015 sind alle phpMyAdmin-Versionen vom veröffentlichen Entwickler, bis Januar 2016 war das Marc Deslisle, kryptographisch signiert. Seine Schlüssel-ID ist 0xFEFC65D181AF644A, sein PGP-Fingerprint ist:
436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644A
und Sie können mehr Identifikationsinformationen von <https://keybase.io/lem9> erhalten.
Seit Januar 2016 ist der Veröffentlichungsleiter Isaac Bennetch. Seine Schlüssel-ID ist 0xCE752F178259BD92 und sein PGP-Fingerabdruck ist:
3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
und Sie können mehr Identifikationsinformationen von <https://keybase.io/ibennetch> erhalten.
Einige zusätzliche Downloads (zum Beispiel Themes) können durch Michal Čihař signiert sein. Seine Schlüssel-ID ist 0x9C27B31342B7511D und sein PGP-Fingerprint ist:
63CB 1DF1 EF12 CF2A C0EE 5A32 9C27 B313 42B7 511D
und Sie können mehr Identifikationsinformationen von <https://keybase.io/nijel> erhalten.
Sie sollte verifizieren, dass die Signatur zum Archiv passt, welches Sie heruntergladen haben. Auf diesem Weg können Sie sicherstellen, dass sie den Quellcode nutzen, welcher veröffentlich wurde. Sie sollte auch das Datum der Signatur prüfen, um sicher zu gehen, dass Sie die neuste Version heruntergladen haben.
Jedes Archiv wird von .asc
-Dateien begleitet, die die entsprechende PGP-Signatur enthalten. Sobald beide Dateien im gleichen Ordner liegen, lässt sich die Signatur prüfen:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Can't check signature: public key not found
Wie Sie sehen können, meldet gpg, dass der Public-Key nicht bekannt ist. Jetzt sollten Sie einen der nächsten Schritte befolgen:
- Laden sie sich den Keyring von <https://files.phpmyadmin.net/phpmyadmin.keyring>`_ herunter und importieren ihn mit:
$ gpg --import phpmyadmin.keyring
- Lade dir den Schlüssel von einem der Server runter:
$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 3D06A59ECE730EB71B511C17CE752F178259BD92
gpg: requesting key 8259BD92 from hkp server pgp.mit.edu
gpg: key 8259BD92: public key "Isaac Bennetch <bennetch@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Damit wird die Situation etwas verbessert – an diesem Punkt können Sie prüfen, dass die Signatur vom angegebenen Schlüssel stimmt. Dem Namen, der im Schlüssel verwendet wird, können Sie aber immer noch nicht vertrauen:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>"
gpg: aka "Isaac Bennetch <isaac@bennetch.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
The problem here is that anybody could issue the key with this name. You need to ensure that the key is actually owned by the mentioned person. The GNU Privacy Handbook covers this topic in the chapter Validating other keys on your public keyring. The most reliable method is to meet the developer in person and exchange key fingerprints, however, you can also rely on the web of trust. This way you can trust the key transitively though signatures of others, who have met the developer in person.
Sobald der Schlüssel akzeptiert wurde, wird die Warnung nicht mehr auftreten:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>" [full]
Sollte die Signatur ungültig sein (das Archiv wurde verändert), werden Sie einen klaren Fehler bekommen, egal ob dem Schlüssel vertraut wird oder nicht:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: BAD signature from "Isaac Bennetch <bennetch@gmail.com>" [unknown]
phpMyAdmin-Konfigurationsspeicher¶
Geändert in Version 3.4.0: Vor phpMyAdmin 3.4.0 wurde dies Verknüpfte Tabellen-Infrastruktur genannt, aber der Name wurde wegen des erweiterten Geltungsbereichs des Speichers geändert.
Für eine ganze Menge an neuen Funktionen (Lesezeichen, Kommentare, SQL-Verlauf, Tracking-Mechanismus, PDF-Generierung, Transformationen, Tabellenverknüpfungen) müssen Sie einige spezielle Tabellen erzeugen. Diese Tabellen können in einer eigenen Datenbank liegen oder in einer zentralen Datenbank für eine Mehrbenutzerinstallation (auf diese Datenbank würde dann der Kontroll-Benutzer zugreifen, also sollte kein anderer Benutzer Rechte dafür besitzen).
Null-Konfiguration¶
In many cases, this database structure can be automatically created and
configured. This is called “Zero Configuration” mode and can be particularly
useful in shared hosting situations. “ZeroConf” mode is on by default, to
disable set $cfg['ZeroConf']
to false.
Die folgenden drei Szenarien werden durch den Zero-Configuration-Modus abgedeckt:
- Wenn eine Datenbank geöffnet wird, zu der keine Konfigurationsspeichertabellen vorhanden sind, bietet phpMyAdmin im „Operationen“-Tab an, diese zu erstellen.
- Wenn eine Datenbank geöffnet wird, zu der die Tabellen bereits existieren, erkennt die Software dies automatisch und verwendet diese. Dies ist der häufigste Fall; Nachdem die Tabellen eingangs automatisch erzeugt werden, werden diese kontinuierlich weiterverwendet ohne den Nutzer zu stören; Dies ist auch vor allem in Shared-Hosting-Umgebungen sinnvoll, wo der Benutzer nicht die
config.inc.php
bearbeiten kann und er nur Zugriff auf eine Datenbank hat. - Wenn mehrere Datenbanken verwaltet werden und die Datenbank mit den Konfigurationsspeicher-Tabellen zuerst aufgerufen wird und wird dann zu einer anderen Datenbank gewechselt, benutzt phpMyAdmin weiterhin die Tabellen der ersten Datenbank. Der Benutzer wird nicht aufgefordert, neue Tabellen anzulegen.
Manuelle Konfiguration¶
Bitte schauen Sie in Ihr Verzeichnis ./sql/
, wo Sie eine Datei namens create_tables.sql finden sollten. (Wenn Sie einen Windows-Server verwenden, achten Sie bitte besonders auf 1.23 Ich verwende MySQL auf einer Win32-Maschine. Jedes Mal, wenn ich eine neue Tabelle erstelle, werden die Tabellen- und Spaltennamen in Kleinbuchstaben geändert!).
Wenn Sie diese Infrastruktur bereits hatten und:
- auf MySQL 4.1.2 oder neuer aktualisiert haben, nutzen Sie bitte
sql/upgrade_tables_mysql_4_1_2+.sql
. - auf phpMyAdmin 4.3.0 oder neuer von 2.5.0 oder neuer aktualisiert haben (<= 4.2.x), nutzen Sie bitte
sql/upgrade_column_info_4_3_0+.sql
. - auf phpMyAdmin 4.7.0 oder neuer von 4.3.0 oder neuer aktualisiert haben, verwenden Sie bitte
sql/upgrade_tables_4_7_0+.sql
.
und legen Sie dann neue Tabellen an, indem Sie sql/create_tables.sql
importieren.
Sie können phpMyAdmin dafür verwenden, die Tabellen für Sie zu erstellen. Bitte beachten Sie, dass sie besondere (Administrator) Berechtigungen benötigen, um Datenbank und Tabellen zu erstellen, und dass das Skript etwas Bearbeitung benötigt, abhängig vom Datenbanknamen.
Nachdem Sie die Datei sql/create_tables.sql
importiert haben, sollten Sie die Tabellennamen in Ihrer config.inc.php
-Datei festlegen. Die Einstellungen dafür können Sie im Abschnitt Konfiguration nachlesen.
Sie brauchen außerdem einen Kontrollnutzer (Einstellungen $cfg['Servers'][$i]['controluser']
und $cfg['Servers'][$i]['controlpass']
) mit den korrekten Rechten für diese Tabellen. Sie können ihn beispielsweise mit folgender Anweisung anlegen:
Und für jede MariaDB-Version:
CREATE USER 'pma'@'localhost' IDENTIFIED VIA mysql_native_password USING 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON `<pma_db>`.* TO 'pma'@'localhost';
Für MySQL 8.0 oder neuer:
CREATE USER 'pma'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
Für MySQL älter als 8.0:
CREATE USER 'pma'@'localhost' IDENTIFIED WITH mysql_native_password AS 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
Beachten Sie, dass MySQL-Installationen mit PHP älter als 7.1 und MySQL neuer als 8.0 möglicherweise die Authentifizierung mysql_native_password zur Problemumgehung benötigen. Siehe 1.45 Ich erhalte eine Fehlermeldung über eine unbekannte Authentifizierungsmethode caching_sha2_password wenn ich versuche mich anzumelden für Einzelheiten.
Aktualisieren von einer älteren Version¶
Warnung
Extrahieren sie niemals die neue Version über eine bestehende Installation von phpMyAdmin, entfernen Sie immer zuerst die alten Dateien und behalten Sie dabei nur die Konfiguration bei.
Auf diese Art bleibt kein alter, nicht länger funktionierender Code im Verzeichnis, der zu schweren Sicherheitslücken oder Fehlern führen kann.
Kopieren Sie einfach config.inc.php
von Ihrer vorherigen Installation in die neu entpackte. Konfigurationsdateien von alten Versionen brauchen eventuell Bearbeitungen, da einige Optionen geändert oder entfernt wurden. Für Kompatibilität zu PHP 5.3 oder neuer, entfernen Sie eine set_magic_quotes_runtime(0);
Anweisung, die Sie ziemlich am Ende der Konfigurationsdatei finden könnten.
Die vollständige Nachrüstung kann in wenigen, einfachen Schritten durchgeführt werden:
- Laden Sie die neueste phpMyAdmin-Version von <https://www.phpmyadmin.net/downloads/> herunter.
- Benennen Sie den vorhandenen phpMyAdmin-Ordner um (z.B. in
phpMyAdmin-alt
). - Entpacken Sie das kürzlich heruntergeladene phpMyAdmin in das gewünschte Verzeichnis (z.B.
phpMyAdmin
). - Kopieren Sie :file:
config.inc.php
aus dem alten Verzeichnis (phpMyAdmin-alt
) in das neue (phpMyAdmin
). - Überprüfen Sie, ob alles ordnungsgemäß funktioniert.
- Entfernen Sie die Sicherung der vorigen Version (
phpMyAdmin-alt
).
Wenn Sie Ihren MySQL-Server von einer Version früher als 4.1.2 auf Version 5.x oder neuer aktualisiert haben und Sie den phpMyAdmin-Konfigurationsspeicher nutzen, sollten Sie das SQL-Skript sql/upgrade_tables_mysql_4_1_2+.sql
ausführen.
Wenn Sie Ihr phpMyAdmin auf 4.3.0 oder neuer von 2.5.0 oder neuer (<= 4.2.x) aktualisiert haben und wenn Sie den phpMyAdmin-Konfigurationsspeicher nutzen, sollten Sie das SQL-Skript sql/upgrade_column_info_4_3_0+.sql
ausführen.
Vergessen Sie nicht, den Browsercache zu löschen und die letzte Sitzung zu leeren, indem Sie sich abmelden und danach wieder anmelden.
Benutzung von Authentifizierungsmethoden¶
HTTP- und Cookie-Authentifizierung werden in einer Mehrbenutzer-Umgebung empfohlen, wo Sie Benutzern Zugriff auf ihre eigene Datenbank geben wollen, ohne dass sie mit anderen herumspielen können. Beachten Sie jedoch, dass MS Internet Explorer scheinbar sehr fehleranfällig bei Cookies ist, zumindest bis Version 6. Selbst in einer Einbenutzer-Umgebung* bevorzugen Sie möglicherweise den HTTP- oder Cookie-Modus, sodass Ihr Benutzername und das Kennwort nicht im Klartext in der Konfigurationsdatei stehen.
Die HTTP- und Cookie-Authentifizierungsmethoden sind sicherer: Die MySQL-Logindaten müssen nicht in der phpMyAdmin-Konfigurationsdatei gesetzt werden (außer eventuell für den $cfg['Servers'][$i]['controluser']
). Behalten Sie aber im Sinn, dass das Kennwort im Klartext übertragen wird, es sei denn, Sie verwenden das HTTPS-Protokoll. Im Cookie-Modus wird das Kennwort AES-verschlüsselt in einem temporären Cookie gespeichert.
Dann sollte jedem der echten Benutzer eine Menge von Berechtigungen für eine Menge von bestimmten Datenbanken vergeben werden. Normalerweise sollten Sie einem normalen Benutzer keine globalen Berechtigungen gewähren, außer Sie verstehen die Bedeutung dieser Berechtigungen (zum Beispiel wenn Sie einen Administratorbenutzer erstellen). Um zum Beispiel dem Benutzer real_user sämtliche Rechte an der Datenbank user_base zu geben:
GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';
Was der Benutzer jetzt tun kann, wird vollständig vom MySQL-Benutzerverwaltungssystem kontrolliert. Mit der HTTP- oder Cookie-Authentifizierungsmethode brauchen Sie nicht die Benutzer/Kennwort-Felder im Feld $cfg['Servers']
eintragen.
Siehe auch
1.32 Kann ich HTTP-Authentifizierung mit IIS verwenden?, 1.35 Kann ich HTTP-Authentifizierung mit Apache CGI verwenden?, 4.1 Ich bin ein ISP. Kann ich eine zentrale Kopie von phpMyAdmin einrichten oder muss ich diese für jeden Kunden installieren?, 4.2 Wie kann man phpMyAdmin vor bösartigem Zugriff schützen?, 4.3 Ich erhalte Fehler, wenn ich eine Datei nicht in /lang oder in /libraries einbinden kann.
HTTP-Authentifizierungs-Methode¶
Benutzt die HTTP Basic-Authentication-Methode und erlaubt Ihnen, sich als jeder gültige MySQL-Benutzer einzuloggen.
Wird von den meisten PHP Konfigurationen unterstützt. Für IIS (ISAPI)-Unterstützung unter Verwendung des CGI-PHP beachten Sie 1.32 Kann ich HTTP-Authentifizierung mit IIS verwenden?, für die Benutzung mit Apache CGI beachten Sie 1.35 Kann ich HTTP-Authentifizierung mit Apache CGI verwenden?.
Wenn PHP unter Apache’s mod_proxy_fcgi (z.B. mit PHP-FPM) läuft, werden
Authorization
-Header nicht an die darunterliegende FCGI-Anwendung weitergegeben, so dass Ihre Anmeldedaten nicht bis zu der Anwendung gelangen. In diesem Fall können Sie die folgenden Einstellungen hinzufügen:SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Siehe auch 4.4 phpMyAdmin gibt bei Verwendung der HTTP-Authentifizierung immer „Zugriff verweigert“. darüber, nicht den .htaccess-Mechanismus zusammen mit der ‚HTTP‘-Authentifizierungsmethode zu verwenden.
Bemerkung
Es gibt keine vernünftige Möglichkeit sich in einer HTTP-Authenifizierung abzumelden. Die meisten Browser speichern die Anmeldedaten solange, wie keine andere erfolgreiche Anmeldung durchgeführt wurde. Auf Grund dieser Methode besteht die Beschränkung, dass man sich nicht mit dem selben Benutzer nach einer Abmeldung wieder anmelden kann.
Cookie-Authentifizierungsmethode¶
- Benutzername und Kennwort werden während der Sitzung in Cookies gespeichert und das Kennwort wird am Ende der Sitzung gelöscht.
- Mit dieser Methode kann sich der Benutzer richtig aus phpMyAdmin abmelden und mit dem gleichen Benutzernamen wieder anmelden (dies ist mit HTTP-Authentifizierungs-Methode nicht möglich).
- Wenn Sie sich an einen beliebigen Server anmelden wollen (anstatt nur in Server, die in
config.inc.php
konfiguriert sind), benutzen Sie die Richtlinie$cfg['AllowArbitraryServer']
. - Wie im Abschnitt Anforderungen beschrieben, beschleunigt die
openssl
-Erweiterung den Zugriff deutlich, ist aber nicht erforderlich.
Signon-Authentifizierungsmethode¶
- Diese Methode ist ein bequemer Weg, die Login-Daten einer anderen Anwendung zu benutzen, um sich per Single-Signon bei phpMyAdmin zu authentifizieren.
- Die andere Anwendung muss Login-Informationen in Sitzungs-Daten speichern (siehe
$cfg['Servers'][$i]['SignonSession']
und$cfg['Servers'][$i]['SignonCookieParams']
) oder Sie müssen ein Skript schreiben, das die Anmeldedaten zurückgibt (siehe$cfg['Servers'][$i]['SignonScript']
). - Falls keine Anmeldedaten verfügbar sind, wird der Benutzer an
$cfg['Servers'][$i]['SignonURL']
weitergeleitet, wo Sie den Anmeldevorgang verarbeiten sollten.
Das sehr grundlegende Beispiel zum Speichern von Anmeldedaten in einer Sitzung steht als examples/signon.php
bereit:
<?php
/**
* Single signon for phpMyAdmin
*
* This is just example how to use session based single signon with
* phpMyAdmin, it is not intended to be perfect code and look, only
* shows how you can integrate this functionality in your application.
*/
declare(strict_types=1);
/* Use cookies for session */
ini_set('session.use_cookies', 'true');
/* Change this to true if using phpMyAdmin over https */
$secureCookie = false;
/* Need to have cookie visible from parent directory */
session_set_cookie_params(0, '/', '', $secureCookie, true);
/* Create signon session */
$sessionName = 'SignonSession';
session_name($sessionName);
// Uncomment and change the following line to match your $cfg['SessionSavePath']
//session_save_path('/foobar');
@session_start();
/* Was data posted? */
if (isset($_POST['user'])) {
/* Store there credentials */
$_SESSION['PMA_single_signon_user'] = $_POST['user'];
$_SESSION['PMA_single_signon_password'] = $_POST['password'];
$_SESSION['PMA_single_signon_host'] = $_POST['host'];
$_SESSION['PMA_single_signon_port'] = $_POST['port'];
/* Update another field of server configuration */
$_SESSION['PMA_single_signon_cfgupdate'] = ['verbose' => 'Signon test'];
$_SESSION['PMA_single_signon_HMAC_secret'] = hash('sha1', uniqid(strval(random_int(0, mt_getrandmax())), true));
$id = session_id();
/* Close that session */
@session_write_close();
/* Redirect to phpMyAdmin (should use absolute URL here!) */
header('Location: ../index.php');
} else {
/* Show simple form */
header('Content-Type: text/html; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
echo '<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="../favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
<meta charset="utf-8">
<title>phpMyAdmin single signon example</title>
</head>
<body>';
if (isset($_SESSION['PMA_single_signon_error_message'])) {
echo '<p class="error">';
echo $_SESSION['PMA_single_signon_error_message'];
echo '</p>';
}
echo '<form action="signon.php" method="post">
Username: <input type="text" name="user" autocomplete="username" spellcheck="false"><br>
Password: <input type="password" name="password" autocomplete="current-password" spellcheck="false"><br>
Host: (will use the one from config.inc.php by default)
<input type="text" name="host"><br>
Port: (will use the one from config.inc.php by default)
<input type="text" name="port"><br>
<input type="submit">
</form>
</body>
</html>';
}
Alternativ können Sie diese Methode auch zur Einbindung von OpenID nutzen, wie in examples/openid.php
gezeigt:
<?php
/**
* Single signon for phpMyAdmin using OpenID
*
* This is just example how to use single signon with phpMyAdmin, it is
* not intended to be perfect code and look, only shows how you can
* integrate this functionality in your application.
*
* It uses OpenID pear package, see https://pear.php.net/package/OpenID
*
* User first authenticates using OpenID and based on content of $AUTH_MAP
* the login information is passed to phpMyAdmin in session data.
*/
declare(strict_types=1);
if (false === @include_once 'OpenID/RelyingParty.php') {
exit;
}
/* Change this to true if using phpMyAdmin over https */
$secureCookie = false;
/**
* Map of authenticated users to MySQL user/password pairs.
*/
$authMap = ['https://launchpad.net/~username' => ['user' => 'root', 'password' => '']];
// phpcs:disable PSR1.Files.SideEffects,Squiz.Functions.GlobalFunction
/**
* Simple function to show HTML page with given content.
*
* @param string $contents Content to include in page
*/
function Show_page(string $contents): void
{
header('Content-Type: text/html; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
echo '<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="../favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
<meta charset="utf-8">
<title>phpMyAdmin OpenID signon example</title>
</head>
<body>';
if (isset($_SESSION['PMA_single_signon_error_message'])) {
echo '<p class="error">' . $_SESSION['PMA_single_signon_message'] . '</p>';
unset($_SESSION['PMA_single_signon_message']);
}
echo $contents;
echo '</body></html>';
}
/**
* Display error and exit
*
* @param Exception $e Exception object
*/
function Die_error(Throwable $e): void
{
$contents = "<div class='relyingparty_results'>\n";
$contents .= '<pre>' . htmlspecialchars($e->getMessage()) . "</pre>\n";
$contents .= "</div class='relyingparty_results'>";
Show_page($contents);
exit;
}
// phpcs:enable
/* Need to have cookie visible from parent directory */
session_set_cookie_params(0, '/', '', $secureCookie, true);
/* Create signon session */
$sessionName = 'SignonSession';
session_name($sessionName);
@session_start();
// Determine realm and return_to
$base = 'http';
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {
$base .= 's';
}
$base .= '://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'];
$realm = $base . '/';
$returnTo = $base . dirname($_SERVER['PHP_SELF']);
if ($returnTo[strlen($returnTo) - 1] !== '/') {
$returnTo .= '/';
}
$returnTo .= 'openid.php';
/* Display form */
if ((! count($_GET) && ! count($_POST)) || isset($_GET['phpMyAdmin'])) {
/* Show simple form */
$content = '<form action="openid.php" method="post">
OpenID: <input type="text" name="identifier"><br>
<input type="submit" name="start">
</form>';
Show_page($content);
exit;
}
/* Grab identifier */
$identifier = null;
if (isset($_POST['identifier']) && is_string($_POST['identifier'])) {
$identifier = $_POST['identifier'];
} elseif (isset($_SESSION['identifier']) && is_string($_SESSION['identifier'])) {
$identifier = $_SESSION['identifier'];
}
/* Create OpenID object */
try {
$o = new OpenID_RelyingParty($returnTo, $realm, $identifier);
} catch (Throwable $e) {
Die_error($e);
}
/* Redirect to OpenID provider */
if (isset($_POST['start'])) {
try {
$authRequest = $o->prepare();
} catch (Throwable $e) {
Die_error($e);
}
$url = $authRequest->getAuthorizeURL();
header('Location: ' . $url);
exit;
}
/* Grab query string */
if (! count($_POST)) {
[, $queryString] = explode('?', $_SERVER['REQUEST_URI']);
} else {
// Fetch the raw query body
$queryString = file_get_contents('php://input');
}
/* Check reply */
try {
$message = new OpenID_Message($queryString, OpenID_Message::FORMAT_HTTP);
} catch (Throwable $e) {
Die_error($e);
}
$id = $message->get('openid.claimed_id');
if (empty($id) || ! isset($authMap[$id])) {
Show_page('<p>User not allowed!</p>');
exit;
}
$_SESSION['PMA_single_signon_user'] = $authMap[$id]['user'];
$_SESSION['PMA_single_signon_password'] = $authMap[$id]['password'];
$_SESSION['PMA_single_signon_HMAC_secret'] = hash('sha1', uniqid(strval(random_int(0, mt_getrandmax())), true));
session_write_close();
/* Redirect to phpMyAdmin (should use absolute URL here!) */
header('Location: ../index.php');
Wenn Sie planen, die Anmeldedaten auf eine andere Art und Weise zu übergeben, müssen Sie einen Wrapper in PHP schreiben, der diese Daten abholt, und ihn in $cfg['Servers'][$i]['SignonScript']
setzen. Ein sehr minimales Beispiel finden Sie in examples/signon-script.php
:
<?php
/**
* Single signon for phpMyAdmin
*
* This is just example how to use script based single signon with
* phpMyAdmin, it is not intended to be perfect code and look, only
* shows how you can integrate this functionality in your application.
*/
declare(strict_types=1);
// phpcs:disable Squiz.Functions.GlobalFunction
/**
* This function returns username and password.
*
* It can optionally use configured username as parameter.
*
* @param string $user User name
*
* @return array<int,string>
*/
function get_login_credentials(string $user): array
{
/* Optionally we can use passed username */
if (! empty($user)) {
return [$user, 'password'];
}
/* Here we would retrieve the credentials */
return ['root', ''];
}
Config-Authentifizierungsmethode¶
- Diese Methode ist die unsicherste, weil dazu zwingend die Felder
$cfg['Servers'][$i]['user']
und$cfg['Servers'][$i]['password']
Felder ausgefüllt werden müssen (und deshalb jeder, der Ihreconfig.inc.php
lesen kann, Ihren Benutzernamen und das Kennwort sehen kann). - Im Abschnitt ISPs, Mehrbenutzer-Installationen befindet sich ein Eintrag, der erklärt, wie Sie Ihre Konfigurationsdatei absichern können.
- Für mehr Sicherheit bei Benutzung dieser Methode können Sie sich überlegen, die Einstellungen der Hostauthentifizierung
$cfg['Servers'][$i]['AllowDeny']['order']
und$cfg['Servers'][$i]['AllowDeny']['rules']
einzusetzen. - Anders als bei Cookie und HTTP wird nicht verlangt, dass sich ein Benutzer anmeldet, wenn die phpMyAdmin-Seite zum ersten Mal geladen wird. Dies ist absichtlich so, könnte aber beliebigen Benutzern Zugriff auf Ihre Installation geben. Die Verwendung irgendeiner Beschränkung wird empfohlen, eventuell reicht eine .htaccess-Datei mit der HTTP-AUTH-Richtlinie oder das Verbot von eingehenden HTTP-Anfragen am eigenen Router oder in der Firewall aus (beide Möglichkeiten sind außerhalb des Rahmens dieses Handbuchs, aber leicht per Google zu finden).
Absichern Ihrer phpMyAdmin-Installation¶
Das phpMyAdmin-Team arbeitet hart daran, die Anwendung sicher zu machen. Hier einige Wege, wie Sie Ihre Installation besser absichern können:
Befolge unsere Sicherheitshinweise und aktualisiere phpMyAdmin immer, wenn eine neue Sicherheitslücke bekannt wird.
Gestatten Sie auf phpMyAdmin nur über HTTPS Zugriff. Idealerweise sollten Sie ebenfalls HSTS verwenden, um so vor Attacken auf ältere Protokollversionen geschützt zu sein.
Stellen Sie sicher, dass Ihre PHP-Installation mit den Empfehlungen für Produktivseiten konform ist, zum Beispiel sollte display_errors deaktiviert sein.
Das
test
-Verzeichnis von phpMyAdmin entfernen, es sei denn, Sie entwickeln und benötigen eine Testsuite.Das
setup
-Verzeichnis von phpMyAdmin entfernen, Sie verwenden es wahrscheinlich nach der ersten Einrichtung nicht mehr.Die richtige Authentifizierungs-Methode verwenden – Cookie-Authentifizierungsmethode ist für Shared-Hosting vermutlich die beste Wahl.
Verweigern Sie den Zugriff auf Hilfsdateien in
./libraries/
oder./templates/
Unterordnern in Ihrer Webserver-Konfiguration. Solch eine Konfiguration verhindert mögliche Verzeichnisauflistungs- und Cross-Site-Scripting-Schwachstellen, die in diesem Code gefunden werden könnten. Für den Apache-Webserver wird das oft über eine .htaccess-Datei in diesen Verzeichnissen erledigt.Verweigern Sie den Zugriff auf temporäre Dateien, siehe
$cfg['TempDir']
(wenn das innerhalb Ihres Web-Root liegt, siehe auch Webserver-Verzeichnisse hochladen/speichern/importieren).Es ist generell eine gute Idee, öffentliche phpMyAdmin-Installationen gegen Zugriff von Robots abzusichern, weil diese normalerweise nichts Gutes tun können. Sie können durch Verwendung einer
robots.txt
-Datei im Wurzelverzeichnis Ihres Webservers erreichen oder Zugriff durch die Webserver-Konfiguration beschränken, siehe 1.42 Wie kann ich verhindern, dass robots auf phpMyAdmin zugreifen?.Falls Sie nicht wollen, dass alle MySQL-Benutzer auf phpMyAdmin zugreifen können, verwenden Sie
$cfg['Servers'][$i]['AllowDeny']['rules']
zur Begrenzung oder der$cfg['Servers'][$i]['AllowRoot']
um root-Benutzern den Zugriff zu verweigern.Aktivieren Sie Zwei-Faktor-Authentifizierung für Ihr Benutzerkonto.
Erwägen Sie, phpMyAdmin hinter einem Authentifizierungs-Proxy zu verstecken, sodass Nutzer sich authentifizieren müssen, bevor sie MySQL-Anmeldedaten für phpMyAdmin bereitstellen. Sie können dies erreichen, indem Sie Ihren Webserver so einstellen, dass eine HTTP-Authentifizierung angefordert wird. In Apache lässt sich das beispielsweise wie folgt umsetzen:
AuthType Basic AuthName "Restricted Access" AuthUserFile /usr/share/phpmyadmin/passwd Require valid-user
Sobald Sie die Konfiguration geändert haben, müssen Sie eine Liste der Benutzer erstellen, die sich authentifizieren dürfen. Das ist mit dem Hilfsprogramm htpasswd möglich:
htpasswd -c /usr/share/phpmyadmin/passwd username
Wenn Sie sich Sorgen um automatisierte Angriffe machen, könnte das Einschalten eines Captchas mit
$cfg['CaptchaLoginPublicKey']
und$cfg['CaptchaLoginPrivateKey']
eine Option sein.Fehlgeschlagene Anmeldeversuche werden im Syslog protokolliert (falls vorhanden, siehe
$cfg['AuthLog']
). Dies ermöglicht die Verwendung eines Tools wie fail2ban, um Brute-Force-Versuche zu blockieren. Beachten Sie, dass die von syslog verwendete Protokolldatei nicht die gleiche ist wie die Apache-Fehler- oder Zugriffsprotokolldateien.Falls Sie phpMyAdmin zusammen mit anderen PHP-Anwendungen betreiben, ist es generell ratsam, einen separaten Sitzungsspeicher für phpMyAdmin zu verwenden, um mögliche Sitzungsbasierte Angriffe darauf zu vermeiden. Sie können
$cfg['SessionSavePath']
verwenden, um dies zu erreichen.
SSL für die Verbindung zum Datenbankserver verwenden¶
Es wird empfohlen, bei der Verbindung zum entfernten Datenbankserver SSL zu verwenden. Es gibt verschiedene Konfigurationsoptionen für die SSL-Einrichtung:
$cfg['Servers'][$i]['ssl']
- Legt fest, ob überhaupt SSL verwendet werden soll. Wenn Sie nur dies aktivieren, wird die Verbindung verschlüsselt, aber es gibt keine Authentifizierung der Verbindung - Sie können nicht überprüfen, ob Sie mit dem richtigen Server sprechen.
$cfg['Servers'][$i]['ssl_key']
und$cfg['Servers'][$i]['ssl_cert']
- Diese wird für die Authentifizierung des Clients gegenüber dem Server verwendet.
$cfg['Servers'][$i]['ssl_ca']
und$cfg['Servers'][$i]['ssl_ca_path']
- Die Zertifizierungsstellen, denen Sie für Serverzertifikate vertrauen. Dies wird verwendet, um sicherzustellen, dass Sie mit einem vertrauenswürdigen Server sprechen.
$cfg['Servers'][$i]['ssl_verify']
- Diese Konfiguration deaktiviert die Überprüfung des Serverzertifikats. Mit Vorsicht zu verwenden.
Wenn der Datenbank-Server eine lokale Verbindung oder ein Privates Netzwerk nutzt und SSL nicht konfiguriert werden kann, können Sie $cfg['MysqlSslWarningSafeHosts']
verwenden, um die als sicher betrachteten Hostnamen einzutragen.
Bekannte Probleme¶
Benutzer mit spaltenspezifischen Rechten können nicht „Durchsuchen“¶
Hat ein Benutzer nur spaltenspezifische Privilegien für einige (aber nicht alle) Spalten einer Tabelle, schlägt „Anzeigen“ mit einer Fehlermeldung fehl.
Als Prolemumgehung kann eine Lesezeichenabfrage mit dem gleichen Namen wie die Tabelle erstellt werden, die stattdessen über den Link „Durchsuchen“ ausgeführt wird. Ausgabe 11922.
Problem bei der Wiederanmeldung nach dem Abmelden mittels ‚http‘ Authentifizierung¶
Bei Verwendung des ‚http‘ auth_type
kann es unmöglich sein, sich wieder anzumelden (wenn die Abmeldung manuell oder nach einer Zeit der Inaktivität erfolgt). Ausgabe 11898.
Konfiguration¶
All configurable data is placed in config.inc.php
in phpMyAdmin’s
toplevel directory. If this file does not exist, please refer to the
Installation section to create one. This file only needs to contain the
parameters you want to change from their corresponding default value.
Siehe auch
Beispiele für Konfigurationsbeispiele
Wenn eine Anweisung in Ihrer Datei fehlt, können Sie einfach eine neue Zeile in der Datei einfügen. Diese Datei dient zum Überschreiben der Standardwerte; wenn Sie den Standardwert verwenden wollen, braucht keine Zeile hier eingefügt zu werden.
Die Parameter, die sich auf das Design beziehen (z.B. Farben), sind in themes/themename/scss/_variables.scss
gespeichert. Sie können auch die Dateien config.footer.inc.php
und config.header.inc.php
erstellen, um Ihren seitenspezifischen Quelltext am Anfang und Ende jeder Seite anzuzeigen.
Bemerkung
Einige Distributionen (z.B. Debian oder Ubuntu) speichern config.inc.php
in /etc/phpmyadmin
anstelle bei den phpMyAdmin-Quelltexten.
Grundeinstellungen¶
-
$cfg['PmaAbsoluteUri']
¶ Typ: Zeichenkette Standardwert: "
Geändert in Version 4.6.5: Diese Einstellung war in phpMyAdmin 4.6.0 - 4.6.4. nicht verfügbar.
Hier den vollständigen URL (einschließlich des vollständigen Pfades) Ihres phpMyAdmin-Installationsverzeichnisses eintragen. Z.B.
https://www.example.net/pfad_zum_phpMyAdmin_ordner/
. Beachten Sie auch, dass die Schreibweise des URL auf einigen Webservern abhängig von Groß-/Kleinschreibung ist (sogar unter Windows). Den abschließenden Schrägstrich nicht vergessen.Ab Version 2.3.0 ist es empfehlenswert, diesen Eintrag versuchsweise leer zu lassen. In den meisten Fällen erkennt phpMyAdmin die richtigen Einstellungen. Benutzer von Port-Weiterleitung oder komplexer Reverse-Proxy-Einrichtung müssen dies ggf. einstellen.
Ein guter Test ist, die Daten einer Tabelle anzuzeigen, eine Zeile zu bearbeiten und sie zu speichern. Hat phpMyAdmin Probleme, den richtigen Wert automatisch zu erkennen, sollte eine Fehlermeldung angezeigt werden. Wenn Sie einen Fehler erhalten, dass dies gesetzt sein muss oder falls der Code zur automatischen Erkennung Ihren Pfad nicht erkennt, schreiben Sie bitte einen Fehlerbericht in unserem Bug-Tracker, sodass wir unseren Code verbessern können.
Siehe auch
1.40 Beim Zugriff auf phpMyAdmin über einen Apache Reverse-Proxy funktioniert die Cookie-Anmeldung nicht., 2.5 Jedes Mal, wenn ich eine Zeile einfügen oder ändern oder eine Datenbank oder eine Tabelle löschen möchte, wird ein Fehler 404 (Seite nicht gefunden) angezeigt oder ich werde aufgefordert, mich erneut anzumelden. Was ist denn los?, 4.7 Das Authentifizierungsfenster wird mehr als einmal angezeigt, warum?, 5.16 Mit dem Internet Explorer erhalte ich „Access is denied“ Javascript-Fehler. Oder ich kann phpMyAdmin nicht unter Windows laufen lassen.
-
$cfg['PmaNoRelation_DisableWarning']
¶ Typ: boolesch Standardwert: false Ab Version 2.3.0 bietet phpMyAdmin viele Funktionen zum Arbeiten mit master / foreign-Tabellen (siehe
$cfg['Servers'][$i]['pmadb']
).Falls Sie versucht haben, dies einzurichten, es aber nicht geklappt hat, werfen Sie einen Blick auf die Seite Struktur einer Datenbank, bei der Sie es verwenden wollen. Sie finden dort einen Link, der analysiert, warum diese Funktionen deaktiviert wurden.
Falls Sie diese Funktionen nicht verwenden wollen, setzen Sie diese Variable auf
true
, damit diese Meldung nicht mehr erscheint.
-
$cfg['AuthLog']
¶ Typ: Zeichenkette Standardwert: 'auto'
Neu in Version 4.8.0: Dies wird seit phpMyAdmin 4.8.0 unterstützt.
Konfigurieren Sie das Ziel der Authentifizierungsprotokollierung. Fehlgeschlagene Authentifizierungsversuche (oder alle, abhängig von
$cfg['AuthLogSuccess']
) werden gemäß dieser Richtlinie protokolliert:auto
- Lassen Sie phpMyAdmin automatisch zwischen
syslog
undphp
wählen. syslog
- Mit syslog protokollieren, mit AUTH-Funktion, auf den meisten Systemen endet dies in
/var/log/auth.log
. php
- Ins PHP-Fehlerprotokoll protokollieren.
sapi
- In die PHP-SAPI-Protokollierung protokollieren.
/path/to/file
- Jeder andere Wert wird als Dateiname behandelt und es werden dort Protokolleinträge geschrieben.
Bemerkung
Wenn in eine Datei protokolliert wird, stellen Sie sicher, dass deren Berechtigungen für einen Webserver-Benutzer korrekt eingestellt sind, das Setup sollte den Anweisungen in
$cfg['TempDir']
entsprechen:
-
$cfg['AuthLogSuccess']
¶ Typ: boolesch Standardwert: false Neu in Version 4.8.0: Dies wird seit phpMyAdmin 4.8.0 unterstützt.
Ob erfolgreiche Authentifizierungsversuche in
$cfg['AuthLog']
protokolliert werden sollen.
-
$cfg['SuhosinDisableWarning']
¶ Typ: boolesch Standardwert: false Warnhinweis auf der Hauptseite, wenn Suhosin erkannt wird.
Sie können diesen Parameter auf
true
setzen, damit diese Meldung nicht mehr erscheint.
-
$cfg['LoginCookieValidityDisableWarning']
¶ Typ: boolesch Standardwert: false Eine Warnung wird auf der Hauptseite angezeigt, wenn der PHP-Parameter session.gc_maxlifetime niedriger ist als die Gültigkeit des Cookies, die in phpMyAdmin konfiguriert wurde.
Sie können diesen Parameter auf
true
setzen, damit diese Meldung nicht mehr erscheint.
-
$cfg['ServerLibraryDifference_DisableWarning']
¶ Typ: boolesch Standardwert: false Veraltet ab Version 4.7.0: Diese Einstellung wurde entfernt, da die Warnung auch entfernt wurde.
Auf der Hauptseite wird eine Warnung angezeigt, wenn es einen Versions-Unterschied zwischen der MySQL-Bibliothek und dem Server gibt.
Sie können diesen Parameter auf
true
setzen, damit diese Meldung nicht mehr erscheint.
-
$cfg['ReservedWordDisableWarning']
¶ Typ: boolesch Standardwert: false Diese Warnung wird auf der Seite Struktur einer Tabelle angezeigt, falls eine oder mehrere Spalten reservierte MySQL-Schlüsselwörter enthalten.
Wenn Sie diese Warnung abschalten wollen, können Sie die Option auf
true
setzen, und die Warnung wird nicht mehr angezeigt.
-
$cfg['TranslationWarningThreshold']
¶ Typ: Integer Standardwert: 80 Zeige Warnung über unvollständige Übersetzungen bei gewisser Schwelle.
-
$cfg['SendErrorReports']
¶ Typ: Zeichenkette Standardwert: 'ask'
Gültige Werte sind:
fragen
immer
niemals
Setzt das Standard-Verhalten für JavaScript-Fehlerberichte.
Immer wenn ein Fehler beim Ausführen von JavaScript erkannt wird, kann mit Zustimmung des Nutzers ein Fehlerbericht an das phpMyAdmin-Team gesendet werden.
Der Standardwert
'ask'
fragt den Nutzer jedes Mal, wenn es einen neuen Fehlerbericht gibt. Sie können diesen Parameter aber auch auf'always'
setzen, damit Fehlerberichte ohne Nachfrage gesendet werden, oder Sie setzen ihn auf'never'
, um nie Fehlerberichte zu senden.Diese Anweisung ist sowohl in der Konfigurationsdatei als auch in den Nutzereinstellungen verfügbar. Bevorzugt die für eine Mehrbenutzer-Installation zuständige Person das Abschalten dieser Funktion für alle Nutzer, sollte der Wert auf
'never'
gesetzt werden, und die Richtlinie$cfg['UserprefsDisallow']
sollte'SendErrorReports'
in einem der Werte des Feldes enthalten.
-
$cfg['ConsoleEnterExecutes']
¶ Typ: boolesch Standardwert: false Wenn Sie dies auf
true
festlegen, können Sie Abfragen mit der Enter-Taste statt mit Strg+Enter ausführen. Eine neue Zeile kann durch Drücken von Shift+Enter eingefügt werden.Das Verhalten der Konsole kann über die Einstellungsoberfläche der Konsole vorübergehend geändert werden.
-
$cfg['AllowThirdPartyFraming']
¶ Typ: Boolescher Wert|String Standardwert: false Das Setzen dieses Parameters auf
true
erlaubt, dass phpMyAdmin in einem Frame eingebunden werden kann und ist eine potenzielle Sicherheitslücke, durch die frameübergreifende Skripting-Angriffe oder Clickjacking ermöglicht werden. Das Setzen auf ‚sameorigin‘ verhindert, dass phpMyAdmin von einem anderen Dokument in einen Frame eingebunden wird, es sei denn, dieses Dokument gehört zur gleichen Domäne.
Einstellungen der Server-Verbindung¶
-
$cfg['Servers']
¶ Typ: Feld Standardwert: ein Server-Feld mit unten angegebenen Einstellungen Since version 1.4.2, phpMyAdmin supports the administration of multiple MySQL servers. Therefore, a
$cfg['Servers']
-array has been added which contains the login information for the different servers. The first$cfg['Servers'][$i]['host']
contains the hostname of the first server, the second$cfg['Servers'][$i]['host']
the hostname of the second server, etc. You can put as many sections for server definition as you need inconfig.inc.php
, copy that block or needed parts (you don’t have to define all settings, just those you need to change).Bemerkung
Das Array
$cfg['Servers']
beginnt mit $cfg[‚Servers‘][1]. Verwenden Sie nicht $cfg[‚Servers‘][0]. Wenn Sie mehr als einen Server benötigen, kopieren Sie den folgenden Abschnitt (einschließlich der $i-Erhöhung) einfach mehrmals. Es ist nicht notwendig, ein komplettes Server-Array zu definieren, sondern nur die Werte, die Sie ändern möchten.
-
$cfg['Servers'][$i]['host']
¶ Typ: Zeichenkette Standardwert: 'localhost'
Der Hostname oder die IP-Adresse Ihres $i-ten MySQL-Servers. Zum Beispiel
localhost
.Mögliche Werte sind:
- Hostname, z.B.
'localhost'
oder'meinedb.example.org'
- IP-Adresse, z.B.
'127.0.0.1'
oder'192.168.10.1'
- IPv6 Adresse, z.B.
2001:cdba:0000:0000:0000:0000:3257:9652
- Punkt –
'.'
, d.h., Named-Pipes auf Windows-Systemen verwenden - leer –
''
, diesen Server deaktivieren
Bemerkung
Der Hostname
localhost
wird von MySQL speziell behandelt und verwendet das Socket-basierte Verbindungsprotokoll. Um TCP/IP-Netzwerke zu nutzen, verwenden Sie eine IP-Adresse oder einen Hostnamen wie127.0.0.0.1
oderdb.example.com
. Sie können den Pfad zum Socket mit$cfg['Servers'][$i]['socket']
konfigurieren.- Hostname, z.B.
-
$cfg['Servers'][$i]['port']
¶ Typ: Zeichenkette Standardwert: "
Die Port-Nummer Ihres $i-ten MySQL-Servers. Standard ist 3306 (leer lassen).
Bemerkung
Wenn Sie
localhost
als Hostnamen nutzen, ignoriert MySQL diesen Port und verbindet sich mit dem Socket. Wenn Sie sich also zu einem Port verbinden möchten, der vom Standardport abweicht, nutzen Sie127.0.0.1
oder den echten Hostnamen in$cfg['Servers'][$i]['host']
.
-
$cfg['Servers'][$i]['socket']
¶ Typ: Zeichenkette Standardwert: "
Der Pfad zum Socket, der genutzt werden soll. Leer lassen für Standard. Um den korrekten Socket zu ermitteln, prüfen Sie Ihre MySQL-Konfiguration oder, setzen Sie mithilfe des Befehlszeilenclients mysql den Befehl
status
ab. Der verwendete Socket wird dann zusammen mit anderen Informationen angezeigt.Bemerkung
Dies wird nur wirksam, wenn
$cfg['Servers'][$i]['host']
auflocalhost
gesetzt ist.
-
$cfg['Servers'][$i]['ssl']
¶ Typ: boolesch Standardwert: false Ob SSL für die Verbindung zwischen phpMyAdmin und dem MySQL-Server verwendet werden soll, um die Verbindung zu sichern.
Bei Verwendung der
'mysql'
-Erweiterung werden keine der restlichen'ssl…'
-Konfigurations-Einstellungen angewendet.Wir empfehlen ausdrücklich die
'mysqli'
-Erweiterung bei Verwendung dieser Option.Siehe auch
SSL für die Verbindung zum Datenbankserver verwenden, Google Cloud SQL mit SSL, Amazon RDS Aurora mit SSL,
$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_key']
¶ Typ: Zeichenkette Standardwert: NULL Pfad zur Client-Schlüsseldatei bei Verwendung von SSL für die Verbindung zum MySQL-Server. Dies wird verwendet, um den Client gegenüber dem Server zu authentifizieren.
Zum Beispiel:
$cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/server-key.pem';
Siehe auch
SSL für die Verbindung zum Datenbankserver verwenden, Google Cloud SQL mit SSL, Amazon RDS Aurora mit SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_cert']
¶ Typ: Zeichenkette Standardwert: NULL Pfad zur Client-Zertifikatsdatei bei Verwendung von SSL für die Verbindung zum MySQL-Server. Dies wird verwendet, um den Client gegenüber dem Server zu authentifizieren.
Siehe auch
SSL für die Verbindung zum Datenbankserver verwenden, Google Cloud SQL mit SSL, Amazon RDS Aurora mit SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ca']
¶ Typ: Zeichenkette Standardwert: NULL Pfad zur Stammzertifikatsdatei bei Verwendung von SSL für die Verbindung zum MySQL-Server.
Siehe auch
SSL für die Verbindung zum Datenbankserver verwenden, Google Cloud SQL mit SSL, Amazon RDS Aurora mit SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ca_path']
¶ Typ: Zeichenkette Standardwert: NULL Verzeichnis, das vertrauenswürdige SSL-Stammzertifikate im PEM-Format enthält.
Siehe auch
SSL für die Verbindung zum Datenbankserver verwenden, Google Cloud SQL mit SSL, Amazon RDS Aurora mit SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ciphers']
¶ Typ: Zeichenkette Standardwert: NULL Liste der erlaubten Algorithmen für SSL-Verbindungen zum MySQL-Server.
Siehe auch
SSL für die Verbindung zum Datenbankserver verwenden, Google Cloud SQL mit SSL, Amazon RDS Aurora mit SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_verify']
¶ Typ: boolesch Standardwert: true Neu in Version 4.6.0: Dies wird seit phpMyAdmin 4.6.0. unterstützt.
Wenn Ihre PHP-Installation den MySQL Native Driver (mysqlnd) verwendet, Ihr MySQL-Server 5.6 oder höher ist und Ihr SSL-Zertifikat selbstsigniert ist, besteht die Möglichkeit, dass Ihre SSL-Verbindung aufgrund der Prüfung fehlschlägt. Wenn Sie dies auf
false
setzen, wird die Gültigkeitsprüfung deaktiviert.Seit PHP 5.6.0 prüft es auch, ob der Servername mit dem CN seines Zertifikats übereinstimmt. Es gibt derzeit keine Möglichkeit, nur diese Prüfung zu deaktivieren, ohne die vollständige SSL-Verifizierung zu deaktivieren.
Warnung
Die Deaktivierung der Zertifikatsprüfung verhindert den Zweck der Verwendung von SSL. Dies macht die Verbindung anfällig für man-in-the-middle Angriffe.
Bemerkung
Diese Einstellung funktioniert nur mit PHP 5.6.16 oder neuer.
Siehe auch
SSL für die Verbindung zum Datenbankserver verwenden, Google Cloud SQL mit SSL, Amazon RDS Aurora mit SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['connect_type']
¶ Typ: Zeichenkette Standardwert: 'tcp'
Veraltet ab Version 4.7.0: Diese Einstellung wird ab 4.7.0 nicht mehr verwendet, da MySQL den Verbindungstyp anhand des Hosts bestimmt, was zu unerwarteten Ergebnissen führen kann. Bitte stellen Sie
$cfg['Servers'][$i]['host']
entsprechend ein.Art der Verbindung zum MySQL Server, die genutzt werden soll. Sie können zwischen
'socket'
und'tcp'
wählen. Standardmäßig wird tcp genutzt, da es nahezu sicher ist, dass diese Methode auf allen MySQL-Servern verfügbar ist, während Sockets nicht von allen Plattformen unterstützt werden. Um den Socket-Modus zu verwenden, muss Ihr MySQL-Server auf der gleichen Maschine laufen wie der Web-Server.
-
$cfg['Servers'][$i]['compress']
¶ Typ: boolesch Standardwert: false Soll ein komprimiertes Protokoll für die MySQL Verbindung genutzt werden oder nicht (experimentell).
-
$cfg['Servers'][$i]['controlhost']
¶ Typ: Zeichenkette Standardwert: "
Erlaube die Benützung eines alternativen Hosts um Konfigurationsdateien zu speichern.
Siehe auch
-
$cfg['Servers'][$i]['controlport']
¶ Typ: Zeichenkette Standardwert: "
Zulassen, dass zum Verbinden mit dem Host, der den Konfigurationsspeicher enthält, ein anderer Port verwendet wird.
Siehe auch
-
$cfg['Servers'][$i]['controluser']
¶ Typ: Zeichenkette Standardwert: "
-
$cfg['Servers'][$i]['controlpass']
¶ Typ: Zeichenkette Standardwert: "
Dieses spezielle Konto wird für den Zugriff auf phpMyAdmin-Konfigurationsspeicher verwendet. Sie benötigen es nicht im Einzelfall, aber wenn phpMyAdmin geteilt wird, wird empfohlen, nur diesem Benutzer Zugriff auf phpMyAdmin-Konfigurationsspeicher zu geben und phpMyAdmin so zu konfigurieren, dass es verwendet wird. Alle Benutzer können dann die Funktionen nutzen, ohne direkten Zugriff auf phpMyAdmin-Konfigurationsspeicher zu haben.
Geändert in Version 2.2.5: sie wurden
stduser
undstdpass
genannt
-
$cfg['Servers'][$i]['control_*']
¶ Typ: gemischt Neu in Version 4.7.0.
Sie können jede MySQL-Verbindungseinstellung für die Steuerverknüpfung (für den Zugriff auf phpMyAdmin-Konfigurationsspeicher) ändern, indem Sie die Konfiguration mit dem Präfix
control_
verwenden.Damit kann jeder Aspekt der Steuerverbindung geändert werden, der standardmäßig dieselben Parameter wie die Benutzerverbindung verwendet.
SSL kann zum Beispiel für die Control-Verbindung konfiguriert werden:
// Enable SSL $cfg['Servers'][$i]['control_ssl'] = true; // Client secret key $cfg['Servers'][$i]['control_ssl_key'] = '../client-key.pem'; // Client certificate $cfg['Servers'][$i]['control_ssl_cert'] = '../client-cert.pem'; // Server certification authority $cfg['Servers'][$i]['control_ssl_ca'] = '../server-ca.pem';
Siehe auch
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
,$cfg['Servers'][$i]['socket']
,$cfg['Servers'][$i]['compress']
,$cfg['Servers'][$i]['hide_connection_errors']
-
$cfg['Servers'][$i]['auth_type']
¶ Typ: Zeichenkette Standardwert: 'cookie'
Ob config, cookie, HTTP oder Anmeldeauthentifizierung auf diesem Server genutzt werden sollte.
- ‚config‘-Authentifizierung (
$auth_type = 'config'
) ist die unschöne alte Methode: Nutzername und Kennwort sind inconfig.inc.php
gespeichert. - ‚cookie‘-Authentifizierung (
$auth_type = 'cookie'
) erlaubt Ihnen, sich mithilfe von Cookies als jeder gültige MySQL-Nutzer anzumelden. - ‚http‘-Authentifizierung erlaubt Ihnen, sich mithilfe von HTTP-Auth als jeder gültige MySQL-Nutzer anzumelden.
- ‚signon‘-Authentifizierung (
$auth_type = 'signon'
) erlaubt Ihnen, sich von vorbereiteten PHP-Sitzungsdaten oder mithilfe eines bereitgestellten PHP-Skripts anzumelden.
Siehe auch
- ‚config‘-Authentifizierung (
-
$cfg['Servers'][$i]['auth_http_realm']
¶ Typ: Zeichenkette Standardwert: "
Bei Verwendung von auth_type =
http
erlaubt dieses Feld die Festlegung eines benutzerdefinierten HTTP-Basic-Auth-Realms, der dem Nutzer angezeigt wird. Wenn der Wert nicht ausdrücklich in Ihrer Konfiguration angegeben ist, wird eine Zeichenkette aus „phpMyAdmin “ und entweder$cfg['Servers'][$i]['verbose']
oder$cfg['Servers'][$i]['host']
verwendet.
-
$cfg['Servers'][$i]['auth_swekey_config']
¶ Typ: Zeichenkette Standardwert: "
Neu in Version 3.0.0.0: Diese Einstellung hieß $cfg[‚Servers‘][$i][‚auth_feebee_config‘] und wurde vor der Veröffentlichung von 3.0.0.0 umbenannt.
Veraltet ab Version 4.6.4: Diese Einstellung wurde entfernt, weil ihre Server nicht mehr funktionieren und sie nicht richtig funktioniert hat.
Veraltet ab Version 4.0.10.17: Diese Einstellung wurde in einer Wartungsversion entfernt, da ihre Server nicht mehr funktionieren und sie nicht richtig funktionierte.
Der Name der Datei, die Swekey-IDs und Anmeldenamen für die Hardwareauthentifizierung enthält. Leer lassen, um diese Funktion zu deaktivieren.
-
$cfg['Servers'][$i]['user']
¶ Typ: Zeichenkette Standardwert: 'root'
-
$cfg['Servers'][$i]['password']
¶ Typ: Zeichenkette Standardwert: "
Ist
$cfg['Servers'][$i]['auth_type']
auf ‚config‘ gesetzt, ist dies die Kombination aus Nutzer/Kennwort, die phpMyAdmin verwendet, um sich mit dem MySQL-Server zu verbinden. Diese Kombination aus Nutzer/Kennwort wird nicht benötigt, wenn HTTP- oder Cookie-Authentifizierung verwendet wird, und sollte dann leer sein.
-
$cfg['Servers'][$i]['nopassword']
¶ Typ: boolesch Standardwert: false Veraltet ab Version 4.7.0: Diese Einstellung wurde entfernt, da sie unerwartete Ergebnisse bringen kann.
Erlaubt den Login-Versuch ohne Passwort, nach einem fehlgeschlagenen Versuch mit Passwort. Dies kann zusammen mit http Authentifizierung benutzt werden, wenn die Authentifizierung anders erfolgt und phpMyAdmin den Benutzernamen von auth bekommt und ein leeres Passwort benutzt um zu MySQL zu verbinden. Passwort Login wird noch immer zuerst versucht, aber als Ersatzfunktion wird die Methode ohne Passwort versucht.
Bemerkung
It is possible to allow logging in with no password with the
$cfg['Servers'][$i]['AllowNoPassword']
directive.
-
$cfg['Servers'][$i]['only_db']
¶ Typ: Zeichenkette oder Feld Standardwert: "
Wenn auf einen Namen oder ein Feld mit Namen gesetzt, wird (werden) dem Nutzer nur diese Datenbanknamen angezeigt. Seit phpMyAdmin 2.2.1 darf dieser Name oder die Namen im Feld MySQL-Platzhalterzeichen (Wildcards) („_“ and „%“) enthalten: wenn Sie diese Zeichen buchstäblich verwenden wollen, müssen sie diese entwerten (z.B.
'my\_db'
anstelle von'my_db'
verwenden).Diese Einstellung ist ein effizienter Weg, die Serverlast zu verringern, weil der Server keine MySQL-Anfragen senden muss, um die Liste der verfügbaren Datenbanken zu erstellen. Aber die Berechtigungsregeln des MySQL-Datenbankservers werden nicht ersetzt. Wenn diese Einstellung gesetzt wurde, heißt das, dass nur diese Datenbanken angezeigt werden, aber nicht, dass alle anderen Datenbanken nicht verwendet werden könnten.
Ein Beispiel für die Verwendung von mehr als einer Datenbank:
$cfg['Servers'][$i]['only_db'] = ['db1', 'db2'];
Geändert in Version 4.0.0: Vorherige Versionen haben zugelassen, die Anzeigereihenfolge der Datenbanknamen mit dieser Anweisung anzugeben.
-
$cfg['Servers'][$i]['hide_db']
¶ Typ: Zeichenkette Standardwert: "
Regulärer Ausdruck, um einige Datenbanken von unberechtigten Nutzern zu verbergen. Diese Einstellung verhindert nur die Auflistung, Nutzer können trotzdem darauf zugreifen (z.B. über den SQL-Abfragebereich). Um den Zugriff einzuschränken, verwenden Sie das MySQL-Rechtesystem. Beispiel: Um alle Datenbanken auszublenden, die mit dem Buchstaben „a“ beginnen, nutzen Sie
$cfg['Servers'][$i]['hide_db'] = '^a';
und um sowohl „db1“ als auch „db2“ auszublenden, verwenden Sie
$cfg['Servers'][$i]['hide_db'] = '^(db1|db2)$';
Mehr Informationen über reguläre Ausdrücke können im Abschnitt PCRE Suchmuster der PHP-Dokumentation gefunden werden.
-
$cfg['Servers'][$i]['verbose']
¶ Typ: Zeichenkette Standardwert: "
Nur nützlich, wenn phpMyAdmin mit mehreren Server-Einträgen benützt wird. Wenn gesetzt, wird dieser String anstatt des Hostnamens im Dropdown Menü der Hauptseite angezeigt. Dies kann nützlich sein, wenn Sie zum Beispiel nur bestimmte Datenbanken anzeigen möchten. Für HTTP auth werden alle non-US-ASCII Zeichen weggeschnitten.
-
$cfg['Servers'][$i]['extension']
¶ Typ: Zeichenkette Standardwert: 'mysqli'
Veraltet ab Version 4.2.0: Diese Einstellung wurde entfernt. Die
mysql
Erweiterung wird nur verwendet, wenn diemysqli
Erweiterung nicht verfügbar ist. Ab 5.0.0 kann nur noch diemysqli
Erweiterung verwendet werden.Die zu verwendende PHP-MySQL-Erweiterung (
mysql
odermysqli
).Es wird empfohlen,
mysqli
in allen Installationen zu verwenden.
-
$cfg['Servers'][$i]['pmadb']
¶ Typ: Zeichenkette Standardwert: "
Der Name der Datenbank, die den phpMyAdmin-Konfigurationsspeicher enthält.
Siehe den Abschnitt phpMyAdmin-Konfigurationsspeicher dieses Dokuments, um mehr über die Vorzüge dieser Funktion zu erfahren und um einen schnellen Weg kennenzulernen, diese Datenbank und die nötigen Tabellen zu erstellen.
Wenn Sie der einzige Benutzer dieser phpMyAdmin-Installation sind, können Sie Ihre aktuelle Datenbank verwenden, um diese speziellen Tabellen zu speichern; in diesem Fall setzen Sie Ihren aktuellen Datenbanknamen in
$cfg['Servers'][$i]['pmadb']
. Bei einer Mehrbenutzer-Installation setzen sie den Wert dieses Parameters auf den Namen der zentralen Datenbank, die den phpMyAdmin-Konfigurationsspeicher enthält.
-
$cfg['Servers'][$i]['bookmarktable']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 2.2.0.
Seit der Version 2.2.0 erlaubt phpMyAdmin Nutzern die Speicherung von Abfragen. Dies kann nützlich sein, wenn Sie eine Abfrage öfter ausführen. Um die Nutzung dieser Funktion freizuschalten:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - geben Sie den Tabellennamen in
$cfg['Servers'][$i]['bookmarktable']
ein
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['relation']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 2.2.4.
Seit der Version 2.2.4 können Sie in einer speziellen ‚Beziehungs‘-Tabelle beschreiben, welche Spalte der Schlüssel einer anderen Tabelle ist (ein Fremdschlüssel). phpMyAdmin verwendet dies zurzeit für Folgendes:
- klickbar machen, wenn Sie die Haupttabelle ansehen, die Datenwerte welche zu der Fremdtabelle zeigen;
- Anzeigen einer „Anzeigespalte“ in einem optionalen Tool-Tip beim Durchblättern der Daten einer Mastertabelle; wenn Sie mit der Maus über eine Spalte mit einem Fremdschlüssel enthält (auch die Tabelle ‚table_info‘ verwenden); (siehe 6.7 Wie kann ich die Funktion „Spalte anzeigen“ verwenden?)
- Anzeigen einer Dropdown-Liste mit möglichen Fremdschlüsseln im Bearbeiten/Einfügen-Modus (Schlüsselwert und „Anzeigespalte“ werden angezeigt) (siehe 6.21 Wie kann ich im Bearbeitungs-/Einfügemodus eine Liste der möglichen Werte für eine Spalte sehen, die auf einer fremden Tabelle basiert?)
- Verlinkungen auf der Eigenschaften-Seite anzeigen, um für jeden beschriebenen Schlüssel die Referenz-Richtigkeit zu überprüfen (fehlende Fremdschlüssel anzeigen);
- Automatisches Erstellen von Joins in der Funktion Abfrage-durch-Beispiel (siehe 6.6 Wie kann ich die Relationstabelle in Query-by-example verwenden?)
- Anbieten des Erstellens eines PDF-Schemas Ihrer Datenbank (verwendet auch die Tabelle table_coords).
Die Schlüssel können numerisch oder Buchstaben sein.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - den Namen der Beziehungstabelle in
$cfg['Servers'][$i]['relation']
setzen - jetzt als Normalbenutzer phpMyAdmin öffnen und für jede Ihrer Tabellen, bei der Sie diese Funktion nutzen wollen, auf Struktur/Beziehungsübersicht/ klicken und Fremdspalten wählen.
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.Bemerkung
In der aktuellen Version muss
master_db
gleich sein wieforeign_db
. Diese Spalten wurden mit Hinblick auf zukünftige Entwicklung von Beziehungen über mehrere Datenbanken erstellt.
-
$cfg['Servers'][$i]['table_info']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 2.3.0.
Seit Version 2.3.0 können Sie in einer speziellen ‚table_info‘-Tabelle beschreiben, welche Spalte als Tool-Tip angezeigt wird, wenn Sie den Mauszeiger über den entsprechenden Schlüssel bewegen. Diese Konfigurations-Variable enthält den Namen dieser speziellen Tabelle. Um die Verwendung dieser Funktion zu erlauben:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['table_info']
ein (z.B.pma__table_info
) - für jede Tabelle, in der Sie diese Funktion benutzen wollen, klicken Sie auf „Struktur/Beziehungsübersicht/Anzeigespalte wählen“, um die Spalte auszuwählen.
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['table_coords']
¶ Typ: Zeichenkette oder false Standardwert: "
Die Designer-Funktion kann Ihr Seitenlayout speichern; durch Drücken der Schaltfläche „Seite speichern“ oder „Seite speichern unter“ im aufgeklappten Designer-Menü können Sie das Layout anpassen und bei der nächsten Verwendung des Designers laden lassen. Dieses Layout wird in dieser Tabelle gespeichert. Außerdem wird diese Tabelle auch für den PDF-Relationsexport benötigt, siehe
$cfg['Servers'][$i]['pdf_pages']
für weitere Details.
-
$cfg['Servers'][$i]['pdf_pages']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 2.3.0.
Seit Version 2.3.0 können Sie mit phpMyAdmin PDF-Seiten erstellen lassen, welche die Beziehungen zwischen Ihren Tabellen anzeigen. Außerdem können mit dem Designer Beziehungen visuell erstellt werden. Um das zu machen, benötigen Sie zwei Tabellen „pdf_pages“ (speichert Informationen über verfügbare PDF-Seiten) und „table_coords“ (speichert die Koordinaten, wo jede Tabelle in der PDF-Schema-Ausgabe platziert wird). Sie müssen die „Beziehungs“-Funktion nutzen.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie die korrekten Tabellennamen in
$cfg['Servers'][$i]['table_coords']
und$cfg['Servers'][$i]['pdf_pages']
ein
Diese Funktion kann deaktiviert werden, indem mindestens eine der Konfigurationen auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['designer_coords']
¶ Typ: Zeichenkette Standardwert: "
Neu in Version 2.10.0: Seit Version 2.10.0 ist eine Designerschnittstelle verfügbar; sie erlaubt die visuelle Verwaltung der Beziehungen.
Veraltet ab Version 4.3.0: Diese Einstellung wurde entfernt und die Designer-Tabellenpositionierungsdaten werden jetzt in
$cfg['Servers'][$i]['table\_coords']
gespeichert.Bemerkung
Sie können jetzt die Tabelle pma__designer_coords aus Ihrer phpMyAdmin-Konfigurationsspeicherdatenbank löschen und
$cfg['Servers'][$i]['designer\_coords']
aus Ihrer Konfigurationsdatei entfernen.
-
$cfg['Servers'][$i]['column_info']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 2.3.0.
Dieser Abschnitte braucht ein Inhalts-Update! Seit Version 2.3.0 können Sie Kommentare speichern, die jede Spalte jeder Tabelle beschreiben. Diese werden in der „Druckanzeige“ angezeigt.
Seit der Version 2.5.0 werden Kommentare auf den Tabelleneigenschaftenseiten und den Tabellenansichtsseiten benutzt, welche Tool-Tips über den Spaltennamen (Eigenschaftenseite) oder integriert im Tabellenkopf in der Ansichtseite anzeigen. Sie werden auch in Tabellenauszügen angezeigt. Bitte sehen Sie auch die relevanten Konfigurationsanweisungen an.
Auch neu in Version 2.5.0 ist die MIME-Transformationssystem, welches auch auf der folgenden Tabellenstruktur basiert. Siehe Transformationen für weitere Informationen. Um das MIME-Transformationssystem zu benutzen, muss Ihre column_info-Tabelle die drei Spalten ‚mimetype‘, ‚transformation‘, ‚transformation_options‘ beinhalten.
Ab Version 4.3.0 wurde ein neues eingabe-orientiertes Umwandlungs-System eingeführt. Außerdem wurde der abwärtskompatible Code des alten Transformations-Systems entfernt. Deswegen ist eine Aktualisierung der Tabelle column_info nötig, damit vorherige Transformationen und das neue eingabe-orientierte Transformations-System funktionieren. phpMyAdmin aktualisiert die Tabelle automatisch, indem die Tabellen-Struktur Ihrer aktuellen Tabelle column_info analysiert wird. Falls dabei jedoch etwas schief geht, können Sie das SQL-Skript in
./sql/upgrade_column_info_4_3_0+.sql
zur manuellen Aktualisierung verwenden.Um diese Funktion zu nutzen:
richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher einsetzen Sie den Tabellennamen in
$cfg['Servers'][$i]['column_info']
ein (z.B.pma__column_info
)um Ihre PRE-2.5.0 column_comments-Tabelle zu aktualisieren, dies verwenden: und daran denken, dass die Variable in
config.inc.php
von$cfg['Servers'][$i]['column_comments']
auf$cfg['Servers'][$i]['column_info']
umbenannt wurdeALTER TABLE `pma__column_comments` ADD `mimetype` VARCHAR( 255 ) NOT NULL, ADD `transformation` VARCHAR( 255 ) NOT NULL, ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
um Ihre PRE-4.3.0 column_info-Tabelle manuell zu aktualisieren, verwenden Sie das SQL-Skript
./sql/upgrade_column_info_4_3_0+.sql
.
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.Bemerkung
For auto-upgrade functionality to work, your
$cfg['Servers'][$i]['controluser']
must have ALTER privilege onphpmyadmin
database. See the MySQL documentation for GRANT on how toGRANT
privileges to a user.
-
$cfg['Servers'][$i]['history']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 2.5.0.
Seit Version 2.5.0 können Sie Ihren SQL-Verlauf, das heißt, alle Abfragen, die Sie manuell in phpMyAdmin eingetragen haben, speichern. Wenn Sie keinen tabellenbasierten Verlauf benutzen wollen, können Sie den JavaScript-basierten Verlauf benutzen.
Dadurch werden beim Schließen des Fensters alle Verlaufselemente gelöscht. Mit
$cfg['QueryHistoryMax']
können Sie die Menge an Verlaufselementen, die Sie behalten wollen, angeben. Bei jedem Login wird diese Liste auf das Maximum gekürzt.Der Abfrageverlauf ist nur verfügbar, wenn Sie JavaScript in Ihrem Browser aktiviert haben.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['history']
ein (z.B.pma__history
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['recent']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 3.5.0.
Seit Version 3.5.0 können Sie die zuletzt benutzten Tabellen im linken Navigationsbereich anzeigen lassen. Das hilft Ihnen direkt zu den Tabellen zu springen, ohne zuerst die Datenbank auswählen zu müssen. Konfigurieren Sie
$cfg['NumRecentTables']
, um die maximale Anzahl der angezeigten Tabellen zu definieren. Wenn Sie eine Tabelle aus der Liste auswählen, gelangen Sie zu der Seite, die in$cfg['NavigationTreeDefaultTabTable']
angegeben ist.Ohne den Speicher zu konfigurieren, können Sie noch immer auf die zuletzt benutzten Tabellen zugreifen, aber sie verschwinden nach dem Ausloggen.
Um diese Funktion dauerhaft zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['recent']
(z.B.pma__recent
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['favorite']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 4.2.0.
Seit Release 4.2.0 können Sie im Navigations-Panel eine Liste der ausgewählten Tabellen anzeigen lassen. Es hilft Ihnen, direkt zur Tabelle zu springen, ohne die Datenbank auswählen zu müssen und dann die Tabelle auszuwählen. Wenn Sie eine Tabelle aus der Liste auswählen, springt sie zu der in
$cfg['NavigationTreeDefaultTabTable']
angegebenen Seite.Sie können Tabellen zu dieser Liste hinzufügen oder aus ihr entfernen, indem Sie auf die Sternsymbole neben den Tabellennamen klicken. Mit
$cfg['NumFavoriteTables']
können Sie die maximale Anzahl der angezeigten Tabellenfavoriten konfigurieren.Ohne den Speicher zu konfigurieren, können Sie noch immer auf die bevorzugten Tabellen zugreifen, aber sie verschwinden nach dem Ausloggen.
Um diese Funktion dauerhaft zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['favorite']
(z.B.pma__favorite
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['table_uiprefs']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 3.5.0.
Seit Version 3.5.0 kann phpmyAdmin dazu konfiguriert werden bestimmte Information für Tabellenansichten zu speichern (Sortierspalte
$cfg['RememberSorting']
, Spaltenreihenfolge, und Spaltensichtbarkeit einer Datenbanktabelle). Ohne den Speicher zu konfigurieren, können diese Funktionen zwar benutzt werden, die Einträge verschwinden aber, wenn Sie sich ausloggen.Um diese Funktion dauerhaft zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['table_uiprefs']
ein (z.B.pma__table_uiprefs
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['users']
¶ Typ: Zeichenkette oder false Standardwert: "
Die Tabelle wird von phpMyAdmin verwendet um Benutzernamensinformationen in Assoziation mit Benutzergruppen zu speichern. Siehe den nächsten Eintrag auf
$cfg['Servers'][$i]['usergroups']
für weitere Details und empfohlene Einstellungen.
-
$cfg['Servers'][$i]['usergroups']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 4.1.0.
Seit Version 4.1.0 können Sie verschiedene Nutzergruppen mit jeweils zugewiesenen Menü-Einträgen anlegen. Nutzer können diesen Gruppen zugeordnet werden und der eingeloggte Nutzer sieht nur Menü-Einträge, die für die ihm zugeordnete Nutzergruppe konfiguriert sind. Für diese Funktion braucht man zwei Tabellen „usergroups“ (in der erlaubte Menü-Einträge für jede Nutzergruppe gespeichert werden) und „users“ (hier werden Nutzer und ihre Zuordnung zu Nutzergruppen gespeichert).
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie die korrekten Tabellennamen in
$cfg['Servers'][$i]['users']
(z.B.pma__users
) und$cfg['Servers'][$i]['usergroups']
(z.B.pma__usergroups
) ein
Diese Funktion kann deaktiviert werden, indem mindestens eine der Konfigurationen auf
false
gesetzt wird.Siehe auch
- richten Sie
Typ: Zeichenkette oder false Standardwert: "
Neu in Version 4.1.0.
Seit Version 4.1.0 können Sie Einträge im Navigations-Baum anzeigen/ausblenden.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['navigationhiding']
ein (z.B.pma__navigationhiding
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['central_columns']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 4.3.0.
Seit Version 4.3.0 können Sie eine zentrale Spaltenliste pro Datenbank haben. Sie können nach Belieben Spalten zur Liste hinzufügen oder von ihr entfernen. Diese Spalten in der zentralen Liste werden angeboten, wenn Sie eine neue Spalte zu einer Tabelle hinzufügen oder eine ganz neue Tabelle anlegen. Beim Erstellen einer neuen Spalte können Sie eine Spalte aus der zentralen Liste auswählen, was Ihnen das wiederholte Schreiben derselben Spaltendefinition erspart und verhindert, dass ähnliche Spalten verschiedene Namen bekommen.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['central_columns']
ein (z.B.pma__central_columns
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['designer_settings']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 4.5.0.
Seit Release 4.5.0 können Ihre Designer-Einstellungen gespeichert werden. Ihre Wahl in Bezug auf ‚Winkel-/Direktverknüpfungen‘, ‚Am Raster einrasten‘, ‚Relationslinien umschalten‘, ‚Klein/Großes Alles‘, ‚Menü verschieben‘ und ‚Pin-Text‘ kann dauerhaft gespeichert werden.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['designer_settings']
(z.B.pma__designer_settings
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['savedsearches']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 4.2.0.
Seit Version 4.2.0 können Sie Abfrage-durch-Beispiel-Suchanfragen von „Datenbank > Abfrage“ speichern und laden.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['savedsearches']
ein (z.B.pma__savedsearches
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['export_templates']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 4.5.0.
Seit Version 4.5.0 können Sie Export-Vorlagen speichern und laden.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['export_templates']
(z.B. pma__export_templates`)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['tracking']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 3.3.x.
Seit Version 3.3.x ist ein Rückverfolgungsmechanismus verfügbar. Er hilft Ihnen jeden von phpMyAdmin ausgeführten SQL-Befehl zurückzuverfolgen. Der Mechanismus unterstützt die Aufzeichnung der manipulierten Daten und der Datendefinition-Anweisungen. Nach der Aktivierung können Sie Versionen von Tabellen erstellen.
Die Erstellung von Versionen hat zwei Effekte:
- phpMyAdmin speichert eine Momentaufnahme der Tabelle, inklusive Struktur und Indizes.
- phpMyAdmin zeichnet alle Befehle auf, welche die Struktur und/oder Daten der Tabelle ändern und verlinkt diese Befehle mit der Versionsnummer.
Natürlich können Sie die gespeicherten Änderungen auch ansehen. Auf der Seite Tracking ist für jede Version ein kompletter Bericht verfügbar. Für den Report können Sie Filter benutzen, zum Beispiel können Sie eine Liste der Ausdrücke in einem Datumsbereich anzeigen lassen. Wenn Sie Benutzernamen filtern wollen, können Sie entweder * für alle Namen oder eine Liste von Namen, getrennt durch ‚,‘ eingeben. Zusätzlich können Sie den (gefilterten) Bericht in eine Datei oder eine temporäre Datenbank exportieren.
Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Tabellennamen in
$cfg['Servers'][$i]['tracking']
ein (z.B.pma__tracking
)
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.
-
$cfg['Servers'][$i]['tracking_version_auto_create']
¶ Typ: boolesch Standardwert: false Automatische Versionserstellung für Tabellen und Ansichten durch den Verlaufs-Mechanismus.
Wenn das „True“ ist und Sie erstellen eine Tabelle oder Ansicht mit
- CREATE TABLE …
- CREATE VIEW …
und es existiert keine Version, wird der Mechanismus für Sie automatisch eine Version erstellen.
-
$cfg['Servers'][$i]['tracking_default_statements']
¶ Typ: Zeichenkette Standardwert: 'CREATE TABLE,ALTER TABLE,DROP TABLE,RENAME TABLE,CREATE INDEX,DROP INDEX,INSERT,UPDATE,DELETE,TRUNCATE,REPLACE,CREATE VIEW,ALTER VIEW,DROP VIEW,CREATE DATABASE,ALTER DATABASE,DROP DATABASE'
Legt die Liste der Statements fest, welche die automatische Versionserstellung für neue Versionen verwenden.
-
$cfg['Servers'][$i]['tracking_add_drop_view']
¶ Typ: boolesch Standardwert: true Whether a DROP VIEW IF EXISTS statement will be added as first line to the log when creating a view.
-
$cfg['Servers'][$i]['tracking_add_drop_table']
¶ Typ: boolesch Standardwert: true Whether a DROP TABLE IF EXISTS statement will be added as first line to the log when creating a table.
-
$cfg['Servers'][$i]['tracking_add_drop_database']
¶ Typ: boolesch Standardwert: true Whether a DROP DATABASE IF EXISTS statement will be added as first line to the log when creating a database.
-
$cfg['Servers'][$i]['userconfig']
¶ Typ: Zeichenkette oder false Standardwert: "
Neu in Version 3.4.x.
Seit Version 3.4.x erlaubt phpMyAdmin den Benutzern die meisten Einstellungen selbst zu setzen und in der Datenbank zu speichern.
Wenn Sie die Einstellungen nicht in
$cfg['Servers'][$i]['pmadb']
speichern, können die Benutzer trotzdem phpMyAdmin personalisieren, aber die Einstellungen werden im lokalen Speicherbereich Ihres Webbrowsers gespeichert, oder, falls das nicht möglich ist, bis zum Ende der Sitzung.Um diese Funktion zu nutzen:
- richten Sie
$cfg['Servers'][$i]['pmadb']
und den phpMyAdmin-Konfigurationsspeicher ein - setzen Sie den Beziehungstabellennamen in
$cfg['Servers'][$i]['userconfig']
ein
Diese Funktion kann deaktiviert werden, indem die Konfiguration auf
false
gesetzt wird.- richten Sie
-
$cfg['Servers'][$i]['MaxTableUiprefs']
¶ Typ: Integer Standardwert: 100 Maximale Anzahl Zeilen gespeichert in
$cfg['Servers'][$i]['table_uiprefs']
-Tabelle.Werden Tabellen gelöscht oder umbenannt, kann
$cfg['Servers'][$i]['table_uiprefs']
ungültige Daten enthalten (bezogen auf Tabellen, die nicht mehr existieren). Wir behalten nur diese Anzahl neuste Zeilen in$cfg['Servers'][$i]['table_uiprefs']
und löschen ältere Zeilen automatisch.
-
$cfg['Servers'][$i]['SessionTimeZone']
¶ Typ: Zeichenkette Standardwert: "
Sets the time zone used by phpMyAdmin. Leave blank to use the time zone of your database server. Possible values are explained at https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html
Das ist nützlich, wenn der Datenbank-Server eine andere Zeitzone nutze, die Sie in phpMyAdmin benutzen wollen.
-
$cfg['Servers'][$i]['AllowRoot']
¶ Typ: boolesch Standardwert: true Ob Root-Zugang erlaubt wird. Das ist nur eine Abkürzung für die
$cfg['Servers'][$i]['AllowDeny']['rules']
unten.
-
$cfg['Servers'][$i]['AllowNoPassword']
¶ Typ: boolesch Standardwert: false Ob Einloggen ohne Kennwort erlaubt ist. Der Standardwert
false
für diesen Parameter verhindert ungewollten Zugriff auf den MySQL-Server, bei dem ein leeres Kennwort für root gesetzt ist oder der anonymen (leeren) Benutzer erlaubt.
-
$cfg['Servers'][$i]['AllowDeny']['order']
¶ Typ: Zeichenkette Standardwert: "
Wenn die Regel-Reihenfolge leer ist, ist IP-Authorisierung deaktiviert.
Wenn Ihre Regelanweisung auf
'deny,allow'
gesetzt wurde, wendet das System alle Ablehnungsregeln gefolgt von den Erlaubnisregeln an. Zugang ist standardmäßig erlaubt. Jedem Client, der keinem Ablehnen-Befehl entspricht oder einem Erlauben-Befehl entspricht, wird Zugang zum Server gewährt.Wenn Ihre Regelanweisung auf
'allow,deny'
gesetzt wurde, wendet das System alle Erlaubnisregeln gefolgt von den Ablehnungsregeln an. Zugang ist standardmäßig verwehrt. Jedem Client, der keinem Erlauben-Befehl entspricht oder einem Ablehnen-Befehl entspricht, wird Zugang zum Server verwehrt.Wenn Ihre Regelanweisung auf
'explicit'
gesetzt ist, wird Authorisierung in einer ähnlichen Weise wie bei ‚deny,allow‘ durchgeführt, mit der weiteren Einschränkung, dass Ihre Host/Benutzername-Kombination in der Liste der allow-Regeln angeführt werden muss, aber nicht in der Liste der deny-Regeln. Das ist die sicherste Weise der Erlauben/Ablehnen-Regeln, und war in Apache durch Spezifizierung von Allow- und Deny-Regeln ohne gesetzte Reihenfolge verfügbar.Bitte sehen Sie auch
$cfg['TrustedProxies']
für die IP-Adresserkennung hinter Proxys.
-
$cfg['Servers'][$i]['AllowDeny']['rules']
¶ Typ: Feld von Zeichenketten Standardwert: array() Das generelle Aussehen dieser Regeln ist wie folgt:
<'allow' | 'deny'> <username> [from] <ipmask>
Um alle Benutzer auszuwählen, ist die Verwendung von
'%'
als Platzhalter im Feld username möglich.Es gibt auch einige Abkürzungen, die Sie im Feld ipmask benutzen können (beachten Sie, dass diejenigen, die SERVER_ADDRESS enthalten, nicht auf allen Webservern zur Verfügung stehen):
'all' -> 0.0.0.0/0 'localhost' -> 127.0.0.1/8 'localnetA' -> SERVER_ADDRESS/8 'localnetB' -> SERVER_ADDRESS/16 'localnetC' -> SERVER_ADDRESS/24
Eine leere Regelliste ist gleichbedeutend mit
'allow % from all'
, wenn Ihre Regelreihenfolge auf'deny,allow'
gesetzt wurde, oder'deny % from all'
, wenn Ihre Regelreihenfolge auf'allow,deny'
oder'explicit'
gesetzt wurde.Für das IP Address-Vergleichssystem funktionieren die folgenden:
xxx.xxx.xxx.xxx
(eine exakte IP Address)xxx.xxx.xxx.[yyy-zzz]
(ein IP Address bereich)xxx.xxx.xxx.xxx/nn
(CIDR, Classless Inter-Domain Routing Typ IP Adressen)
Die folgenden Beispiele funktionieren nicht:
xxx.xxx.xxx.xx[yyy-zzz]
(teilweiser IP-Adressbereich)
Für IPv6-Adressen funktionieren die folgenden:
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
(eine exakte IPv6-Adresse)xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:[yyyy-zzzz]
(ein IPv6-Adressbereich)xxxx:xxxx:xxxx:xxxx/nn
(CIDR, Classless Inter-Domain Routing Typ IPv6-Adressen)
Die folgenden Beispiele funktionieren nicht:
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xx[yyy-zzz]
(teilweiser IPv6-Adressbereich)
Beispiele:
$cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow bob from all']; // Allow only 'bob' to connect from any host $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow mary from 192.168.100.[50-100]']; // Allow only 'mary' to connect from host 192.168.100.50 through 192.168.100.100 $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow % from 192.168.[5-6].10']; // Allow any user to connect from host 192.168.5.10 or 192.168.6.10 $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow root from 192.168.5.50','allow % from 192.168.6.10']; // Allow any user to connect from 192.168.6.10, and additionally allow root to connect from 192.168.5.50
-
$cfg['Servers'][$i]['DisableIS']
¶ Typ: boolesch Standardwert: false Verwendung von
INFORMATION_SCHEMA
zum Erhalt von Informationen deaktivieren (stattdessenSHOW
-Anweisungen verwenden), wegen Geschwindigkeitsproblemen bei vielen Datenbanken.Bemerkung
Wenn Sie diese Option aktivieren, können Sie auf älteren MySQL-Servern eine große Leistungssteigerung erzielen.
-
$cfg['Servers'][$i]['SignonScript']
¶ Typ: Zeichenkette Standardwert: "
Neu in Version 3.5.0.
Der Name des PHP Scripts, das ausgeführt wird, um die Anmeldeinformationen zu holen. Das ist eine Alternative zum sitzungsbasierten Single-Signon. Das Script muss eine Funktion
get_login_credentials
zur Verfügung stellen, welche eine Liste von Nutzernamen und Kennwörtern zurückgibt und einen einzelnen Parameter eines existierenden Nutzernamens (kann auch leer sein) akzeptiert. Sieheexamples/signon-script.php
, um ein Beispiel zu erhalten:<?php /** * Single signon for phpMyAdmin * * This is just example how to use script based single signon with * phpMyAdmin, it is not intended to be perfect code and look, only * shows how you can integrate this functionality in your application. */ declare(strict_types=1); // phpcs:disable Squiz.Functions.GlobalFunction /** * This function returns username and password. * * It can optionally use configured username as parameter. * * @param string $user User name * * @return array<int,string> */ function get_login_credentials(string $user): array { /* Optionally we can use passed username */ if (! empty($user)) { return [$user, 'password']; } /* Here we would retrieve the credentials */ return ['root', '']; }
Siehe auch
-
$cfg['Servers'][$i]['SignonSession']
¶ Typ: Zeichenkette Standardwert: "
Name der Sitzung, die für die Signon-Authentifizierungsmethode benutzt wird. Sie sollten etwas anderes als
phpMyAdmin
benutzen, weil das die Sitzung ist, die von phpMyAdmin intern verwendet wird. Wirkt nur, wenn$cfg['Servers'][$i]['SignonScript']
nicht konfiguriert ist.Siehe auch
-
$cfg['Servers'][$i]['SignonCookieParams']
¶ Typ: Feld Standardwert: array()
Neu in Version 4.7.0.
Ein assoziatives Array von Session-Cookie-Parametern eines anderen Authentifizierungssystems. Es wird nicht benötigt, wenn das andere System session_set_cookie_params() nicht verwendet. Die Schlüssel sollten „lifetime“, „path“, „domain“, „secure“ oder „httponly“ enthalten. Gültige Werte sind in session_get_cookie_params angegeben, sie sollten auf die gleichen Werte wie die anderen Anwendungen gesetzt werden. Wird nur wirksam, wenn
$cfg['Servers'][$i]['SignonScript']
nicht konfiguriert ist.Siehe auch
-
$cfg['Servers'][$i]['SignonURL']
¶ Typ: Zeichenkette Standardwert: "
URL, auf die der Nutzer zur Anmeldung für die Signon-Authentifizierung geleitet wird. Sollte absolut sein, einschließlich Protokoll.
Siehe auch
-
$cfg['Servers'][$i]['LogoutURL']
¶ Typ: Zeichenkette Standardwert: "
URL, auf die der Nutzer nach der Abmeldung geleitet wird (betrifft nicht config-Authentifizierung). Sollte absolut sein, einschließlich Protokoll.
-
$cfg['Servers'][$i]['hide_connection_errors']
¶ Typ: boolesch Standardwert: false Neu in Version 4.9.8.
Whether to show or hide detailed MySQL/MariaDB connection errors on the login page.
Bemerkung
This error message can contain the target database server hostname or IP address, which may reveal information about your network to an attacker.
Allgemeine Einstellungen¶
-
$cfg['DisableShortcutKeys']
¶ Typ: boolesch Standardwert: false You can disable phpMyAdmin shortcut keys by setting
$cfg['DisableShortcutKeys']
to true.
-
$cfg['ServerDefault']
¶ Typ: Integer Standardwert: 1 Wenn Sie mehr als einen Server konfiguriert haben, können Sie
$cfg['ServerDefault']
auf jeden dieser Server setzen, um automatisch zu diesem zu verbinden, wenn phpMyAdmin gestartet wird, oder setzen Sie auf 0, um eine Liste von Servern zu bekommen, ohne sich einzuloggen.Falls Sie nur einen einzigen Server konfiguriert haben, MUSS
$cfg['ServerDefault']
auf diesen gesetzt werden.
-
$cfg['VersionCheck']
¶ Typ: boolesch Standardwert: true Prüfe mit JavaScript auf der phpMyAdmin-Hauptseite oder durch direkten Zugriff auf index.php?route=/version-check, ob die neuste Version installiert ist.
Bemerkung
Diese Einstellung kann von Ihrem Lieferanten angepasst werden.
-
$cfg['ProxyUrl']
¶ Typ: Zeichenkette Standardwert: "
Die URL des Proxys, der verwendet wird, wenn phpMyAdmin auf das Internet zugreifen muss, zum Beispiel beim Abholen der neuesten Versions-Informationen oder beim Übermitteln von Fehlerberichten. Sie brauchen das, falls der Server, auf dem phpMyAdmin installiert ist, keinen direkten Zugriff auf das Internet hat. Das Format ist: „hostname:portnummer“
-
$cfg['ProxyUser']
¶ Typ: Zeichenkette Standardwert: "
Der Benutzername zur Anmeldung beim Proxy. Standardmäßig wird keine Authentifizierung durchgeführt. Ist ein Benutzername angegeben, wird Basic-Authenfizierung verwendet. Momentan werden andere Arten der Authentifizierung nicht unterstützt.
-
$cfg['ProxyPass']
¶ Typ: Zeichenkette Standardwert: "
Das Kennwort für die Authentifizierung mit dem Proxy.
-
$cfg['MaxDbList']
¶ Typ: Integer Standardwert: 100 Die maximale Anzahl an Datenbanknamen, die in der Datenbankliste des Hauptpanels angezeigt werden.
-
$cfg['MaxTableList']
¶ Typ: Integer Standardwert: 250 Die maximale Anzahl an Datenbanknamen, die in der Liste des Hauptpanels angezeigt werden (außer auf der Export Seite).
-
$cfg['ShowHint']
¶ Typ: boolesch Standardwert: true Ob Tips angezeigt werden oder nicht (zum Beispiel, wenn der Zeiger über den Tabellenkopf fährt).
-
$cfg['MaxCharactersInDisplayedSQL']
¶ Typ: Integer Standardwert: 1000 Die maximale Anzahl Zeichen, wenn eine SQL-Abfrage angezeigt wird. Die Standardgrenze von 1000 sollte korrekt sein, um die Anzeige unzähliger Hexadeximalcodes, die die BLOBs repräsentieren, zu verhindern, aber manche Benutzer haben SQL-Abfragen, die länger als 1000 Zeichen sind. Außerdem wird, wenn die Abfrage das Limit übersteigt, diese nicht im Verlauf gespeichert.
-
$cfg['PersistentConnections']
¶ Typ: boolesch Standardwert: false Whether persistent connections should be used or not.
-
$cfg['ForceSSL']
¶ Typ: boolesch Standardwert: false Veraltet ab Version 4.6.0: Diese Einstellung ist seit phpMyAdmin 4.6.0 nicht mehr verfügbar. Bitte passen Sie stattdessen Ihren Webserver an.
Verwendung von https für den Zugriff auf phpMyAdmin erzwingen. Es ist in einem Reverse Proxy Setup nicht erlaubt dies auf
true
zu setzen.Bemerkung
In einigen Setups (wie bei separaten SSL-Proxys oder Load-Balancern) müssen Sie eventuell
$cfg['PmaAbsoluteUri']
für korrekte Weiterleitungen setzen.
-
$cfg['MysqlSslWarningSafeHosts']
¶ Typ: Feld Standardwert: ['127.0.0.1', 'localhost']
Diese Suche berücksicht Groß- und Kleinschreibung und wird nur die exakte Zeichenkette finden. Wenn deine Konfiguration nicht SSL nutzt, aber sicher ist, weil du eine lokale Verbindung oder ein privates Netzwerk nutzt, kannst du deinen Rechnernamen oder IP zur Liste hinzufügen. Du kannst auch die Standardeinträge entfernen um nur deine einzubeziehen.
This check uses the value of
$cfg['Servers'][$i]['host']
.Neu in Version 5.1.0.
Beispiel-Konfiguration
$cfg['MysqlSslWarningSafeHosts'] = ['127.0.0.1', 'localhost', 'mariadb.local'];
-
$cfg['ExecTimeLimit']
¶ Typ: Integer [Anzahl Sekunden] Standardwert: 300 Diese Einstellung wird verwendet, während Zwischenspeicherdateien importiert/exportiert werden, und in der Synchronisierungsfunktion, hat aber keine Auswirkung, wenn PHP im sicheren Modus ausgeführt wird.
-
$cfg['SessionSavePath']
¶ Typ: Zeichenkette Standardwert: "
Pfad für die Speicherung von Sitzungsdaten (session_save_path PHP-Parameter).
Warnung
Dieser Ordner sollte nicht öffentlich über den Webserver zugänglich sein, da sonst die Gefahr besteht, dass private Daten aus Ihrer Sitzung verloren gehen.
-
$cfg['MemoryLimit']
¶ Typ: Zeichenkette [Anzahl Bytes] Standardwert: '-1'
Setzen Sie die Anzahl Bytes, die ein Skript beanspruchen darf. Falls auf
'-1'
gesetzt, wird keine Obergrenze gesetzt. Wenn auf'0'
gesetzt, wird keine Änderung der Speicherbegrenzung versucht und diephp.ini
memory_limit
wird verwendet.Diese Einstellung wird während des Imports und Exports von Auszugsdateien verwendet, weshalb sie diesen Wert keinesfalls zu klein wählen sollten. Wenn PHP im Sicherheitsmodus läuft hat diese Einstellung keine Auswirkung.
Sie können auch Strings wie in
php.ini
verwenden, z.B. ‚16M‘. Vergessen Sie nicht die Endung (16 bedeutet 16 Byte!)
-
$cfg['SkipLockedTables']
¶ Typ: boolesch Standardwert: false Benutzte Tabellen markieren und die Anzeige von Datenbanken mit gesperrten Tabellen ermöglichen (seit MySQL 3.23.30).
-
$cfg['ShowSQL']
¶ Typ: boolesch Standardwert: true Definiert, ob die von phpMyAdmin generierten SQL-Abfragen angezeigt werden sollen oder nicht.
-
$cfg['RetainQueryBox']
¶ Typ: boolesch Standardwert: false Definiert, ob die SQL-Abfragebox nach dem Absenden weiter angezeigt werden soll.
-
$cfg['CodemirrorEnable']
¶ Typ: boolesch Standardwert: true Definiert, ob ein JavaScript-basierter Code-Editor für SQL-Abfrageboxen verwendet wird. CodeMirror stellt Syntax-Hervorhebung und Zeilennummern zur Verfügung. Jedoch wird das Klicken mit der mittleren Maustaste zum Einfügen von Inhalten aus der Zwischenablage in einigen Linux-Distributionen (wie etwa Ubuntu) nicht von allen Browsern unterstützt.
-
$cfg['LintEnable']
¶ Typ: boolesch Standardwert: true Neu in Version 4.5.0.
Defines whether to use the parser to find any errors in the query before executing.
-
$cfg['DefaultForeignKeyChecks']
¶ Typ: Zeichenkette Standardwert: 'default'
Standardwert des Ankreuzfeldes für Fremdschlüsselprüfungen, um Fremdschlüsselprüfungen für bestimmte Abfragen zu deaktivieren/aktivieren. Die möglichen Werte sind
'default'
,'enable'
oder'disable'
. Wenn auf'default'
gesetzt, wird der Wert der MySQL-VariablenFOREIGN_KEY_CHECKS
verwendet.
-
$cfg['AllowUserDropDatabase']
¶ Typ: boolesch Standardwert: false Warnung
Dies ist keine Sicherheitsmaßnahme, da es immer Wege geben wird, dies zu umgehen. Wenn Sie Benutzern das Löschen von Datenbanken verbieten möchten, entziehen Sie ihnen das entsprechende DROP-Privileg.
Definiert ob normale Benutzer (nicht-Administratoren) ihre eigene Datenbank löschen dürfen oder nicht. Wenn auf false gesetzt, wird der Link Datenbank löschen nicht angezeigt, und sogar ein
DROP DATABASE mydatabase
wird zurückgewiesen. Das ist für ISP s mit vielen Kunden praktisch.Beachten Sie bitte, dass diese Einschränkung von SQL-Abfragen nicht so streng ist wie die der MySQL-Rechte. Das ist aufgrund von SQL-Abfragen, welche möglicherweise kompliziert sind. Deshalb sollte diese Wahl als Hilfe angesehen werden, um versehentliches Löschen zu verhindern, anstatt einer strengen Rechte-Einschränkung.
-
$cfg['Confirm']
¶ Typ: boolesch Standardwert: true Ob eine Warnung („Sind Sie sicher, dass…“) angezeigt werden soll, wenn Sie dabei sind, Daten zu verlieren.
-
$cfg['UseDbSearch']
¶ Typ: boolesch Standardwert: true Definiert ob „Suche String innerhalb der Datenbank“ aktiviert ist oder nicht.
-
$cfg['IgnoreMultiSubmitErrors']
¶ Typ: boolesch Standardwert: false Definiert ob phpMyAdmin die Ausführung von Multi-Abfragen Anweisungen fortsetzt, wenn eine von ihnen fehlschlägt. Standardwert ist der Abbruch der Ausführung.
-
$cfg['enable_drag_drop_import']
¶ Typ: boolesch Standardwert: true Ob die Drag&Drop-Importfunktion aktiviert ist oder nicht. Wenn aktiviert, kann ein Benutzer eine Datei in seinen Browser ziehen und phpMyAdmin wird versuchen, die Datei zu importieren.
-
$cfg['URLQueryEncryption']
¶ Typ: boolesch Standardwert: false Neu in Version 4.9.8.
Define whether phpMyAdmin will encrypt sensitive data (like database name and table name) from the URL query string. Default is to not encrypt the URL query string.
-
$cfg['URLQueryEncryptionSecretKey']
¶ Typ: Zeichenkette Standardwert: "
Neu in Version 4.9.8.
A secret key used to encrypt/decrypt the URL query string. Should be 32 bytes long.
-
$cfg['maxRowPlotLimit']
¶ Typ: Integer Standardwert: 500 Maximum number of rows retrieved for zoom search.
Cookie-Authentifizierungsoptionen¶
-
$cfg['blowfish_secret']
¶ Typ: Zeichenkette Standardwert: "
The „cookie“ auth_type uses the Sodium extension to encrypt the cookies (see Cookie). If you are using the „cookie“ auth_type, enter here a generated string of random bytes to be used as an encryption key. It will be used internally by the Sodium extension: you won’t be prompted for this encryption key.
Since a binary string is usually not printable, it can be converted into a hexadecimal representation (using a function like sodium_bin2hex) and then used in the configuration file. For example:
// The string is a hexadecimal representation of a 32-bytes long string of random bytes. $cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
Using a binary string is recommended. However, if all 32 bytes of the string are visible characters, then a function like sodium_bin2hex is not required. For example:
// A string of 32 characters. $cfg['blowfish_secret'] = 'JOFw435365IScA&Q!cDugr!lSfuAz*OW';
Warnung
The encryption key must be 32 bytes long. If it is longer than the length of bytes, only the first 32 bytes will be used, and if it is shorter, a new temporary key will be automatically generated for you. However, this temporary key will only last for the duration of the session.
Bemerkung
Die Konfiguration wird aus historischen Gründen blowfish_secret genannt, denn ursprünglich wurde für die Verschlüsselung der Blowfish-Algorithmus verwendet.
Geändert in Version 3.1.0: Seit Version 3.1.0 kann phpMyAdmin diese bei Bedarf generieren, aber dies bedeutet eine etwas geringere Sicherheit, da das generierte Geheimnis in der Session gespeichert wird und macht es außerdem unmöglich, den Benutzernamen an Hand des Cookies zu behalten.
Geändert in Version 5.2.0: Since version 5.2.0, phpMyAdmin uses the sodium_crypto_secretbox and sodium_crypto_secretbox_open PHP functions to encrypt and decrypt cookies, respectively.
-
$cfg['CookieSameSite']
¶ Typ: Zeichenkette Standardwert: 'Strict'
Neu in Version 5.1.0.
Es setzt das Attribut SameSite der Set-Cookie HTTP-Antwortkopfdaten. Gültige Werte sind:
Lax
Strict
- keine
Siehe auch
-
$cfg['LoginCookieRecall']
¶ Typ: boolesch Standardwert: true Definiert ob im Cookie Authentifizierungsmodus der vorherige Login wieder aufgerufen werden soll oder nicht.
Das ist automatisch deaktiviert, wenn Sie
$cfg['blowfish_secret']
nicht konfiguriert haben.
-
$cfg['LoginCookieValidity']
¶ Typ: Integer [Anzahl Sekunden] Standardwert: 1440 Definiert wie lange ein Cookie gültig ist. Bitte beachten Sie, dass die PHP Konfigurationsoption session.gc_maxlifetime die Gültigkeit der Sitzung einschränken kann und falls die Sitzung verloren geht, der Login-Cookie ungültig wird. Deshalb ist es eine gute Idee,
session.gc\_maxlifetime
nicht geringer als$cfg['LoginCookieValidity']
zu setzen.
-
$cfg['LoginCookieStore']
¶ Typ: Integer [Anzahl Sekunden] Standardwert: 0 Legt fest, wie lange (in Sekunden) ein Login-Cookie im Browser gespeichert werden sollte. Die Voreinstellung 0 bedeutet, dass es nur für die aktuelle Sitzung gespeichert wird. Dies wird für nicht vertrauenswürdige Umgebungen empfohlen.
-
$cfg['LoginCookieDeleteAll']
¶ Typ: boolesch Standardwert: true Wenn aktiviert (Standard), löscht ein Logout die Cookies für alle Server, andernfalls nur für den aktuellen. Wenn auf false gesetzt, ist es leichter um zu Vergessen sich aus einem andern Server auszuloggen, falls Sie mehrere benutzen.
-
$cfg['AllowArbitraryServer']
¶ Typ: boolesch Standardwert: false Wenn aktiviert, können Sie sich in willkürliche Server mit Cookie-Auth einloggen.
Bemerkung
Bitte benutzen sie dies vorsichtig, da es Benutzern den Zugang zu MySQL-Servern hinter Firewalls, wo sich Ihr HTTP-Server befinden, erlauben kann. Siehe auch
$cfg['ArbitraryServerRegexp']
.
-
$cfg['ArbitraryServerRegexp']
¶ Typ: Zeichenkette Standardwert: "
Beschränkt die MySQL-Server, an die sich der Benutzer anmelden kann, wenn
$cfg['AllowArbitraryServer']
aktiviert wird, indem der IP oder der Hostname des MySQL-Servers mit dem angegebenen regulären Ausdruck übereinstimmt. Der reguläre Ausdruck muss von Trennzeichen eingeschlossen werden.Es wird empfohlen, Start- und Endsymbole in den regulären Ausdruck aufzunehmen, um Teilübereinstimmungen der Zeichenkette zu vermeiden.
Beispiele:
// Allow connection to three listed servers: $cfg['ArbitraryServerRegexp'] = '/^(server|another|yetdifferent)$/'; // Allow connection to range of IP addresses: $cfg['ArbitraryServerRegexp'] = '@^192\.168\.0\.[0-9]{1,}$@'; // Allow connection to server name ending with -mysql: $cfg['ArbitraryServerRegexp'] = '@^[^:]\-mysql$@';
Bemerkung
Der gesamte Servername wird abgeglichen, er kann auch einen Port enthalten. Da MySQL bei den Verbindungsparametern tolerant ist, ist es möglich, Verbindungsstrings wie
server:3306-mysql
zu verwenden. Dies kann verwendet werden, um den regulären Ausdruck durch das Suffix zu umgehen, während man sich mit einem anderen Server verbindet.
-
$cfg['CaptchaMethod']
¶ Typ: Zeichenkette Standardwert: 'invisible'
Gültige Werte sind:
'invisible'
Verwende eine unsichtbare Captcha-Prüfmethode;'checkbox'
Verwende eine Kontrollkästchen um zu bestätigen, dass der Benutzer kein Automat ist.
Neu in Version 5.0.3.
-
$cfg['CaptchaApi']
¶ Typ: Zeichenkette Standardwert: 'https://www.google.com/recaptcha/api.js'
Neu in Version 5.1.0.
Die URL für die API des reCaptcha v2-Dienstes, entweder Googles oder eines kompatiblen.
-
$cfg['CaptchaCsp']
¶ Typ: Zeichenkette Standardwert: 'https://apis.google.com https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://ssl.gstatic.com/'
Neu in Version 5.1.0.
Der Auszug aus der Inhaltssicherheitsrichtlinie (URLs von denen eingebettete Inhalte erlaubt sind) für den reCaptcha v2-Dienst, entweder Googles oder eines kompatiblen.
-
$cfg['CaptchaRequestParam']
¶ Typ: Zeichenkette Standardwert: 'g-recaptcha'
Neu in Version 5.1.0.
The request parameter used for the reCaptcha v2 service.
-
$cfg['CaptchaResponseParam']
¶ Typ: Zeichenkette Standardwert: 'g-recaptcha-response'
Neu in Version 5.1.0.
The response parameter used for the reCaptcha v2 service.
-
$cfg['CaptchaLoginPublicKey']
¶ Typ: Zeichenkette Standardwert: "
Der öffentliche Schlüssel für reCaptcha kann auf der „Admin Console“ von https://www.google.com/recaptcha/about/ erhalten werden.
Siehe auch
reCaptcha wird dann in Cookie-Authentifizierungsmethode verwendet.
Neu in Version 4.1.0.
-
$cfg['CaptchaLoginPrivateKey']
¶ Typ: Zeichenkette Standardwert: "
Der private Schlüssel für den reCaptcha-Dienst kann aus der „Admin Console“ auf https://www.google.com/recaptcha/about/ bezogen werden.
Siehe auch
reCaptcha wird dann in Cookie-Authentifizierungsmethode verwendet.
Neu in Version 4.1.0.
-
$cfg['CaptchaSiteVerifyURL']
¶ Typ: Zeichenkette Standardwert: "
Die URL des reCaptcha-Dienstes um eine siteverify-Aktion auszuführen.
reCaptcha wird dann in Cookie-Authentifizierungsmethode verwendet.
Neu in Version 5.1.0.
Hauptpanel¶
-
$cfg['ShowStats']
¶ Typ: boolesch Standardwert: true Definierte, ob Speicherverbrauch und Statistiken über Datenbanken und Tabellen angezeigt werden oder nicht. Beachten Sie, dass Statistiken mindestens MySQL 3.23.3 benötigen und dass, bis jetzt, MySQL keine Informationen über Berkeley-DB-Tabellen liefert.
-
$cfg['ShowServerInfo']
¶ Typ: Boolescher Wert|String Standardwert: true Defines whether to display detailed server information on main page. Possible values are:
true
to show all server informationfalse
to hide server information'database-server'
to show only database server information'web-server'
to show only web server information
You can additionally hide more information by using
$cfg['Servers'][$i]['verbose']
.Geändert in Version 6.0.0: Added
'database-server'
and'web-server'
options.
-
$cfg['ShowPhpInfo']
¶ Typ: boolesch Standardwert: false Legt fest, ob PHP information am Anfang des Hauptfensters (rechts) angezeigt werden soll oder nicht.
Bitte beachten Sie, dass Sie Folgendes in Ihre
php.ini
eintragen müssen, umphpinfo()
in Skripts zu blockieren:disable_functions = phpinfo()
Warnung
Das Aktivieren der phpinfo-Seite wird eine ganze Menge Informationen über die Einrichtung des Servers durchsickern lassen. Es ist nicht empfehlenswert, dies auf geteilten Installationen zu aktivieren.
Dies könnte auch einige Remote-Angriffe auf Ihre Installationen erleichtern, also bitte nur bei Bedarf aktivieren.
-
$cfg['ShowChgPassword']
¶ Typ: boolesch Standardwert: true Legt fest, ob der Link Passwort ändern beim Start des Hauptfensters (rechts) angezeigt werden soll oder nicht. Diese Einstellung prüft nicht direkt eingegebene MySQL-Befehle.
Beachten Sie bitte, dass die Aktivierung des Passwort ändern-Links keine Auswirkung beim „config“-Authentifizierungs-Modus hat: weil das Passwort im Code der Konfigurationsdatei eingetragen ist, können Endbenutzer ihre Passwörter nicht ändern.
-
$cfg['ShowCreateDb']
¶ Typ: boolesch Standardwert: true Definiert, ob das Formular zum Erstellen einer Datenbank beim Start im Hauptbereich (rechts) angezeigt werden sollen oder nicht. Diese Einstellung prüft keine direkt eingetragenen MySQL Answeisungen.
-
$cfg['ShowGitRevision']
¶ Typ: boolesch Standardwert: true Defines whether to display information about the current Git revision (if applicable) on the main panel.
-
$cfg['MysqlMinVersion']
¶ Typ: Feld Definiert die minimal unterstützte MySQL-Version. Die Voreinstellung wird vom phpMyAdmin-Team gewählt; jedoch wurde diese Richtlinie von einem Entwickler des Plesk Control Panels angefordert, um die Integration mit älteren MySQL-Servern zu erleichtern (wo die meisten Funktionen von phpMyAdmin funktionieren).
Datenbank-Struktur¶
-
$cfg['ShowDbStructureCharset']
¶ Typ: boolesch Standardwert: false Defines whether to show a column displaying the charset for all tables in the database structure page.
-
$cfg['ShowDbStructureComment']
¶ Typ: boolesch Standardwert: false Defines whether to show a column displaying the comments for all tables in the database structure page.
-
$cfg['ShowDbStructureCreation']
¶ Typ: boolesch Standardwert: false Definiert, ob die Datenbank-Struktur-Seite (Tabellen-Liste) eine Spalte „Erstellt“ hat, die anzeigt, wann jede Tabelle erstellt wurde.
-
$cfg['ShowDbStructureLastUpdate']
¶ Typ: boolesch Standardwert: false Definiert, ob die Datenbank-Struktur-Seite (Tabellen-Liste) eine Spalte „Letzte Aktualisierung“ hat, die anzeigt, wann jede Tabelle zuletzt aktualisiert wurde.
-
$cfg['ShowDbStructureLastCheck']
¶ Typ: boolesch Standardwert: false Definiert, ob die Datenbank-Struktur-Seite (Tabellen-Liste) eine Spalte „Letzte Überprüfung“ hat, die anzeigt, wann jede Tabelle zuletzt geprüft wurde.
-
$cfg['HideStructureActions']
¶ Typ: boolesch Standardwert: true Defines whether the table structure actions are hidden under a „More“ drop-down.
-
$cfg['ShowColumnComments']
¶ Typ: boolesch Standardwert: true Legt fest, ob Spaltenkommentare als Spalte in der Tabellenstrukturansicht angezeigt werden sollen.
Anzeigemodus¶
Typ: Zeichenkette Standardwert: 'icons'
Legt fest, ob die Tabellen-Navigationslinks
'icons'
(Symbole),'text'
(Text) oder'both'
(beides) enthalten.
-
$cfg['ActionLinksMode']
¶ Typ: Zeichenkette Standardwert: 'beide'
Wenn auf
icons
gesetzt, werden Icons anstelle von Text für Datenbank- und Tabelleneigenschaften Links angezeigt (z.B. Browse, :guilabel:`Select, Guilabel:`Insert, …). Kann auf'both'
gesetzt werden, wenn Sie Icons UND Text wünschen. Wenn auftext
gesetzt, wird nur Text angezeigt.
-
$cfg['RowActionType']
¶ Typ: Zeichenkette Standardwert: 'beide'
Ob Ikons oder Text oder sowohl Ikons als auch Text im Aktionssegment der Tabellenzeile angezeigt werden sollen. Dieser Wert kann entweder
'Icons'
,'Text'
oder'beide'
sein.
-
$cfg['ShowAll']
¶ Typ: boolesch Standardwert: false Defines whether a user should be displayed a „Show all“ button in browse mode or not in all cases. By default it is shown only on small tables (less than 500 rows) to avoid performance issues while getting too many rows.
-
$cfg['MaxRows']
¶ Typ: Integer Standardwert: 25 Number of rows displayed when browsing a result set and no LIMIT clause is used. If the result set contains more rows, „Previous“ and „Next“ links will be shown. Possible values: 25,50,100,250,500.
-
$cfg['Order']
¶ Typ: Zeichenkette Standardwert: 'SMART'
Legt fest, ob Spalten in aufsteigender (
ASC
) oder absteigender (DESC
) oder in „smarter“ (SMART
) Reihenfolge angezeigt werden - Standard ist absteigende Reihenfolge für die Spaltentypen TIME, DATE, DATETIME und TIMESTAMP, aufsteigende Reihnfolge für andere Typen.Geändert in Version 3.4.0: Seit phpMyAdmin 3.4.0 ist der Standardwert
'SMART'
.
-
$cfg['DisplayBinaryAsHex']
¶ Typ: boolesch Standardwert: true Defines whether the „Show binary contents as HEX“ browse option is ticked by default.
Neu in Version 3.3.0.
Veraltet ab Version 4.3.0: This setting was removed.
-
$cfg['GridEditing']
¶ Typ: Zeichenkette Standardwert: 'double-click'
Legt fest, welche Aktion (
double-click
= Doppelklick, oderclick
= Klick) das Sofort-Bearbeiten aktiviert. Kann mit dem Wertdisabled
abgeschaltet werden.
-
$cfg['RelationalDisplay']
¶ Typ: Zeichenkette Standardwert: 'K'
Definiert das Anfangsverhalten für Optionen > Relational. Der Standard
K
zeigt die Taste an, währendD
die Anzeigespalte anzeigt.
-
$cfg['SaveCellsAtOnce']
¶ Typ: boolesch Standardwert: false Legt fest, beim Sofort-Bearbeiten alle bearbeiteten Zellen auf einmal gespeichert werden.
Bearbeitungsmodus¶
-
$cfg['ProtectBinary']
¶ Typ: Boolescher Wert oder String Standardwert: 'blob'
Definiert ob
BLOB
oderBINARY
Spalten beim Ansehen des Tabelleninhalts vor Bearbeitung geschützt sind. Gültige Werte sind:false
um Bearbeiten aller Spalten zu erlauben;'blob'
um die Bearbeitung aller Spalten außerBLOBS
zu erlauben;'noblob'
um die Bearbeitung aller Spalten außerBLOBS``zu verbieten (das Gegenteil von ``'blob'
);'all'
um die Bearbeitung allerBINARY
oderBLOB
Spalten zu verbieten.
-
$cfg['ShowFunctionFields']
¶ Typ: boolesch Standardwert: true Definiert ob MySQL Funktionsfelder im Bearbeiten/Einfügen-Modus von Anfang an angezeigt werden sollen. Seit Version 2.10, kann der Benutzer diese Einstellung aus dem Interface umschalten.
-
$cfg['ShowFieldTypesInDataEditView']
¶ Typ: boolesch Standardwert: true Definiert ob Typenfelder im Bearbeiten/Einfügen-Modus von Anfang an angeziegt werden sollen. Der Benutzer kann diese Einstellung vom Interface umschalten.
-
$cfg['InsertRows']
¶ Typ: Integer Standardwert: 2 Definiert die Standardanzahl der Zeilen, die auf der Seite Einfügen eingegeben werden sollen. Benutzer können dies unten auf dieser Seite manuell ändern, um leere Zeilen hinzuzufügen oder zu entfernen.
-
$cfg['ForeignKeyMaxLimit']
¶ Typ: Integer Standardwert: 100 Wenn es in der Menge der Fremdschlüssel weniger Elemente als dies gibt, wird eine Dropdown-Box mit Fremdschlüsseln in dem durch die Einstellung
$cfg['ForeignKeyDropdownOrder']
beschriebenen Stil angezeigt.
-
$cfg['ForeignKeyDropdownOrder']
¶ Typ: Feld Standardwert: array(‚content-id‘, ‚id-content‘) Für die Fremdschlüssel-Drop-Down Felder, gibt es mehrere Anzeigemöglichkeiten, welche die Schlüssel- und Wertdaten anbieten. Die Inhalte des Arrays sollten einer oder beide der folgenden Strings sein:
content-id
,id-content
.
Einstellungen exportieren und importieren¶
-
$cfg['ZipDump']
¶ Typ: boolesch Standardwert: true
-
$cfg['GZipDump']
¶ Typ: boolesch Standardwert: true
-
$cfg['BZipDump']
¶ Typ: boolesch Standardwert: true Definiert, ob die Benutzung von zip/GZip/BZip2 Kompression beim Erstellen von Auszugsdateien erlaubt ist
-
$cfg['CompressOnFly']
¶ Typ: boolesch Standardwert: true Definiert ob die direkte Kompression von GZip/BZip2 komprimierten Exporten erlaubt ist. Das beeinflusst kleine Auszüge nicht und erlaubt Benutzern größere Auszüge zu erstellen, welche andererseits aufgrund des PHP Speicherlimits nicht in den Speicher passen würden. Produzierte Dateien enthalten mehr GZip/BZip2 Header, aber alle normalen Programme behandeln das korrekt.
-
$cfg['Export']
¶ Typ: Feld Standardwert: array(…) In diesem Array sind Standardparameter für den Export definiert, die Namen der Elemente ähneln den Texten auf der Exportseite, so dass Sie leicht erkennen können, was sie bedeuten.
-
$cfg['Export']['format']
¶ Typ: Zeichenkette Standardwert: 'sql'
Standard-Exportformat.
-
$cfg['Export']['method']
¶ Typ: Zeichenkette Standardwert: 'quick'
Legt fest, wie das Exportformular beim Laden angezeigt wird. Gültige Werte sind:
quick
um die minimale Anzahl der zu konfigurierenden Optionen anzuzeigencustom
um alle verfügbaren Optionen zur Konfiguration anzuzeigencustom-no-form
- das gleiche wiecustom
, mit der Ausnahme, dass die Option zum Nutzen vom Schnellexport nicht angezeigt wird
-
$cfg['Export']['compression']
¶ Typ: Zeichenkette Standardwert: 'none'
Default export compression method. Possible values are
'none'
,'zip'
or'gzip'
.
-
$cfg['Export']['charset']
¶ Typ: Zeichenkette Standardwert: "
Definiert den Zeichensatz für den erzeugten Export. Standardmäßig wird keine Zeichensatzkonvertierung ohne UTF-8 vorauszusetzen.
-
$cfg['Export']['file_template_table']
¶ Typ: Zeichenkette Standardwert: '@TABLE@'
Standard-Dateinamensvorlage für Tabellenexporte.
-
$cfg['Export']['file_template_database']
¶ Typ: Zeichenkette Standardwert: '@DATABASE@'
Standard-Dateinamensvorlage für Datenbank-Exporte.
-
$cfg['Export']['file_template_server']
¶ Typ: Zeichenkette Standardwert: '@SERVER@'
Standard-Dateinamensvorlage für Server-Exporte.
-
$cfg['Export']['remove_definer_from_definitions']
¶ Typ: boolesch Standardwert: false Remove DEFINER clause from the event, view and routine definitions.
Neu in Version 5.2.0.
-
$cfg['Import']
¶ Typ: Feld Standardwert: array(…) In diesem Array sind Standardparameter für den Export definiert, die Namen der Elemente ähneln den Texten auf der Exportseite, so dass Sie leicht erkennen können, was sie bedeuten.
-
$cfg['Import']['charset']
¶ Typ: Zeichenkette Standardwert: "
Definiert den Zeichensatz für den Import. UTF-8 voraussetzend, wird standardmäßig keine Zeichensatzkonvertierung durchgeführt.
-
$cfg['Schema']
¶ Typ: Feld Standardwert: array(…)
-
$cfg['Schema']['format']
¶ Typ: Zeichenkette Standardwert: 'pdf'
Defines the default format for schema export. Possible values are
'pdf'
,'eps'
,'dia'
or'svg'
.
Registerkarten-Anzeigeeinstellungen¶
-
$cfg['TabsMode']
¶ Typ: Zeichenkette Standardwert: 'beide'
Legt fest, ob die Menü-Registerkarten
icons
,``text`` oderboth
(beides) enthalten.
-
$cfg['PropertiesNumColumns']
¶ Typ: Integer Standardwert: 1 Wie viele Spalten werden verwendet, um die Tabellen in der Datenbank-Eigenschaftsansicht anzuzeigen? Wenn dieser Wert größer als 1 ist, wird der Typ der Datenbank für mehr Platz auf dem Bildschirm weggelassen.
-
$cfg['DefaultTabServer']
¶ Typ: Zeichenkette Standardwert: 'welcome'
Definiert die Registerkarte, die standardmäßig in der Serveransicht angezeigt wird. Mögliche Werte sind die lokalisierte Entsprechung von:
welcome
(empfohlen für Multi-User-Setups)- Datenbanken
status
variables
privileges
-
$cfg['DefaultTabDatabase']
¶ Typ: Zeichenkette Standardwert: 'structure'
Definiert die Registerkarte, die standardmäßig in der Datenbankansicht angezeigt wird. Die möglichen Werte sind die lokalisierte Entsprechung von:
structure
sql
Suche
operations
-
$cfg['DefaultTabTable']
¶ Typ: Zeichenkette Standardwert: 'anzeigen'
Definiert die Registerkarte, die standardmäßig in der Tabellenansicht angezeigt wird. Die möglichen Werte sind die lokalisierte Entsprechung von:
structure
sql
Suche
insert
Anzeigen
PDF Optionen¶
-
$cfg['PDFPageSizes']
¶ Typ: Feld Standardwert: array('A3', 'A4', 'A5', 'letter', 'legal')
Liste der möglichen Papiergrößen zum erstellen von PDF-Seiten.
Sie sollten es nie nötig haben, das zu ändern.
-
$cfg['PDFDefaultPageSize']
¶ Typ: Zeichenkette Standardwert: 'A4'
Standartseitengröße, beim Erstellen von PDF Dateien. Mögliche Parameter sind gelistet unter
$cfg['PDFPageSizes']
.
Sprachen¶
-
$cfg['DefaultLang']
¶ Typ: Zeichenkette Standardwert: 'en'
Legt die Standardsprache fest, die benutzt werden soll, falls diese nicht vom Browser oder vom Benutzer festgelegt wurde. Die benutzte Sprachdatei muss in locale/code/LC_MESSAGES/phpmyadmin.mo liegen.
-
$cfg['DefaultConnectionCollation']
¶ Typ: Zeichenkette Standardwert: 'utf8mb4_general_ci'
Definiert die standardmäßige Verbindungszusammenstellung, die verwendet werden soll, falls sie nicht benutzerdefiniert ist. Siehe MySQL-Dokumentation für Zeichensätze für eine Liste der möglichen Werte.
-
$cfg['Lang']
¶ Typ: Zeichenkette Standardwert: nicht gesetzt Legt die Sprache fest. Die jeweilige Sprachdatei muss in locale/code/LC_MESSAGES/phpmyadmin.mo liegen.
-
$cfg['FilterLanguages']
¶ Typ: Zeichenkette Standardwert: "
Beschränkt die Liste der verfügbaren Sprachen auf die Sprachen, die dem angegebenen regulären Ausdruck entsprechen. Wenn Sie zum Beispiel nur Tschechisch und Englisch wollen, sollten Sie den Filter auf
'^(cs|en)'
setzen.
-
$cfg['RecodingEngine']
¶ Typ: Zeichenkette Standardwert: 'auto'
Hier können Sie auswählen, welche Funktionen für die Zeichensatzkonvertierung verwendet werden sollen. Mögliche Werte sind:
'auto'
- automatically use available one (first is tested iconv, then mbstring)'iconv'
- use iconv or libiconv functions'mb'
- use mbstring extension'none'
- disable encoding conversion
Die aktivierte Zeichensatzkonvertierung aktiviert ein Pulldown-Menü auf den Seiten Export und Import, um den Zeichensatz beim Export einer Datei auszuwählen. Der Standardwert in diesem Menü stammt von
$cfg['Export']['charset']
und$cfg['Import']['charset']
.Geändert in Version 6.0.0: Support for the Recode extension has been removed. The
'recode'
value is ignored and the default value ('auto'
) is used instead.
-
$cfg['IconvExtraParams']
¶ Typ: Zeichenkette Standardwert: '//TRANSLIT'
Geben Sie einige Parameter für iconv an, die bei der Zeichensatzkonvertierung verwendet werden. Für Details siehe iconv-Dokumentation . Standardmäßig wird
///TRANSLIT
verwendet, so dass ungültige Zeichen transkribiert werden.
-
$cfg['AvailableCharsets']
¶ Typ: Feld Standardwert: array(…) Available character sets for MySQL conversion. You can add your own (any of supported by mbstring/iconv) or remove these which you don’t use. Character sets will be shown in same order as here listed, so if you frequently use some of these move them to the top.
Webservereinstellungen¶
-
$cfg['OBGzip']
¶ Typ: String/Boolean Standardwert: 'auto'
Legt fest, ob die GZip-Ausgangspufferung für höhere Geschwindigkeiten bei HTTP-Übertragungen verwendet werden soll. Zum Aktivieren/Deaktivieren auf true/false setzen. Wenn auf ‚auto‘ (string) gesetzt, versucht phpMyAdmin die Ausgabepufferung zu aktivieren und deaktiviert sie automatisch, wenn Ihr Browser Probleme mit der Pufferung hat. Es ist bekannt, dass IE6 mit einem bestimmten Patch bei aktivierter Pufferung zu Datenkorruption neigt.
-
$cfg['TrustedProxies']
¶ Typ: Feld Standardwert: array() Listet Proxies und HTTP-Header auf, die für
$cfg['Servers'][$i]['AllowDeny']['order']
vertrauenswürdig sind. Diese Liste ist standardmäßig leer, Sie müssen einige vertrauenswürdige Proxy-Server ausfüllen, wenn Sie Regeln für IP-Adressen hinter dem Proxy verwenden möchten.Das folgende Beispiel legt fest, dass phpMyAdmin einem HTTP_X_FORWARDED_FOR (
X-Forwarded-For
) Header aus dem Proxy 1.2.3.4 vertrauen soll:$cfg['TrustedProxies'] = ['1.2.3.4' => 'HTTP_X_FORWARDED_FOR'];
Die Option
$cfg['Servers'][$i]['AllowDeny']['rules']
Richtlinie verwendet die IP-Adresse des Clients wie üblich.
-
$cfg['GD2Available']
¶ Typ: Zeichenkette Standardwert: 'auto'
Gibt an, ob GD >= 2 verfügbar ist. Wenn ja, kann es für MIME-Transformationen verwendet werden. Mögliche Werte sind:
- auto - automatische Erkennung
- ja - GD 2 Funktionen können genutzt werden
- nein - GD-2-Funktion kann nicht verwendet werden
-
$cfg['CheckConfigurationPermissions']
¶ Typ: boolesch Standardwert: true Normalerweise überprüfen wir die Berechtigungen der Konfigurationsdatei, um sicherzustellen, dass sie nicht world schreibbar ist. Allerdings könnte phpMyAdmin auf einem NTFS-Dateisystem installiert werden, das auf einem Nicht-Windows-Server gemountet ist, wobei die Berechtigungen falsch erscheinen, aber nicht erkannt werden können. In diesem Fall würde ein Systemadministrator diesen Parameter auf
false
setzen.
-
$cfg['LinkLengthLimit']
¶ Typ: Integer Standardwert: 1000 Begrenzung der Länge von URL in Links. Wenn die Länge über dieser Grenze liegen würde, wird sie durch ein Formular mit Schaltfläche ersetzt. Dies ist erforderlich, da einige Webserver (IIS) Probleme mit langen URL s haben.
-
$cfg['CSPAllow']
¶ Typ: Zeichenkette Standardwert: "
Zusätzliche Zeichenkette, der in die erlaubten Skript- und Bildquellen im Header der Content Security Policy aufgenommen werden soll.
This can be useful when you want to include some external JavaScript files in
config.footer.inc.php
orconfig.header.inc.php
, which would be normally not allowed by Content Security Policy.Um einige Seiten zuzulassen, listen Sie sie einfach innerhalb der Zeichenkette auf:
$cfg['CSPAllow'] = 'example.com example.net';
Neu in Version 4.0.4.
-
$cfg['DisableMultiTableMaintenance']
¶ Typ: boolesch Standardwert: false Auf der Strukturseite der Datenbank ist es möglich, einige Tabellen zu markieren und dann eine Operation wie die Optimierung für viele Tabellen zu wählen. Dies kann einen Server verlangsamen; daher verhindert das Setzen auf
true
diese Art mehrfacher Wartungsvorgänge.
Designeinstellungen¶
Bitte ändern Sie diethemes/themename/scss/_variables.scss
direkt, obwohl Ihre Änderungen mit dem nächsten Update überschrieben werden.
Designanpassung¶
Typ: boolesch Standardwert: true Wenn auf true gesetzt und Sie mit der Maus über ein Element im Navigations-Panel fahren, wird dieses Element markiert (der Hintergrund wird hervorgehoben).
-
$cfg['BrowsePointerEnable']
¶ Typ: boolesch Standardwert: true Wenn diese Option auf true gesetzt ist und Sie mit der Maus über die Zeile fahren, wird diese Zeile auf der Anzeigeseite markiert (der Hintergrund wird hervorgehoben).
-
$cfg['BrowseMarkerEnable']
¶ Typ: boolesch Standardwert: true Wenn auf true gesetzt, wird eine Datenzeile markiert (der Hintergrund wird hervorgehoben), wenn die Zeile mit dem Ankreuzfeld markiert ist.
-
$cfg['LimitChars']
¶ Typ: Integer Standardwert: 50 Maximale Anzahl der Zeichen, die in einem nicht-numerischen Feld in der Anzeigeansicht angezeigt werden. Kann durch einen Toggle-Button auf der Anzeigeseite ausgeschaltet werden.
-
$cfg['RowActionLinks']
¶ Typ: Zeichenkette Standardwert: 'left'
Definiert die Stelle, an der Tabellenzeilenverknüpfungen (Bearbeiten, Kopieren, Löschen) bei der Anzeige von Tabelleninhalten gesetzt werden (Sie können sie links, rechts, beidseitig oder nirgendwo anzeigen lassen).
-
$cfg['RowActionLinksWithoutUnique']
¶ Typ: boolesch Standardwert: false Legt fest, ob Zeilenverknüpfungen (Bearbeiten, Kopieren, Löschen) und Ankreuzfelder für mehrzeilige Operationen angezeigt werden sollen, auch wenn die Auswahl keinen unique key hat. Die Verwendung von Zeilenaktionen in Abwesenheit eines eindeutigen Schlüssels kann dazu führen, dass verschiedene/mehrere Zeilen betroffen sind, da es keine garantierte Möglichkeit gibt, die genaue(n) Zeile(n) auszuwählen.
-
$cfg['RememberSorting']
¶ Typ: boolesch Standardwert: true Wenn aktiviert, merkt sich die Sortierung der einzelnen Tabellen beim Durchsuchen.
-
$cfg['TablePrimaryKeyOrder']
¶ Typ: Zeichenkette Standardwert: 'NONE'
Dies definiert die Standard-Sortierreihenfolge für die Tabellen mit einem primary key, wenn es keine externe Sortierreihenfolge gibt. Zulässige Werte: [‚NONE‘, ‚ASC‘, ‚DESC‘]
-
$cfg['ShowBrowseComments']
¶ Typ: boolesch Standardwert: true
-
$cfg['ShowPropertyComments']
¶ Typ: boolesch Standardwert: true Durch Setzen der entsprechenden Variable auf
true
können Sie die Anzeige von Spaltenkommentaren in der Anzeige- oder Property-Anzeige aktivieren. Im Anzeigemodus werden die Kommentare in der Kopfzeile angezeigt. Im Eigenschaftenmodus werden Kommentare mit einer CSS-formatierten gestrichelten Linie unter dem Namen der Spalte angezeigt. Der Kommentar wird als Tooltip für diese Spalte angezeigt.
-
$cfg['FirstDayOfCalendar']
¶ Typ: Integer Standardwert: 0 This will define the first day of week in the calendar. The number can be set from 0 to 6, which represents the seven days of the week, Sunday to Saturday respectively. This value can also be configured by the user in Settings -> Features -> General -> First day of calendar field.
Textfelder¶
-
$cfg['CharEditing']
¶ Typ: Zeichenkette Standardwert: 'input'
Legt fest, welche Art von Editier-Controls für CHAR- und VARCHAR-Spalten verwendet werden sollen. Gilt sowohl für die Datenbearbeitung als auch für die Vorschlagswerte in der Strukturbearbeitung. Mögliche Werte sind:
- input - Das erlaubt die Größe des Textes auf die Größe der Spalten in MySQL einzuschränken, hat aber Probleme bei Zeilenvorschüben in Spalten
- textarea - Keine Probleme mit Zeilenvorschüben in Spalten, aber auch keine Längeneinschränkung
-
$cfg['MinSizeForInputField']
¶ Typ: Integer Standardwert: 4 Lege die Mindestgröße der Eingabefelder für CHAR und VARCHAR-Spalten fest.
-
$cfg['MaxSizeForInputField']
¶ Typ: Integer Standardwert: 60 Lege die maximale Größe der Eingabefelder für CHAR und VARCHAR-Spalten fest.
-
$cfg['TextareaCols']
¶ Typ: Integer Standardwert: 40
-
$cfg['TextareaRows']
¶ Typ: Integer Standardwert: 15
-
$cfg['CharTextareaCols']
¶ Typ: Integer Standardwert: 40
-
$cfg['CharTextareaRows']
¶ Typ: Integer Standardwert: 7 Anzahl der Spalten und Zeilen für die Texteingabefelder. Dieser Wert wird hervorgehoben (*2) für SQL Abfragetexteingabefelder und (*1.25) für SQL Texteingabefelder innerhalb des Abfragefensters.
Die Char*-Werte werden für die Bearbeitung von CHAR und VARCHAR verwendet (wenn über
$cfg['CharEditing']
konfiguriert).Geändert in Version 5.0.0: Der Standardwert wurde auf von 2 auf 7 geändert.
-
$cfg['LongtextDoubleTextarea']
¶ Typ: boolesch Standardwert: true Legt fest, ob Texteingabefeld für LONGTEXT-Spalten doppelte Größe haben soll.
-
$cfg['TextareaAutoSelect']
¶ Typ: boolesch Standardwert: false Legt fest, ob der gesamte Textbereich der Abfragebox beim Anklicken ausgewählt wird.
-
$cfg['EnableAutocompleteForTablesAndColumns']
¶ Typ: boolesch Standardwert: true Ob die automatische Vervollständigung für Tabellen- und Spaltennamen in einem beliebigen SQL-Abfragefeld aktiviert werden soll.
SQL-Abfragebox-Einstellungen¶
-
$cfg['SQLQuery']['Edit']
¶ Typ: boolesch Standardwert: true Ob ein Bearbeiten-Link angezeigt werden soll, um eine Abfrage in einer beliebigen SQL-Abfragebox zu ändern.
-
$cfg['SQLQuery']['Explain']
¶ Typ: boolesch Standardwert: true Ob ein Link zur Erklärung einer SELECT-Abfrage in einer beliebigen SQL-Abfragebox angezeigt werden soll.
-
$cfg['SQLQuery']['ShowAsPHP']
¶ Typ: boolesch Standardwert: true Ob ein Link angezeigt werden soll, um eine Abfrage in einem beliebigen SQL-Abfragefeld in PHP-Code zu stecken.
-
$cfg['SQLQuery']['Refresh']
¶ Typ: boolesch Standardwert: true Ob ein Link zum Aktualisieren einer Abfrage in einer beliebigen SQL-Abfragebox angezeigt werden soll.
Webserver-Verzeichnisse hochladen/speichern/importieren¶
Wenn PHP im abgesicherten Modus läuft, müssen alle Verzeichnisse dem gleichen Benutzer gehören wie der Besitzer der phpMyAdmin-Skripte.
Wenn das Verzeichnis, in dem phpMyAdmin installiert ist, einer open_basedir
Einschränkung unterliegt, müssen Sie ein temporäres Verzeichnis in einem Verzeichnis erstellen, auf das der PHP-Interpreter zugreifen kann.
Aus Sicherheitsgründen sollten alle Verzeichnisse außerhalb des vom Webserver veröffentlichten Baums liegen. Wenn Sie nicht vermeiden können, dass dieses Verzeichnis vom Webserver veröffentlicht wird, beschränken Sie den Zugriff darauf entweder durch die Konfiguration des Webservers (z.B. mit Hilfe von .htaccess oder web.config-Dateien) oder erzeugen Sie mindestens eine leere : file: index.html Datei, so dass eine Verzeichnisauflistung nicht möglich ist. Solange das Verzeichnis jedoch für den Webserver zugänglich ist, kann ein Angreifer Dateinamen erraten, um die Dateien herunterzuladen.
-
$cfg['UploadDir']
¶ Typ: Zeichenkette Standardwert: "
Der Name des Verzeichnisses, in das SQL Dateien mit anderen Mitteln als phpMyAdmin hochgeladen wurden (z.B. FTP). Diese Dateien sind in einer Dropdown-Box verfügbar, wenn Sie auf den Datenbank- oder Tabellennamen und dann auf die Registerkarte Importieren klicken.
Wenn Sie für jeden Benutzer ein anderes Verzeichnis wünschen, wird %u durch den Benutzernamen ersetzt.
Bitte beachten Sie, dass die Dateinamen die Endung „.sql“ haben müssen (oder „.sql.bz2“ oder „.sql.gz“, wenn die Unterstützung für komprimierte Formate aktiviert ist).
Diese Funktion ist nützlich, wenn Ihre Datei zu groß ist, um über HTTP hochgeladen zu werden oder wenn das Hochladen von Dateien in PHP deaktiviert ist.
Warnung
Bitte lesen Sie oben in diesem Kapitel (Webserver-Verzeichnisse hochladen/speichern/importieren) nach, wie Sie dieses Verzeichnis einrichten und wie Sie es sicher verwenden können.
Siehe auch
Für Alternativen siehe 1.16 Ich kann keine großen Dump-Dateien hochladen (Speicher-, HTTP- oder Timeout-Probleme)..
-
$cfg['SaveDir']
¶ Typ: Zeichenkette Standardwert: "
Der Name des Webserver-Verzeichnisses, in dem exportierte Dateien gespeichert werden können.
Wenn Sie für jeden Benutzer ein anderes Verzeichnis wünschen, wird %u durch den Benutzernamen ersetzt.
Bitte beachten Sie, dass das Verzeichnis existieren und für den Benutzer, der den Webserver betreibt, beschreibbar sein muss.
Warnung
Bitte lesen Sie oben in diesem Kapitel (Webserver-Verzeichnisse hochladen/speichern/importieren) nach, wie Sie dieses Verzeichnis einrichten und wie Sie es sicher verwenden können.
-
$cfg['TempDir']
¶ Typ: Zeichenkette Standardwert: './tmp/'
Der Name des Verzeichnisses, in dem temporäre Dateien gespeichert werden können. Es wird derzeit für verschiedene Zwecke verwendet:
- Der Vorlagen-Cache, der das Laden von Seiten beschleunigt.
- ESRI-shape-Dateien importieren, siehe 6.30 Import: Wie kann ich ESRI Shapefiles importieren?.
- Um die Einschränkungen von
`open_basedir
für hochgeladene Dateien zu umgehen, siehe 1.11 Ich bekomme eine ‚open_basedir restriction‘ beim Hochladen einer Datei aus dem Import Tab..
Dieses Verzeichnis sollte möglichst eingeschränkte Rechte haben, da der einzige Benutzer, der auf dieses Verzeichnis zugreifen soll, derjenige ist, der den Webserver betreibt. Wenn Sie über root-Rechte verfügen, machen Sie diesen Benutzer einfach zum Eigentümer dieses Verzeichnisses und machen Sie es nur über ihn zugänglich:
chown www-data:www-data tmp chmod 700 tmp
Wenn Sie den Besitzer des Verzeichnisses nicht ändern können, können Sie eine ähnliche Einrichtung mit ACL erreichen:
chmod 700 tmp setfacl -m "g:www-data:rwx" tmp setfacl -d -m "g:www-data:rwx" tmp
Wenn keines von beiden für Sie funktioniert, können Sie trotzdem auf das Verzeichnis chmod 777 anwenden, aber es könnte das Risiko mit sich bringen, dass andere Benutzer Daten in diesem Verzeichnis lesen und schreiben können.
Warnung
Bitte lesen Sie oben in diesem Kapitel (Webserver-Verzeichnisse hochladen/speichern/importieren) nach, wie Sie dieses Verzeichnis einrichten und wie Sie es sicher verwenden können.
Verschiedene Anzeigeeinstellungen¶
-
$cfg['RepeatCells']
¶ Typ: Integer Standardwert: 100 Wiederholen Sie die Überschriften alle X Zellen oder 0, um Überschriften zu deaktivieren.
-
$cfg['EditInWindow']
¶ Typ: boolesch Standardwert: true Siehe auch
Veraltet ab Version 4.3.0: This setting was removed.
-
$cfg['QueryWindowWidth']
¶ Typ: Integer Standardwert: 550 Veraltet ab Version 4.3.0: This setting was removed.
-
$cfg['QueryWindowHeight']
¶ Typ: Integer Standardwert: 310 Veraltet ab Version 4.3.0: This setting was removed.
-
$cfg['QueryHistoryDB']
¶ Typ: boolesch Standardwert: false
-
$cfg['QueryWindowDefTab']
¶ Typ: Zeichenkette Standardwert: 'sql'
Veraltet ab Version 4.3.0: This setting was removed.
-
$cfg['QueryHistoryMax']
¶ Typ: Integer Standardwert: 25 Wenn
$cfg['QueryHistoryDB']
auftrue
gesetzt ist, werden alle Ihre Abfragen in einer Tabelle protokolliert, die von Ihnen erstellt werden muss (siehe$cfg['Servers'][$i]['history']
). Wenn auf false gesetzt, werden alle Ihre Anfragen an das Formular angehängt, aber nur solange Ihr Fenster geöffnet ist, bleiben sie gespeichert.Wenn Sie das JavaScript-basierte Abfragefenster verwenden, wird es immer aktualisiert, wenn Sie auf eine neue Tabelle/DB klicken, um sie zu durchsuchen, und erhält den Fokus, wenn Sie auf Edit SQL klicken, nachdem Sie eine Abfrage verwendet haben. Sie können die Aktualisierung des Abfragefensters unterdrücken, indem Sie das Kästchen Do not overwrite this query from outside the window unter dem Abfragetextfeld markieren. Dann können Sie Tabellen/Datenbanken im Hintergrund durchsuchen, ohne den Inhalt des Textfelds zu verlieren, was besonders nützlich ist, wenn Sie eine Abfrage mit Tabellen erstellen, in denen Sie zuerst suchen müssen. Das Kontrollkästchen wird automatisch aktiviert, wenn Sie den Inhalt des Textbereichs ändern. Bitte deaktivieren Sie die Schaltfläche, wenn Sie auf jeden Fall möchten, dass das Abfragefenster aktualisiert wird, obwohl Sie Änderungen vorgenommen haben.
Wenn
$cfg['QueryHistoryDB']
auftrue
gesetzt ist, können Sie die Anzahl der gespeicherten Verlaufseinträge mit Hilfe von$cfg['QueryHistoryMax']
angeben.
Typ: boolesch Standardwert: true Neu in Version 6.0.0.
Allow users to create bookmarks that are available for all other users
-
$cfg['BrowseMIME']
¶ Typ: boolesch Standardwert: true Transformationen einschalten.
-
$cfg['MaxExactCount']
¶ Typ: Integer Standardwert: 50000 Für InnoDB-Tabellen bestimmt phpMyAdmin mit
SELECT COUNT
die genaue Anzahl der Zeilen. Wenn die ungefähre Anzahl der Zeilen, die vonSHOW TABLE STATUS
zurückgegeben wird, kleiner als dieser Wert ist, wirdSELECT COUNT
verwendet, andernfalls wird die ungefähre Anzahl verwendet.Geändert in Version 4.8.0: Der Standardwert wurde aus Performancegründen auf 50000 gesenkt.
Geändert in Version 4.2.6: Der Standardwert wurde auf 500000 geändert.
-
$cfg['MaxExactCountViews']
¶ Typ: Integer Standardwert: 0 Für VIEWs ist dieser Wert das Maximum, das mit einem
SELECT COUNT ... LIMIT'
angezeigt werden kann, da die genaue Zählung einen Einfluss auf die Performance haben könnte. Wenn Sie diesen Wert auf 0 setzen, wird jede Zeilenzählung umgangen.
-
$cfg['NaturalOrder']
¶ Typ: boolesch Standardwert: true Sortiert Datenbank- und Tabellennamen nach natürlicher Reihenfolge (z.B. t1, t2, t10). Derzeit im Navigations-Panel und in der Datenbankansicht für die Tabellenliste implementiert.
-
$cfg['InitialSlidersState']
¶ Typ: Zeichenkette Standardwert: 'closed'
Wenn auf
'closed'
gesetzt, befinden sich die visuellen Schieberegler zunächst in einem geschlossenen Zustand. Ein Wert von'open'
bewirkt das Gegenteil. Um alle visuellen Schieberegler vollständig zu deaktivieren, verwenden Sie'disabled'
.
-
$cfg['UserprefsDisallow']
¶ Typ: Feld Standardwert: array() Contains names of configuration options (keys in
$cfg
array) that users can’t set through user preferences. For possible values, refer to classes undersrc/Config/Forms/User/
.
-
$cfg['UserprefsDeveloperTab']
¶ Typ: boolesch Standardwert: false Neu in Version 3.4.0.
Aktiviert in den Benutzereinstellungen eine Registerkarte mit Optionen für Entwickler von phpMyAdmin.
Seitentitel¶
The page title displayed by your browser’s window or tab title bar can be customized. You can use 6.27 Welche Formatstrings kann ich verwenden?. The following four options allow customizing various parts of the phpMyAdmin interface. Note that the login page title cannot be changed.
-
$cfg['TitleTable']
¶ Typ: Zeichenkette Standardwert: '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@'
-
$cfg['TitleDatabase']
¶ Typ: Zeichenkette Standardwert: '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@'
-
$cfg['TitleServer']
¶ Typ: Zeichenkette Standardwert: '@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@'
-
$cfg['TitleDefault']
¶ Typ: Zeichenkette Standardwert: '@HTTP_HOST@ | @PHPMYADMIN@'
Design-Manager-Einstellungen¶
-
$cfg['ThemeManager']
¶ Typ: boolesch Standardwert: true Ermöglicht vom Benutzer auswählbare Designs. Siehe 2.7 Designs verwenden und erstellen.
-
$cfg['ThemeDefault']
¶ Typ: Zeichenkette Standardwert: 'pmahomme'
The default theme (a subdirectory under
./public/themes/
).
-
$cfg['ThemePerServer']
¶ Typ: boolesch Standardwert: false Ob für jeden Server ein anderes Design zugelassen werden soll.
-
$cfg['FontSize']
¶ Typ: Zeichenkette Standardwert: ‚82%‘ Veraltet ab Version 5.0.0: Diese Einstellung wurde entfernt, da der Browser effizienter ist, so dass diese Option nicht mehr benötigt wird.
Die zu verwendende Schriftgröße wird in CSS angegeben.
Standardabfragen¶
-
$cfg['DefaultQueryTable']
¶ Typ: Zeichenkette Standardwert: 'SELECT * FROM @TABLE@ WHERE 1'
-
$cfg['DefaultQueryDatabase']
¶ Typ: Zeichenkette Standardwert: "
Standardabfragen, die in Abfrageboxen angezeigt werden, wenn der Benutzer keine angegeben hat. Sie können Standard 6.27 Welche Formatstrings kann ich verwenden? verwenden.
MySQL-Einstellungen¶
-
$cfg['DefaultFunctions']
¶ Typ: Feld Standardwert: array('FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'GeomFromText', 'FUNC_UUID' => 'UUID', 'first_timestamp' => 'NOW')
Functions selected by default when inserting/changing row, Functions are defined for meta types as (
FUNC_NUMBER
,FUNC_DATE
,FUNC_CHAR
,FUNC_SPATIAL
,FUNC_UUID
) and forfirst_timestamp
, which is used for first timestamp column in table.Beispiel-Konfiguration
$cfg['DefaultFunctions'] = [ 'FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'ST_GeomFromText', 'FUNC_UUID' => 'UUID', 'first_timestamp' => 'UTC_TIMESTAMP', ];
Standardoptionen für Transformationen¶
-
$cfg['DefaultTransformations']
¶ Typ: Feld Standardwert: Ein Array mit folgenden Schlüsselwerten
-
$cfg['DefaultTransformations']['Substring']
¶ Typ: Feld Standardwert: array(0, ‚all‘, ‚…‘)
-
$cfg['DefaultTransformations']['Bool2Text']
¶ Typ: Feld Standardwert: array(‚T‘, ‚F‘)
-
$cfg['DefaultTransformations']['External']
¶ Typ: Feld Standardwert: array(0, ‚-f /dev/null -i -wrap -q‘, 1, 1)
-
$cfg['DefaultTransformations']['PreApPend']
¶ Typ: Feld Standardwert: array(‚‘, ‚‘)
-
$cfg['DefaultTransformations']['Hex']
¶ Typ: Feld Standardwert: array(‚2‘)
-
$cfg['DefaultTransformations']['DateFormat']
¶ Typ: Feld Standardwert: array(0, ‚‘, ‚local‘)
-
$cfg['DefaultTransformations']['Inline']
¶ Typ: Feld Standardwert: array(‚100‘, 100)
-
$cfg['DefaultTransformations']['TextImageLink']
¶ Typ: Feld Standardwert: array(‚‘, 100, 50)
-
$cfg['DefaultTransformations']['TextLink']
¶ Typ: Feld Standardwert: array(‚‘, ‚‘, ‚‘)
Konsoleneinstellungen¶
Bemerkung
Diese Einstellungen werden meist vom Benutzer geändert.
-
$cfg['Console']['StartHistory']
¶ Typ: boolesch Standardwert: false Abfrageverlauf beim Start anzeigen
-
$cfg['Console']['AlwaysExpand']
¶ Typ: boolesch Standardwert: false Abfragenachrichten immer aufklappen
-
$cfg['Console']['CurrentQuery']
¶ Typ: boolesch Standardwert: true Aktuelle Abfrage anzeigen
-
$cfg['Console']['EnterExecutes']
¶ Typ: boolesch Standardwert: false Abfragen auf Enter ausführen und neue Zeile mit Shift+Enter einfügen
-
$cfg['Console']['DarkTheme']
¶ Typ: boolesch Standardwert: false Zum dunklen Motiv wechseln
-
$cfg['Console']['Mode']
¶ Typ: Zeichenkette Standardwert: ‚info‘ Konsolenmodus
-
$cfg['Console']['Height']
¶ Typ: Integer Standardwert: 92 Konsolenhöhe
Entwickler¶
Warnung
Diese Einstellungen können große Auswirkungen auf die Leistung oder Sicherheit haben.
-
$cfg['environment']
¶ Typ: Zeichenkette Standardwert: 'production'
Legt die Arbeitsumgebung fest.
Dies muss nur geändert werden, wenn Sie phpMyAdmin selbst weiterentwickeln. Der
Entwicklung
-Modus kann Fehlersuchinformationen an manchen Stellen anzeigen.Mögliche Werte sind
'production'
oder'development'
.
-
$cfg['DBG']
¶ Typ: Feld Standardwert: []
-
$cfg['DBG']['sql']
¶ Typ: boolesch Standardwert: false Aktivieren Sie die Anzeige von Protokollierungsabfragen und Ausführungszeiten in der Registerkarte „Debug SQL“ der Konsole.
-
$cfg['DBG']['sqllog']
¶ Typ: boolesch Standardwert: false Aktivieren Sie die Protokollierung von Abfragen und Ausführungszeiten im Syslog. Benötigt
$cfg['DBG']['sql']
um aktiviert zu werden.
-
$cfg['DBG']['demo']
¶ Typ: boolesch Standardwert: false Aktivieren Sie diese Option, damit sich der Server als Demo-Server präsentieren kann. Dies wird für den phpMyAdmin Demo-Server verwendet.
Es ändert sich derzeit folgendes Verhalten:
- Es gibt eine Willkommensnachricht auf der Hauptseite.
- In der Fußzeile existieren Informationen über den Demo-Server und die verwendete Git-Revision.
- Das Setup-Skript ist auch bei bestehender Konfiguration aktiviert.
- Das Setup versucht nicht, sich mit dem MySQL-Server zu verbinden.
-
$cfg['DBG']['simple2fa']
¶ Typ: boolesch Standardwert: false Kann zum Testen der Zwei-Faktor-Authentifizierung mit Einfache Zwei-Faktor-Authentifizierung verwendet werden.
Beispiele¶
Nachfolgend einige Konfigurationsschnipsel für typische Einstellungen von phpMyAdmin.
Einfaches Beispiel¶
Beispielkonfigurationsdatei, die nach config.inc.php
kopiert werden kann, um ein Kern-Konfigurationslayout zu erhalten; es wird mit phpMyAdmin als config.sample.inc.php
verteilt. Bitte beachten Sie, dass sie nicht alle Konfigurationsoptionen enthält, sondern nur die am häufigsten verwendeten.
<?php
/**
* phpMyAdmin sample configuration, you can use it as base for
* manual configuration. For easier setup you can use setup/
*
* All directives are explained in documentation in the doc/ folder
* or at <https://docs.phpmyadmin.net/>.
*/
declare(strict_types=1);
/**
* This is needed for cookie based authentication to encrypt the cookie.
* Needs to be a 32-bytes long string of random bytes. See FAQ 2.10.
*/
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/**
* Servers configuration
*/
$i = 0;
/**
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/**
* phpMyAdmin configuration storage settings.
*/
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
/**
* End of servers configuration
*/
/**
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
/**
* Whether to display icons or text or both icons and text in table row
* action segment. Value can be either of 'icons', 'text' or 'both'.
* default = 'both'
*/
//$cfg['RowActionType'] = 'icons';
/**
* Defines whether a user should be displayed a "show all (records)"
* button in browse mode or not.
* default = false
*/
//$cfg['ShowAll'] = true;
/**
* Number of rows displayed when browsing a result set. If the result
* set contains more rows, "Previous" and "Next".
* Possible values: 25, 50, 100, 250, 500
* default = 25
*/
//$cfg['MaxRows'] = 50;
/**
* Disallow editing of binary fields
* valid values are:
* false allow editing
* 'blob' allow editing except for BLOB fields
* 'noblob' disallow editing except for BLOB fields
* 'all' disallow editing
* default = 'blob'
*/
//$cfg['ProtectBinary'] = false;
/**
* Default language to use, if not browser-defined or user-defined
* (you find all languages in the locale folder)
* uncomment the desired line:
* default = 'en'
*/
//$cfg['DefaultLang'] = 'en';
//$cfg['DefaultLang'] = 'de';
/**
* How many columns should be used for table display of a database?
* (a value larger than 1 results in some information being hidden)
* default = 1
*/
//$cfg['PropertiesNumColumns'] = 2;
/**
* Set to true if you want DB-based query history.If false, this utilizes
* JS-routines to display query history (lost by window close)
*
* This requires configuration storage enabled, see above.
* default = false
*/
//$cfg['QueryHistoryDB'] = true;
/**
* When using DB-based query history, how many entries should be kept?
* default = 25
*/
//$cfg['QueryHistoryMax'] = 100;
/**
* Whether or not to query the user before sending the error report to
* the phpMyAdmin team when a JavaScript error occurs
*
* Available options
* ('ask' | 'always' | 'never')
* default = 'ask'
*/
//$cfg['SendErrorReports'] = 'always';
/**
* 'URLQueryEncryption' defines whether phpMyAdmin will encrypt sensitive data from the URL query string.
* 'URLQueryEncryptionSecretKey' is a 32 bytes long secret key used to encrypt/decrypt the URL query string.
*/
//$cfg['URLQueryEncryption'] = true;
//$cfg['URLQueryEncryptionSecretKey'] = '';
/**
* You can find more configuration options in the documentation
* in the doc/ folder or at <https://docs.phpmyadmin.net/>.
*/
Warnung
Verwenden Sie den Steuerungsbenutzer ‚pma‘ nicht, wenn er noch nicht existiert und verwenden Sie ‚pmapass‘ nicht als Passwort.
Beispiel für Anmelde-Authentifizierung¶
Dieses Beispiel verwendet examples/signon.php
, um die Verwendung von Signon-Authentifizierungsmethode zu demonstrieren:
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'signon';
$cfg['Servers'][$i]['SignonSession'] = 'SignonSession';
$cfg['Servers'][$i]['SignonURL'] = 'examples/signon.php';
Beispiel für auf IP-Adressen beschränkte automatische Anmeldung¶
Wenn Sie sich beim lokalen Zugriff auf phpMyAdmin automatisch anmelden möchten, während Sie beim Remote-Zugriff nach einem Passwort gefragt werden, können Sie dies mit folgendem Snippet erreichen:
if ($_SERVER['REMOTE_ADDR'] === '127.0.0.1') {
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'yourpassword';
} else {
$cfg['Servers'][$i]['auth_type'] = 'cookie';
}
Bemerkung
Die Filterung nach IP-Adressen ist über das Internet nicht zuverlässig, verwenden Sie sie nur für lokale Adressen.
Beispiel für den Einsatz mehrerer MySQL-Server¶
Sie können beliebig viele Server mit $cfg['Servers']
konfigurieren, folgendes Beispiel zeigt zwei davon:
<?php
// The string is a hexadecimal representation of a 32-bytes long string of random bytes.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
$i = 0;
$i++; // server 1 :
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'no1';
$cfg['Servers'][$i]['host'] = 'localhost';
// more options for #1 ...
$i++; // server 2 :
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'no2';
$cfg['Servers'][$i]['host'] = 'remote.host.addr';//or ip:'10.9.8.1'
// this server must allow remote clients, e.g., host 10.9.8.%
// not only in mysql.host but also in the startup configuration
// more options for #2 ...
// end of server sections
$cfg['ServerDefault'] = 0; // to choose the server on startup
// further general options ...
Google Cloud SQL mit SSL¶
Um eine Verbindung zu Google Could SQL herzustellen, müssen Sie derzeit die Zertifikatsüberprüfung deaktivieren. Dies wird dadurch verursacht, dass das Zertifikat für einen CN ausgestellt wird, der mit Ihrem Instanznamen übereinstimmt, Sie sich jedoch mit einer IP-Adresse verbinden und PHP versucht, diese beiden abzugleichen. Bei der Überprüfung erhalten Sie eine Fehlermeldung wie:
Peer certificate CN=`api-project-851612429544:pmatest' did not match expected CN=`8.8.8.8'
Warnung
Mit deaktivierter Verifizierung ist Ihr Datenverkehr verschlüsselt, aber Sie sind anfällig für man in the middle Angriffe.
Um phpMyAdmin mit Google Cloud SQL über SSL zu verbinden, laden Sie die Client- und Server-Zertifikate herunter und weisen Sie phpMyAdmin an, diese zu verwenden:
// IP address of your instance
$cfg['Servers'][$i]['host'] = '8.8.8.8';
// Use SSL for connection
$cfg['Servers'][$i]['ssl'] = true;
// Client secret key
$cfg['Servers'][$i]['ssl_key'] = '../client-key.pem';
// Client certificate
$cfg['Servers'][$i]['ssl_cert'] = '../client-cert.pem';
// Server certification authority
$cfg['Servers'][$i]['ssl_ca'] = '../server-ca.pem';
// Disable SSL verification (see above note)
$cfg['Servers'][$i]['ssl_verify'] = false;
Amazon RDS Aurora mit SSL¶
Um phpMyAdmin mit einer Amazon RDS Aurora MySQL-Datenbankinstanz unter Verwendung von SSL zu verbinden, laden Sie das CA-Serverzertifikat herunter und weisen phpMyAdmin an, es zu verwenden:
// Address of your instance
$cfg['Servers'][$i]['host'] = 'replace-me-cluster-name.cluster-replace-me-id.replace-me-region.rds.amazonaws.com';
// Use SSL for connection
$cfg['Servers'][$i]['ssl'] = true;
// You need to have the region CA file and the authority CA file (2019 edition CA for example) in the PEM bundle for it to work
$cfg['Servers'][$i]['ssl_ca'] = '../rds-combined-ca-bundle.pem';
// Enable SSL verification
$cfg['Servers'][$i]['ssl_verify'] = true;
Siehe auch
SSL für die Verbindung zum Datenbankserver verwenden,
$cfg['Servers'][$i]['ssl']
,
$cfg['Servers'][$i]['ssl_ca']
,
$cfg['Servers'][$i]['ssl_verify']
Siehe auch
- Current RDS CA bundle for all regions https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
- The RDS CA (2019 edition) for the region eu-west-3 without the parent CA https://s3.amazonaws.com/rds-downloads/rds-ca-2019-eu-west-3.pem
- List of available Amazon RDS CA files
- Amazon MySQL Aurora security guide
- Amazon certificates bundles per region
reCaptcha, das hCaptcha verwendet¶
$cfg['CaptchaApi'] = 'https://www.hcaptcha.com/1/api.js';
$cfg['CaptchaCsp'] = 'https://hcaptcha.com https://*.hcaptcha.com';
$cfg['CaptchaRequestParam'] = 'h-captcha';
$cfg['CaptchaResponseParam'] = 'h-captcha-response';
$cfg['CaptchaSiteVerifyURL'] = 'https://hcaptcha.com/siteverify';
// This is the secret key from hCaptcha dashboard
$cfg['CaptchaLoginPrivateKey'] = '0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
// This is the site key from hCaptcha dashboard
$cfg['CaptchaLoginPublicKey'] = 'xxx-xxx-xxx-xxx-xxxx';
Siehe auch
Siehe auch
reCaptcha using Turnstile¶
$cfg['CaptchaMethod'] = 'checkbox';
$cfg['CaptchaApi'] = 'https://challenges.cloudflare.com/turnstile/v0/api.js';
$cfg['CaptchaCsp'] = 'https://challenges.cloudflare.com https://static.cloudflareinsights.com';
$cfg['CaptchaRequestParam'] = 'cf-turnstile';
$cfg['CaptchaResponseParam'] = 'cf-turnstile-response';
$cfg['CaptchaLoginPublicKey'] = '0xxxxxxxxxxxxxxxxxxxxxx';
$cfg['CaptchaLoginPrivateKey'] = '0x4AAAAAAAA_xx_xxxxxxxxxxxxxxxxxxxx';
$cfg['CaptchaSiteVerifyURL'] = 'https://challenges.cloudflare.com/turnstile/v0/siteverify';
Siehe auch
Siehe auch
reCaptcha using Google reCaptcha v2/v3¶
$cfg['CaptchaLoginPublicKey'] = 'xxxxxxxxxxxxxxxx-xxxxxxxxxxxx';
$cfg['CaptchaLoginPrivateKey'] = 'xxxxxxxxx-xxxxxxxxxxxxxx';
// Remove it if you dot not want the checkbox mode
$cfg['CaptchaMethod'] = 'checkbox';
Siehe auch
Siehe auch
Benutzerhandbuch¶
phpMyAdmin konfigurieren¶
Es gibt viele Konfigurationseinstellungen, mit denen die Schnittstelle angepasst werden kann. Diese Einstellungen sind in Konfiguration beschrieben. Es gibt mehrere Ebenen der Konfiguration.
Die globalen Einstellungen können in config.inc.php
konfiguriert werden wie in Konfiguration beschrieben. Dies ist nur eine Möglichkeit, Verbindungen zu Datenbanken und anderen systemweiten Einstellungen zu konfigurieren.
Darüber hinaus gibt es Benutzereinstellungen, die in phpMyAdmin-Konfigurationsspeicher persistent gespeichert werden können, eventuell automatisch über Null-Konfiguration konfiguriert. Wenn die phpMyAdmin-Konfigurationsspeicher nicht konfiguriert sind, werden die Einstellungen in den Sitzungsdaten zwischengespeichert; diese sind nur bis zum Abmelden gültig.
Sie können die Benutzerkonfiguration auch zur weiteren Verwendung speichern, entweder als Datei herunterladen oder im lokalen Speicher des Browsers ablegen. Sie finden diese beiden Optionen in der Registerkarte Settings. Die im lokalen Speicher des Browsers gespeicherten Einstellungen werden beim Einloggen in phpMyAdmin automatisch zum Laden angeboten.
Zwei-Faktor-Authentifizierung¶
Neu in Version 4.8.0.
Seit phpMyAdmin 4.8.0 können Sie die Zwei-Faktor-Authentifizierung für die Anmeldung konfigurieren. Dazu müssen Sie zunächst die phpMyAdmin-Konfigurationsspeicher konfigurieren. Danach kann sich jeder Benutzer für einen zweiten Authentifizierungsfaktor im guilabel:`Einstellungen entscheiden.
Wenn Sie phpMyAdmin aus dem Git-Quellcode-Repository ausführen, müssen die Abhängigkeiten manuell installiert werden; die typische Methode dazu ist der Befehl:
composer require pragmarx/google2fa-qrcode bacon/bacon-qr-code
Oder bei Verwendung eines Hardware-Sicherheitsschlüssels mit FIDO U2F:
composer require code-lts/u2f-php-server
Authentifizierungsanwendung (2FA)¶
Die Verwendung von Anwendungen zur Authentifizierung ist ein weit verbreiteter Ansatz, der auf HOTP und TOTP basiert. Es basiert auf der Übertragung des privaten Schlüssels von phpMyAdmin an die Authentifizierungsanwendung und die Anwendung ist dann in der Lage, einen Zeitcode basierend auf diesem Schlüssel zu generieren. Die einfachste Methode, den Schlüssel in die Anwendung von phpMyAdmin einzugeben, ist das Scannen eines QR-Codes.
Es gibt Dutzende von Anwendungen für Mobiltelefone zur Umsetzung dieser Standards, die am häufigsten verwendet werden:
Hardware-Sicherheitsschlüssel (FIDO U2F)¶
Die Verwendung von Hardware-Token gilt als sicherer als eine softwarebasierte Lösung. phpMyAdmin unterstützt FIDO U2F Token.
Es gibt mehrere Hersteller dieser Token, z.B.:
Einfache Zwei-Faktor-Authentifizierung¶
Diese Authentifizierung ist nur für Test- und Demostrationszwecke enthalten, da sie keine Zwei-Faktor-Authentifizierung bietet, sondern den Benutzer lediglich auffordert, die Anmeldung durch Klicken auf die Schaltfläche zu bestätigen.
Es sollte nicht produktiv verwendet werden und ist deaktiviert, wenn $cfg['DBG']['simple2fa']
nicht gesetzt ist.
Transformationen¶
Bemerkung
You need to have configured the phpMyAdmin-Konfigurationsspeicher to use the transformations feature.
Einführung¶
To enable transformations, you have to set up the column_info
table and the proper directives. Please see the Konfiguration on how to do so.
phpMyAdmin besitzt zwei unterschiedliche Arten von Transformationen: Browser-Anzeigetransformationen, die nur beeinflussen, wie die Daten angezeigt werden, wenn sie durch phpMyAdmin abgerufen werden und Eingabe-Transformationen, die einen Wert beeinflussen, bevor sie über phpMyAdmin eingetragen werden. Sie können unterschiedliche Transformationen auf die Inhalte jeder Spalte anwenden. Jede Transformation besitzt Optionen um festzulegen, wie die gespeicherten Daten beeinflusst werden.
Say you have a column filename
which contains a filename. Normally
you would see in phpMyAdmin only this filename. Using display transformations
you can transform that filename into a HTML link, so you can click
inside of the phpMyAdmin structure on the column’s link and will see
the file displayed in a new browser window. Using transformation
options you can also specify strings to append/prepend to a string or
the format you want the output stored in.
Für einen allgemeinen Überblick aller verfügbaren Transformationen und ihrer Optionen können Sie entweder die Ändern
-Verknüpfung einer vorhandenen Spalte, oder die im Dialog zur Erzeugung einer neue Spalte, verwenden. In jedem Fall gibt es eine Verknüpfung auf dieser Spaltenstrukturseite für „Browser-Anzeigetransformation“ und „Eingabetransformation“ die weitere Informationen zu jeder Transformation zeigt, die auf Ihrem System verfügbar ist.
Eine Anleitung, wie man Transformationen effektiv einsetzt, finden Sie auf der offiziellen phpMyAdmin-Homepage unter Link-Sektion.
Verbrauch¶
Go to the table structure page (reached by clicking on the ‚Structure‘ link for a table). There click on „Change“ (or the change icon) and there you will see the five transformation–related fields at the end of the line. They are called ‚Media type‘, ‚Browser transformation‘ and ‚Transformation options‘.
- The field ‚Media type‘ is a drop-down field. Select the Media type that corresponds to the column’s contents. Please note that many transformations are inactive until a Media type is selected.
- The field ‚Browser display transformation‘ is a drop-down field. You can choose from a hopefully growing amount of pre-defined transformations. See below for information on how to build your own transformation. There are global transformations and mimetype-bound transformations. Global transformations can be used for any mimetype. They will take the mimetype, if necessary, into regard. Mimetype-bound transformations usually only operate on a certain mimetype. There are transformations which operate on the main mimetype (like ‚image‘), which will most likely take the subtype into regard, and those who only operate on a specific subtype (like ‚image/jpeg‘). You can use transformations on mimetypes for which the function was not defined for. There is no security check for you selected the right transformation, so take care of what the output will be like.
- The field ‚Browser display transformation options‘ is a free-type textfield. You have
to enter transform-function specific options here. Usually the
transforms can operate with default options, but it is generally a
good idea to look up the overview to see which options are necessary.
Much like the ENUM/SET-Fields, you have to split up several options
using the format ‚a‘,‘b‘,‘c‘,…(NOTE THE MISSING BLANKS). This is
because internally the options will be parsed as an array, leaving the
first value the first element in the array, and so forth. If you want
to specify a MIME character set you can define it in the
transformation_options. You have to put that outside of the pre-
defined options of the specific mime-transform, as the last value of
the set. Use the format „‘; charset=XXX‘“. If you use a transform, for
which you can specify 2 options and you want to append a character
set, enter „‚first parameter‘,‘second parameter‘,‘charset=us-ascii‘“.
You can, however use the defaults for the parameters: „‘‘,‘‘,‘charset
=us-ascii‘“. The default options can be configured using
$cfg['DefaultTransformations']
. - ‚Input transformation‘ is another drop-down menu that corresponds exactly with the instructions above for „Browser display transformation“ except these these affect the data before insertion in to the database. These are most commonly used to either provide a specialized editor (for example, using the phpMyAdmin SQL editor interface) or selector (such as for uploading an image). It’s also possible to manipulate the data such as converting an IPv4 address to binary or parsing it through a regular expression.
- Finally, ‚Input transformation options‘ is the equivalent of the „Browser display transformation options“ section above and is where optional and required parameters are entered.
Dateistruktur¶
All specific transformations for mimetypes are defined through class
files in the directory src/Plugins/Transformations/
. Each of
them extends a certain transformation abstract class declared in
src/Plugins/Transformations/Abs
.
They are stored in files to ease customization and to allow easy adding of new or custom transformations.
Because the user cannot enter their own mimetypes, it is kept certain that the transformations will always work. It makes no sense to apply a transformation to a mimetype the transform-function doesn’t know to handle.
There is a file called src/Plugins/Transformations.php
that provides some
basic functions which can be included by any other transform function.
Die Dateinamenskonvention lautet [Mimetype]_[Subtype]_[Transformationsname].php
, während die von ihr erweiterte abstract-Klasse den Namen [Transformationsname]TransformationsPlugin
hat. Alle Methoden, die von einem Transformations-Plugin implementiert werden müssen, sind:
- getMIMEType() und getMIMESubtype() in der Hauptklasse;
- getName(), getInfo() und applyTransformation() in der erweiterten abstrakten Klasse.
Die Methoden getMIMEType(), getMIMESubtype() und getName() geben den Namen des MIME-Typs, des MIME-Subtyps und der Transformation entsprechend zurück. getInfo() gibt die Beschreibung der Transformation und mögliche Optionen zurück, die sie erhalten kann und applyTransformation() ist die Methode, die die eigentliche Arbeit des Transformations-Plugins ausführt.
Please see the src/Plugins/Transformations/TEMPLATE
and
src/Plugins/Transformations/TEMPLATE_ABSTRACT
files for adding
your own transformation plug-in. You can also generate a new
transformation plug-in (with or without the abstract transformation
class), by using
scripts/transformations_generator_plugin.sh
or
scripts/transformations_generator_main_class.sh
.
Die Methode applyTransformation() bekommt immer drei Variablen übergeben:
- $buffer - Enthält den Text in der Tabellenspalte. Das ist der Text den Sie verändern wollen.
- $options - Enthält alle vom Benutzer übergebenen Parameter für die Transformationsfunktion als Array.
- $meta - Enthält ein Objekt mit Informationen über die Spalte. Die Daten stammen aus der Ausgabe der Funktion mysql_fetch_field(). Das bedeutet, dass alle Objekteigenschaften, die auf der Handbuchseite beschrieben sind, in dieser Variable verfügbar sind und verwendet werden können, um eine Spalte entsprechend in unsigned/zerofill/not_null/…. Eigenschaften zu transformieren. Die Variable $meta->mimetype enthält den ursprünglichen Media type der Spalte (z.B. ‚text/plain‘, ‚image/jpeg‘ usw.)
Lesezeichen¶
Bemerkung
Sie müssen die Funktion phpMyAdmin-Konfigurationsspeicher für die Verwendung von Lesezeichen konfiguriert haben.
Speichern von Lesezeichen¶
Jede ausgeführte Abfrage kann auf der Seite, auf der die Ergebnisse angezeigt werden, als Lesezeichen markiert werden. Sie finden eine Schaltfläche mit der Bezeichnung SQL-Abfrage speichern am Ende der Seite. Sobald Sie ein Lesezeichen gespeichert haben, wird diese Abfrage mit der Datenbank verknüpft. Sie können nun auf jeder Seite, auf der die Suchbox für diese Datenbank erscheint, auf ein Dropdown-Menü für Lesezeichen zugreifen.
Variablen in Lesezeichen¶
Innerhalb einer Abfrage können Sie auch Platzhalter für Variablen hinzufügen. Dies geschieht durch das Einfügen von SQL-Kommentaren zwischen /*
und */
. Die spezielle Zeichenkette [VARIABLE{variable-nummer}]
wird innerhalb der Kommentare verwendet. Beachten Sie, dass die gesamte Abfrage abzüglich der SQL-Kommentare selbst gültig sein muss, da Sie sie sonst nicht als Lesezeichen speichern können. Beachten Sie auch, dass der Text ‚VARIABLE‘ zwischen Groß- und Kleinschreibung unterscheidet.
Wenn Sie das Lesezeichen ausführen, wird alles, was Sie in die Variablen-Eingabefelder auf der Abfragebox-Seite eingegeben haben, die Zeichenfolgen /*[VARIABLE{variable-number}]*/
in der gespeicherten Abfrage ersetzen.
Denken Sie auch daran, dass alles andere in der `/*[VARIABLE{variable-number}]*/
Zeichenkette für Ihre Abfrage so bleibt, wie es ist, aber von den /**/
Zeichen befreit wird. Also können Sie benutzen:
/*, [VARIABLE1] AS myname */
was erweitert wird zu
, VARIABLE1 as myname
in Ihrer Abfrage, wobei VARIABLE1 die Zeichenkette ist, die Sie im Eingabefeld Variable 1 eingegeben haben.
Ein komplexeres Beispiel. Angenommen, Sie haben diese Abfrage gespeichert:
SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE1]%' */
Wenn Sie „phpMyAdmin“ als Variable für die gespeicherte Abfrage eingeben möchten, dann wird die vollständige Abfrage sein:
SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'
BEACHTEN SIE DIE ABWESENHEIT VON LEERZEICHEN innerhalb des /**/
Konstrukts. Alle dort eingefügten Leerzeichen werden später auch als Leerzeichen in Ihre Abfrage eingefügt und können zu unerwarteten Ergebnissen führen, insbesondere bei Verwendung der Variablenerweiterung innerhalb eines „LIKE ‚‘“-Ausdrucks.
Eine Tabelle über ein Lesezeichen durchsuchen¶
Wenn ein Lesezeichen den gleichen Namen wie die Tabelle hat, wird es als Abfrage beim Durchsuchen dieser Tabelle verwendet.
Benutzerverwaltung¶
Die Benutzerverwaltung ist der Steuerungsprozess, welche Benutzer sich mit dem MySQL-Server verbinden dürfen und welche Rechte sie auf die Datenbanken haben. phpMyAdmin übernimmt nicht die Benutzerverwaltung, sondern gibt den Benutzernamen und das Passwort an MySQL weiter, das dann bestimmt, ob ein Benutzer eine bestimmte Aktion ausführen darf. In phpMyAdmin haben Administratoren die volle Kontrolle über das Anlegen von Benutzern, das Anzeigen und Bearbeiten von Rechten für bestehende Benutzer und das Entfernen von Benutzern.
Within phpMyAdmin, user management is controlled via the User accounts tab from the main page. Users can be created, edited, and removed.
Neuen Benutzer anlegen¶
To create a new user, click the Add user account link near the bottom of the User accounts page (you must be a „superuser“, e.g., user „root“). Use the textboxes and drop-downs to configure the user to your particular needs. You can then select whether to create a database for that user and grant specific global privileges. Once you’ve created the user (by clicking Go), you can define that user’s permissions on a specific database (don’t grant global privileges in that case). In general, users do not need any global privileges (other than USAGE), only permissions for their specific database.
Einen bestehenden Benutzer bearbeiten¶
To edit an existing user, simply click the pencil icon to the right of that user in the User accounts page. You can then edit their global- and database-specific privileges, change their password, or even copy those privileges to a new user.
Löschen eines Benutzers¶
From the User accounts page, check the checkbox for the user you wish to remove, select whether or not to also remove any databases of the same name (if they exist), and click Go.
Benutzer Berechtigungen für eine bestimmte Datenbank zuweisen¶
Benutzer werden den Datenbanken zugeordnet, indem der Benutzerdatensatz (über den Link Users accounts auf der Startseite) bearbeitet wird. Wenn Sie einen Benutzer speziell für eine bestimmte Tabelle anlegen, müssen Sie zuerst den Benutzer anlegen (ohne globale Berechtigungen) und dann zurückgehen und diesen Benutzer bearbeiten, um die Tabelle und die Berechtigungen für die einzelne Tabelle hinzuzufügen.
Tabellenverknüpfungen¶
phpMyAdmin erlaubt, wenn verfügbar, Beziehungen (ähnlich wie Fremdschlüssel) mit MySQL-nativen (InnoDB) Methoden und greift bei Bedarf auf spezielle Funktionen von phpMyAdmin zurück. Es gibt zwei Möglichkeiten, diese Beziehungen zu bearbeiten, mit der Relationsansicht und dem Drag-and-Drop Designer - beide werden auf dieser Seite erklärt.
Bemerkung
Sie müssen die phpMyAdmin-Konfigurationsspeicher für die Verwendung von Nur-phpMyAdmin-Beziehungen konfiguriert haben.
Technische Informationen¶
Derzeit ist InnoDB der einzige MySQL-Tabellentyp, der nativ Beziehungen unterstützt. Bei Verwendung einer InnoDB-Tabelle erzeugt phpMyAdmin echte InnoDB-Beziehungen, die von MySQL erzwungen werden, unabhängig davon, welche Anwendung auf die Datenbank zugreift. Im Falle eines anderen Tabellentyps erzwingt phpMyAdmin die Beziehungen intern und diese Beziehungen werden auf keine andere Anwendung angewendet.
Beziehungsansicht¶
Damit es funktioniert, müssen Sie zuerst das [[pmadb|pmadb]] erstellen. Wählen Sie dann die Seite „Struktur“ einer Tabelle aus. Unterhalb der Tabellendefinition wird ein Link mit dem Namen „Relationsansicht“ angezeigt. Wenn Sie auf diesen Link klicken, wird eine Seite angezeigt, auf der Sie einen Link zu einer anderen Tabelle für (die meisten) Felder erstellen können. Nur PRIMÄRE TASTEN werden dort angezeigt, wenn also das Feld, auf das Sie sich beziehen, nicht angezeigt wird, machen Sie höchstwahrscheinlich etwas falsch. Das Dropdown-Feld unten ist das Feld, das als Name für einen Datensatz verwendet wird.
Beispiel einer Beziehungsansicht¶


Angenommen, Sie haben Kategorien und Links und eine Kategorie kann mehrere Links enthalten. Ihre Tabellenstruktur würde etwa so aussehen:
- category.category_id (muss eindeutig sein)
- category.name
- link.link_id
- link.category_id
- link.uri.
Öffnen Sie die Beziehungsansicht (unterhalb der Tabellenstruktur) für die Tabelle link und für das Feld category_id wählen Sie category.category_id als Stammsatz.
Wenn Sie nun die Verknüpfungstabelle durchsuchen, ist das Feld category_id ein anklickbarer Hyperlink zum entsprechenden Kategoriedatensatz. Aber Sie können nur die category_id sehen, nicht den Namen der Kategorie.

Um dies zu beheben, öffnen Sie die Beziehungsansicht der Kategorie-Tabelle und wählen Sie in der Dropdown-Liste unten „Name“. Wenn Sie nun die Verknüpfungstabelle erneut durchsuchen und mit der Maus über den Hyperlink category_id fahren, wird der Wert der entsprechenden Kategorie als Tooltip angezeigt.

Designer¶
Die Designer-Funktion ist eine grafische Möglichkeit, phpMyAdmin-Beziehungen zu erstellen, zu bearbeiten und anzuzeigen. Diese Beziehungen sind kompatibel mit denen, die in der Beziehungsansicht von phpMyAdmin erstellt wurden.
Um dieses Feature nutzen zu können, benötigen Sie eine korrekt konfigurierte phpMyAdmin-Konfigurationsspeicher und müssen die $cfg['Servers'][$i]['table_coords']
konfiguriert haben.
Um den Designer zu verwenden, wählen Sie die Strukturseite einer Datenbank und suchen Sie dann nach dem Reiter Designer.
Um die Ansicht in PDF zu exportieren, müssen Sie zuerst PDF-Seiten erstellen. Der Designer erstellt das Layout, wie die Tabellen dargestellt werden sollen. Um die Ansicht schließlich zu exportieren, müssen Sie diese mit einer PDF-Seite erstellen und Ihr Layout auswählen, das Sie mit dem Designer erstellt haben.
Diagramme¶
Neu in Version 3.4.0.
Seit phpMyAdmin Version 3.4.0 können Sie ganz einfach Diagramme aus einer SQL-Abfrage erzeugen, indem Sie im Bereich „Ergebnisse abfragen“ auf den Link „Diagramm anzeigen“ klicken.

Es wird eine Fensterebene „Diagramm anzeigen“ angezeigt, in der Sie das Diagramm mit den folgenden Optionen anpassen können.
- Diagrammtyp: Ermöglicht die Auswahl des Diagrammtyps. Unterstützte Typen sind Balkendiagramme, Säulendiagramme, Liniendiagramme, Spline-Diagramme, Flächendiagramme, Kreisdiagramme und Zeitreihendiagramme (es werden nur die für die aktuelle Serienauswahl geeigneten Diagrammtypen angeboten).
- X-Achse: Ermöglicht die Auswahl des Feldes für die Hauptachse.
- Serie: Ermöglicht die Auswahl von Serien für das Diagramm. Sie können mehrere Serien auswählen.
- Titel: Ermöglicht die Angabe eines Titels für das Diagramm, der über dem Diagramm angezeigt wird.
- Beschriftung der X-Achse und Y-Achse: ermöglicht die Angabe von Beschriftungen für Achsen.
- Startzeile und Anzahl der Zeilen: ermöglicht die Erzeugung von Diagrammen nur für eine bestimmte Anzahl von Zeilen der Ergebnismenge.

Diagramm-Umsetzung¶
Diagramme in phpMyAdmin werden mit Hilfe der jqPlot jQuery Bibliothek gezeichnet.
Beispiele¶
Tortendiagramm¶
Abfrageergebnisse für ein einfaches Tortendiagramm können erzegt werden mit:
SELECT 'Food' AS 'expense',
1250 AS 'amount' UNION
SELECT 'Accommodation', 500 UNION
SELECT 'Travel', 720 UNION
SELECT 'Misc', 220
Und das Ergebnis dieser Abfrage ist:
Ausgaben | Menge |
---|---|
Lebensmittel | 1250 |
Unterkunft | 500 |
Reisen | 720 |
Sonstiges | 220 |
Wahl der Kosten als X-Achse und Betrag in Serie:

Balken- und Säulendiagramm¶
Sowohl Balkendiagramme als auch Spaltenchats unterstützen das Stapeln. Wenn Sie einen dieser Typen auswählen, wird ein Kontrollkästchen angezeigt, um die Stapelung auszuwählen.
Abfrageergebnisse für ein einfaches Balken- oder Säulendiagramm können erzeugt werden mit:
SELECT
'ACADEMY DINOSAUR' AS 'title',
0.99 AS 'rental_rate',
20.99 AS 'replacement_cost' UNION
SELECT 'ACE GOLDFINGER', 4.99, 12.99 UNION
SELECT 'ADAPTATION HOLES', 2.99, 18.99 UNION
SELECT 'AFFAIR PREJUDICE', 2.99, 26.99 UNION
SELECT 'AFRICAN EGG', 2.99, 22.99
Und das Ergebnis dieser Abfrage ist:
Titel | mietpreis | wiederbeschaffungskosten |
---|---|---|
AKADEMIE DINOSAURIER | 0.99 | 20.99 |
ACE GOLDFINGER | 4.99 | 12.99 |
ANPASSUNG LÖCHER | 2.99 | 18.99 |
AFFÄRE VORURTEILE | 2.99 | 26.99 |
AFRIKANISCHES EI | 2.99 | 22.99 |
Titel als X-Achse und Mietpreis und Ersatzkosten als Serie wählen:

Punktdiagramm¶
Punktdiagramme sind nützlich, um die Bewegung einer oder mehrerer Variablen im Vergleich zu einer anderen Variablen zu identifizieren.
Verwendung des gleichen Datensatzes aus Balken- und Säulendiagrammen und Auswahl von wiederbeschaffungskosten als X-Achse und mietpreis in Serie:

Linien-, Spline- und Zeitliniendiagramme¶
Diese Diagramme können verwendet werden, um Trends in den zugrunde liegenden Daten darzustellen. Spline-Diagramme zeichnen glatte Linien, während Zeitachsendiagramme die X-Achse unter Berücksichtigung der Abstände zwischen Datum und Uhrzeit zeichnen.
Abfrageergebnisse für ein einfaches Linien-, Spline- oder Zeitachsendiagramm können erzeugt werden mit:
SELECT
DATE('2006-01-08') AS 'date',
2056 AS 'revenue',
1378 AS 'cost' UNION
SELECT DATE('2006-01-09'), 1898, 2301 UNION
SELECT DATE('2006-01-15'), 1560, 600 UNION
SELECT DATE('2006-01-17'), 3457, 1565
Und das Ergebnis dieser Abfrage ist:
Datum | umsatz | kosten |
---|---|---|
2016-01-08 | 2056 | 1378 |
2006-01-09 | 1898 | 2301 |
2006-01-15 | 1560 | 600 |
2006-01-17 | 3457 | 1565 |



Importieren und exportieren¶
Importieren¶
Um Daten zu importieren, gehen Sie in phpMyAdmin auf die Registerkarte „Import“. Um Daten in eine bestimmte Datenbank oder Tabelle zu importieren, öffnen Sie die Datenbank oder Tabelle, bevor Sie zur Registerkarte „Import“ gehen.
Zusätzlich zur Standard-Registerkarte Import und Export können Sie eine SQL-Datei auch direkt aus Ihrem lokalen Dateimanager in die phpMyAdmin-Oberfläche Ihres Webbrowsers ziehen und ablegen.
Wenn Sie Probleme beim Importieren großer Dateien haben, konsultieren Sie bitte 1.16 Ich kann keine großen Dump-Dateien hochladen (Speicher-, HTTP- oder Timeout-Probleme)..
Sie können mit folgenden Methoden importieren:
Formularbasiertes Hochladen
Kann mit jedem unterstützten Format verwendet werden, auch (b|g)gezippte Dateien, z.B. mydump.sql.gz.
Formularbasierte SQL-Abfrage
Kann mit gültigen SQL-Dumps verwendet werden.
Verwenden des Hochlade-Verzeichnisses
Sie können ein Hochladeverzeichnis auf Ihrem Webserver angeben, in dem phpMyAdmin installiert ist, nachdem Sie Ihre Datei in dieses Verzeichnis hochgeladen haben, können Sie diese Datei im Import-Dialog von phpMyAdmin auswählen, siehe$cfg['UploadDir']
.
phpMyAdmin kann aus verschiedenen gängigen Formaten importieren.
CSV¶
Format kommagetrennte Werte, das oft von Tabellenkalkulationen oder anderen Programmen für den Export/Import verwendet wird.
Bemerkung
Wenn Sie Daten aus einer CSV-Datei in eine Tabelle importieren, in der die Tabelle ein Feld „auto_increment“ hat, stellen Sie den Wert „auto_increment“ für jeden Datensatz im CSV-Feld auf ‚0‘ (Null). Dadurch kann das Feld ‚auto_increment‘ korrekt gefüllt werden.
Es ist nun möglich, eine CSV-Datei auf Server- oder Datenbankebene zu importieren. Anstatt eine Tabelle zu erstellen, in die die CSV-Datei importiert wird, wird stattdessen eine Best-Fit-Struktur für Sie ermittelt und die Daten in diese importiert. Alle anderen Funktionen, Anforderungen und Einschränkungen sind wie vorher.
CSV mit LOAD DATA¶
Ähnlich wie CSV, nur mit dem internen MySQL Parser und nicht mit dem von phpMyAdmin.
ESRI Formdatei¶
Das ESRI Shapefile oder einfach nur Shapefile ist ein beliebtes Geodatenformat für Geographische Informationssysteme. Sie wird von Esri als (meist) offene Spezifikation für die Dateninteroperabilität zwischen Esri und anderen Softwareprodukten entwickelt und geregelt.
MediaWiki¶
MediaWiki-Dateien, die von phpMyAdmin (ab Version 4.0) exportiert werden können, können nun auch importiert werden. Dieses Format wird von Wikipedia verwendet, um Tabellen anzuzeigen.
Open Document Spreadsheet (ODS)¶
OpenDocument Arbeitsmappen mit einer oder mehreren Spreadsheets können nun direkt importiert werden.
Beim Import eines ODS-Spreadsheets muss das Spreadsheet auf eine bestimmte Weise benannt werden, um den Import so einfach wie möglich zu gestalten.
Tabellenname¶
Während des Imports verwendet phpMyAdmin den Blattnamen als Tabellennamen; Sie sollten das Blatt in Ihrem Tabellenkalkulationsprogramm umbenennen, damit es mit Ihrem vorhandenen Tabellennamen übereinstimmt (oder der Tabelle, die Sie erstellen möchten, obwohl dies weniger problematisch ist, da Sie die neue Tabelle auf der Registerkarte Operationen schnell umbenennen können).
Spaltennamen¶
Sie sollten auch die erste Zeile Ihres Spreadsheets zu einer Überschrift mit den Namen der Spalten machen (dies kann durch Einfügen einer neuen Zeile am Anfang Ihrer Kalkulationstabelle erreicht werden). Aktivieren Sie auf dem Importbildschirm das Kontrollkästchen „Die erste Zeile der Datei enthält die Spaltennamen der Tabelle“, damit Ihre neu importierten Daten in die richtigen Spalten gelangen.
Bemerkung
Formeln und Berechnungen werden NICHT ausgewertet, sondern ihr Wert aus der letzten Speicherung wird geladen. Bitte stellen Sie sicher, dass alle Werte in der Kalkulationstabelle den Anforderungen entsprechen, bevor Sie sie importieren.
SQL¶
SQL kann verwendet werden, um jegliche Manipulation an Daten vorzunehmen, es ist auch nützlich, um gesicherte Daten wiederherzustellen.
XML¶
Von phpMyAdmin (ab Version 3.3.0) exportierte XML-Dateien können nun importiert werden. Abhängig vom Inhalt der Datei werden Strukturen (Datenbanken, Tabellen, Views, Trigger, etc.) und/oder Daten erzeugt.
Die unterstützten Xml-Schemas sind in diesem Wiki noch nicht dokumentiert.
Exportieren¶
phpMyAdmin kann in Textdateien (auch komprimiert) auf Ihrer lokalen Festplatte (oder einem speziellen Webserver $cfg['SaveDir']
Ordner) in verschiedenen gängigen Formaten exportieren:
CodeGen¶
NHibernate Dateiformat. Geplante Versionen: Java, Hibernate, PHP PDO, JSON, etc. Der vorläufige Name ist also Codegen.
CSV¶
Format kommagetrennte Werte, das oft von Tabellenkalkulationen oder anderen Programmen für den Export/Import verwendet wird.
CSV für Microsoft Excel¶
Dies ist nur eine vorkonfigurierte Version des CSV-Exports, die in die meisten englischen Versionen von Microsoft Excel importiert werden kann. Einige lokalisierte Versionen (wie „Dänisch“) erwarten „;“ statt „,“ als Feldtrennzeichen.
Microsoft Word 2000¶
Wenn Sie Microsoft Word 2000 oder neuer (oder kompatibel wie OpenOffice.org) verwenden, können Sie diesen Export verwenden.
JSON¶
JSON (JavaScript Object Notation) ist ein einfaches Datenaustauschformat. Es ist einfach für Menschen zu lesen und zu schreiben und es ist einfach für Maschinen zu analysieren und zu erzeugen.
Geändert in Version 4.7.0: Die erzeugte JSON-Struktur wurde in phpMyAdmin 4.7.0 geändert, um gültige JSON-Daten zu erzeugen.
Das erzeugte JSON ist eine Liste von Objekten mit folgenden Attributen:
-
type
¶ Typ des angegebenen Objekts, eines von:
header
- Exportkopf mit Kommentar und phpMyAdmin-Version.
database
- Start einer Datenbankmarkierung, die den Namen der Datenbank enthält.
table
- Export von Tabellendaten.
-
comment
¶ Optionaler Textkommentar.
Beispielausgabe:
[
{
"comment": "Export to JSON plugin for PHPMyAdmin",
"type": "header",
"version": "4.7.0-dev"
},
{
"name": "cars",
"type": "database"
},
{
"data": [
{
"car_id": "1",
"description": "Green Chrysler 300",
"make_id": "5",
"mileage": "113688",
"price": "13545.00",
"transmission": "automatic",
"yearmade": "2007"
}
],
"database": "cars",
"name": "cars",
"type": "table"
},
{
"data": [
{
"make": "Chrysler",
"make_id": "5"
}
],
"database": "cars",
"name": "makes",
"type": "table"
}
]
LaTeX¶
Wenn Sie Tabellendaten oder -strukturen in LaTeX einbetten wollen, ist dies eine gute Wahl.
LaTeX ist ein Satzsystem, das sehr gut geeignet ist, um wissenschaftliche und mathematische Dokumente von hoher typographischer Qualität zu erstellen. Es eignet sich auch für die Herstellung von Dokumenten aller Arten, von einfachen Briefen bis hin zu kompletten Büchern. LaTeX verwendet TeX als Formatierungsmaschine. Erfahren Sie mehr über TeX und LaTeX auf dem Comprehensive TeX Archive Network siehe auch die Kurzbeschreibung von TeX.
Die Ausgabe muss in ein LaTeX-Dokument eingebettet werden, bevor sie gerendert werden kann, z.B. in folgendes Dokument:
\documentclass{article}
\title{phpMyAdmin SQL output}
\author{}
\usepackage{longtable,lscape}
\date{}
\setlength{\parindent}{0pt}
\usepackage[left=2cm,top=2cm,right=2cm,nohead,nofoot]{geometry}
\pdfpagewidth 210mm
\pdfpageheight 297mm
\begin{document}
\maketitle
% insert phpMyAdmin LaTeX Dump here
\end{document}
MediaWiki¶
Sowohl Tabellen als auch Datenbanken können im MediaWiki-Format exportiert werden, das von Wikipedia zur Anzeige von Tabellen verwendet wird. Es kann Struktur, Daten oder beides exportieren, einschließlich Tabellennamen oder Überschriften.
OpenDocument Kalkulationstabelle¶
Offener Standard für Tabellenkalkulationsdaten, der inzwischen weit verbreitet ist. Viele aktuelle Tabellenkalkulationsprogramme wie LibreOffice, OpenOffice, Microsoft Office oder Google Docs können dieses Format verarbeiten.
OpenDocument Text¶
Neuer Standard für Textdaten, der weit verbreitet ist. Die meisten aktuellen Textverarbeitungsprogramme (wie LibreOffice, OpenOffice, Microsoft Word, AbiWord oder KWord) können damit umgehen.
PDF¶
Für Präsentationszwecke sind nicht editierbare PDF-Dateien die beste Wahl.
PHP-Array¶
Sie können eine PHP-Datei erzeugen, die ein multidimensionales Array mit dem Inhalt der ausgewählten Tabelle oder Datenbank deklariert.
SQL¶
Export in SQL kann verwendet werden, um Ihre Datenbank wiederherzustellen, daher ist es nützlich für die Sicherung.
Die Option ‚Maximal length of created query‘ scheint undokumentiert zu sein. Aber Experimente haben gezeigt, dass es große erweiterte INSERTS teilt, so dass jedes einzelne nicht größer als die angegebene Anzahl von Bytes (oder Zeichen?) ist. So vermeiden Sie beim Import der Datei bei großen Tabellen den Fehler „Got a packet bigger than ‚max_allowed_packet‘ bytes“.
Datenoptionen¶
Komplette Inserts fügt die Spaltennamen zum SQL-Dump hinzu. Dieser Parameter verbessert die Lesbarkeit und Zuverlässigkeit des Dumps. Das Hinzufügen der Spaltennamen erhöht die Größe des Dumps, ist aber in Kombination mit Extended Inserts vernachlässigbar.
Erweiterte Inserts kombiniert mehrere Datenzeilen zu einer einzigen INSERT-Abfrage. Dies verringert die Dateigröße bei großen SQL-Dumps erheblich, erhöht die INSERT-Geschwindigkeit beim Import und wird generell empfohlen.
Texy!¶
Texy! Markup-Format. Sie können das Beispiel auf Texy! demo sehen.
XML¶
Leicht analysierbarer Export für die Verwendung mit benutzerdefinierten Skripten.
Geändert in Version 3.3.0: Das verwendete XML-Schema hat sich ab Version 3.3.0 geändert
YAML¶
YAML ist ein Daten-Serialisierungsformat, das sowohl von Menschen lesbar als auch computermäßig leistungsfähig ist ( <https://yaml.org>).
Benutzerdefinierte Designs¶
phpMyAdmin bietet Unterstützung für Designs von Drittanbietern. Weitere Designs können Sie von unserer Website unter <https://www.phpmyadmin.net/themes/> herunterladen.
Konfiguration¶
Themes are configured with $cfg['ThemeManager']
and
$cfg['ThemeDefault']
. Under ./public/themes/
, you should not
delete the directory pmahomme
or its underlying structure, because this is
the system theme used by phpMyAdmin. pmahomme
contains all images and
styles, for backwards compatibility and for all themes that would not include
images or css-files. If $cfg['ThemeManager']
is enabled, you
can select your favorite theme on the main page. Your selected theme will be
stored in a cookie.
Erstellen eines benutzerdefinierten Designs¶
Um ein Design zu erstellen:
- make a new subdirectory (for example „your_theme_name“) under
./public/themes/
. - kopieren Sie die Dateien und Verzeichnisse von
pmahomme
in „ihr_design_name“ - bearbeiten Sie die CSS-Dateien in „ihr_design_name/css“
- legen Sie Ihre Bilder in „ihr_design_name/img“
- bearbeiten Sie
layout.inc.php_variables.scss
in „ihr_design_name/scss“ - bearbeiten Sie
theme.json
in „ihr_design_name“, um die Metadaten des Designs zu speichern (siehe unten) - erstellen Sie einen neuen Screenshot von Ihrem Design und speichern Sie ihn unter „ihr_design_name/screen.png“
Design Metadaten¶
Geändert in Version 4.8.0: Vor 4.8.0 wurden die Metadaten des Designs in der Datei info.inc.php
übergeben. Sie wurde durch theme.json
ersetzt, um einfacheres Parsen zu ermöglichen (ohne dass PHP-Code verarbeitet werden muss) und um zusätzliche Funktionen zu unterstützen.
Im Designverzeichnis befindet sich die Datei theme.json
, das Design-Metadaten enthält. Derzeit besteht sie aus:
-
name
Anzeigename des Design.
Dieses Feld ist erforderlich.
-
version
Design-Version, kann sehr willkürlich sein und muss nicht mit der phpMyAdmin-Version übereinstimmen.
Dieses Feld ist erforderlich.
-
description
Designbeschreibung. Diese wird auf der Website angezeigt.
Dieses Feld ist erforderlich.
-
author
Name des Designautors.
Dieses Feld ist erforderlich.
-
url
Link zur Website des Designautors. Es ist eine gute Idee, von dort Unterstützung zu bekommen.
-
supports
Array der unterstützten phpMyAdmin Hauptversionen.
Dieses Feld ist erforderlich.
Zum Beispiel die mit phpMyAdmin 4.8 ausgelieferte Definition für das Original-Design:
{
"name": "Original",
"version": "4.8",
"description": "Original phpMyAdmin theme",
"author": "phpMyAdmin developers",
"url": "https://www.phpmyadmin.net/",
"supports": ["4.8"]
}
Bilder teilen¶
Wenn Sie keine eigenen Symbole und Schaltflächen verwenden möchten, entfernen Sie das Verzeichnis „img“ in „ihr_design_name“. phpMyAdmin verwendet die Standardsymbole und Schaltflächen (aus dem Systemdesign pmahomme
).
Weitere Informationsquellen¶
Gedrucktes Buch¶
Der definitive Leitfaden zur Verwendung von phpMyAdmin ist das Buch Mastering phpMyAdmin for Effective MySQL Management von Marc Delisle. Informationen zu diesem Buch und anderen offiziell gebilligten books at the phpMyAdmin site.
FAQ - Häufig gestellte Fragen¶
Bitte sehen Sie sich unseren <a href=“http://www.phpmyadmin.net/home_page/docs.php“>Link-Bereich</a> auf der offiziellen phpMyAdmin Webseite an, um einen tiefergehenden Einblick in die Funktionalitäten und Schnittstellen von phpMyAdmin zu erhalten.
Server¶
1.1 Mein Server stürzt jedes Mal ab, wenn eine spezielle Aktion benötigt wird oder phpMyAdmin zeigt eine leere Seite oder eine Seite voller kryptischer Zeichen in meinem Browser an, was kann ich tun?¶
Try to set the $cfg['OBGzip']
directive to false
in your
config.inc.php
file and the zlib.output_compression
directive to
Off
in your php configuration file.
1.2 Mein Apache Server stürzt ab wenn ich phpMyAdmin benutze.¶
Sie sollten zuerst die neuesten Versionen von Apache (und eventuell MySQL) ausprobieren. Wenn Ihr Server weiterhin abstürzt, bitten Sie die verschiedenen Apache-Supportgruppen um Hilfe.
1.3 (zurückgezogen).¶
1.4 Bei Verwendung von phpMyAdmin auf dem IIS wird mir die Fehlermeldung angezeigt: „Die angegebene CGI-Anwendung hat sich nicht korrekt verhalten, da sie keinen kompletten Satz von HTTP-Headern zurückgibt….“.¶
Sie haben einfach vergessen, die Datei install.txt aus der PHP-Distribution zu lesen. Schauen Sie sich die letzte Meldung in diesem PHP Bug Report #12061 aus der offiziellen PHP-Bug-Datenbank an.
1.5 Bei Verwendung von phpMyAdmin auf dem IIS kommt es zu Abstürzen und/oder vielen Fehlermeldungen mit dem HTTP.¶
Dies ist ein bekanntes Problem mit dem PHP-Filter ISAPI: es ist nicht so stabil. Bitte verwenden Sie stattdessen den Cookie-Authentifizierungsmodus.
1.6 Ich kann phpMyAdmin auf PWS nicht verwenden: es wird nichts angezeigt!¶
This seems to be a PWS bug. Filippo Simoncini found a workaround (at
this time there is no better fix): remove or comment the DOCTYPE
declarations (2 lines) from the scripts src/Header.php
and index.php
.
1.7 Wie kann ich einen Dump oder einen CSV-Export gzip-en? Es scheint nicht zu funktionieren.¶
Diese Funktion basiert auf der PHP-Funktion gzencode()
, um unabhängiger von der Plattform zu sein (Unix/Windows, Abgesicherter Modues oder nicht und so weiter). Sie brauchen dafür also Zlib-Unterstützung (--with-zlib
).
1.8 Ich kann eine Textdatei nicht in eine Tabelle einfügen und erhalte eine Fehlermeldung, dass der abgesicherte Modus aktiv ist.¶
Ihre hochgeladene Datei wird von PHP im „upload dir“, wie in php.ini
definiert, gespeichert durch die Variable upload_tmp_dir
(normalerweise ist der Systemvorschlag /tmp). Wir empfehlen das folgende Setup für Apache-Server, die im abgesicherten Modus laufen, um das Hochladen von Dateien zu ermöglichen, ohne dabei die Sicherheit zu beeinträchtigen:
- erstellen Sie ein separates Verzeichnis fürs Hochladen: mkdir /tmp/php
- geben Sie der user.group des Apache-Servers das Dateieigentum: chown apache.apache /tmp/php
- vergeben Sie die richtige Berechtigung: chmod 600 /tmp/php
- setze
upload_tmp_dir = /tmp/php
inphp.ini
- starten Sie Apache neu
1.9 (zurückgezogen).¶
1.10 Ich habe Probleme beim Hochladen von Dateien mit phpMyAdmin auf einem sicheren Server. Mein Browser ist Internet Explorer und ich benutze den Apache-Server.¶
Wie von „Rob M“ im phpWizard-Forum vorgeschlagen, fügen Sie diese Zeile zu Ihrer httpd.conf hinzu:
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
Es scheint viele Probleme zwischen Internet Explorer und SSL zu lösen.
1.11 Ich bekomme eine ‚open_basedir restriction‘ beim Hochladen einer Datei aus dem Import Tab.¶
Seit Version 2.2.4 unterstützt phpMyAdmin Server mit open_basedir Einschränkungen. Sie müssen jedoch ein temporäres Verzeichnis erstellen und es als $cfg['TempDir']
konfigurieren. Die hochgeladenen Dateien werden dorthin verschoben und nach der Ausführung der SQL Befehle entfernt.
1.12 Ich habe mein MySQL root-Passwort verloren, was kann ich tun?¶
phpMyAdmin authentifiziert sich gegenüber dem von Ihnen verwendeten MySQL-Server, so dass Sie das phpMyAdmin-Kennwort nach dem Verlust auf MySQL-Ebene wiederherstellen müssen.
Das MySQL-Handbuch erklärt, wie man die Berechtigungen zurücksetzt ‚reset the permissions <https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html>`_ .
Wenn Sie einen von Ihrem Hosting-Provider installierten MySQL-Server verwenden, wenden Sie sich bitte an dessen Support, um das Passwort für Sie wiederherzustellen.
1.13 (zurückgezogen).¶
1.14 (zurückgezogen).¶
1.15 Ich habe Probleme mit mysql.user Spaltennamen.¶
In früheren MySQL-Versionen wurden die Spalten Benutzer
und Passwort
als benutzer
und passwort
bezeichnet. Bitte passen Sie Ihre Spaltennamen an die aktuellen Standards an.
1.16 Ich kann keine großen Dump-Dateien hochladen (Speicher-, HTTP- oder Timeout-Probleme).¶
Ab Version 2.7.0 wurde die Import Engine neu geschrieben und diese Probleme sollten nicht auftreten. Wenn möglich, aktualisieren Sie Ihr phpMyAdmin auf die neueste Version, um die Vorteile der neuen Importfunktionen zu nutzen.
Das erste, was überprüft werden muss (oder die Ihr Host-Provider überprüfen soll), sind die Werte von max_execution_time
, upload_max_filesize
, memory_limit
und post_max_size`
in der php.ini
Konfigurationsdatei. Alle diese Einstellungen begrenzen die maximale Größe der Daten, die von PHP übertragen und verarbeitet werden können. Bitte beachten Sie, dass post_max_size
größer als upload_max_filesize
sein muss. Es gibt mehrere Umgehungslösungen, wenn Ihr Upload zu groß ist oder Ihr Hosting-Provider nicht bereit ist, die Einstellungen zu ändern:
Schauen Sie sich die
$cfg['UploadDir']
Funktion an. Sie ermöglicht eine Datei über scp, FTP oder Ihre bevorzugte Dateiübertragungsmethode auf den Server hochzuladen. PhpMyAdmin kann dann die Dateien aus dem temporären Verzeichnis importieren. Weitere Informationen finden Sie in der Konfiguration dieses Dokuments.Mit einem Dienstprogramm (z.B. BigDump) können Sie die Dateien vor dem Hochladen aufteilen. Wir können diese oder andere Anwendungen von Drittanbietern nicht unterstützen, wissen aber, dass Benutzer damit Erfolg haben.
Wenn Sie Zugriff auf die Shell (Kommandozeile) haben, verwenden Sie MySQL, um die Dateien direkt zu importieren. Sie können dies tun, indem Sie den Befehl „source“ aus MySQL heraus aufrufen:
source filename.sql;
1.17 Welche Datenbankversionen unterstützt phpMyAdmin?¶
Für MySQL werden die Versionen 5.5 und neuer unterstützt. Für ältere MySQL-Versionen bietet unsere Downloads Seite ältere phpMyAdmin-Versionen an (die möglicherweise nicht mehr unterstützt werden).
Für MariaDB werden die Versionen 5.5 und neuer unterstützt.
1.17a Ich kann mich nicht mit dem MySQL-Server verbinden. Es wird immer die Fehlermeldung „Client unterstützt das vom Server angeforderte Authentifizierungsprotokoll nicht; erwägen Sie ein Upgrade des MySQL-Clients“ zurückgegeben¶
Sie haben versucht, mit einer alten MySQL-Client-Bibliothek auf MySQL zuzugreifen. Die Version Ihrer MySQL-Client-Bibliothek kann in Ihrer phpinfo()-Ausgabe überprüft werden. Im Allgemeinen sollte es mindestens die gleiche Minor-Version wie Ihr Server haben - wie in 1.17 Welche Datenbankversionen unterstützt phpMyAdmin? erwähnt. Dieses Problem wird in der Regel durch die Verwendung von MySQL Version 4.1 oder neuer verursacht. MySQL hat den Authentifizierungs-Hash geändert und Ihr PHP versucht, die alte Methode zu verwenden. Die richtige Lösung ist die Verwendung der mysqli-Erweiterung mit der richtigen Client-Bibliothek für Ihre MySQL-Installation. Weitere Informationen (und einige Umgehungslösungen) finden Sie in der MySQL-Dokumentation.
1.18 (zurückgezogen).¶
1.19 Ich kann die Funktion „Beziehungen anzeigen“ nicht ausführen, da das Skript die verwendete Schriftart nicht zu kennen scheint!¶
Die TCPDF-Bibliothek, die wir für diese Funktion verwenden, benötigt einige spezielle Dateien, um Schriftarten zu verwenden. Bitte lesen Sie im TCPDF-Handbuch, um diese Dateien zu erstellen.
1.20 Ich erhalte eine Fehlermeldung über fehlende mysqli und mysql Erweiterungen.¶
Um eine Verbindung zu einem MySQL-Server herzustellen, benötigt PHP eine Reihe von MySQL-Funktionen namens „MySQL-Erweiterung“. Diese Erweiterung kann Teil der PHP-Distribution sein (einkompiliert), sonst muss sie dynamisch geladen werden. Sein Name ist wahrscheinlich mysqli.so oder php_mysqli.dll. phpMyAdmin hat versucht, die Erweiterung zu laden, ist aber gescheitert. Normalerweise wird das Problem durch die Installation eines Softwarepakets namens „PHP-MySQL“ oder ähnlichem gelöst.
There was two interfaces PHP provided as MySQL extensions - mysql
and mysqli
. The mysql
interface was removed in PHP 7.0.
Dieses Problem kann auch durch falsche Pfade in der php.ini
verursacht werden oder mit falscher php.ini
.
Stellen Sie sicher, dass die Erweiterungsdateien in dem Ordner existieren, auf den das extension_dir
zeigt und dass die entsprechenden Zeilen in Ihrer php.ini
-Datei vorhanden sind (Sie können phpinfo()
verwenden, um das aktuelle Setup zu überprüfen):
[PHP]
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/Apache2/modules/php/ext"
Die php.ini
kann von verschiedenen Orten aus geladen werden (besonders unter Windows), also überprüfen Sie bitte, ob Sie die richtige Datei aktualisieren. Wenn Sie Apache verwenden, können Sie ihm mitteilen, dass er einen bestimmten Pfad für diese Datei verwenden soll, indem Sie die PHPIniDir
Richtlinie verwenden:
LoadModule php7_module "C:/php7/php7apache2_4.dll"
<IfModule php7_module>
PHPIniDir "C:/php7"
<Location>
AddType text/html .php
AddHandler application/x-httpd-php .php
</Location>
</IfModule>
In einigen seltenen Fällen kann dieses Problem auch durch andere in PHP geladene Erweiterungen verursacht werden, die das Laden von MySQL-Erweiterungen verhindern. Wenn etwas anderes fehlschlägt, können Sie versuchen, Erweiterungen für andere Datenbanken in php.ini
auszukommentieren.
1.21 Ich verwende die CGI-Version von PHP unter Unix und kann mich nicht mit Cookie-Auth anmelden.¶
In php.ini
, stellen Sie mysql.max_links
auf höher als 1.
1.22 Ich sehe das Feld „Ort der Textdatei“ nicht, daher kann ich nichts hochladen.¶
Dies ist sehr wahrscheinlich, weil in php.ini
Ihr file_uploads
Parameter nicht auf „on“ gesetzt ist.
1.23 Ich verwende MySQL auf einer Win32-Maschine. Jedes Mal, wenn ich eine neue Tabelle erstelle, werden die Tabellen- und Spaltennamen in Kleinbuchstaben geändert!¶
Dies geschieht, weil die MySQL-Richtlinie lower_case_table_names
in der Win32-Version von MySQL standardmäßig auf 1 (ON
) gesetzt ist. Sie können dieses Verhalten ändern, indem Sie einfach die Richtlinie auf 0 (OFF
) ändern: bearbeiten Sie einfach Ihre my.ini
Datei, die sich in Ihrem Windows-Verzeichnis befinden sollte und fügen Sie die folgende Zeile zur Gruppe [mysqld] hinzu:
set-variable = lower_case_table_names=0
Bemerkung
Wenn man diese Variable auf einem Dateisystem ohne Berücksichtigung der Groß-/Kleinschreibung auf –low-case-table-names=0 zwingt und auf MyISAM-Tabellennamen mit verschiedenen Großbuchstaben zugreift, kann es zu Indexbeschädigungen kommen.
Speichern Sie anschließend die Datei und starten Sie den MySQL-Dienst neu. Sie können den Wert dieser Richtlinie jederzeit prüfen mit der Abfrage
SHOW VARIABLES LIKE 'lower_case_table_names';
1.24 (zurückgezogen).¶
1.25 Ich verwende Apache mit mod_gzip-1.3.26.1a unter Windows XP, und ich bekomme Probleme, wenn ich eine SQL-Abfrage ausführe, wie z.B. undefinierte Variablen.¶
Ein Tipp von Jose Fandos: Schreiben Sie einen Kommentar zu den folgenden zwei Zeilen in die httpd.conf, so wie hier:
# mod_gzip_item_include file \.php$
# mod_gzip_item_include mime "application/x-httpd-php.*"
da diese Version von mod_gzip auf Apache (Windows) Probleme mit PHP-Skripten hat. Natürlich müssen Sie den Apache neu starten.
1.26 Ich habe gerade phpMyAdmin in mein Dokumentenstamm von IIS installiert, aber ich erhalte die Fehlermeldung „Keine Eingabedatei angegeben“, wenn ich versuche, phpMyAdmin auszuführen.¶
Das ist ein Berechtigungsproblem. Klicken Sie mit der rechten Maustaste auf den Ordner phpmyadmin und wählen Sie Eigenschaften. Klicken Sie unter dem Reiter Sicherheit auf „Hinzufügen“ und wählen Sie den Benutzer „IUSR_machine“ aus der Liste. Setzen Sie nun dessen Berechtigungen und es sollte funktionieren.
1.27 Ich bekomme eine leere Seite, wenn ich eine große Seite sehen will (z.B. db_structure.php mit vielen Tabellen).¶
Dies wurde durch einen PHP-Bug verursacht, der auftritt, wenn die GZIP-Ausgangspufferung aktiviert ist. Wenn Sie es ausschalten (durch $cfg['OBGzip']
in config.inc.php
), sollte es funktionieren. Dieser Fehler wurde in PHP 5.0.0 behoben.
1.28 Mein MySQL-Server verweigert manchmal Anfragen und gibt die Meldung ‚Errorcode‘ zurück: 13‘. Was bedeutet das?¶
Dies kann aufgrund eines MySQL-Fehlers passieren, wenn Datenbank-/Tabellennamen mit Großbuchstaben verwendet werden, obwohl lower_case_table_names
auf 1 gesetzt ist. Um dies zu beheben, deaktivieren Sie diese Richtlinie, konvertieren Sie alle Datenbank-und Tabellennamen in Kleinbuchstaben, und schalten Sie sie wieder ein. Alternativ gibt es einen Bugfix ab MySQL 3.23.56 / 4.0.11-gamma.
1.29 Wenn ich eine Tabelle erstelle oder eine Spalte ändere, erhalte ich einen Fehler und die Spalten werden verdoppelt.¶
Es ist möglich, den Apache so zu konfigurieren, dass PHP Probleme bei der Interpretation von .php-Dateien hat.
Die Probleme treten auf, wenn zwei verschiedene (und widersprüchliche) Direktiven verwendet werden:
SetOutputFilter PHP
SetInputFilter PHP
und
AddType application/x-httpd-php .php
Im Fall, den wir sahen, war ein Satz von Richtlinien in /etc/httpd/conf/httpd.conf``und ein anderer Satz in ``/etc/httpd/conf/addon-modules/php.conf
war. Der empfohlene Weg ist durch AddType
, also einfach den ersten Satz Zeilen auskommentieren und Apache neu starten:
#SetOutputFilter PHP
#SetInputFilter PHP
1.31 Welche PHP-Versionen unterstützt phpMyAdmin?¶
Seit Release 4.5 unterstützt phpMyAdmin nur noch PHP 5.5 und neuer. Seit Release 4.1 unterstützt phpMyAdmin nur noch PHP 5.3 und neuer. Für PHP 5.2 können Sie die Versionen 4.0.x verwenden.
PHP 7 wird seit phpMyAdmin 4.6 unterstützt, PHP 7.1 seit 4.6.5, PHP 7.2 seit 4.7.4.
HHVM wird bis phpMyAdmin 4.8 unterstützt.
Since release 5.0, phpMyAdmin supports only PHP 7.1 and newer. Since release 5.2, phpMyAdmin supports only PHP 7.2 and newer. Since release 6.0, phpMyAdmin supports only PHP 8.1 and newer.
1.32 Kann ich HTTP-Authentifizierung mit IIS verwenden?¶
Ja, diese Prozedur wurde mit phpMyAdmin 2.6.1, PHP 4.3.9 im Modus ISAPI unter IIS 5.1 getestet.
- In Ihrer
php.ini
Datei, setzen Siecgi.rfc2616_headers = 0
- Aktivieren Sie im Dialogfeld
Website-Eigenschaften -> Datei-/Verzeichnissicherheit -> Anonymer Zugriff
das KontrollkästchenAnonymer Zugriff
und deaktivieren Sie alle anderen Kontrollkästchen (d.h. deaktivieren SieBasic authentication
,Integrierte Windows-Authentifizierung
undDigest
, falls aktiviert). Klicken Sie auf „OK“. - Wählen Sie unter Benutzerdefinierte Fehler den Bereich von
401;1
bis401;5
und klicken Sie auf die SchaltflächeAuf Standard setzen
.
Siehe auch
1.33 (zurückgezogen).¶
1.34 Kann ich direkt auf Datenbank- oder Tabellenseiten zugreifen?¶
Ja. Aus dem Stand können Sie eine URL wie http://server/phpMyAdmin/index.php?server=X&db=database&table=table&target=script
verwenden. Für server
können Sie die Servernummer verwenden, die sich auf den numerischen Host-Index (von $i
) in config.inc.php
bezieht. Die Tabellen- und Skriptteile sind optional.
Ja. Aus dem Stand können Sie URL wie http://server/phpMyAdmin/index.php?server=X&db=database&table=table&target=script
verwenden. Für Server
verwenden Sie die Servernummer, die sich auf die Reihenfolge des Serverabsatzes in config.inc.php
bezieht. Tabellen- und Skriptteile sind optional. Wenn Sie http://server/phpMyAdmin/database[/table][/script]
URL wollen, müssen Sie einige Einstellungen vornehmen. Die folgenden Zeilen gelten nur für Apache Webserver. Stellen Sie zunächst sicher, dass Sie einige Funktionen innerhalb der globalen Konfiguration aktiviert haben. Sie müssen Options SymLinksIfOwnerMatch
und AllowOverride FileInfo
für das Verzeichnis aktivieren, in dem phpMyAdmin installiert ist und Sie müssen mod_rewrite aktivieren. Dann müssen Sie nur noch die folgende Datei .htaccess im Stammordner der phpMyAdmin-Installation erstellen (vergessen Sie nicht, den Verzeichnisnamen darin zu ändern):
RewriteEngine On
RewriteBase /path_to_phpMyAdmin
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
Geändert in Version 5.1.0: Die Unterstützung für die Verwendung des Parameters target
wurde in phpMyAdmin 5.1.0 entfernt. Verwenden Sie stattdessen den Parameter route
.
1.35 Kann ich HTTP-Authentifizierung mit Apache CGI verwenden?¶
Ja, Sie müssen jedoch die Authentifizierungsvariable an CGI übergeben, indem Sie die folgende Rewrite-Regel verwenden:
RewriteEngine On
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
1.36 Ich erhalte die Fehlermeldung „500 Internal Server Error“.¶
Es kann viele Erklärungen dazu geben und ein Blick in die Fehlerprotokolldatei Ihres Servers könnte einen Hinweis geben.
1.37 Ich führe phpMyAdmin auf einem Cluster verschiedener Rechner aus und die Passwortverschlüsselung im Cookie-Auth funktioniert nicht.¶
Wenn Ihr Cluster aus verschiedenen Architekturen besteht, funktioniert PHP-Code, der für die Ver-/Entschlüsselung verwendet wird, nicht korrekt. Dies wird durch die Verwendung von Pack-/Entpackfunktionen im Code verursacht. Die einzige Lösung ist die Verwendung der openssl-Erweiterung, die in diesem Fall gut funktioniert.
1.38 Kann ich phpMyAdmin auf einem Server verwenden, auf dem Suhosin aktiviert ist?¶
Ja, aber die Standardkonfigurationswerte von Suhosin sind dafür bekannt, dass sie bei einigen Operationen Probleme verursachen, z.B. beim Bearbeiten einer Tabelle mit vielen Spalten und ohne primary key oder mit Text-primary key.
Die Suhosin-Konfiguration kann in einigen Fällen zu Fehlfunktionen führen und kann nicht vollständig vermieden werden, da phpMyAdmin eine Art Anwendung ist, die große Mengen von Spalten in einer einzelnen HTTP-Anfrage übertragen muss, was Suhosin zu verhindern versucht. Generell alle suhosin.request.*
, suhosin.post.*
und suhosin.get.*
Richtlinien können sich negativ auf die Benutzerfreundlichkeit von phpMyAdmin auswirken. Sie können immer in Ihren Fehlerprotokollen finden, welche Einschränkung das Fallenlassen der Variablen verursacht hat, so dass Sie das Problem diagnostizieren und die entsprechende Konfigurationsvariable anpassen können.
Die Standardwerte für die meisten Suhosin-Konfigurationsoptionen funktionieren in den meisten Szenarien, Sie sollten jedoch mindestens die folgenden Parameter anpassen:
- suhosin.request.max_vars should be increased (eg. 2048)
- suhosin.post.max_vars should be increased (eg. 2048)
- suhosin.request.max_array_index_length should be increased (eg. 256)
- suhosin.post.max_array_index_length should be increased (eg. 256)
- suhosin.request.max_totalname_length should be increased (eg. 8192)
- suhosin.post.max_totalname_length should be increased (eg. 8192)
- suhosin.get.max_value_length should be increased (eg. 1024)
- suhosin.sql.bailout_on_error needs to be disabled (the default)
- suhosin.log.* should not include SQL, otherwise you get big slowdown
- suhosin.sql.union must be disabled (which is the default).
- suhosin.sql.multiselect must be disabled (which is the default).
- suhosin.sql.comment must be disabled (which is the default).
Um die Sicherheit weiter zu verbessern, empfehlen wir auch diese Änderungen:
- suhosin.executor.include.max_traversal should be
enabled as a mitigation against local file inclusion attacks. We suggest
setting this to 2 as
../
is used with the ReCaptcha library. - suhosin.cookie.encrypt should be enabled.
- suhosin.executor.disable_emodifier should be enabled.
Sie können die Warnung auch mit der Option $cfg['SuhosinDisableWarning']
deaktivieren.
1.39 Wenn ich versuche, eine Verbindung über https herzustellen, kann ich mich einloggen, aber dann wird meine Verbindung wieder auf http umgeleitet. Was kann dieses Verhalten verursachen?¶
Dies liegt daran, dass PHP-Skripte nicht wissen, dass die Seite https verwendet. Je nach verwendetem Webserver sollten Sie ihn so konfigurieren, dass er PHP über die URL und das verwendete Schema informiert.
Stellen Sie zum Beispiel im Apache sicher, dass Sie SSLOptions
und StdEnvVars
in der Konfiguration aktiviert haben.
Siehe auch
1.40 Beim Zugriff auf phpMyAdmin über einen Apache Reverse-Proxy funktioniert die Cookie-Anmeldung nicht.¶
Um Cookies verwenden zu können, muss der Apache wissen, dass er die Set-Cookie-Header neu schreiben muss. Beispiel aus der Apache 2.2 Dokumentation:
ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com
ProxyPassReverseCookiePath / /mirror/foo/
Hinweis: Wenn die Backend URL wie http://server/~user/phpmyadmin
aussieht, muss die Tilde (~) als %7E in den ProxyPassReverse* Zeilen kodiert werden. Dies ist nicht spezifisch für phpmyadmin, es ist nur das Verhalten des Apache.
ProxyPass /mirror/foo/ http://backend.example.com/~user/phpmyadmin
ProxyPassReverse /mirror/foo/ http://backend.example.com/%7Euser/phpmyadmin
ProxyPassReverseCookiePath /%7Euser/phpmyadmin /mirror/foo
1.41 Wenn ich eine Datenbank betrachte und nach ihren Rechten frage, erhalte ich eine Fehlermeldung über eine unbekannte Spalte.¶
Die Berechtigungstabellen des MySQL-Servers sind nicht aktuell, Sie müssen den Befehl mysql_upgrade auf dem Server ausführen.
1.42 Wie kann ich verhindern, dass robots auf phpMyAdmin zugreifen?¶
Sie können verschiedene Regeln zu .htaccess hinzufügen, um den Zugriff basierend auf dem User-Agent-Feld zu filtern. Dies ist recht einfach zu umgehen, könnte aber zumindest einige Roboter daran hindern, auf Ihre Installation zuzugreifen.
RewriteEngine on
# Allow only GET and POST verbs
RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ [NC,OR]
# Ban Typical Vulnerability Scanners and others
# Kick out Script Kiddies
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|wkito|pikto|scan|acunetix).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
# Ban Search Engines, Crawlers to your administrative panel
# No reasons to access from bots
# Ultimately Better than the useless robots.txt
# Did google respect robots.txt?
# Try google: intitle:phpMyAdmin intext:"Welcome to phpMyAdmin *.*.*" intext:"Log in" -wiki -forum -forums -questions intext:"Cookies must be enabled"
RewriteCond %{HTTP_USER_AGENT} ^.*(AdsBot-Google|ia_archiver|Scooter|Ask.Jeeves|Baiduspider|Exabot|FAST.Enterprise.Crawler|FAST-WebCrawler|www\.neomo\.de|Gigabot|Mediapartners-Google|Google.Desktop|Feedfetcher-Google|Googlebot|heise-IT-Markt-Crawler|heritrix|ibm.com\cs/crawler|ICCrawler|ichiro|MJ12bot|MetagerBot|msnbot-NewsBlogs|msnbot|msnbot-media|NG-Search|lucene.apache.org|NutchCVS|OmniExplorer_Bot|online.link.validator|psbot0|Seekbot|Sensis.Web.Crawler|SEO.search.Crawler|Seoma.\[SEO.Crawler\]|SEOsearch|Snappy|www.urltrends.com|www.tkl.iis.u-tokyo.ac.jp/~crawler|SynooBot|crawleradmin.t-info@telekom.de|TurnitinBot|voyager|W3.SiteSearch.Crawler|W3C-checklink|W3C_Validator|www.WISEnutbot.com|yacybot|Yahoo-MMCrawler|Yahoo\!.DE.Slurp|Yahoo\!.Slurp|YahooSeeker).* [NC]
RewriteRule .* - [F]
1.43 Warum kann ich die Struktur meiner Tabelle mit Hunderten von Spalten nicht anzeigen?¶
Weil das memory_limit Ihres PHPs zu niedrig ist, passen Sie es in php.ini
an.
1.44 Wie kann ich die installierte Größe von phpMyAdmin auf der Festplatte reduzieren?¶
Einige Benutzer haben darum gebeten, die Größe der phpMyAdmin-Installation reduzieren zu können. Dies wird nicht empfohlen und könnte zu Verwirrung über fehlende Funktionen führen, ist aber möglich. Eine Liste von Dateien und den entsprechenden Funktionen, die sich nach dem Entfernen gravierend verschlechtern, beinhalten:
- Ordner
./locale/
oder unbenutzte Unterordner (Schnittstellenübersetzungen) - Any unused themes in
./public/themes/
except the default theme pmahomme. ./libraries/language_stats.inc.php
(translation statistics)./doc/
(Dokumentation)./setup/
(Setup-Skript)./examples/
(configuration examples)./sql/
(SQL scripts to configure advanced functionalities)./js/src/
(Source files to re-build ./js/dist/)./js/global.d.ts
JS type declaration file- Run rm -rv vendor/tecnickcom/tcpdf && composer dump-autoload –no-interaction –optimize –dev (exporting to PDF)
- Run rm -rv vendor/williamdes/mariadb-mysql-kbs && composer dump-autoload –no-interaction –optimize –dev (external links to MariaDB and MySQL documentations)
- Run rm -rv vendor/code-lts/u2f-php-server && composer dump-autoload –no-interaction –optimize –dev (U2F second factor authentication)
- Run rm -rv vendor/pragmarx/* && composer dump-autoload –no-interaction –optimize –dev (2FA second factor authentication)
- Run rm -rv vendor/bacon/bacon-qr-code && composer dump-autoload –no-interaction –optimize –dev (QRcode generation for 2FA second factor authentication)
1.45 Ich erhalte eine Fehlermeldung über eine unbekannte Authentifizierungsmethode caching_sha2_password wenn ich versuche mich anzumelden¶
Wenn Sie beim Anmelden MySQL in der Version 8 oder neuer verwenden, könnten Sie auf folgende Fehlermeldung stoßen:
mysqli_real_connect(): Der Server fragte nach einer Authentifizierungsmethode die dem Client nicht bekannt ist [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): Der Server fragte nach einer Authentifizierungsmethode, die dem Client nicht bekannt ist
Dieser Fehler entsteht durch ein Kompatibilitätsproblem zwischen PHP und MySQL. Das MySQL-Projekt hatte eine neue Authentifizierungsmethode eingeführt (unsere Tests zeigen, dass dies mit Version 8.0.11 begann) die PHP jedoch nicht unterstützte. PHP gibt an, dass dies in der PHP-Version 7.4 behoben wurde.
Benutzern, bei denen dies auftritt, wird empfohlen die PHP-Installation zu aktualisieren. Es existiert jedoch eine Problemumgehung. Ihr MySQL-Benutzerkonto kann auf die alte Authentifizierung mit folgendem Befehl umgestellt werden
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Konfiguration¶
2.1 Die Fehlermeldung „Warnung: Header-Informationen können nicht hinzugefügt werden - Header wurden bereits von …. gesendet“ wird angezeigt, was ist das Problem?¶
Bearbeiten Sie Ihre config.inc.php
Datei und stellen Sie sicher, dass es weder vor dem <?php
Tag am Anfang noch nach dem ?>
tag am Ende nichts gibt (d.h. keine Leerzeilen, keine Leerzeichen, keine Zeichen…).
2.2 phpMyAdmin kann keine Verbindung zu MySQL herstellen. Was ist denn los?¶
Entweder gibt es einen Fehler in Ihrem PHP-Setup oder Ihr Benutzername/Passwort ist falsch. Versuchen Sie, ein kleines Skript zu erstellen, das mysql_connect verwendet und prüfen Sie, ob es funktioniert. Wenn dies nicht der Fall ist, haben Sie vielleicht noch nicht einmal MySQL-Unterstützung in PHP einkompiliert.
2.3 Die Fehlermeldung „Warnung: MySQL-Verbindung fehlgeschlagen: Kann keine Verbindung zum lokalen MySQL-Server über den Socket ‚/tmp/mysql.sock‘ (111) herstellen….“ wird angezeigt. Was kann ich tun?¶
Die Fehlermeldung kann auch lauten: Error #2002 - Der Server antwortet nicht (oder der Socket des lokalen MySQL-Servers ist nicht korrekt konfiguriert).
Zuerst müssen Sie feststellen, welcher Socket von MySQL verwendet wird. Um dies zu tun, verbinden Sie sich mit Ihrem Server und gehen Sie in das MySQL bin-Verzeichnis. In diesem Verzeichnis sollte sich eine Datei namens mysqladmin befinden. Geben Sie ./mysqladmin variables
ein, das sollte Ihnen eine Menge Informationen über Ihren MySQL-Server liefern, einschließlich des Sockets (z.B. /tmp/mysql.sock). Sie können auch Ihren ISP nach den Verbindungsinformationen fragen oder, wenn Sie Ihren eigenen Server hosten, eine Verbindung über den ‚mysql‘ Kommandozeilen-Client herstellen und ‚status‘ eingeben, um den Verbindungstyp und die Socket- oder Portnummer in Erfahrung zu bringen.
Dann müssen Sie PHP mitteilen, dass es diesen Socket verwenden soll. Sie können dies für das gesamte PHP in der php.ini
tun oder für phpMyAdmin nur in der config.inc.php
. Beispiel: $cfg['Servers'][$i]['socket']
Bitte stellen Sie auch sicher, dass die Rechte dieser Datei für Ihren Webserver lesbar sind.
Auf meiner RedHat-Kiste ist der Socket von MySQL /var/lib/mysql/mysql.sock. In deiner php.ini
gibt es eine Zeile
mysql.default_socket = /tmp/mysql.sock
ändern in
mysql.default_socket = /var/lib/mysql/mysql.sock
Dann starten Sie den Apache neu und es wird funktionieren.
Beachten Sie auch den entsprechenden Abschnitt der MySQL-Dokumentation.
2.4 Mein Browser zeigt nichts an, wenn ich versuche, phpMyAdmin zu starten, was kann ich tun?¶
Versuchen Sie, in der Konfigurationsdatei von phpMyAdmin die Richtlinie $cfg['OBGzip']
auf false
zu setzen, es könnte helfen. Sehen Sie sich auch Ihre PHP-Versionsnummer an: wenn sie „b“ oder „alpha“ enthält, bedeutet das, dass Sie eine Testversion von PHP verwenden. Das ist keine so gute Idee, bitte aktualisieren Sie auf eine einfache Revision.
2.5 Jedes Mal, wenn ich eine Zeile einfügen oder ändern oder eine Datenbank oder eine Tabelle löschen möchte, wird ein Fehler 404 (Seite nicht gefunden) angezeigt oder ich werde aufgefordert, mich erneut anzumelden. Was ist denn los?¶
Überprüfen Sie Ihr Webserver-Setup, ob es entweder PHP_SELF- oder REQUEST_URI-Variablen korrekt ausfüllt.
Wenn Sie phpMyAdmin hinter einem Reverse-Proxy laufen lassen, setzen Sie bitte die $cfg['PmaAbsoluteUri']
-Richtlinie in der phpMyAdmin-Konfigurationsdatei entsprechend Ihrer Konfiguration.
2.6 Ich erhalte einen „Access denied for user: ‚root@localhost‘ (Using password: YES)“-Fehler beim Zugriff auf einen MySQL-Server auf einem Host, der auf meinen localhost port-forwarded ist.¶
Wenn Sie einen Port auf Ihrem localhost verwenden, den Sie per Port-Weiterleitung auf einen anderen Host umleiten, löst MySQL den localhost nicht wie erwartet auf. Erklärung von Erik Wasser: Die Lösung ist: Wenn Ihr Host „localhost“ ist, versucht MySQL (auch das Kommandozeilen-Tool mysql) immer, die Socket-Verbindung zu benutzen, aus Beschleunigungsgründen. Das funktioniert in dieser Konfiguration mit Portweiterleitung nicht. Wenn Sie „127.0.0.0.1“ als Hostname eingeben, ist alles in Ordnung und MySQL verwendet die TCP-Verbindung.
2.7 Designs verwenden und erstellen¶
Siehe Benutzerdefinierte Designs.
2.8 Ich erhalte „Fehlende Parameter“ Fehler, was kann ich tun?¶
Nachfolgend ein paar Punkte zur Prüfung:
- In
config.inc.php
versuchen Sie die Anweisung$cfg['PmaAbsoluteUri']
leer zu lassen. Siehe auch 4.7 Das Authentifizierungsfenster wird mehr als einmal angezeigt, warum?. - Vielleicht haben Sie eine defekte PHP-Installation oder Sie müssen Ihren Zend Optimizer aktualisieren. Siehe <https://bugs.php.net/bug.php?id=31134>.
- Wenn Sie Hardened PHP mit der ini-Direktive
`varfilter.max_request_variables
auf den Standardwert (200) oder einen anderen niedrigen Wert setzen, könnten Sie diesen Fehler erhalten, wenn Ihre Tabelle eine hohe Menge an Spalten hat. Passen Sie diese Einstellung entsprechend an. (Danke an Klaus Dorninger für den Hinweis). - In der :file:
php.ini` Richtlinie ``arg_separator.input
, wird ein Wert von „;“ diesen Fehler verursachen. Ersetzen Sie es durch „&;“. - If you are using Suhosin, you might want to increase request limits.
- Das Verzeichnis der in der
php.ini
angegebenen Richtliniesession.save_path
existiert nicht oder ist schreibgeschützt (dies kann durch bug im PHP Installer verursacht werden).
2.9 Einen Fortschrittsbalken für den Upload sehen¶
To be able to see a progress bar during your uploads, your server must have the uploadprogress extension, and you must be running PHP 5.4.0 or higher. Moreover, the JSON extension has to be enabled in your PHP.
Wenn Sie PHP 5.4.0 oder höher verwenden, müssen Sie session.upload_progress.enabled`
auf 1
in Ihrer php.ini
setzen. Ab phpMyAdmin Version 4.0.4 wurde der sitzungsbasierte Upload-Fortschritt jedoch wegen seines problematischen Verhaltens vorübergehend deaktiviert.
2.10 How to generate a string of random bytes¶
One way to generate a string of random bytes suitable for cryptographic use is using the random_bytes PHP function. Since this function returns a binary string, the returned value should be converted to printable format before being able to copy it.
For example, the $cfg['blowfish_secret']
configuration directive requires a 32-bytes long string. The
following command can be used to generate a hexadecimal representation of this string.
php -r 'echo bin2hex(random_bytes(32)) . PHP_EOL;'
The above example will output something similar to:
f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851
And then this hexadecimal value can be used in the configuration file.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
The sodium_hex2bin function is used here to convert the hexadecimal value back to the binary format.
Bekannte Einschränkungen¶
3.1 Bei Verwendung der HTTP-Authentifizierung kann sich ein Benutzer, der sich abgemeldet hat, nicht mehr mit dem gleichen Nicknamen anmelden.¶
Dies hängt mit dem von phpMyAdmin verwendeten Authentifizierungsmechanismus (Protokoll) zusammen. Um dieses Problem zu umgehen, schließen Sie einfach alle geöffneten Browserfenster und gehen Sie zurück zu phpMyAdmin. Sie sollten sich wieder einloggen können.
3.2 Beim Dumpen einer großen Tabelle in komprimierter Form erhalte ich einen Speicherlimitfehler oder einen Zeitlimitfehler.¶
Komprimierte Dumps werden im Speicher erstellt und sind daher auf das Speicherlimit von php beschränkt. Für gzip/bzip2-Exporte kann dies seit 2.5.4 mit $cfg['CompressOnFly']
gelöst werden (standardmäßig aktiviert). Zip-Exporte können so nicht behandelt werden, wenn Sie also Zip-Dateien für größere Dumps benötigen, müssen Sie eine andere Lösung finden.
3.3 Bei InnoDB-Tabellen verliere ich Fremdschlüsselbeziehungen, wenn ich eine Tabelle oder Spalte umbenenne.¶
Dies ist ein InnoDB-Bug, siehe <https://bugs.mysql.com/bug.php?id=21704>.
3.4 Ich kann keine Dumps importieren, die ich mit dem mysqldump-Tool erstellt habe, das mit der MySQL-Server-Distribution geliefert wird.¶
Das Problem ist, dass ältere Versionen von mysqldump
ungültige Kommentare wie diesen erstellt haben:
-- MySQL dump 8.22
--
-- Host: localhost Database: database
---------------------------------------------------------
-- Server version 3.23.54
Der ungültige Teil des Codes ist die horizontale Linie aus Bindestrichen, die einmal in jedem mit mysqldump erstellten Dump erscheint. Wenn Sie Ihren Dump ausführen wollen, müssen Sie ihn in gültiges MySQL umwandeln. Das heißt, Sie müssen nach den ersten beiden Bindestrichen der Zeile ein Leerzeichen einfügen oder ein # davor: -- -------------------------------------------------------------------------------
oder #---------------------------------------------------------------------
3.5 Bei der Verwendung verschachtelter Ordner werden mehrere Hierarchien falsch dargestellt.¶
Bitte beachten Sie, dass Sie die Trennzeichenfolge nicht mehrfach ohne Zwischenzeichen oder am Anfang/Ende Ihres Tabellennamens verwenden sollten. Wenn Sie müssen, denken Sie darüber nach, einen anderen TableSeparator zu verwenden oder diese Funktion zu deaktivieren.
Siehe auch
3.6 (zurückgezogen).¶
3.7 Ich habe eine Tabelle mit vielen (>100) Spalten und wenn ich versuche, die Tabelle zu durchsuchen, erhalte ich eine Reihe von Fehlern wie „Warning: unable to parse url“. Wie kann das behoben werden?¶
Ihre Tabelle hat weder einen primary key noch einen unique key, also müssen wir einen langen Ausdruck verwenden, um diese Zeile zu identifizieren. Das verursacht Probleme mit der Parse_url-Funktion. Die Problemumgehung besteht darin, einen primary key oder unique key zu erzeugen.
3.8 Ich kann keine (anklickbaren) HTML-Formulare in Spalten verwenden, in die ich eine MIME-Transformation eingefügt habe!¶
Aufgrund eines umgebenden Formular-Containers (bei mehrzeiligen Löschschaltflächen) können keine verschachtelten Formulare in die Tabelle gestellt werden, in der phpMyAdmin die Ergebnisse anzeigt. Sie können jedoch jedes Formular innerhalb einer Tabelle verwenden, wenn Sie den übergeordneten Formular-Container mit dem Ziel tbl_row_delete.php behalten und einfach Ihre eigenen Eingabeelemente einfügen. Wenn Sie ein benutzerdefiniertes Submit-Eingabefeld verwenden, wird sich das Formular erneut an die angezeigte Seite senden, wo Sie die $HTTP_POST_VARS in einer Transformation prüfen können. Ein Tutorial zur effektiven Nutzung von Transformationen finden Sie auf der offiziellen phpMyAdmin-Homepage unter Link section.
3.9 Ich erhalte Fehlermeldungen, wenn ich „–sql_mode=ANSI“ für den MySQL-Server verwende.¶
Wenn MySQL im ANSI-Kompatibilitätsmodus läuft, gibt es einige große Unterschiede in der Struktur von SQL (siehe <https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html>). Vor allem wird das Anführungszeichen (“) als Bezeichner-Anführungszeichen und nicht als String-Anführungszeichen interpretiert, was viele interne phpMyAdmin-Operationen zu ungültigen SQL-Anweisungen macht. Es gibt keine Abhilfe für dieses Verhalten. Neuigkeiten zu diesem Artikel werden in Ausgabe #7383 veröffentlicht.
3.10 Homonyme und kein Primärschlüssel: wenn die Ergebnisse eines SELECTs mehr als eine Spalte mit dem gleichen Wert anzeigen (z.B. SELECT lastname from employees where firstname like 'A%'
und zwei „Smith“-Werte angezeigt werden), kann ich nicht sicher sein, dass ich die gewünschte Zeile bearbeite.¶
Bitte stellen Sie sicher, dass Ihre Tabelle einen primary key hat, damit phpMyAdmin ihn für die Bearbeiten- und Löschen-Links verwenden kann.
3.11 Die Anzahl der Zeilen für InnoDB-Tabellen ist nicht korrekt.¶
phpMyAdmin verwendet eine schnelle Methode, um die Anzahl der Zeilen zu ermitteln und diese Methode gibt nur eine ungefähre Anzahl im Falle von InnoDB-Tabellen zurück. Siehe $cfg['MaxExactCount']
, um diese Ergebnisse zu modifizieren, aber das könnte einen ernsthaften Einfluss auf die Performance haben. Man kann jedoch die ungefähre Anzahl der Zeilen durch eine genaue Anzahl ersetzen, indem man einfach auf die ungefähre Anzahl klickt. Dies kann auch für alle Tabellen auf einmal geschehen, indem Sie auf die unten angezeigte Zeilensumme klicken.
Siehe auch
3.12 (zurückgezogen).¶
3.13 Ich erhalte einen Fehler bei der Eingabe von USE
gefolgt von einem db-Namen, der einen Bindestrich enthält.¶
Die Tests, die ich mit MySQL 5.1.49 durchgeführt habe, zeigen, dass die API diese Syntax für das USE-Kommando nicht akzeptiert.
3.14 Ich kann eine Tabelle nicht durchsuchen, wenn ich nicht das Recht habe, SELECT auf eine der Spalten auszuführen.¶
Dies war von Anfang an eine bekannte Einschränkung von phpMyAdmin und wird in Zukunft wahrscheinlich nicht mehr gelöst werden.
3.15 (zurückgezogen).¶
3.16 (zurückgezogen).¶
3.17 (zurückgezogen).¶
3.18 Wenn ich eine CSV-Datei importiere, die mehrere Tabellen enthält, werden diese in einer einzigen Tabelle zusammengefasst.¶
Es gibt keine zuverlässige Möglichkeit, Tabellen im Format CSV zu unterscheiden. Vorläufig müssen Sie CSV Dateien, die mehrere Tabellen enthalten, zu trennen.
3.19 Wenn ich eine Datei importiere und phpMyAdmin die passende Datenstruktur bestimmen lasse, verwendet es nur int, dezimal und varchar Typen.¶
Derzeit kann das Import-Typ-Erkennungssystem diese MySQL-Typen nur Spalten zuweisen. In Zukunft werden wahrscheinlich noch weitere hinzukommen, aber vorerst müssen Sie die Struktur nach dem Import Ihren Wünschen bearbeiten. Außerdem sollten Sie beachten, dass phpMyAdmin die Größe des größten Eintrags in einer bestimmten Spalte als Spaltengröße für den entsprechenden Typ verwendet. Wenn Sie wissen, dass Sie dieser Spalte größere Elemente hinzufügen werden, sollten Sie die Spaltengrößen entsprechend anpassen. Dies geschieht aus Gründen der Effizienz.
3.20 Nach dem Upgrade sind einige Lesezeichen verschwunden oder ihr Inhalt kann nicht angezeigt werden.¶
Irgendwann hat sich der Zeichensatz zum Speichern von Lesezeicheninhalten geändert. Es ist besser, Ihr Lesezeichen aus der neueren phpMyAdmin-Version neu zu erstellen.
3.21 Ich kann mich nicht mit einem Benutzernamen anmelden, der Unicode-Zeichen wie á enthält.¶
Dies kann passieren, wenn der MySQL-Server nicht so konfiguriert ist, dass er UTF-8 als Standardzeichensatz verwendet. Dies ist eine Einschränkung der Interaktion zwischen PHP und dem MySQL-Server; es gibt keine Möglichkeit für PHP, den Zeichensatz vor der Authentifizierung zu definieren.
Siehe auch
ISPs, Mehrbenutzer-Installationen¶
4.1 Ich bin ein ISP. Kann ich eine zentrale Kopie von phpMyAdmin einrichten oder muss ich diese für jeden Kunden installieren?¶
Seit Version 2.0.3 können Sie eine zentrale Kopie von phpMyAdmin für alle Ihre Benutzer einrichten. Die Entwicklung dieses Features wurde freundlicherweise von der NetCologne GmbH unterstützt. Dies erfordert eine korrekt eingerichtete MySQL-Benutzerverwaltung und phpMyAdmin HTTP oder Cookie-Authentifizierung.
Siehe auch
4.2 Wie kann man phpMyAdmin vor bösartigem Zugriff schützen?¶
Das hängt von Ihrem System ab. Wenn Sie einen Server betreiben, auf den andere Personen nicht zugreifen können, genügt es, den mit Ihrem Webserver mitgelieferten Verzeichnisschutz zu verwenden (bei Apache können Sie z.B. .htaccess Dateien verwenden). Wenn andere Personen Telnet-Zugriff auf Ihren Server haben, sollten Sie phpMyAdmins HTTP oder Cookie-Authentifizierungsfunktionen verwenden.
Vorschläge:
- Auf Ihre
config.inc.php
Datei solltechmod 660
angewendet werden. - Alle Ihre phpMyAdmin-Dateien sollten chown -R phpmy.apache sein, wobei phpmy ein Benutzer ist, dessen Passwort nur Ihnen bekannt ist, und apache die Gruppe ist, unter der der Apache läuft.
- Befolgen Sie die Sicherheitsempfehlungen für PHP und Ihren Webserver.
4.3 Ich erhalte Fehler, wenn ich eine Datei nicht in /lang oder in /libraries einbinden kann.¶
Überprüfen Sie die Datei:php.ini, oder bitten Sie Ihren Systemadministrator, dies zu tun. Der include_path
muss „.“ enthalten, und open_basedir
, falls verwendet, muss es „.“ und „./lang“ enthalten, um den normalen Betrieb von phpMyAdmin zu ermöglichen.
4.4 phpMyAdmin gibt bei Verwendung der HTTP-Authentifizierung immer „Zugriff verweigert“.¶
Dies kann mehrere Gründe haben:
$cfg['Servers'][$i]['controluser']
und/oder$cfg['Servers'][$i]['controlpass']
sind falsch.- Der Benutzername und das Passwort, die Sie im Anmeldedialog angeben, sind ungültig.
- Sie haben bereits einen Sicherheitsmechanismus für das phpMyAdmin- Verzeichnis eingerichtet, z.B. eine .htaccess Datei. Dies würde die Authentifizierung von phpMyAdmin stören, also entfernen Sie sie.
4.5 Ist es möglich, eigene Datenbanken erstellen zu lassen?¶
Ab Version 2.2.5 können Sie in der Benutzerverwaltung einen Wildcard-Datenbanknamen für einen Benutzer eingeben (z.B. „joe%“) und die gewünschten Rechte vergeben. Zum Beispiel würde das Hinzufügen von SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
einen Benutzer seine Datenbank(en) erstellen/verwalten lassen.
4.6 Wie kann ich die Host-basierten Authentifizierungszusätze verwenden?¶
Wenn Sie bereits Regeln aus einer alten .htaccess Datei haben, können Sie diese nehmen und einen Benutzernamen zwischen den 'deny'
/'allow'
und 'from'
Zeichenketten hinzufügen. Die Verwendung des Platzhalters für den Benutzernamen '%'
‘‘ wäre hier ein großer Vorteil, wenn Ihre Installation für die Verwendung geeignet ist. Dann können Sie diese aktualisierten Zeilen einfach in die $cfg['Servers'][$i]['AllowDeny']['rules']
Array einfügen.
Wenn Sie ein vorgefertigtes Beispiel wollen, können Sie dieses Fragment ausprobieren. Er verhindert, dass sich der ‚root‘-Benutzer von anderen Netzwerken als dem privaten IP Netzwerkblock aus anmeldet.
//block root from logging in except from the private networks
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = [
'deny root from all',
'allow root from localhost',
'allow root from 10.0.0.0/8',
'allow root from 192.168.0.0/16',
'allow root from 172.16.0.0/12',
];
4.7 Das Authentifizierungsfenster wird mehr als einmal angezeigt, warum?¶
Dies geschieht, wenn Sie einen URL verwenden, um phpMyAdmin zu starten, der sich von dem in Ihrer $cfg['PmaAbsoluteUri']
gesetzten unterscheidet. Zum Beispiel fehlendes „www“, oder die Eingabe mit einem IP Adresse, obwohl ein Domain-Name in der Konfigurationsdatei definiert ist.
4.8 Welche Parameter kann ich in der URL verwenden, die phpMyAdmin startet?¶
Beim Start von phpMyAdmin können Sie die Parameter db
und server
verwenden. Letzteres kann entweder den numerischen Host-Index (von $i
der Konfigurationsdatei) oder einen der in der Konfigurationsdatei vorhandenen Hostnamen enthalten.
Um beispielsweise direkt zu einer bestimmten Datenbank zu gelangen, kann eine URL wie https://example.com/phpmyadmin/?db=sakila
konstruiert werden.
Geändert in Version 4.9.0: Die Unterstützung für die Verwendung der Parameter pma_username
und pma_password
wurde in phpMyAdmin 4.9.0 entfernt (siehe PMASA-2019-4).
Browser oder Client-OS¶
5.1 Ich erhalte einen Speicherfehler und meine Steuerelemente sind nicht funktionsfähig, wenn ich versuche, eine Tabelle mit mehr als 14 Spalten zu erstellen.¶
Wir konnten dieses Problem nur unter Win98/98SE reproduzieren. Beim Testen unter WinNT4 oder Win2K konnten wir problemlos mehr als 60 Spalten erstellen. Ein Workaround besteht darin, eine kleinere Anzahl von Spalten zu erstellen, dann zu Ihren Tabelleneigenschaften zurückzukehren und die anderen Spalten hinzuzufügen.
5.2 Mit Xitami 2.5b4 verarbeitet phpMyAdmin keine Formularfelder.¶
Dies ist kein phpMyAdmin-Problem, sondern ein bekannter Xitami-Fehler: das passiert mit jedem Skript/Website, das Formulare verwendet. Upgraden oder Downgraden Sie Ihren Xitami-Server.
5.3 Ich habe Probleme mit Konqueror (phpMyAdmin 2.2.2).¶
Mit Konqueror 2.1.1: einfache Dumps, Zip- und Gzip-Dumps funktionieren, außer dass der vorgeschlagene Dateiname für den Dump immer ‚tbl_dump.php‘ ist. Die bzip2-Dumps scheinen nicht zu funktionieren. Mit Konqueror 2.2.1: einfache Dumps funktionieren; Zip-Dumps werden in das temporäre Verzeichnis des Benutzers gelegt, so dass sie vor dem Schließen von Konqueror verschoben werden müssen, sonst verschwinden sie. gzip-Dumps geben eine Fehlermeldung aus. Tests müssen noch mit Konqueror 2.2.2 durchgeführt werden.
5.4 Ich kann den Cookie-Authentifizierungsmodus nicht verwenden, da Internet Explorer die Cookies nie speichert.¶
Der MS Internet Explorer scheint bei Cookies wirklich fehlerhaft zu sein, zumindest bis Version 6.
5.5 (zurückgezogen).¶
5.6 (zurückgezogen).¶
5.7 Ich aktualisiere meinen Browser und komme zurück zur Startseite.¶
Einige Browser unterstützen einen Rechtsklick in den Frame, den Sie aktualisieren möchten, tun Sie dies einfach im richtigen Frame.
5.8 Mit Mozilla 0.9.7 habe ich Probleme beim Senden einer Abfrage, die in der Abfragebox geändert wurde.¶
Sieht aus wie ein Mozilla-Fehler: 0.9.6 war OK. Wir werden ein Auge auf zukünftige Mozilla-Versionen haben.
5.9 Mit Mozilla 0.9.? bis 1.0 und Netscape 7.0-PR1 kann ich kein Leerzeichen im SQL-Query-Editierbereich eingeben: die Seite scrollt nach unten.¶
Dies ist ein Mozilla-Bug (siehe Bug #26882 unter BugZilla).
5.10 (zurückgezogen).¶
5.11 Extended-ASCII-Zeichen wie deutsche Umlaute werden falsch dargestellt.¶
Bitte stellen Sie sicher, dass Sie den Zeichensatz Ihres Browsers auf die Sprachdatei eingestellt haben, die Sie auf der Startseite von phpMyAdmin ausgewählt haben. Alternativ können Sie auch den automatischen Erkennungsmodus ausprobieren, der von den neuesten Versionen der meisten Browser unterstützt wird.
5.12 Mac OS X Safari-Browser ändert Sonderzeichen in „?“.¶
This issue has been reported by a macOS user, who adds that Chimera, Netscape and Mozilla do not have this problem.
5.13 (zurückgezogen)¶
5.14 (zurückgezogen)¶
5.15 (zurückgezogen)¶
5.16 Mit dem Internet Explorer erhalte ich „Access is denied“ Javascript-Fehler. Oder ich kann phpMyAdmin nicht unter Windows laufen lassen.¶
Bitte überprüfen Sie die folgenden Punkte:
- Vielleicht haben Sie Ihre
$cfg['PmaAbsoluteUri']
Einstellung inconfig.inc.php
definiert auf eine IP Adresse und Sie starten phpMyAdmin mit einem URL, der einen Domainnamen enthält, oder umgekehrt. - Die Sicherheitseinstellungen im IE und/oder Microsoft Security Center sind zu hoch, wodurch die Ausführung von Skripten blockiert wird.
- Die Windows Firewall blockiert Apache und MySQL. Sie müssen HTTP ports (80 oder 443) und MySQL port (normalerweise 3306) in der „in“ und „out“ Richtung erlauben.
5.17 Mit Firefox kann ich keine Datenzeilen oder eine Datenbank löschen.¶
Viele Benutzer haben bestätigt, dass das Tabbrowser Extensions Plugin, das sie in ihrem Firefox installiert haben, das Problem verursacht.
5.18 (zurückgezogen)¶
5.19 Ich bekomme JavaScript-Fehler in meinem Browser.¶
Es wurden Probleme mit einigen Kombinationen von Browser-Erweiterungen gemeldet. Um Fehler zu beheben, deaktivieren Sie alle Erweiterungen und leeren Sie dann Ihren Browser-Cache, um zu sehen, ob das Problem verschwindet.
5.20 Ich erhalte Fehler bei der Verletzung der Content Security Policy.¶
Wenn Sie Fehler erhalten wie:
Refused to apply inline style because it violates the following Content Security Policy directive
Dies wird in der Regel durch eine Software verursacht, die fälschlicherweise Content Security Policy Header neu schreibt. Normalerweise wird dies durch einen Antiviren-Proxy oder Browser-Addons verursacht, die solche Fehler verursachen.
Wenn Sie diese Fehler sehen, deaktivieren Sie den HTTP-Proxy im Antivirus oder deaktivieren Sie den Content Security Policy Rewriting dort. Wenn das nicht hilft, versuchen Sie, die Browser-Erweiterungen zu deaktivieren.
Alternativ kann es auch ein Serverkonfigurationsproblem sein (wenn der Webserver so konfiguriert ist, dass er Content Security Policy-Header ausgibt, können sie die von phpMyAdmin überschreiben).
Programme, von denen bekannt ist, dass sie diese Art von Fehlern verursachen:
- Kaspersky Internet Security
5.21 Ich erhalte Fehler über potenziell unsicheren Betrieb beim Durchsuchen der Tabelle oder beim Ausführen von SQL-Abfragen.¶
Wenn Sie Fehler erhalten wie:
A potentially unsafe operation has been detected in your request to this site.
Dies wird in der Regel durch eine Web-Anwendungs-Firewall verursacht, die Anfragen filtert. Es versucht, SQL-Injektion zu verhindern, aber phpMyAdmin ist ein Werkzeug zur Ausführung von SQL-Abfragen, wodurch es unbrauchbar wird.
Please allow phpMyAdmin scripts from the web application firewall settings or disable it completely for phpMyAdmin path.
Programme, von denen bekannt ist, dass sie diese Art von Fehlern verursachen:
- Wordfence Web Application Firewall
phpMyAdmin verwenden¶
6.1 Ich kann keine neuen Zeilen in eine Tabelle einfügen / Ich kann keine Tabelle erstellen - MySQL zeigt einen SQL-Fehler an.¶
Überprüfen Sie aufmerksam den SQL Fehler. Häufig wird das Problem durch die Angabe eines falschen Spaltentyps verursacht. Häufige Fehler sind u.a:
- Verwendung von
VARCHAR
ohne Größenargument - Verwendung von
TEXT
oderBLOB
mit einem Größenargument
Sehen Sie sich auch das Syntax-Kapitel im MySQL-Handbuch an, um zu bestätigen, dass Ihre Syntax korrekt ist.
6.2 Wenn ich eine Tabelle erstelle, setze ich einen Index für zwei Spalten und phpMyAdmin erzeugt nur einen Index mit diesen beiden Spalten.¶
Auf diese Weise wird ein mehrspaltiger Index erstellt. Wenn Sie zwei Indizes wünschen, legen Sie den ersten beim Anlegen der Tabelle an, speichern Sie, zeigen Sie dann die Tabelleneigenschaften an und klicken Sie auf den Link Index, um den anderen Index anzulegen.
6.3 Wie kann ich einen Nullwert in meine Tabelle einfügen?¶
Seit Version 2.2.3 gibt es ein Ankreuzfeld für jede Spalte, die null sein kann. Vor 2.2.3 mussten Sie als Spaltenwert „null“ ohne Anführungszeichen eingeben. Seit Version 2.5.5 müssen Sie die Checkbox benutzen, um einen echten NULL-Wert zu erhalten. Wenn Sie also „NULL“ eingeben, bedeutet dies, dass Sie einen wortwörtlichen Wert NULL in der Spalte haben wollen und keinen NULL-Wert (dies funktioniert in PHP4).
6.4 Wie kann ich meine Datenbank oder Tabelle sichern?¶
Klicken Sie auf einen Datenbank- oder Tabellennamen im Navigations-Panel: die Eigenschaften werden angezeigt. Klicken Sie dann im Menü auf „Exportieren“, um die Struktur, die Daten oder beides zu exportieren. Dadurch werden Standard SQL Anweisungen generiert, die zur Wiederherstellung Ihrer Datenbank/Tabelle verwendet werden können. Sie müssen „Als Datei speichern“ wählen, damit phpMyAdmin den resultierenden Dump zu Ihrem Computer übertragen kann. Abhängig von Ihrer PHP-Konfiguration sehen Sie Optionen zum Komprimieren des Dumps. Siehe auch die Konfigurationsvariable $cfg['ExecTimeLimit']
. Weitere Hilfe zu diesem Thema finden Sie in diesem Dokument unter dem Wort „dump“.
6.5 Wie kann ich meine Datenbank oder Tabelle mit einem Dump wiederherstellen (hochladen)? Wie kann ich eine „.sql“-Datei ausführen?¶
Klicken Sie auf einen Datenbanknamen im Navigations-Panel: die Eigenschaften werden angezeigt. Wählen Sie „Importieren“ aus der Liste der Registerkarten im rechten Rahmen (oder „SQL“, wenn Ihre phpMyAdmin-Version älter als 2.7.0 ist). Geben Sie im Abschnitt „Speicherort der Textdatei“ den Pfad zu Ihrem Dump-Dateinamen ein, oder verwenden Sie die Schaltfläche Durchsuchen. Klicken Sie dann auf Go. Mit der Version 2.7.0 wurde die Import Engine neu geschrieben, wenn möglich wird ein Upgrade vorgeschlagen, um die Vorteile der neuen Funktionen zu nutzen. Weitere Hilfe zu diesem Thema finden Sie in diesem Dokument unter dem Wort „upload“.
Hinweis: Für Fehler beim Import von Dumps, die von älteren MySQL-Versionen in neuere MySQL-Versionen exportiert wurden, überprüfen Sie bitte 6.41 Ich bekomme Importfehler beim Importieren der aus älteren MySQL-Versionen (vor 5.7.6) exportierten Dumps in neuere MySQL-Versionen (ab 5.7.7), aber sie funktionieren gut, wenn sie wieder auf denselben älteren Versionen importiert werden?.
6.6 Wie kann ich die Relationstabelle in Query-by-example verwenden?¶
Hier ein Beispiel mit den Tabellen Personen, Städte und Länder, alle in der Datenbank „mydb“. Wenn Sie keine pma__relation
Tabelle haben, erstellen Sie diese wie im Abschnitt Konfiguration beschrieben. Legen Sie dann die Beispieltabellen an:
CREATE TABLE REL_countries (
country_code char(1) NOT NULL default '',
description varchar(10) NOT NULL default '',
PRIMARY KEY (country_code)
) ENGINE=MyISAM;
INSERT INTO REL_countries VALUES ('C', 'Canada');
CREATE TABLE REL_persons (
id tinyint(4) NOT NULL auto_increment,
person_name varchar(32) NOT NULL default '',
town_code varchar(5) default '0',
country_code char(1) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO REL_persons VALUES (11, 'Marc', 'S', 'C');
INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
CREATE TABLE REL_towns (
town_code varchar(5) NOT NULL default '0',
description varchar(30) NOT NULL default '',
PRIMARY KEY (town_code)
) ENGINE=MyISAM;
INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
INSERT INTO REL_towns VALUES ('M', 'Montréal');
Zum Einrichten entsprechender Links und zum Anzeigen von Informationen:
- in der Tabelle „REL_persons“ klicken Sie auf Struktur, dann auf Beziehungsansicht
- for „town_code“, choose from dropdowns, „mydb“, „REL_towns“, „town_code“ for foreign database, table and column respectively
- für „country_code“, wählen Sie aus den Dropdowns, „mydb“, „REL_countries“, „country_code“ für ausländische Datenbank, Tabelle bzw. Spalte
- in der Tabelle „REL_towns“ klicken Sie auf Struktur, dann auf Beziehungsansicht
- Wählen Sie unter „anzuzeigende Spalte auswählen“ die Option „Beschreibung“
- wiederholen Sie die beiden vorherigen Schritte für die Tabelle „REL_countries“
Testen Sie dann wie folgt:
- Klicken Sie im Navigationsbereich auf Ihren db-Namen
- Wählen Sie „Abfrage“
- Tabellen verwenden: Personen, Städte, Länder
- Klicken Sie auf „Abfrage aktualisieren“
- Wählen Sie in der Spaltenzeile persons.person_name und klicken Sie auf das Kontrollkästchen „Anzeigen“
- Tun Sie das gleiche für die Städte- und Länderbeschreibungen in den anderen 2 Spalten
- Klicken Sie auf „Abfrage aktualisieren“ und Sie werden in der Abfragebox sehen, dass die richtigen Joins generiert wurden
- Klicken Sie auf „Anfrage absenden“
6.7 Wie kann ich die Funktion „Spalte anzeigen“ verwenden?¶
Ausgehend vom vorherigen Beispiel erstellen Sie die pma__table_info
wie im Abschnitt Konfiguration beschrieben, durchsuchen dann die Tabelle Ihrer Personen und bewegen die Maus über einen Orts- oder Ländercode. Siehe auch 6.21 Wie kann ich im Bearbeitungs-/Einfügemodus eine Liste der möglichen Werte für eine Spalte sehen, die auf einer fremden Tabelle basiert? für eine zusätzliche Funktion, die „Spalte anzeigen“ ermöglicht: eine Dropdown-Liste der möglichen Werte.
6.8 Wie kann ich ein PDF-Schema meiner Datenbank erstellen?¶
First the configuration variables „relation“, „table_coords“ and „pdf_pages“ have to be filled in.
- Wählen Sie Ihre Datenbank im Navigationsbereich aus.
- Choose „Designer“ in the navigation bar at the top.
- Move the tables the way you want them.
- Choose „Export schema“ in the left menu.
- The export modal will open.
- Select the type of export to PDF, you may adjust the other settings.
- Submit the form and the file will start downloading.
Siehe auch
6.9 phpMyAdmin ändert den Typ einer meiner Spalten!¶
Nein, es ist MySQL, das silent column type changing macht.
6.10 Was passiert beim Anlegen eines Privilegs mit Unterstrichen im Datenbanknamen?¶
Wenn Sie keinen Backslash vor den Unterstrich setzen, handelt es sich um einen Platzhalter, und der Unterstrich bedeutet „beliebiges Zeichen“. Wenn der Datenbankname also „john_db“ lautet, erhält der Benutzer die Rechte für john1db, john2db …. Wenn Sie einen Backslash vor den Unterstrich setzen, bedeutet dies, dass der Datenbankname einen echten Unterstrich hat.
6.11 Was ist das seltsame Symbol ø in den Statistikseiten?¶
Es bedeutet „Durchschnitt“.
6.12 Ich möchte einige Exportoptionen verstehen.¶
Struktur:
- „Add DROP TABLE“ fügt eine Zeile hinzu, die MySQL auffordert, die ‚Tabelle zu löschen<https://dev.mysql.com/doc/refman/5.7/en/drop-table.html>`_, falls sie bereits während des Imports existiert. Die Tabelle wird nach dem Export NICHT gelöscht, sie wirkt sich nur auf die Importdatei aus.
- „If Not Exists“ erstellt die Tabelle nur, wenn sie nicht existiert. Andernfalls kann es zu einem Fehler kommen, wenn der Tabellenname zwar existiert, aber eine andere Struktur hat.
- „Add AUTO_INCREMENT value“ stellt sicher, dass der AUTO_INCREMENT-Wert (falls vorhanden) in das Backup einbezogen wird.
- „Tabellen- und Spaltennamen mit Backquotes einschließen“ stellt sicher, dass Spalten- und Tabellennamen, die mit Sonderzeichen gebildet wurden, geschützt sind.
- „Add into comments“ enthält Spaltenkommentare, Relationen und Medientypen, die im pmadb im Dump als SQL comments (/* xxx */) gesetzt sind.
Data:
- „Complete inserts“ fügt die Spaltennamen bei jedem INSERT-Befehl hinzu, um die Dokumentation zu verbessern (aber die resultierende Datei ist größer).
- „Extended Inserts“ bietet eine kürzere Dump-Datei, indem es nur einmal das INSERT-Verb und den Tabellennamen verwendet.
- „Verzögerte Inserts“ werden am besten im MySQL-Handbuch - INSERT DELAYED Syntax erklärt.
- „Inserts ignorieren“ behandelt Fehler stattdessen als Warnung. Auch hier finden Sie weitere Informationen im MySQL-Handbuch - INSERT Syntax, aber im Grunde genommen werden damit ungültige Werte angepasst und eingefügt, anstatt dass die gesamte Anweisung fehlschlägt.
6.13 Ich möchte eine Datenbank mit einem Punkt im Namen erstellen.¶
Dies ist eine schlechte Idee, da in MySQL die Syntax „database.table“ die Methode ist, eine Datenbank und einen Tabellennamen zu referenzieren. Schlimmer noch, MySQL lässt Sie normalerweise eine Datenbank mit einem Punkt erstellen, aber dann können Sie weder damit arbeiten noch sie löschen.
6.14 (zurückgezogen).¶
6.15 Ich möchte eine BLOB-Spalte hinzufügen und einen Index darauf setzen, aber MySQL sagt „BLOB-Spalte ‚….‘ verwendet in Schlüsselspezifikation ohne Schlüssellänge“.¶
Der richtige Methode ist, die Spalte ohne Indizes anzulegen, dann die Tabellenstruktur anzuzeigen und den Dialog „Index anlegen“ zu verwenden. Auf dieser Seite können Sie Ihre BLOB-Spalte auswählen und eine Größe auf den Index setzen, was die Voraussetzung für die Erstellung eines Index auf einer BLOB-Spalte ist.
6.16 Wie kann ich mich einfach in einer Seite mit vielen Editierfeldern bewegen?¶
Sie können Ctrl+Pfeile (Option+Pfeile in Safari) verwenden, um sich auf den meisten Seiten mit vielen Editierfeldern (Tabellenstrukturänderungen, Zeilenbearbeitung, etc.) zu bewegen.
6.17 Transformationen: Ich kann meinen eigenen Mimetyp nicht eingeben! Wofür ist diese Funktion dann nützlich?¶
Die Definition von Mimetypen nützt nichts, wenn man sie nicht transformieren kann. Andernfalls könnten Sie einfach einen Kommentar zu der Spalte schreiben. Da die Eingabe eines eigenen Mimetyps schwerwiegende Probleme bei der Syntaxprüfung und -validierung verursacht, führt dies zu einer risikoreichen Fehleingabesituation. Stattdessen müssen Sie Mimetypen mit Funktionen oder leeren Mimetyp-Definitionen initialisieren.
Außerdem haben Sie einen kompletten Überblick über die verfügbaren Mimetypen. Wer kennt alle Mimetypen auswendig, damit sie sie nach Belieben eingeben kann?
6.18 Lesezeichen: Wo kann ich Lesezeichen speichern? Warum kann ich keine Lesezeichen unterhalb der Abfragebox sehen? Wozu dienen diese Variablen?¶
Sie müssen die Funktion phpMyAdmin-Konfigurationsspeicher für die Verwendung von Lesezeichen konfiguriert haben. Sobald Sie das getan haben, können Sie Lesezeichen in der Registerkarte SQL verwenden.
Siehe auch
6.19 Wie kann ich ein einfaches LATEX-Dokument mit exportierter Tabelle erstellen?¶
Sie können einfach eine Tabelle in Ihre LATEX-Dokumente einfügen, das minimale Beispieldokument sollte wie folgt aussehen (vorausgesetzt, Sie haben die Tabelle in die Datei table.tex
exportiert):
\documentclass{article} % or any class you want
\usepackage{longtable} % for displaying table
\begin{document} % start of document
\include{table} % including exported table
\end{document} % end of document
6.20 Ich sehe viele Datenbanken, die nicht meine sind und kann nicht darauf zugreifen.¶
Sie haben eines dieser globalen Privilegien: CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Diese Privilegien ermöglichen es den Benutzern auch, alle Datenbanknamen zu sehen. Wenn Ihre Benutzer diese Rechte nicht benötigen, können Sie sie entfernen und die Liste der Datenbanken verkürzt sich.
Siehe auch
6.21 Wie kann ich im Bearbeitungs-/Einfügemodus eine Liste der möglichen Werte für eine Spalte sehen, die auf einer fremden Tabelle basiert?¶
Sie müssen entsprechende Verknüpfungen zwischen den Tabellen herstellen und auch die „Anzeigespalte“ in der Fremdtabelle einrichten. Siehe 6.6 Wie kann ich die Relationstabelle in Query-by-example verwenden? für ein Beispiel. Wenn es dann 100 oder weniger Werte in der Fremdtabelle gibt, ist eine Dropdown-Liste mit Werten verfügbar. Sie sehen zwei Wertelisten, die erste Liste enthält den Schlüssel und die Anzeigespalte, die zweite Liste enthält die Anzeigespalte und den Schlüssel. Der Grund dafür ist, dass der erste Buchstabe des Schlüssels oder der Anzeigespalte eingegeben werden kann. Ab 100 Werten erscheint ein eigenes Fenster, in dem Sie die Fremdschlüsselwerte durchsuchen und auswählen können. Um die Standardgrenze von 100 zu ändern, siehe $cfg['ForeignKeyMaxLimit']
.
6.22 Lesezeichen: Kann ich ein Standard-Lesezeichen automatisch ausführen, wenn ich in den Blätternmodus für eine Tabelle gehe?¶
Ja, wenn ein Lesezeichen die gleiche Bezeichnung wie ein Tabellenname hat und es kein öffentliches Lesezeichen ist, wird es ausgeführt.
Siehe auch
6.23 Exportieren: Ich habe gehört, dass phpMyAdmin Microsoft Excel-Dateien exportieren kann?¶
Sie können CSV für Microsoft Excel verwenden, das sofort einsatzbereit ist.
Geändert in Version 3.4.5: Seit phpMyAdmin 3.4.5 wird der direkte Export nach Microsoft Excel 97 und neuer nicht mehr unterstützt.
6.24 Da phpMyAdmin nun native MySQL 4.1.x Spaltenkommentare unterstützt, was passiert mit meinen in pmadb gespeicherten Spaltenkommentaren?¶
Die automatische Migration der Spaltenkommentare einer Tabelle im pmadb- zum nativen Stil wird immer dann durchgeführt, wenn Sie die Strukturseite für diese Tabelle aufrufen.
6.25 (zurückgezogen).¶
6.26 Wie kann ich einen Bereich von Zeilen auswählen?¶
Klicken Sie auf die erste Zeile des Bereichs, halten Sie die Umschalttaste gedrückt und klicken Sie auf die letzte Zeile des Bereichs. Dies funktioniert überall dort, wo Sie Zeilen sehen, z.B. im Blätternmodus oder auf der Seite Struktur.
6.27 Welche Formatstrings kann ich verwenden?¶
Überall dort, wo phpMyAdmin Format-Strings akzeptiert, können Sie @VARIABLE@
Expansion und strftime Format-Strings verwenden. Die expandierten Variablen hängen vom Kontext ab (wenn Sie z.B. keine Tabelle ausgewählt haben, können Sie den Tabellennamen nicht erhalten), aber die folgenden Variablen können verwendet werden:
@HTTP_HOST@
- HTTP-Host, auf dem phpMyAdmin läuft
@SERVER@
- Name des MySQL-Servers
@VERBOSE@
- Ausführlicher MySQL-Servername wie in
$cfg['Servers'][$i]['verbose']
definiert @VSERVER@
- Ausführlicher MySQL-Servername, falls gesetzt, sonst normal
@DATABASE@
- Aktuell geöffnete Datenbank
@TABLE@
- Aktuell geöffnete Tabelle
@COLUMNS@
- Spalten der aktuell geöffneten Tabelle
@PHPMYADMIN@
- phpMyAdmin mit Version
6.28 (withdrawn).¶
6.29 Warum erhalte ich kein Diagramm aus meiner Abfrageergebnistabelle?¶
Nicht jede Tabelle kann in das Diagramm aufgenommen werden. Es können nur Tabellen mit einer, zwei oder drei Spalten als Diagramm dargestellt werden. Außerdem muss die Tabelle in einem speziellen Format vorliegen, damit das Diagrammskript sie verstehen kann. Derzeit unterstützte Formate finden Sie in Diagramme.
6.30 Import: Wie kann ich ESRI Shapefiles importieren?¶
Ein ESRI Shapefile ist eigentlich ein Satz von mehreren Dateien, wobei die .shp-Datei Geometriedaten und die .dbf-Datei Daten zu diesen Geometriedaten enthält. Um Daten aus einer.dbf-Datei lesen zu können, muss PHP mit der dBase-Erweiterung (–enable-dbase) kompiliert sein. Ansonsten werden nur Geometriedaten importiert.
Um diese Dateien hochzuladen, können Sie eine der folgenden Methoden verwenden:
Konfigurieren Sie das Upload-Verzeichnis mit $cfg['UploadDir']
, laden Sie sowohl .shp- als auch .dbf-Dateien mit dem gleichen Dateinamen hoch und wählen Sie die .shp-Datei von der Import-Seite.
Erstellen Sie ein Zip-Archiv mit .shp- und .dbf-Dateien und importieren Sie es. Damit dies funktioniert, müssen Sie $cfg['TempDir']
auf einen Pfad setzen, in den der Webserver-Benutzer schreiben kann (z.B. ./tmp'
).
Um das temporäre Verzeichnis auf einem UNIX-basierten System anzulegen, können Sie folgendes tun:
cd phpMyAdmin
mkdir tmp
chmod o+rwx tmp
6.31 Wie erstelle ich eine Beziehung im Designer?¶
Um eine Beziehung auszuwählen, klicken Sie auf: Die Anzeigespalte wird in rosa dargestellt. Um eine Spalte als Anzeigespalte zu setzen/deaktivieren, klicken Sie auf das Symbol „Spalte zur Anzeige auswählen“ und dann auf den entsprechenden Spaltennamen.
6.32 Wie kann ich die Zoom-Suchfunktion nutzen?¶
Die Zoom-Suchfunktion ist eine Alternative zur Tabellensuchfunktion. Es erlaubt Ihnen, eine Tabelle zu untersuchen, indem Sie ihre Daten in einem Streudiagramm darstellen. Sie finden diese Funktion, indem Sie eine Tabelle auswählen und auf die Registerkarte Suchen klicken. Eine der Unterregisterkarten auf der Seite Table Search ist Zoom Search.
Betrachten wir die Tabelle REL_persons in 6.6 Wie kann ich die Relationstabelle in Query-by-example verwenden? als Beispiel. Um die Zoom-Suche nutzen zu können, müssen zwei Spalten ausgewählt werden, z.B. id und town_code. Die ID-Werte werden auf der einen Achse und die Werte des Ortscodes auf der anderen Achse dargestellt. Jede Zeile wird als Punkt in einem Streudiagramm dargestellt, basierend auf der ID und dem Ortscode. Neben den beiden anzuzeigenden Feldern können Sie zwei weitere Suchkriterien aufnehmen.
Sie können wählen, welches Feld als Beschriftung für jeden Punkt angezeigt werden soll. Wenn eine Anzeigespalte für die Tabelle gesetzt wurde (siehe 6.7 Wie kann ich die Funktion „Spalte anzeigen“ verwenden?), wird diese als Label verwendet, sofern Sie nichts anderes angeben. Sie können auch die maximale Anzahl von Zeilen auswählen, die im Diagramm angezeigt werden sollen, indem Sie diese im Feld „Max rows to plot“ angeben. Wenn Sie sich für Ihre Kriterien entschieden haben, klicken Sie auf „Go“, um das Diagramm anzuzeigen.
After the plot is generated, you can use the mouse wheel to zoom in and out of the plot. In addition, panning feature is enabled to navigate through the plot. You can zoom-in to a certain level of detail and use panning to locate your area of interest. Clicking on a point opens a dialogue box, displaying field values of the data row represented by the point. You can edit the values if required and click on submit to issue an update query. Basic instructions on how to use can be viewed by clicking the ‚How to use?‘ link located just above the plot.
6.33 Wie kann ich beim Durchsuchen einer Tabelle einen Spaltennamen kopieren?¶
Die Auswahl des Spaltennamens zum Kopieren innerhalb der Kopfzelle der Tabelle ist schwierig, da die Spalten eine Neuanordnung durch Ziehen der Kopfzellen sowie das Sortieren durch Klicken auf den verknüpften Spaltennamen unterstützen. Um einen Spaltennamen zu kopieren, doppelklicken Sie auf den leeren Bereich neben dem Spaltennamen, wenn der Tooltip Sie dazu auffordert. Es erscheint ein Eingabefeld mit dem Spaltennamen. Sie können den Spaltennamen in diesem Eingabefeld mit der rechten Maustaste anklicken, um ihn in die Zwischenablage zu kopieren.
6.34 Wie kann ich die Favoriten-Tabellen-Funktion verwenden?¶
Die Funktion „Favoriten-Tabellen“ ist der Funktion „Aktuelle Tabellen“ sehr ähnlich. Sie können damit eine Verknüpfung für die häufig verwendeten Tabellen einer beliebigen Datenbank im Navigations-Panel hinzufügen. Sie können einfach zu einer beliebigen Tabelle in der Liste navigieren, indem Sie diese aus der Liste auswählen. Diese Tabellen werden im lokalen Speicher Ihres Browsers gespeichert, wenn Sie Ihren phpMyAdmin Configuration Storage nicht konfiguriert haben. Ansonsten werden diese Einträge im phpMyAdmin Configuration Storage gespeichert.
WICHTIG: In Abwesenheit von phpMyAdmin Configuration Storage können Ihre Favoriten-Tabellen in verschiedenen Browsern unterschiedlich sein.
Um eine Tabelle zur Favoritenliste hinzuzufügen, klicken Sie einfach auf den grauen Stern vor einem Tabellennamen in der Liste der Tabellen einer Datenbank und warten Sie, bis er gelb wird. Um eine Tabelle aus der Liste zu entfernen, klicken Sie einfach auf den gelben Stern und warten Sie, bis er wieder grau wird.
Mittels $cfg['NumFavoriteTables']
in Ihrer config.inc.php
können Sie die maximale Anzahl der im Navigationsbereich angezeigten Favoriten-Tabellen festlegen. Sein Standardwert ist 10.
6.35 Wie kann ich die Bereichssuche nutzen?¶
Mit Hilfe der Bereichssuche kann man einen Wertebereich für bestimmte Spalten angeben, während man eine Suche in einer Tabelle aus der Registerkarte „Suche“ durchführt.
Um diese Funktion zu nutzen, klicken Sie einfach auf die Operatoren BETWEEN oder NOT BETWEEN aus der Operator-Auswahlliste vor dem Spaltennamen. Wenn Sie eine der obigen Optionen wählen, erscheint ein Dialogfeld, in dem Sie nach dem „Minimum“ und „Maximum“ für diese Spalte gefragt werden. Nur der angegebene Wertebereich wird bei BETWEEN berücksichtigt und bei NOT BETWEEN vom Endergebnis ausgeschlossen.
Hinweis: Die Bereichssuche funktioniert nur mit den Datentyp-Spalten Numerisch und Datum.
6.36 Was sind zentrale Spalten und wie kann ich diese Funktion nutzen?¶
Wie der Name schon sagt, ermöglicht die Funktion Zentrale Spalten die Pflege einer zentralen Liste von Spalten pro Datenbank, um ähnliche Namen für dasselbe Datenelement zu vermeiden und die Konsistenz des Datentyps für das selbe Datenelement zu gewährleisten. Sie können die zentrale Liste der Spalten verwenden, um ein Element zu einer beliebigen Tabellenstruktur in dieser Datenbank hinzuzufügen, die das Schreiben ähnlicher Spaltennamen und Spaltendefinitionen erspart.
Um eine Spalte zur zentralen Liste hinzuzufügen, gehen Sie auf die Seite der Tabellenstruktur, markieren Sie die Spalten, die Sie aufnehmen möchten und klicken Sie dann einfach auf „Zu zentralen Spalten hinzufügen“. Wenn Sie alle eindeutigen Spalten aus mehr als einer Tabelle aus einer Datenbank hinzufügen möchten, gehen Sie zur Seite der Datenbankstruktur, überprüfen Sie die einzubindenden Tabellen und wählen Sie dann „Spalten zur zentralen Liste hinzufügen“.
Um eine Spalte aus der zentralen Liste zu entfernen, gehen Sie auf die Seite Tabellenstruktur, markieren Sie die zu entfernenden Spalten und klicken Sie dann einfach auf „Aus zentralen Spalten entfernen“. Wenn Sie alle Spalten aus mehr als einer Tabelle aus einer Datenbank entfernen möchten, gehen Sie auf die Seite Datenbankstruktur, überprüfen Sie die zu berüchsichtigenden Tabellen und wählen Sie dann „Spalten aus der zentralen Liste entfernen“.
Um die zentrale Liste anzuzeigen und zu verwalten, wählen Sie die Datenbank aus, für die Sie die zentralen Spalten verwalten möchten, und klicken Sie dann im oberen Menü auf „Zentrale Spalten“. Sie werden zu einer Seite weitergeleitet, auf der Sie Optionen zum Bearbeiten, Löschen oder Hinzufügen neuer Spalten zur zentralen Liste haben.
6.37 Wie kann ich die Funktion Tabellenstruktur verbessern verwenden?¶
Die Funktion Tabellenstruktur verbessern hilft, die Tabellenstruktur auf die dritte Normalform zu bringen. Dem Benutzer wird ein Assistent präsentiert, der während der verschiedenen Schritte der Normalisierung Fragen zu den Elementen stellt und eine neue Struktur wird entsprechend vorgeschlagen, um die Tabelle in die Erste/Zweite/Dritte Normalform zu bringen. Beim Start des Assistenten kann der Benutzer auswählen, bis zu welcher Normalform er die Tabellenstruktur normalisieren möchte.
Hier ist eine Beispieltabelle, mit der Sie alle drei Normalformen (erste, zweite und dritte) testen können.
CREATE TABLE `VetOffice` (
`petName` varchar(64) NOT NULL,
`petBreed` varchar(64) NOT NULL,
`petType` varchar(64) NOT NULL,
`petDOB` date NOT NULL,
`ownerLastName` varchar(64) NOT NULL,
`ownerFirstName` varchar(64) NOT NULL,
`ownerPhone1` int(12) NOT NULL,
`ownerPhone2` int(12) NOT NULL,
`ownerEmail` varchar(64) NOT NULL,
);
Die obige Tabelle ist nicht in der ersten Normalform, da kein primary key existiert. Der Primärschlüssel sollte (petName,`ownerLastName`,`ownerFirstName`) sein. Wird der primary key wie vorgeschlagen gewählt, ist die resultierende Tabelle nicht in der zweiten und dritten Normalform, da die folgenden Abhängigkeiten bestehen.
(OwnerLastName, OwnerFirstName) -> OwnerEmail
(OwnerLastName, OwnerFirstName) -> OwnerPhone
PetBreed -> PetType
Das heißt, OwnerEmail hängt von OwnerLastName und OwnerFirstName ab. OwnerPhone ist abhängig von OwnerLastName und OwnerFirstName. PetType hängt von PetBreed ab.
6.38 Wie kann ich auto-inkrementierte Werte neu zuweisen?¶
Einige Benutzer bevorzugen aufeinanderfolgende AUTO_INCREMENT-Werte; dies ist nach dem Löschen von Zeilen nicht immer der Fall.
Hier sind die Schritte, um dies zu erreichen. Dies sind manuelle Schritte, da sie eine manuelle Überprüfung an einer Stelle beinhalten.
- Stellen Sie sicher, dass Sie exklusiven Zugriff auf die Tabelle haben, um sie neu anzuordnen
- Entfernen Sie in der Spalte primary key (z.B. id) die Einstellung AUTO_INCREMENT
- Löschen Sie Ihren Primärschlüssel unter Struktur > Indizes
- Erstellen Sie eine neue Spalte future_id als Primärschlüssel, AUTO_INCREMENT
- Durchsuchen Sie Ihre Tabelle und vergewissern Sie sich, dass die neuen Inkremente Ihren Erwartungen entsprechen
- Löschen Sie Ihre alte id-Spalte
- Benennen Sie die Spalte future_id in id um
- Verschieben Sie die neue id-Spalte über Struktur > Spalten verschieben
6.39 Wofür ist die Option „Berechtigungen anpassen“ beim Umbenennen, Kopieren oder Verschieben einer Datenbank, Tabelle, Spalte oder Prozedur?¶
Beim Umbenennen/Kopieren/Verschieben einer Datenbank/Tabelle/Spalte/Prozedur passt MySQL die ursprünglichen Berechtigungen für diese Objekte nicht selbst an. Durch Auswahl dieser Option passt phpMyAdmin die Berechtigungstabelle so an, dass die Benutzer die gleichen Rechte auch für die neuen Elemente haben.
Zum Beispiel: ein Benutzer ‚bob‘@‘localhost‘ hat die ‚SELECT‘-Berechtigung auf eine Spalte namens ‚id‘. Wenn diese Spalte nun in ‚id_new‘ umbenannt wird, würde MySQL die Spaltenprivilegien nicht an den neuen Spaltennamen anpassen. phpMyAdmin kann diese Anpassung für Sie automatisch vornehmen.
Anmerkungen:
- Bei der Anpassung der Berechtigungen für eine Datenbank werden auch die Berechtigungen aller datenbankbezogenen Elemente (Tabellen, Spalten und Prozeduren) an den neuen Namen der Datenbank angepasst.
- Ebenso werden beim Anpassen von Berechtigungen für eine Tabelle auch die Berechtigungen aller Spalten innerhalb der neuen Tabelle angepasst.
- Beim Anpassen der Berechtigungen muss der Benutzer, der die Operation ausführt, die folgenden Berechtigungen haben:
- SELECT, INSERT, UPDATE, DELETE Berechtigungen auf folgenden Tabellen: mysql.`db`, mysql.`spalten_priv`, mysql.`tables_priv`, mysql.`procs_priv`
- FLUSH-Berechtigung (GLOBAL)
Wenn Sie also die Datenbank/Tabelle/Spalte/Prozedur beim Umbenennen/Kopieren/Verschieben dieser Objekte nachbilden wollen, stellen Sie sicher, dass Sie diese Option aktiviert haben.
6.40 Ich sehe das Kontrollkästchen „Bind parameters“ auf der Seite „SQL“. Wie schreibe ich parametrisierte SQL-Abfragen?¶
Ab Version 4.5 ermöglicht phpMyAdmin die Ausführung von parametrisierten Abfragen auf der Seite „SQL“. Parameter sollten einen Doppelpunkt (:) vorangestellt werden und wenn das Kontrollkästchen „Bind parameters“ aktiviert ist, werden diese Parameter identifiziert und Eingabefelder für diese Parameter angezeigt. Die in diesem Feld eingegebenen Werte werden in der Abfrage vor der Ausführung ersetzt.
6.41 Ich bekomme Importfehler beim Importieren der aus älteren MySQL-Versionen (vor 5.7.6) exportierten Dumps in neuere MySQL-Versionen (ab 5.7.7), aber sie funktionieren gut, wenn sie wieder auf denselben älteren Versionen importiert werden?¶
Wenn Sie Fehler wie #1031 - Table storage engine for ‚table_name‘ doesn’t have this option beim Import der von MySQL-Servern vor 5.7.7 exportierten Dumps in neue MySQL-Serverversionen ab 5.7.7 erhalten, kann es sein, dass ROW_FORMAT=FIXED von InnoDB-Tabellen nicht unterstützt wird. Außerdem würde der Wert von innodb_strict_mode festlegen, ob dies als Warnung oder als Fehler gemeldet wird.
Seit MySQL Version 5.7.9 ist der Standardwert für innodb_strict_mode ON und würde daher einen Fehler erzeugen, wenn eine solche CREATE TABLE- oder ALTER TABLE-Anweisung auftritt.
Es gibt zwei Möglichkeiten, solche Fehler beim Import zu vermeiden:
- Ändern Sie den Wert von innodb_strict_mode auf OFF, bevor Sie den Import starten und schalten Sie ihn nach dem erfolgreichen Abschluss des Imports ein.
- Dies kann auf zwei Arten erreicht werden:
- Gehen Sie zur Seite ‚Variablen‘ und bearbeiten Sie den Wert von innodb_strict_mode
- Führen Sie die Abfrage SET GLOBAL `innodb_strict_mode = ‚[Wert]‘` aus
Nach dem Import wird vorgeschlagen, den Wert von innodb_strict_mode auf den ursprünglichen Wert zurückzusetzen.
phpMyAdmin-Projekt¶
7.1 Ich habe einen Fehler gefunden. Wie informiere ich die Entwickler?¶
Unser Issues Tracker befindet sich unter <https://github.com/phpmyadmin/phpmyadmin/issues>. Für Sicherheitsfragen lesen Sie bitte die Anweisungen unter <https://www.phpmyadmin.net/security>, um die Entwickler direkt per E-Mail zu kontaktieren.
7.2 Ich möchte die Nachrichten in eine neue Sprache übersetzen oder eine bestehende Sprache aktualisieren, wo fange ich an?¶
Übersetzungen sind sehr willkommen. Alles, was Sie brauchen, sind Sprachkenntnisse. Das einfachste ist, unseren Online-Übersetzungsservice zu nutzen. Sie können alle Möglichkeiten zum Übersetzen im translate Abschnitt auf unserer Website ausprobieren.
7.3 Ich möchte bei der Entwicklung von phpMyAdmin helfen. Wie soll ich vorgehen?¶
Wir freuen uns über jeden Beitrag zur Entwicklung von phpMyAdmin. Sie können über alle Möglichkeiten, einen Beitrag zu leisten, auf unserer Website unter <https://www.phpmyadmin.net/contribute/>`_ lesen.
Siehe auch
Sicherheit¶
8.1 Wo erhalte ich Informationen über die Sicherheitswarnungen für phpMyAdmin?¶
Bitte beachten Sie <https://www.phpmyadmin.net/security/>.
8.2 Wie kann ich phpMyAdmin vor Brute-Force-Angriffen schützen?¶
Wenn Sie den Apache-Webserver verwenden, exportiert phpMyAdmin Informationen über die Authentifizierung in die Apache-Umgebung und kann in Apache-Protokollen verwendet werden. Derzeit stehen zwei Variablen zur Verfügung:
userID
- Benutzername des aktuell aktiven Benutzers (muss nicht angemeldet sein).
userStatus
- Status des aktuell aktiven Benutzers, einer von:
`ok
(Benutzer ist angemeldet),mysql-denied
(MySQL verweigerte Benutzeranmeldung),allow-denied
(Benutzer verweigert durch allow/deny-Regeln),root-denied
(root wird in der Konfiguration verweigert),empty-denied
(leeres Passwort wird verweigert).
Die LogFormat
Richtlinie für Apache kann wie folgt aussehen:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n" pma_combined
Sie können dann beliebige Protokollanalysewerkzeuge verwenden, um mögliche Einbruchsversuche zu erkennen.
8.3 Warum gibt es Pfadangaben beim direkten Laden bestimmter Dateien?¶
Dies ist ein Serverkonfigurationsproblem. Aktivieren Sie niemals display_errors
auf einer Produktions-Site.
8.4 CSV-Dateien, die aus phpMyAdmin exportiert wurden, könnten einen Formel-Injektionsangriff ermöglichen.¶
Es ist möglich, eine CSV Datei zu erzeugen, die beim Import in ein Tabellenkalkulationsprogramm wie Microsoft Excel die Ausführung beliebiger Befehle ermöglicht.
Die von phpMyAdmin erzeugten CSV-Dateien könnten möglicherweise Text enthalten, der von einem Tabellenkalkulationsprogramm als Formel interpretiert werden würde, aber wir glauben nicht, dass es das richtige Verhalten ist, diese Felder zu escapen. Es gibt keine Möglichkeit, zwischen einer gewünschten Textausgabe und einer Formel, die escaped werden soll, zu unterscheiden und CSV ist ein Textformat, in dem Funktionsdefinitionen sowieso nicht interpretiert werden sollten. Wir haben dies ausführlich diskutiert und sind der Meinung, dass es stattdessen in der Verantwortung des Tabellenkalkulationsprogramms liegt, solche Daten korrekt zu analysieren und zu bereinigen.
Google hat auch eine ähnliche Ansicht.
Entwicklerinformationen¶
phpMyAdmin ist Open Source, daher sind Sie eingeladen beizutragen. Viele großartige Funktionen wurden von anderen Menschen geschrieben, und Sie können ebenfalls helfen, phpMyAdmin zu einer hilfreichen Anwendung zu machen.
Sie können alle Möglichkeiten beizutragen nachlesen im Abschnitt Beitragen unserer Webseite.
Sicherheitsrichtlinien¶
Das phpMyAdmin-Entwicklerteam bemüht sich, phpMyAdmin so sicher wie möglich zu machen. Dennoch können Webanwendungen wie phpMyAdmin für diverse Angriffe anfällig sein und es wird immer noch nach neuen Wegen des Ausnutzens gesucht.
Für jede gemeldete Schwachstelle geben wir eine phpMyAdmin Security Announcement (PMASA) aus und erhält auch die CVE-ID zugewiesen. Wir können ähnliche Schwachstellen zu einem PMASA gruppieren (z.B. können mehrere XSS-Schwachstellen unter einem PMASA gemeldet werden).
Wenn Sie glauben, eine Schwachstelle gefunden zu haben, lesen Sie bitte Melden von Sicherheitsproblemen.
Typische Schwachstellen¶
In diesem Abschnitt beschreiben wir typische Schwachstellen, die in unserer Codebasis auftreten können. Diese Liste ist keineswegs vollständig, sie soll typische Angriffsflächen zeigen.
Cross-site scripting (XSS)¶
Wenn phpMyAdmin Benutzerdaten anzeigt, z.B. etwas in der Datenbank eines Benutzers, müssen alle HTML-Sonderzeichen escaped werden. Wenn dieses Escaping irgendwo fehlt, könnte ein böswilliger Benutzer eine Datenbank mit speziell gestaltetem Inhalt füllen, um einen anderen Benutzer dieser Datenbank dazu zu bringen, etwas auszuführen. Dies könnte z.B. ein Stück JavaScript-Code sein, das jede Menge Böses tun würde.
phpMyAdmin versucht, alle Benutzerdaten zu escapen, bevor sie in HTML für den Browser gerendert werden.
Siehe auch
Cross-site request forgery (CSRF)¶
Ein Angreifer würde einen phpMyAdmin-Benutzer dazu bringen, auf einen Link zu klicken, um eine Aktion in phpMyAdmin zu provozieren. Dieser Link kann entweder per E-Mail oder über eine beliebige Website gesendet werden. Wenn dies gelingt, kann der Angreifer eine Aktion mit den Benutzerrechten durchführen.
Um dies zu verhindern, benötigt phpMyAdmin bei sensiblen Anfragen ein Token. Die Idee ist, dass ein Angreifer nicht das aktuell gültige Token in den dargestellten Link einfügt.
Der Token wird für jeden Login neu generiert, ist also generell nur für eine begrenzte Zeit gültig, was es dem Angreifer erschwert, einen gültigen Token zu erhalten.
Siehe auch
SQL-Injection¶
Da der gesamte Zweck von phpMyAdmin darin besteht, SQL-Abfragen durchzuführen, ist dies nicht unser oberstes Ziel. SQL-Injection ist für uns jedoch wichtig, wenn es um die mysql-Steuerungsverbindung geht. Diese Steuerungsverbindung kann Berechtigungen haben, die über die des angemeldeten Benutzers hinausgehen, z.B. Zugriff auf die phpMyAdmin-Konfigurationsspeicher.
User data that is included in (administrative) queries should always be run through DatabaseInterface::quoteString().
Siehe auch
Brute-Force-Angriff¶
phpMyAdmin selbst bewertet die Authentifizierungsversuche in keiner Weise. Dies wird durch die Notwendigkeit verursacht, in einer statuslosen Umgebung zu arbeiten, die keine Möglichkeiten bietet, sich vor solchen Dingen zu schützen.
Um dies zu minimieren, können Sie Captcha verwenden oder externe Tools wie fail2ban, für weitere Details siehe Absichern Ihrer phpMyAdmin-Installation.
Siehe auch
Melden von Sicherheitsproblemen¶
Sollten Sie ein Sicherheitsproblem im phpMyAdmin-Programmiercode finden, kontaktieren Sie bitte das phpMyAdmin-Sicherheitsteam vor der Veröffentlichung. Auf diese Weise können wir einen Fix vorbereiten und den Fix zusammen mit Ihrer Ankündigung veröffentlichen. Sie werden auch in unserer Sicherheitsankündigung gewürdigt. Sie können Ihren Bericht optional mit der PGP-Schlüssel-ID DA68AB39218AB947
mit folgendem Fingerabdruck verschlüsseln:
pub 4096R/DA68AB39218AB947 2016-08-02
Key fingerprint = 5BAD 38CF B980 50B9 4BD7 FB5B DA68 AB39 218A B947
uid phpMyAdmin Security Team <security@phpmyadmin.net>
sub 4096R/5E4176FB497A31F7 2016-08-02
Der Schlüssel kann entweder vom Keyserver bezogen werden oder ist unter phpMyAdmin keyring auf unserem Download-Server oder über Keybase verfügbar.
Sollten Sie Vorschläge zur Verbesserung von phpMyAdmin haben, um es sicherer zu machen, melden Sie dies bitte an unseren Problemtracker. Bestehende Verbesserungsvorschläge finden Sie unter Härten.
Verteilen und Verpacken von phpMyAdmin¶
Dieses Dokument gibt Leuten Ratschläge, die phpMyAdmin in anderen Softwarepaketen, wie z.B. Linux-Distributionen oder in einem Paket mit Webserver und MySQL-Server, weitergeben möchten.
Generell können Sie einige grundlegende Aspekte (Pfade zu einigen Dateien und Verhalten) in :file :libraries/vendor_config.php anpassen.
Wenn Sie zum Beispiel wollen, dass das Setup-Skript eine Konfigurationsdatei in var erzeugt, ändern Sie SETUP_CONFIG_FILE
in /var/lib/phpmyadmin/config.inc.php
und Sie werden wahrscheinlich auch die Prüfung auf beschreibbare Verzeichnisse überspringen wollen, also setzen Sie SETUP_DIR_WRITABLE
auf false.
Externe Bibliotheken¶
phpMyAdmin enthält mehrere externe Bibliotheken, die Sie vielleicht durch Systembibliotheken ersetzen möchten, wenn sie verfügbar sind. Aber bitte beachten Sie, dass Sie testen sollten, ob die von Ihnen bereitgestellte Version mit der von uns gelieferten kompatibel ist.
Liste derzeit bekannter externer Bibliotheken:
- js/vendor
- jQuery js Framework und verschiedene jQuery-basierte Bibliotheken.
- Hersteller/
- Das Download-Set enthält verschiedene Composer-Pakete als Abhängigkeiten.
Spezifische Dateilizenzen¶
Die mit phpMyAdmin verteilten Themen umfassen lizenzierte Inhalte.
- The icons of the Original and pmahomme themes are from the Silk Icons.
- Some icons of the Metro theme are from the Silk Icons.
- themes/*/img/b_rename.svg Is a Icons8, icon from the Android L Icon Pack Collection. The icon rename.
- themes/metro/img/user.svg Is a IcoMoon the user
CC BY 4.0 oder GPL
Lizenzen für Lieferanten¶
- Silk Icons are under the CC BY 2.5 or CC BY 3.0 licenses.
- rename from Icons8 is under the „public domain“ (CC0 1.0) license.
- IcoMoon Free steht unter „CC BY 4.0 or GPL“.
Copyright¶
Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
Copyright (C) 2001-2018 Marc Delisle <marc_at_infomarc.info>
Olivier Müller <om_at_omnis.ch>
Robin Johnson <robbat2_at_users.sourceforge.net>
Alexander M. Turek <me_at_derrabus.de>
Michal Čihař <michal_at_cihar.com>
Garvin Hicking <me_at_supergarv.de>
Michael Keck <mkkeck_at_users.sourceforge.net>
Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
[check credits for more details]
Dieses Programm ist freie Software; Sie können es unter den Bedingungen der GNU General Public License Version 2, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren.
Dieses Buch wird in der Hoffnung, nützlich zu sein, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK veröffentlicht. Lesen Sie die GNU General Public License für weitere Details.
Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Wenn nicht, siehe <https://www.gnu.org/licenses/>.
Drittanbieter-Lizenzen¶
phpMyAdmin enthält mehrere Bibliotheken von Drittanbietern, die unter ihre jeweiligen Lizenzen fallen.
jQuery-Lizenz, deren Dateien wir unter js/vendor/jquery/ liegen haben (MIT|GPL), eine Kopie jeder Lizenz ist in diesem Repository verfügbar (GPL ist als LICENSE, MIT als js/vendor/jquery/MIT-LICENSE.txt verfügbar).
Das Download-Kit enthält zusätzlich mehrere composer-Bibliotheken. Siehe deren Lizenzinformationen im Hersteller/Verzeichnis.
Dank¶
Dank, in chronologischer Reihenfolge¶
- Tobias Ratschiller <tobias_at_ratschiller.com>
- Gründer des phpMyAdmin-Projekts
- Maintainer von 1998 bis Sommer 2000
- Marc Delisle <marc_at_infomarc.info>
- Mehrsprachige Version im Dezember 1998
- Diverse Korrekturen und Verbesserungen
- Erste Version des SQL-Analysers (das meiste)
- Maintainer von 2001 bis 2015
- Olivier Müller <om_at_omnis.ch>
- SourceForge phpMyAdmin-Projekt im April 2001 gestartet
- Unterschiedliche existierende CVS-Trees mit neuen Funktionen und Korrekturen synchronisiert
- Mehrsprachigkeitsverbesserungen, dynamische Sprachauswahl
- Viele Korrekturen und Verbesserungen
- Loïc Chapeaux <lolo_at_phpheaven.net>
- JavaScript, DHTML und DOM neu geschrieben und optimiert
- Skripte so umgeschrieben, dass sie dem PEAR Coding Standards entsprechen und XHTML1.0 und CSS2-konforme Codes erzeugen
- Spracherkennungssystem verbessert
- Viele Korrekturen und Verbesserungen
- Robin Johnson <robbat2_at_users.sourceforge.net>
- Armel Fauveau <armel.fauveau_at_globalis-ms.com>
- Lesezeichen-Feature
- Mehrfachdump-Funktion
- gzip dump-Funktion
- zip dump-Funktion
- Geert Lund <glund_at_silversoft.dk>
- verschiedene Fehlerbehebungen
- Moderator des ehemaligen phpMyAdmin-Benutzerforums auf phpwizard.net
- Korakot Chaovavanich <korakot_at_iname.com>
- Funktion „Als neue Zeile einfügen“
- Pete Kelly <webmaster_at_trafficg.com>
- Dump-Code neu geschrieben und korrigiert
- Fehlerbehebungen
- Steve Alberty <alberty_at_neptunlabs.de>
- Dump-Code für PHP4 neu geschrieben
- mySQL-Tabellenstatistiken
- Fehlerbehebungen
- Benjamin Gandon <gandon_at_isia.cma.fr>
- Hauptautor der Version 2.1.0.1
- Fehlerbehebungen
- Alexander M. Turek <me_at_derrabus.de>
- MySQL 4.0- / 4.1- / 5.0-Kompatibilität
- abstrakte Datenbankschnittstelle (PMA_DBI) mit MySQLi-Unterstützung
- Rechteverwaltung
- XML-Export
- verschiedene Features und Fehlerbehebungen
- Aktualisierungen der deutschen Sprachdatei
- Mike Beck <mike.beck_at_web.de>
- automatische Joins in QBE
- Spalte Verknüpfungen in der Druckansicht
- Beziehungsansicht
- Michal Čihař <michal_at_cihar.com>
- Erweiterte Indexerstellungs-/-anzeigefunktion
- Funktion, um einen anderen Zeichensatz für HTML als für MySQL zu verwenden
- Verbesserungen der Exportfunktion
- verschiedene Features und Fehlerbehebungen
- Aktualisierungen der tschechischen Sprachdatei
- aktuelle Website für phpMyAdmin erstellt
- Christophe Gesché von „MySQL-Formulargenerator für PHPMyAdmin“ (https://sourceforge.net/projects/phpmysqlformgen/)
- den Patch für mehrere Tabellen-Druckansichten vorgeschlagen
- Garvin Hicking <me_at_supergarv.de>
- den Patch für die vertikale Darstellung von Tabellenzeilen erstellt
- das Javascript-basierte Abfragefenster erstellt + SQL-Verlauf
- Verbesserung der Spalten-/DB-Kommentare
- (MIME)-Transformationen für Spalten
- Benutzerdefinierte Alias-Namen für Datenbanken im linken Rahmen verwenden
- hierarchische/geschachtelte Tabellendarstellung
- PDF-Notizblock für WYSIWYG- Verteilung von PDF-Beziehungen
- neue Iconsets
- vertikale Darstellung der Spalteneigenschaften-Seite
- einige Bugfixes, Funktionen, Unterstützung, deutschsprachige Erweiterungen
- Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
- japanische Kanji-Kodierungskonvertierungsfunktion
- Piotr Roszatycki <d3xter_at_users.sourceforge.net> und Dan Wilson
- der Cookie-Authentifizierungsmodus
- Axel Sander <n8falke_at_users.sourceforge.net>
- Tabelle Relation-Links-Funktion
- Maxime Delorme <delorme.maxime_at_free.fr>
- PDF Schema-Ausgabe, auch dank Olivier Plathey für die „FPDF“ Bibliothek (siehe <http://www.fpdf.org/>), Steven Wittens für die „UFPDF“ Bibliothek und Nicola Asuni für die „TCPDF“ Bibliothek (siehe <https://tcpdf.org/>).
- Olof Edlund <olof.edlund_at_upright.se>
- SQL Prüfserver
- Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
- phpMyAdmin Logo (bis Juni 2004)
- Mike Cochrane <mike_at_graftonhall.co.nz>
- Blowfish-Bibliothek aus dem Horde-Projekt (in Release 4.0 zurückgezogen)
- Marcel Tschopp <ne0x_at_users.sourceforge.net>
- mysqli Unterstützung
- Viele Korrekturen und Verbesserungen
- Nicola Asuni (Tecnick.com)
- TCPDF-Bibliothek (<https://tcpdf.org>)
- Michael Keck <mkkeck_at_users.sourceforge.net>
- Überarbeitung für 2.6.0
- phpMyAdmin Segelboot-Logo (Juni 2004)
- Mathias Landhäußer
- Vertretung bei Konferenzen
- Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
- Verbesserungen der Benutzeroberfläche
- verschiedene Fehelrbehebungen
- Ivan A Kirillov
- neue Beziehungsdesigner
- Raj Kissu Rajandran (Google Summer of Code 2008)
- BLOBstreaming Unterstützung (in Release 4.0 zurückgezogen)
- Piotr Przybylski (Google Summer of Code 2008, 2010 und 2011)
- verbessertes Setup-Skript
- Benutzereinstellungen
- Drizzle-Unterstützung
- Derek Schaefer (Google Summer of Code 2009)
- Importsystem verbessert
- Alexander Rutkowski (Google Summer of Code 2009)
- Nachverfolgungsmechanismus
- Zahra Naeem (Google Summer of Code 2009)
- Synchronisationsfunktion (in Release 4.0 entfernt)
- Tomáš Srnka (Google Summer of Code 2009)
- Replikationsunterstützung
- Muhammad Adnan (Google Summer of Code 2010)
- Relationsschema-Export in mehrere Formate
- Lori Lee (Google Summer of Code 2010)
- Verbesserungen der Benutzeroberfläche
- ENUM/SET Editor
- Vereinfachte Schnittstelle für Export/Import
- Ninad Pundalik (Google Summer of Code 2010)
- AJAXifizierung der Benutzerschnittstelle
- Martynas Mickevičius (Google Summer of Code 2010)
- Diagramme
- Barrie Leslie
- BLOBstreaming Unterstützung mit PBMS PHP Erweiterung (in Release 4.0 zurückgezogen)
- Ankit Gupta (Google Summer of Code 2010)
- Visueller Abfragegenerator
- Madhura Jayaratne (Google Summer of Code 2011)
- OpenGIS-Unterstützung
- Ammar Yasir (Google Summer of Code 2011)
- Suche zoomen
- Aris Feryanto (Google Summer of Code 2011)
- Verbesserungen im Anzeigemodus
- Thilanka Kaushalya (Google Summer of Code 2011)
- AJAXifizierung
- Tyron Madlener (Google Summer of Code 2011)
- Abfragestatistiken und Charts für die Statusseite
- Zarubin Stas (Google Summer of Code 2011)
- Automatisiertes Testen
- Rouslan Placella (Google Summer of Code 2011 and 2012)
- Verbesserte Unterstützung für gespeicherte Routinen, Trigger und Ereignisse
- Aktualisierungen der italienischen Übersetzung
- Entfernen von Frames, neue Navigation
- Dieter Adriaenssens
- verschiedene Fehlerbehebungen
- Aktualisierungen der niederländischen Übersetzung
- Alex Marin (Google Summer of Code 2012)
- Neues Plugin- und Eigenschaftssystem
- Thilina Buddika Abeyrathna (Google Summer of Code 2012)
- Refactoring
- Atul Pratap Singh (Google Summer of Code 2012)
- Refactoring
- Chanaka Indrajith (Google Summer of Code 2012)
- Refactoring
- Yasitha Pandithawatta (Google Summer of Code 2012)
- Automatisiertes Testen
- Jim Wigginton (phpseclib.sourceforge.net)
- phpseclib
- Bin Zu (Google Summer of Code 2013)
- Refactoring
- Supun Nakandala (Google Summer of Code 2013)
- Refactoring
- Mohamed Ashraf (Google Summer of Code 2013)
- AJAX-Fehlerberichte
- Adam Kang (Google Summer of Code 2013)
- Automatisiertes Testen
- Ayush Chaudhary (Google Summer of Code 2013)
- Automatisiertes Testen
- Kasun Chathuranga (Google Summer of Code 2013)
- Verbesserungen der Benutzeroberfläche
- Hugues Peccatte
- Abfrage nach Beispiel laden/speichern (Datenbank-Such-Lesezeichen)
- Smita Kumari (Google Summer of Code 2014)
- Zentrale Spaltenliste
- Verbessern der Tabellenstruktur (Normalisierung)
- Ashutosh Dhundhara (Google Summer of Code 2014)
- Verbesserungen der Benutzeroberfläche
- Dhananjay Nakrani (Google Summer of Code 2014)
- PHP-Fehlerberichte
- Edward Cheng (Google Summer of Code 2014)
- SQL-Abfragekonsole
- Kankanamge Bimal Yashodha (Google Summer of Code 2014)
- Refactoring: Designer/Schema-Integration
- Chirayu Chiripal (Google Summer of Code 2014)
- Benutzerdefinierte Feld-Handler (eingabebasierte MIME-Transformationen)
- Export mit Tabellen-/Spaltennamensänderungen
- Dan Ungureanu (Google Summer of Code 2015)
- Neuer Parser und Analysator
- Nisarg Jhaveri (Google Summer of Code 2015)
- Seitenbezogene Einstellungen
- Integration von SQL-Debugging in die Konsole
- Weitere Verbesserungen der Benutzeroberfläche
- Deven Bansod (Google Summer of Code 2015)
- Druckansicht mit CSS
- Weitere Verbesserungen der Benutzeroberfläche und neue Funktionen
- Deven Bansod (Google Summer of Code 2017)
- Verbesserungen am Error Reporting Server
- Verbesserte Selenium-Tests
- Manish Bisht (Google Summer of Code 2017)
- Handy Benutzeroberfläche
- Inline-JavaScript-Code entfernen
- Weitere Verbesserungen der Benutzeroberfläche
- Raghuram Vadapalli (Google Summer of Code 2017)
- Multi-Tabellen-Abfrageschnittstelle
- Erlauben, Designer mit Tabellen aus anderen Datenbanken arbeiten zu lassen
- Weitere Verbesserungen der Benutzeroberfläche
- Maurício Meneghini Fauth
- Wichtige Verbesserungen und Upgrades des JavaScript-Kerns
- Modernisierung der JavaScript-Bibliotheksfunktionalität
- Modernisierung des Templating und Einführung von Twig
- William Desportes
- Coding-Style-Verbesserungen auf Basis von PHPStan
- Verbesserung der Links zu externer MySQL- und MariaDB-Dokumentation
- Zahlreiche weitere Bugfixes
- Emanuel Bronshtein
- Umfassende Sicherheitsbewertung und Vorschläge
- Lakshya Arora (Google Summer of Code 2018)
- Diverse Verbesserungen, u.a:
- Benutzervoreinstellungen mit lokalem Speicher integrieren
- Verwenden eines modalen Logins nach Ablauf der Sitzung
- Unterstützung für CHECK CONSTRAINTS hinzufügen
- und mehr!
- Diverse Verbesserungen, u.a:
- Saksham Gupta (Google Summer of Code 2018)
- Automatisierter Theme-Generator
- Leonardo Strozzi (Google Summer of Code 2018)
- Refactoring von Twig-Templates und anderen internen Code-Verbesserungen
- Piyush Vijay (Google Summer of Code 2018)
- Modernisierung des JavaScript-Codes mit Einführung von Webpack, Babel und Yarn sowie eslint und Jsdoc
Und auch an die folgenden Personen, die kleinere Änderungen, Verbesserungen, Fehlerkorrekturen oder Unterstützung für eine neue Sprache seit Version 2.1.0 beigetragen haben:
Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita, Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow, Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger, Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley, Bernard M. Piller, Laurent Haas, „Sakamoto“, Yuval Sarna, www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec, Michael Tacelosky, Rachim Tamsjadi, Kositer Uros, Luís V., Martijn W. van der Lee, Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai, Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, „Manuzhai“.
Übersetzer¶
Folgende Personen haben zur Übersetzung von phpMyAdmin beigetragen:
Albanisch
- Arben Çokaj <acokaj_at_shkoder.net>
Arabisch
- Ahmed Saleh Abd El-Raouf Ismae <a.saleh.ismael_at_gmail.com>
- Ahmed Saad <egbrave_at_hotmail.com>
- hassan mokhtari <persiste1_at_gmail.com>
Armenisch
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
Aserbaidschanisch
- Mircəlal <01youknowme_at_gmail.com>
- Huseyn <huseyn_esgerov_at_mail.ru>
- Sevdimali İsa <sevdimaliisayev_at_mail.ru>
- Jafar <sharifov_at_programmer.net>
Weißrussisch
- Viktar Palstsiuk <vipals_at_gmail.com>
Bulgarisch
- Boyan Kehayov <bkehayov_at_gmail.com>
- Valter Georgiev <blagynchy_at_gmail.com>
- Valentin Mladenov <hudsonvsm_at_gmail.com>
- P <plamen_mbx_at_yahoo.com>
- krasimir <vip_at_krasio-valia.com>
Katalanisch
- josep constanti <jconstanti_at_yahoo.es>
- Xavier Navarro <xvnavarro_at_gmail.com>
Chinesisch (China)
- Vincent Lau <3092849_at_qq.com>
- Zheng Dan <clanboy_at_163.com>
- disorderman <disorderman_at_qq.com>
- Rex Lee <duguying2008_at_gmail.com>
- <fundawang_at_gmail.com>
- popcorner <memoword_at_163.com>
- Yizhou Qiang <qyz.yswy_at_hotmail.com>
- zz <tczzjin_at_gmail.com>
- Terry Weng <wengshiyu_at_gmail.com>
- whh <whhlcj_at_126.com>
Chinesisch (Taiwan)
- Albert Song <albb0920_at_gmail.com>
- Chien Wei Lin <cwlin0416_at_gmail.com>
- Peter Dave Hello <xs910203_at_gmail.com>
Kölsch
- Purodha <publi_at_web.de>
Tschechisch
- Aleš Hakl <ales_at_hakl.net>
- Dalibor Straka <dalibor.straka3_at_gmail.com>
- Martin Vidner <martin_at_vidner.net>
- Ondra Šimeček <ondrasek.simecek_at_gmail.com>
- Jan Palider <palider_at_seznam.cz>
- Petr Kateřiňák <petr.katerinak_at_gmail.com>
Dänisch
- Aputsiaĸ Niels Janussen <aj_at_isit.gl>
- Dennis Jakobsen <dennis.jakobsen_at_gmail.com>
- Jonas <jonas.den.smarte_at_gmail.com>
- Claus Svalekjaer <just.my.smtp.server_at_gmail.com>
Niederländisch
- Voogt <a.voogt_at_hccnet.nl>
- dingo thirteen <dingo13_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Dieter Adriaenssens <ruleant_at_users.sourceforge.net>
- Niko Strijbol <strijbol.niko_at_gmail.com>
Englisch (Vereinigtes Königreich)
- Dries Verschuere <dries.verschuere_at_outlook.com>
- Francisco Rocha <j.francisco.o.rocha_at_zoho.com>
- Marc Delisle <marc_at_infomarc.info>
- Marek Tomaštík <tomastik.m_at_gmail.com>
Esperanto
- Eliovir <eliovir_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
Estnisch
- Kristjan Räts <kristjanrats_at_gmail.com>
Finnisch
- Juha Remes <jremes_at_outlook.com>
- Lari Oesch <lari_at_oesch.me>
Französisch
- Marc Delisle <marc_at_infomarc.info>
Friesisch
- Robin van der Vliet <info_at_robinvandervliet.nl>
Galizisch
- Xosé Calvo <xosecalvo_at_gmail.com>
Deutsch
- Julian Ladisch <github.com-t3if_at_ladisch.de>
- Jan Erik Zassenhaus <jan.zassenhaus_at_jgerman.de>
- Lasse Goericke <lasse_at_mydom.de>
- Matthias Bluthardt <matthias_at_bluthardt.org>
- Michael Koch <michael.koch_at_enough.de>
- Ann + J.M. <phpMyAdmin_at_ZweiSteinSoft.de>
- <pma_at_sebastianmendel.de>
- Phillip Rohmberger <rohmberger_at_hotmail.de>
- Hauke Henningsen <sqrt_at_entless.org>
Griechisch
- Παναγιώτης Παπάζογλου <papaz_p_at_yahoo.com>
Hebräisch
- Moshe Harush <mmh15_at_windowslive.com>
- Yaron Shahrabani <sh.yaron_at_gmail.com>
- Eyal Visoker <visokereyal_at_gmail.com>
Hindi
- Atul Pratap Singh <atulpratapsingh05_at_gmail.com>
- Yogeshwar <charanyogeshwar_at_gmail.com>
- Deven Bansod <devenbansod.bits_at_gmail.com>
- Kushagra Pandey <kushagra4296_at_gmail.com>
- Nisarg Jhaveri <nisargjhaveri_at_gmail.com>
- Roohan Kazi <roohan_cena_at_yahoo.co.in>
- Yugal Pantola <yug.scorpio_at_gmail.com>
Ungarisch
- Akos Eros <erosakos02_at_gmail.com>
- Dániel Tóth <leedermeister_at_gmail.com>
- Szász Attila <undernetangel_at_gmail.com>
- Balázs Úr <urbalazs_at_gmail.com>
Indonesisch
- Deky Arifianto <Deky40_at_gmail.com>
- Andika Triwidada <andika_at_gmail.com>
- Dadan Setia <da2n_s_at_yahoo.co.id>
- Dadan Setia <dadan.setia_at_gmail.com>
- Yohanes Edwin <edwin_at_yohanesedwin.com>
- Fadhiil Rachman <fadhiilrachman_at_gmail.com>
- Benny <tarzq28_at_gmail.com>
- Tommy Surbakti <tommy_at_surbakti.net>
- Zufar Fathi Suhardi <zufar.bogor_at_gmail.com>
Interlingua
- Giovanni Sora <g.sora_at_tiscali.it>
Italienisch
- Francesco Saverio Giacobazzi <francesco.giacobazzi_at_ferrania.it>
- Marco Pozzato <ironpotts_at_gmail.com>
- Stefano Martinelli <stefano.ste.martinelli_at_gmail.com>
Japanisch
- k725 <alexalex.kobayashi_at_gmail.com>
- Hiroshi Chiyokawa <hiroshi.chiyokawa_at_gmail.com>
- Masahiko HISAKAWA <orzkun_at_ageage.jp>
- worldwideskier <worldwideskier_at_yahoo.co.jp>
Kannada
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Shameem Ahmed A Mulla <shameem.sam_at_gmail.com>
Koreanisch
- Bumsoo Kim <bskim45_at_gmail.com>
- Kyeong Su Shin <cdac1234_at_gmail.com>
- Dongyoung Kim <dckyoung_at_gmail.com>
- Myung-han Yu <greatymh_at_gmail.com>
- JongDeok <human.zion_at_gmail.com>
- Yong Kim <kim_at_nhn.com>
- 이경준 <kyungjun2_at_gmail.com>
- Seongki Shin <skshin_at_gmail.com>
- Yoon Bum-Jong <virusyoon_at_gmail.com>
- Koo Youngmin <youngminz.kr_at_gmail.com>
Kurdisch Sorani
- Alan Hilal <alan.hilal94_at_gmail.com>
- Aso Naderi <aso.naderi_at_gmail.com>
- muhammad <esy_vb_at_yahoo.com>
- Zrng Abdulla <zhyarabdulla94_at_gmail.com>
Lettisch
- Latvian TV <dnighttv_at_gmail.com>
- Edgars Neimanis <edgarsneims5092_at_inbox.lv>
- Ukko <perkontevs_at_gmail.com>
Limburgisch
- Robin van der Vliet <info_at_robinvandervliet.nl>
Litauisch
- Vytautas Motuzas <v.motuzas_at_gmail.com>
Malaiisch
- Amir Hamzah <amir.overlord666_at_gmail.com>
- diprofinfiniti <anonynuine-999_at_yahoo.com>
Nepalesisch
- Nabin Ghimire <nnabinn_at_hotmail.com>
Norwegisch Bokmål
- Børge Holm-Wennberg <borge947_at_gmail.com>
- Tor Stokkan <danorse_at_gmail.com>
- Espen Frøyshov <efroys_at_gmail.com>
- Kurt Eilertsen <kurt_at_kheds.com>
- Christoffer Haugom <ph3n1x.nobody_at_gmail.com>
- Sebastian <sebastian_at_sgundersen.com>
- Tomas <tomas_at_tomasruud.com>
Persisch
- ashkan shirian <ashkan.shirian_at_gmail.com>
- HM <goodlinuxuser_at_chmail.ir>
Polnisch
- Andrzej <andrzej_at_kynu.pl>
- Przemo <info_at_opsbielany.waw.pl>
- Krystian Biesaga <krystian4842_at_gmail.com>
- Maciej Gryniuk <maciejka45_at_gmail.com>
- Michał VonFlynee <vonflynee_at_gmail.com>
Portugiesisch
- Alexandre Badalo <alexandre.badalo_at_sapo.pt>
- João Rodrigues <geral_at_jonilive.com>
- Pedro Ribeiro <p.m42.ribeiro_at_gmail.com>
- Sandro Amaral <sandro123iv_at_gmail.com>
Portugiesisch (Brasilien)
- Alex Rohleder <alexrohleder96_at_outlook.com>
- bruno mendax <brunomendax_at_gmail.com>
- Danilo GUia <danilo.eng_at_globomail.com>
- Douglas Rafael Morais Kollar <douglas.kollar_at_pg.df.gov.br>
- Douglas Eccker <douglaseccker_at_hotmail.com>
- Ed Jr <edjacobjunior_at_gmail.com>
- Guilherme Souza Silva <g.szsilva_at_gmail.com>
- Guilherme Seibt <gui_at_webseibt.net>
- Helder Santana <helder.bs.santana_at_gmail.com>
- Junior Zancan <jrzancan_at_hotmail.com>
- Luis <luis.eduardo.braschi_at_outlook.com>
- Marcos Algeri <malgeri_at_gmail.com>
- Marc Delisle <marc_at_infomarc.info>
- Renato Rodrigues de Lima Júnio <renatomdd_at_yahoo.com.br>
- Thiago Casotti <thiago.casotti_at_uol.com.br>
- Victor Laureano <victor.laureano_at_gmail.com>
- Vinícius Araújo <vinipitta_at_gmail.com>
- Washington Bruno Rodrigues Cav <washingtonbruno_at_msn.com>
- Yan Gabriel <yansilvagabriel_at_gmail.com>
Pandschabi
- Robin van der Vliet <info_at_robinvandervliet.nl>
Rumänisch
- Alex <amihaita_at_yahoo.com>
- Costel Cocerhan <costa1988sv_at_gmail.com>
- Ion Adrian-Ionut <john_at_panevo.ro>
- Raul Molnar <molnar.raul_at_wservices.eu>
- Deleted User <noreply_at_weblate.org>
- Stefan Murariu <stefan.murariu_at_yahoo.com>
Russisch
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
- <ddrmoscow_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Хомутов Иван Сергеевич <khomutov.ivan_at_mail.ru>
- Alexey Rubinov <orion1979_at_yandex.ru>
- Олег Карпов <salvadoporjc_at_gmail.com>
- Egorov Artyom <unlucky_at_inbox.ru>
Serbisch
- Smart Kid <kidsmart33_at_gmail.com>
Singhalesisch
- Madhura Jayaratne <madhura.cj_at_gmail.com>
Slovakisch
- Martin Lacina <martin_at_whistler.sk>
- Patrik Kollmann <parkourpotex_at_gmail.com>
- Jozef Pistej <pistej2_at_gmail.com>
Slovenisch
- Domen <mitenem_at_outlook.com>
Spanisch
- Daniel Hinostroza, MD <phpmyadmin_at_cerebroperiferico.com>
- Luis García Sevillano <floss.dev_at_gmail.com>
- Franco <fulanodetal.github1_at_openaliasbox.org>
- Luis Ruiz <luisan00_at_hotmail.com>
- Macofe <macofe.languagetool_at_gmail.com>
- Matías Bellone <matiasbellone+weblate_at_gmail.com>
- Rodrigo A. <ra4_at_openmailbox.org>
- FAMMA TV NOTICIAS MEDIOS DE CO <revistafammatvmusic.oficial_at_gmail.com>
- Ronnie Simon <ronniesimonf_at_gmail.com>
Schwedisch
- Anders Jonsson <anders.jonsson_at_norsjovallen.se>
Tamilisch
- கணேஷ் குமார் <GANESHTHEONE_at_gmail.com>
- Achchuthan Yogarajah <achch1990_at_gmail.com>
- Rifthy Ahmed <rifthy456_at_gmail.com>
Thailändisch
- <nontawat39_at_gmail.com>
- Somthanat W. <somthanat_at_gmail.com>
Türkisch
- Burak Yavuz <hitowerdigit_at_hotmail.com>
Ukrainisch
- Сергій Педько <nitrotoll_at_gmail.com>
- Igor <vmta_at_yahoo.com>
- Vitaliy Perekupka <vperekupka_at_gmail.com>
Vietnamesisch
- Bao Phan <baophan94_at_icloud.com>
- Xuan Hung <mr.hungdx_at_gmail.com>
- Bao trinh minh <trinhminhbao_at_gmail.com>
Westflämisch
- Robin van der Vliet <info_at_robinvandervliet.nl>
Dokumentationsübersetzer¶
Folgende Personen haben zur Übersetzung der phpMyAdmin-Dokumentation beigetragen:
Albanisch
- Arben Çokaj <acokaj_at_shkoder.net>
Arabisch
- Ahmed El Azzabi <ahmedtek1993_at_gmail.com>
- Omar Essam <omar_2412_at_live.com>
Armenisch
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
Aserbaidschanisch
- Mircəlal <01youknowme_at_gmail.com>
- Sevdimali İsa <sevdimaliisayev_at_mail.ru>
Katalanisch
- josep constanti <jconstanti_at_yahoo.es>
- Joan Montané <joan_at_montane.cat>
- Xavier Navarro <xvnavarro_at_gmail.com>
Chinesisch (China)
- Vincent Lau <3092849_at_qq.com>
- 罗攀登 <6375lpd_at_gmail.com>
- disorderman <disorderman_at_qq.com>
- ITXiaoPang <djh1017555_at_126.com>
- tunnel213 <tunnel213_at_aliyun.com>
- Terry Weng <wengshiyu_at_gmail.com>
- whh <whhlcj_at_126.com>
Chinesisch (Taiwan)
- Chien Wei Lin <cwlin0416_at_gmail.com>
- Peter Dave Hello <xs910203_at_gmail.com>
Tschechisch
- Aleš Hakl <ales_at_hakl.net>
- Michal Čihař <michal_at_cihar.com>
- Jan Palider <palider_at_seznam.cz>
- Petr Kateřiňák <petr.katerinak_at_gmail.com>
Dänisch
- Aputsiaĸ Niels Janussen <aj_at_isit.gl>
- Claus Svalekjaer <just.my.smtp.server_at_gmail.com>
Niederländisch
- Voogt <a.voogt_at_hccnet.nl>
- dingo thirteen <dingo13_at_gmail.com>
- Dries Verschuere <dries.verschuere_at_outlook.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Stefan Koolen <nast3zz_at_gmail.com>
- Ray Borggreve <ray_at_datahuis.net>
- Dieter Adriaenssens <ruleant_at_users.sourceforge.net>
- Tom Hofman <tom.hofman_at_gmail.com>
Estnisch
- Kristjan Räts <kristjanrats_at_gmail.com>
Finnisch
- Juha <jremes_at_outlook.com>
Französisch
- Cédric Corazza <cedric.corazza_at_wanadoo.fr>
- Étienne Gilli <etienne.gilli_at_gmail.com>
- Marc Delisle <marc_at_infomarc.info>
- Donavan_Martin <mart.donavan_at_hotmail.com>
Friesisch
- Robin van der Vliet <info_at_robinvandervliet.nl>
Galizisch
- Xosé Calvo <xosecalvo_at_gmail.com>
Deutsch
- Daniel <d.gnauk89_at_googlemail.com>
- JH M <janhenrikm_at_yahoo.de>
- Lasse Goericke <lasse_at_mydom.de>
- Michael Koch <michael.koch_at_enough.de>
- Ann + J.M. <phpMyAdmin_at_ZweiSteinSoft.de>
- Niemand Jedermann <predatorix_at_web.de>
- Phillip Rohmberger <rohmberger_at_hotmail.de>
- Hauke Henningsen <sqrt_at_entless.org>
Griechisch
- Παναγιώτης Παπάζογλου <papaz_p_at_yahoo.com>
Ungarisch
- Balázs Úr <urbalazs_at_gmail.com>
Italienisch
- Francesco Saverio Giacobazzi <francesco.giacobazzi_at_ferrania.it>
- Marco Pozzato <ironpotts_at_gmail.com>
- Stefano Martinelli <stefano.ste.martinelli_at_gmail.com>
- TWS <tablettws_at_gmail.com>
Japanisch
- Eshin Kunishima <ek_at_luna.miko.im>
- Hiroshi Chiyokawa <hiroshi.chiyokawa_at_gmail.com>
Litauisch
- Jur Kis <atvejis_at_gmail.com>
- Dovydas <dovy.buz_at_gmail.com>
Norwegisch Bokmål
- Tor Stokkan <danorse_at_gmail.com>
- Kurt Eilertsen <kurt_at_kheds.com>
Portugiesisch (Brasilien)
- Alexandre Moretti <alemoretti2010_at_hotmail.com>
- Douglas Rafael Morais Kollar <douglas.kollar_at_pg.df.gov.br>
- Guilherme Seibt <gui_at_webseibt.net>
- Helder Santana <helder.bs.santana_at_gmail.com>
- Michal Čihař <michal_at_cihar.com>
- Michel Souza <michel.ekio_at_gmail.com>
- Danilo Azevedo <mrdaniloazevedo_at_gmail.com>
- Thiago Casotti <thiago.casotti_at_uol.com.br>
- Vinícius Araújo <vinipitta_at_gmail.com>
- Yan Gabriel <yansilvagabriel_at_gmail.com>
Slovakisch
- Martin Lacina <martin_at_whistler.sk>
- Michal Čihař <michal_at_cihar.com>
- Jozef Pistej <pistej2_at_gmail.com>
Slovenisch
- Domen <mitenem_at_outlook.com>
Spanisch
- Luis García Sevillano <floss.dev_at_gmail.com>
- Franco <fulanodetal.github1_at_openaliasbox.org>
- Matías Bellone <matiasbellone+weblate_at_gmail.com>
- Ronnie Simon <ronniesimonf_at_gmail.com>
Türkisch
- Burak Yavuz <hitowerdigit_at_hotmail.com>
Original-Credits der Version 2.1.0¶
Diese Arbeit basiert auf Peter Kuppelwiesers MySQL-Webadmin. Es war seine Idee, eine webbasierte Schnittstelle zu MySQL mit PHP3 zu erstellen. Obwohl ich keinen seiner Quelltexte verwendet habe, gibt es einige Konzepte, die ich mir von ihm ausgeliehen habe. phpMyAdmin wurde erstellt, weil Peter mir sagte, dass er sein (großartiges) Tool nicht weiter entwickeln würde.
Dank geht an
- Amalesh Kempf <ak-lsml_at_living-source.com> der hat den Code für die Überprüfung beigetragen, wenn er eine Tabelle oder Datenbank löscht. Er schlug auch vor, den Primärschlüssel auf tbl_create.php3 anzugeben. Zu Version 1.1.1 hat er das ldi_*.php3-Set (Textdateien importieren) sowie einen Bug-Report beigetragen und viele kleinere Verbesserungen.
- Jan Legenhausen <jan_at_nrw.net>: Er hat viele der Änderungen vorgenommen, die in 1.3.0 eingeführt wurden (einschließlich ziemlich wichtiger Änderungen wie die Authentifizierung). Für 1.4.1 hat er die Tabellen-Dump-Funktion erweitert sowie Bugfixes und Hilfe beigetragen.
- Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> machte phpMyAdmin sprachunabhängig, indem die Strings in eine separate Datei ausgelagert wurden. Er hat auch die französische Übersetzung beigesteuert.
- Alexandr Bravo <abravo_at_hq.admiral.ru> der tbl_select.php3 beigetragen hat, ein Feature, um nur einige Spalten einer Tabelle anzuzeigen.
- Chris Jackson <chrisj.at_ctel.net> hat die Unterstützung für MySQL-Funktionen in tbl_change.php3 hinzugefügt. Außerdem hat er in 2.0 die Funktion „Beispielwerte“ hinzugefügt.
- Dave Walton <walton_at_nordicdms.com> hat Unterstützung für mehrere Server hinzugefügt und trägt regelmäßig zur Fehlerbehebung bei.
- Gabriel Ash <ga244_at_is8.nyu.edu> hat die Random Access Funktionen für 2.0.6 beigetragen.
Folgende Personen haben mit kleineren Änderungen, Verbesserungen, Bugfixes oder Unterstützung einer neuen Sprache beigetragen:
Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann, Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov, Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns, G. Wieggers.
Und Danke an alle anderen, die mir E-Mails mit Vorschlägen, Bug-Reports und/oder nur etwas Feedback gesendet haben.
Glossar¶
Aus Wikipedia, der freien Enzyklopädie
- .htaccess
der Standardname der Konfigurationsdatei auf Verzeichnisebene des Apache.
Siehe auch
- ACL
- Zugriffskontrollliste
- Blowfish
a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier.
Siehe auch
- Browser
eine Softwareanwendung, die es einem Benutzer ermöglicht, Texte, Bilder und andere Informationen, die sich normalerweise auf einer Webseite auf einer Webseite im World Wide Web befinden, anzuzeigen und mit ihnen zu interagieren.
Siehe auch
- Bzip2
ein von Julian Seward entwickelter freier Software-/Open-Source-Datenkompressionsalgorithmus und Programm.
Siehe auch
- CGI
Common Gateway Interface is an important World Wide Web technology that enables a client web browser to request data from a program executed on the web server.
- Änderungsprotokoll
ein Protokoll oder eine Aufzeichnung der Änderungen an einem Projekt.
Siehe auch
- Client
ein Computersystem, das über ein Netzwerk auf einen (Fern-)Dienst auf einem anderen Computer zugreift.
Siehe auch
- Spalte
einen Satz von Datenwerten eines bestimmten einfachen Typs, einen für jede Zeile der Tabelle.
Siehe auch
ein Informationspaket, das von einem Server an einen World Wide Web-Browser gesendet und dann bei jedem Zugriff auf diesen Server vom Browser zurückgesendet wird.
Siehe auch
- CSV
Kommagetrennte Werte
- DB
- look at Database
- Datenbank
eine organisierte Sammlung von Daten.
Siehe auch
- Format
- siehe Storage Engines
- PHP-Erweiterung
ein PHP-Modul, das PHP um zusätzliche Funktionen erweitert.
Siehe auch
- FAQ
Frequently Asked Questions is a list of commonly asked question and their answers.
Siehe auch
- Feld
ein Teil der geteilten Daten/Spalten.
- Foreign key
eine Spalte oder Gruppe von Spalten in einer Datenbankzeile, die auf eine Schlüsselspalte oder eine Gruppe von Spalten zeigen, die einen Schlüssel einer anderen Datenbankzeile in einer (normalerweise anderen) Tabelle bilden.
Siehe auch
- GD
Grafikbibliothek von Thomas Boutell und anderen für die dynamische Bildbearbeitung.
Siehe auch
- GD2
- siehe GD
- GZip
GZip is short for GNU zip, a GNU free software file compression program.
Siehe auch
- Host
jede Maschine, die mit einem Computernetzwerk verbunden ist, ein Knoten, der einen Hostnamen hat.
Siehe auch
- Hostname
der eindeutige Name, unter dem ein an ein Netzwerk angeschlossenes Gerät in einem Netzwerk bekannt ist.
Siehe auch
- HTTP
Hypertext Transfer Protocol is the primary method used to transfer or convey information on the World Wide Web.
- HTTPS
eine HTTP-Verbindung mit zusätzlichen Sicherheitsmaßnahmen.
Siehe auch
- IEC
- Internationale Elektrotechnische Kommission
- IIS
Internet Information Services is a set of internet-based services for servers using Microsoft Windows.
- Index
eine Funktion, die einen schnellen Zugriff auf die Zeilen einer Tabelle ermöglicht.
Siehe auch
- IP
„Internet Protocol“ is a data-oriented protocol used by source and destination hosts for communicating data across a packet-switched internetwork.
Siehe auch
- IP-Adresse
eine eindeutige Nummer, die Geräte verwenden, um in einem Netzwerk, das den Internet-Protokoll-Standard verwendet, zu identifizieren und miteinander zu kommunizieren.
Siehe auch
- IPv6
IPv6 (Internet Protocol Version 6) ist die neueste Revision des Internetprotokolls (IP), die sich mit dem lang vorausgesehnen Problem des Vorgängers IPv4 befasst, dem die Adressen ausgehen.
Siehe auch
- ISAPI
Internet Server Application Programming Interface ist die API der Internet Information Services (IIS).
- ISP
Ein Internet Service Provider ist ein Unternehmen oder eine Organisation, die den Nutzern Zugang zum Internet und den damit verbundenen Dienstleistungen bietet.
- ISO
International Standards Organization
Siehe auch
- JPEG
die am häufigsten verwendete Standardmethode der verlustbehafteten Kompression für fotografische Bilder.
Siehe auch
- JPG
- siehe JPEG
- Schlüssel
- siehe Index
- LaTeX
a document preparation system for the TeX typesetting program.
Siehe auch
- Mac
Apple Macintosh is a line of personal computers designed, developed, manufactured, and marketed by Apple Inc.
Siehe auch
- MacOS
das Betriebssystem, das in allen derzeit im Handel erhältlichen Apple Macintosh-Computern im Consumer- und Profimarkt enthalten ist.
Siehe auch
- mbstring
Die PHP mbstring Funktionen bieten Unterstützung für Sprachen, die durch Multi-Byte-Zeichensätze repräsentiert werden, insbesondere UTF-8.
Wenn Sie Probleme bei der Installation dieser Erweiterung haben, folgen Sie bitte 1.20 Ich erhalte eine Fehlermeldung über fehlende mysqli und mysql Erweiterungen., es gibt nützliche Hinweise.
Siehe auch
- Medientyp
Ein Medientyp (früher bekannt als MIME-Typ) ist eine zweiteilige Kennung für Dateiformate und Formatinhalte, die im Internet übertragen werden.
Siehe auch
- MIME
Multipurpose Internet Mail Extensions ist ein Internet-Standard für das E-Mail-Format.
Siehe auch
- Modul
modular extension for the Apache HTTP Server httpd.
Siehe auch
- mod_proxy_fcgi
ein Apache-Modul, das eine Fast CGI-Schnittstelle implementiert; PHP kann als CGI-Modul, FastCGI oder direkt als Apache-Modul ausgeführt werden.
Siehe auch
- MySQL
ein multithreaded, multiuser, SQL (Structured Query Language) Datenbank Management System (DBMS).
Siehe auch
- MySQLi
die verbesserte MySQL-Client PHP-Erweiterung.
Siehe auch
Siehe auch
- mysql
die PHP-Erweiterung des MySQL-Clients.
Siehe auch
- OpenDocument
ein offener Standard für Office-Dokumente.
Siehe auch
- OS X
look at macOS.
Siehe auch
Portable Document Format ist ein von Adobe Systems entwickeltes Dateiformat zur Darstellung von zweidimensionalen Dokumenten in einem geräte- und auflösungsunabhängigen Format.
Siehe auch
- PEAR
das PHP Erweiterungs- und Applikations-Repository.
Siehe auch
Siehe auch
- PCRE
Perl-Compatible Regular Expressions is the Perl-compatible regular expression functions for PHP
Siehe auch
- PHP
kurz für „PHP: Hypertext Preprocessor“ ist eine Open-Source, reflektierende Programmiersprache, die hauptsächlich für die Entwicklung serverseitiger Anwendungen und dynamischer Webinhalte und seit kurzem auch für eine breitere Palette von Softwareanwendungen verwendet wird.
Siehe auch
- Port
eine Verbindung, über die Daten gesendet und empfangen werden.
- Primärschlüssel
A primary key is an index over one or more fields in a table with unique values for every single row in this table. Every table should have a primary key for easier accessing/identifying data in this table. There can only be one primary key per table and it is named always PRIMARY. In fact, a primary key is just an unique key with the name PRIMARY. If no primary key is defined MySQL will use first unique key as primary key if there is one.
Sie können den Primärschlüssel beim Erstellen der Tabelle erstellen (in phpMyAdmin markieren Sie einfach die Auswahlknöpfe für jedes Feld, das Teil des Primärschlüssels sein soll).
Sie können auch einen Primärschlüssel zu einer bestehenden Tabelle mit ALTER TABLE oder CREATE INDEX hinzufügen (in phpMyAdmin können Sie einfach auf ‚Index hinzufügen‘ auf der Tabellenstrukturseite unter den aufgeführten Feldern klicken).
- RFC
Request for Comments (RFC) Dokumente sind eine Reihe von Memoranden, die neue Forschungen, Innovationen und Methoden für Internet-Technologien umfassen.
Siehe auch
- RFC 1952
GZIP-Dateiformat Spezifikation Version 4.3
Siehe auch
- Zeile (Datensatz, Tupel)
repräsentiert ein einzelnes, implizit strukturiertes Datenelement in einer Tabelle.
Siehe auch
- Server
ein Computersystem, das Dienste für andere Computersysteme über ein Netzwerk bereitstellt.
Siehe auch
- Sodium
The Sodium PHP extension.
Siehe auch
- Tabellenformate
MySQL kann verschiedene Formate zum Speichern von Daten auf der Festplatte verwenden, diese werden Speicher-Engines oder Tabellentypen genannt. phpMyAdmin erlaubt es einem Benutzer, seine Speicher-Engine für eine bestimmte Tabelle über die Registerkarte Operationen zu ändern.
Gängige Tabellentypen sind InnoDB und MyISAM, obwohl viele andere existieren und in manchen Situationen sinnvoll sein können.
Siehe auch
- Socket
eine Form der Interprozess-Kommunikation.
Siehe auch
- SSL
Secure Sockets Layer, (now superseded by TLS) is a cryptographic protocol which provides secure communication on the Internet.
- Gespeicherte Prozedur
ein Unterprogramm, das Anwendungen zur Verfügung steht, die auf ein relationales Datenbanksystem zugreifen
Siehe auch
- SQL
Strukturierte Abfragesprache
Siehe auch
- Tabelle
a set of data elements (cells) that is organized, defined and stored as horizontal rows and vertical columns where each item can be uniquely identified by a label or key or by its position in relation to other items.
Siehe auch
- tar
a type of archive file format, from „Tape Archive“.
Siehe auch
- TCP
Transmission Control Protocol ist eines der Kernprotokolle der Internetprotokoll-Suite.
- TCPDF
PHP-Bibliothek zur Erzeugung von PDF-Dateien.
Siehe auch
Siehe auch
- Trigger
ein Verfahrenscode, der automatisch als Reaktion auf bestimmte Ereignisse auf einer bestimmten Tabelle oder einem bestimmten View in einer Datenbank ausgeführt wird
Siehe auch
- Eindeutiger Schlüssel
- Ein eindeutiger Schlüssel ist ein Index über ein oder mehrere Felder einer Tabelle, der für jede Zeile einen eindeutigen Wert hat. Der erste eindeutige Schlüssel wird als primary key behandelt, wenn kein primary key definiert ist.
- URL
Uniform Resource Locator ist eine Folge von Zeichen, die einem standardisierten Format entsprechen und dazu dienen, auf Ressourcen wie Dokumente und Bilder im Internet zu verweisen, anhand ihres Standorts.
Siehe auch
- Webserver
A computer (program) that is responsible for accepting HTTP requests from clients and serving them web pages.
Siehe auch
- XML
Extensible Markup Language ist eine vom W3C empfohlene allgemeine Auszeichnungssprache zur Erstellung spezieller Auszeichnungssprachen, die viele verschiedene Arten von Daten beschreiben kann.
Siehe auch
- ZIP
ein beliebtes Datenkompressions- und Archivierungsformat.
Siehe auch
- Zlib
an open-source, cross-platform data compression library by Jean-loup Gailly and Mark Adler.
Siehe auch
- Content Security Policy
Die HTTP-Content-Security-Policy-Antwortkopfdaten ermöglichen es Portal-Administratoren, diejenigen Ressourcen freizugeben, die der User-Agent von einer bestimmten Seite laden darf.
Siehe auch