To jest (częściowe) tłumaczenie oficjalnej dokumentacji programu phpMyAdmin - wersja 3.5.0-beta1-dev. Wszystkich użytkowników phpMyAdmin zapraszamy do wspólnego tłumaczenia tej dokumentacji. Nasz serwer tłumaczeń znajduje sie pod adresem: https://l10n.cihar.com/projects/pmadoc/

Wymagania

Wprowadzenie

Za pomocą phpMyAdmin można zarządzać całym serwerem MySQL (potrzebne jest konto super-użytkownika), jak również pojedynczą bazą danych. W tym drugim przypadku pod warunkiem, że prawidłowo skonfigurowane jest konto użytkownika MySQL (włączenie odczytu / modyfikacji tylko określonej bazy danych). Do ciebie, Użytkowniku tej dokumentacji, należy odszukanie odpowiedniego fragmentu podręcznika MySQL, gdzie znacznie szerzej omówione są zasygnalizowane tutaj kwestie.

Obecnie, za pomocą phpMyAdmin można:

Kilka słów na temat użytkowników:

Wiele osób ma trudności ze zrozumieniem koncepcji zarządzania użytkownikami w phpMyAdmin. Mechanizm tego zarządzania wygląda następująco: 1. aby zalogować się do phpMyAdmin, wszyscy użytkownicy muszą mieć wcześniej założone konta w MySQL. 2. gdy użytkownik loguje się do phpMyAdmin, jego nazwa i hasło przesyłane są bezpośrednio do MySQL. 3. zarządzanie użytkownikami w phpMyAdmin może odbywać się wyłącznie na zasadzie przetwarzania i/lub modyfikacji informacji o kontach użytkownika.

1phpMyAdmin może kompresować kopie zapasowe w formatach: Zip, GZip -RFC 1952- lub Bzip2, i eksportować te kopie w formacie CSV , jeśli użyje się do tego PHP z obsługą Zlib (--with-zlib) i/lub obsługą Bzip2 (--with-bz2). Właściwa obsługa kompresji może wiazać się także ze zmianami w pliku php.ini.

Instalacja

  1. Szybka instalacja
  2. Użycie skryptu instalacyjnego
  3. Przechowywanie konfiguracji phpMyAdmin
  4. Aktualizacja phpMyAdmin ze starszej wersji
  5. Używanie trybów uwierzytelnienia

phpMyAdmin nie stosuje żadnych specjalnych mechanizmów zabezpieczeń serwera MySQL. Przyznanie odpowiednich uprawnień do baz danych jest zadaniem administratora. Można to zrobić na stronie "Uprawnienia" interfejsu phpMyAdmin.

Ostrzeżenie dla użytkowników Mac
jeśli pracujesz w wersji Mac OS, która poprzedza wersję OS X, archiwa trzeba rozpakować do formatów Mac.
Trzeba ponownie zapisać, w programie BBEdit, WSZYSTKIE skrypty phpMyAdmin napisane w stylu Unix przed wysłaniem ich na serwer. Język PHP wydaje się "nie lubić" znaków końca linii w stylu Mac.

Szybka instalacja

  1. Wybrać odpowiedni zestaw dystrybucyjny ze strony pobierania phpmyadmin.net Uwaga: niektóre zestawy zawierają wiadomości tylko w języku angielskim, inne - wszystkie języki w formacie UTF-8 (w większości przypadków jest to wystarczające), jeszcze inne -wszystkie języki z pełnym zestawem kodowania znaków. Zakładamy, że wybrany będzie zestaw podobny do tego:phpMyAdmin-x.x.x-all-languages.tar.gz
  2. Rozpakować zestaw za pomocą programów untar lub unzip (upewnić się, że zostały rozpakowane również wszystkie podkatalogi) do katalogu root serwera zdalnego:tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz Jeżeli brak bezpośredniego dostępu do tego katalogu - umieścić pliki w jakimś katalogu na maszynie lokalnej, a po wykonaniu kroku 4, przesłać katalog na serwer za pomocą, na przykład, klienta FTP.
  3. Upewnić się, że wszystkie skrypty mają odpowiedniego właściciela (jeśli PHP pracuje w trybie bezpiecznym, posiadanie skryptów, mających innego właściciela niż właściciel podstawowy, będzie powodować problemy). Zobacz sugestie w: FAQ 4.2 i FAQ 1.26.
  4. Skonfigurować instalację. Istnieją dwie metody, które można użyć w tym celu: 1. metoda tradycyjna - ręczna edycja kopii plikuconfig.inc.php, (szybki sposób na rozpoczęcie instalacji w trybie tekstowym dla użytkowników zaawansowanych), 2. instalacja za pomocą skryptu (kreator graficzny).
    • Aby ręcznie utworzyć plik config.inc.php, trzeba w dowolnym edytorze tekstowym utworzyć nowy plik o tej właśnie nazwie, a następnie umieścić w nim odpowiednie wpisy (dyrektywy konfiguracyjne). Można też skopiować do niego zawartość pliku config.sample.inc.php, który zawiera minimalny zestaw konfiguracyjny; w tym przypadku plik z nową zawartością należy skopiować do głównego katalogu phpMyAdmin (do katalogu, w którym znajduje się plik index.php). phpMyAdmin wczytuje najpierw plik libraries/config.default.php, a następnie nadpisuje umieszczoną w nim zawartość tym, co znajdzie w pliku config.inc.php. Jeśli wartość domyślna jest odpowiednio dobra dla określonych ustawień, nie ma potrzeby załączać jej do pliku config.inc.php, trzeba natomiast zastosować kilka dodatkowych dyrektyw; prosta konfiguracja może wyglądać następująco:
      <?php
      $cfg['blowfish_secret'] = 'ba17c1ec07d65003';  // użyć dowolnej wartości
      
      $i=0;
      $i++;
      $cfg['Servers'][$i]['auth_type']     = 'cookie';
      ?>
      
      Albo, jeśli użytkownik nie chce podawać hasła za każdym razem, gdy loguje się do PhpMyAdmin (opcja mniej bezpieczna):
      <?php
      
      $i=0;
      $i++;
      $cfg['Servers'][$i]['user']          = 'root';
      $cfg['Servers'][$i]['password']      = 'cbb74bc'; // wpisać swoje hasło
      $cfg['Servers'][$i]['auth_type']     = 'config';
      ?>
      
      Pełne wyjaśnienie możliwych wartości konfiguracyjnych dostępne jest w sekcji Konfiguracja tego dokumentu.
    • Zamiast ręcznej edycji pliku config.inc.php, można użyć Skryptu instalacyjnego. W tym celu trzeba ręcznie utworzyć katalog config w katalogu głównym phpMyAdmin. Jest to podyktowane koniecznymi środkami bezpieczeństwa. W systemie Linux/Unix można użyć następujących poleceń:
      cd phpMyAdmin
      mkdir config                        # utworzyć katalog do zapisu
      chmod o+rw config                   # nadać mu uprawnienia do zapisu
      
      Aby wyedytować istniejącą konfigurację, trzeba ją najpierw skopiować:
      cp config.inc.php config/         # skopiować bieżacą konfigurację
      chmod o+w config/config.inc.php   # nadać uprawnienia do zapisu
      
      Na innych platformach systemowych trzeba także utworzyć katalog config i sprawdzić, czy serwer WWW ma ustawiony dostęp do odczytu i zapisu. Zobacz: FAQ 1.26

      Następnie, klikamy w przeglądarce odnośnik skrypt instalacyjny, co uruchomi proces konfiguracyjny. Pojawia się najpierw okno z informacją: "phpMyAdmin Setup Script", gdzie, po kliknięciu odnośnika "phpMyAdmin Setup Script" możemy, alternatywnie, przejść na stronę WWW serwera demo phpMyAdmin, gdzie można kontynuować graficzny, zaawansowany, proces konfiguracji. Proszę zauważyć, że zmiany konfiguracji, dokonane w tym oknie będą zapisane dopiero wtedy, gdy klikniemy przycisk Zachowaj. Zwykle, skrypt zapisuje nowy plik config.inc.php w katalogu config/. Jeśli jednak serwer WWW nie ma ustawionych uprawnień do zapisu, lub katalog config/ nie istnieje, pojawia się komunikat: "Nie udało się załadować lub zapisać konfiguracji". Trzeba wtedy ustawić, na serwerze WWW, odpowiednie uprawnienia oraz sprawdzić, czy katalog config/ faktycznie istnieje; można też kliknąć przycisk Ściągnij i zapisać plik na maszynie lokalnej, a następnie wysłać na serwer WWW za pomocą, na przykład, klienta FTP.

      Jak tylko nasz plik zostanie zapisany, musimy go usunąć z katalogu config/; trzeba także ponownie zresetować uprawnienia, jest to podyktowane względami bezpieczeństwa:
      mv config/config.inc.php .         # przenieść plik do bieżacego katalogu
      chmod o-rw config.inc.php          # usunać uprawnienia odczytu i zapisu dla innych
      rm -rf config                      # usunąć zbędny katalog
      
      Teraz plik jest gotowy do użytku. Możemy go przeglądać lub edytować w dowolnym edytorze tekstowym, jeśli chcemy ustawić opcje, których brak w skrypcie instalacyjnym.
  5. W przypadku używania auth_type sugerujemy, aby zabezpieczyć katalog instalacyjny phpMyAdmin, ponieważ użycie trybu config nie nakłada na użytkownika obowiązku wprowadzenia hasła podczas dostępu do instalacji phpMyAdmin. Zalecane jest użycie jednej z alternatywnych metod uwierzytelnienia, na przykład za pomocą HTTP–AUTH w pliku .htaccess lub przełączenie się na używanie pliku cookie lub uwierzytelnienie za pomocą http auth_type. Zobacz też podsekcję "tryb wielu użytkowników"FAQ, a szczególnie FAQ 4.4.
  6. Otworzyć główny katalog phpMyAdmin w przeglądarce. Powinien wyświetlić się ekran powitalny phpMyAdmin i bazy danych, albo okno dialogowe logowania - jeśli używamy trybu uwierzytelnienia HTTP lub cookie.
  7. Powinno zabronić się dostępu do podkatalogów ./libraries i ./setup/lib w konfiguracji serwera WWW. Zmiany konfiguracji serwera Apache można dokonać za pomocą pliku .htaccess, który już znajduje się na serwerze. W przypadku innych typów serwerów konfigurację należy przeprowadzić według odrębnych zasad. Zabezpieczenie dostępu do katalogów chroni konfigurację przed ewentualnym, niepożądanym ujawnieniem ścieżek dostępu do plików instalacyjnych i przed zagrożeniami ze strony szkodliwych skryptów.
  8. Podczas instalacji phpMyAdmin na serwerze publicznym warto ograniczyć robotom wyszukiwarek sieciowych dostęp do naszych zasobów. Można to zrobić albo za pomocą pliku robots.txt, który umieszczamy w katalogu głównym naszej domeny na serwerze WWW (z odpowiednim wpisem wewnątrz tego pliku), albo przez konfigurację pliku .htaccess, którego przykład, z odpowiednimi wpisami konfiguracyjnymi, można znaleźć w katalogucontrib w phpMyAdmin.

Przechowywanie konfiguracji phpMyAdmin

Aby w pełni wykorzystać zestaw nowych możliwości phpMyAdmin, takich jak: zakładki, komentarze, SQL, historia zdarzeń, mechanizmy monitorowania, generowanie plików PDF, transformacja zawartości kolumn, itd., trzeba utworzyć zestaw specjalnych tabel. Tabele te mogą znajdować się albo w indywidualnej bazie danych użytkownika, albo w centralnej bazie danych, jeśli zastosowano instalację dla wielu użytkowników. W tym ostatnim przypadku baza powinna być dostępna za pomocą konta użytkownika kontrolnego - po to, aby nikt inny, oprócz danego użytkownika, nie miał do niej dostępu.

Proszę zajrzeć do katalogu ./scripts/, gdzie powinien znajdować się plik o nazwie create_tables.sql. (użytkownicy serwerów Windows powinni zwrócić szczególną uwagę na FAQ 1.23).

Użytkownicy, którzy mają już taką infrastrukturę tabel i posiadają MySQL w wersji 4.1.2 lub wyższej, powinni użyć pliku ./scripts/upgrade_tables_mysql_4_1_2+.sql, a następnie utworzyć nowe tabele importując plik ./scripts/create_tables.sql

Zwykły użytkownik może używać phpMyAdmin do tworzenia własnych baz danych i tabel. Czasami do tych czynności mogą być potrzebne specjalne (administracyjne) uprawnienia; wspomniany wcześniej skrypt może wymagać odpowiedniego dostosowania, zależnie od nazwy bazy danych.

Mając zaimportowany plik ./scripts/create_tables.sql trzeba określić nazwy tabel w pliku ./config.inc.php Dyrektywy, które określają zmiany nazw, można znaleźć w sekcji Konfiguracja W tabelach trzeba ustawić uprawnienia dla użytkownika kontrolnego (zobacz sekcję Używanie trybów uwierzytelnienia).

Aktualizacja ze starszej wersji

Skopiować plik ./config.inc.php z poprzedniej instalacji do instalacji już rozpakowanej. Pliki konfiguracyjne ze starszych wersji mogą wymagać dostosowania, ponieważ pewne opcje zostały zmienione lub usunięte; w szczególności, zmieniono definicję $cfg['AttributeTypes'], a więc lepiej usunąć ją z pliku konfiguracyjnego zastępując definicją domyślną. Aby konfiguracja była zgodna z PHP 6 należy też usunąć zdanie set_magic_quotes_runtime(0); Zdanie to może znajdować się blisko końca pliku konfiguracyjnego.

Nie powinno się nadpisywać pliku libraries/config.default.php plikiem config.inc.php (który jest plikiem konfiguracji domyślnej), gdyż ten ostatni plik ma zapisane ustawienia zależne od wersji phpMyAdmin.

Jeśli serwer MySQL, mający wersję 4.1.2 zaktualizowano do wersji 5.x lub wyższej, a stosuje się przechowywanie konfiguracji phpMyAdmin, powinno się uruchomić skrypt, znajdujący się w pliku scripts/upgrade_tables_mysql_4_1_2+.sql.

Używanie trybów uwierzytelniania

Tryb uwierzytelniania 'HTTP'

  • Używa metody uwierzytelniania 'Basic HTTP' i pozwala na logowanie się jako ważny (=prawomocny) użytkownik MySQL.
  • Jest obsługiwany przez większość konfiguracji PHP do obsługi interfejsu IIS (ISAPI), który używa CGI PHP, zobacz: FAQ 1.32, do używania z serwerem Apache CGI, zobacz: FAQ 1.35.
  • Zobacz także: FAQ 4.4 na temat nieużywania mechanizmu .htaccess razem z trybem uwierzytelniania 'HTTP'.

tryb uwierzytelniania 'cookie'

  • Może to być zamiennik dla trybu uwierzytelniania 'HTTP' (na przykład, jeśli jest uruchomiony interfejs IIS).
  • Użytkownik w tym trybie musi mieć włączone 'ciasteczka' w swojej przeglądarce WWW.
  • W tym trybie użytkownik może wylogować się z phpMyAdmina i zalogować się ponownie mając tę samą nazwę użytkownika.
  • Jeśli użytkownik chce zalogować się do dowolnego serwera, zobacz dyrektywę $cfg['AllowArbitraryServer'].
  • Jak już wspomniano w sekcji wymagania, posiadanie rozszerzenia mcrypt znacznie przyspiesza dostep do serwera (choć nie jest to bezwzględnie wymagane).

tryb uwierzytelniania 'signon'

  • Tryb ten jest wygodnym sposobem używania poświadczeń z innej aplikacji do uwierzytelnienia w phpMyAdmin.
  • Inna aplikacja musi przechować informacje logowania w danych sesyjnych.
  • Więcej szczegółów w sekcji auth_type.

tryb uwierzytelniania 'config'

  • Ten tryb jest mniej bezpieczny, ponieważ wymaga wypełniania pól $cfg['Servers'][$i]['user'] i $cfg['Servers'][$i]['password'] (i w rezultacie, ktokolwiek, kto odczyta plik config.inc.php może odkryć nazwę użytkownika i hasło).
    Nie należy jednak ustawiać tutaj "użytkownika kontrolnego" użycie $cfg['Servers'][$i]['only_db'] może być wystarczające.
  • W sekcji ISP FAQ jest wpis, który wyjaśnia, jak zabezpieczyć plik konfiguracyjny.
  • Dla dodatkowego bezpieczeństwa w tym trybie, można rozważyć uwierzytelnienie hosta w oparciu o dyrektywy konfiguracyjne $cfg['Servers'][$i]['AllowDeny']['order'] i $cfg['Servers'][$i]['AllowDeny']['rules'].
  • Unlike cookie and http, does not require a user to log in when first loading the phpMyAdmin site. This is by design but could allow any user to access your installation. Use of some restriction method is suggested, perhaps a .htaccess file with the HTTP-AUTH directive or disallowing incoming HTTP requests at one’s router or firewall will suffice (both of which are beyond the scope of this manual but easily searchable with Google).

uwierzytelnianie Swekey

The Swekey is a low cost authentication USB key that can be used in web applications.

When Swekey authentication is activated, phpMyAdmin requires the users's Swekey to be plugged before entering the login page (currently supported for cookie authentication mode only). Swekey Authentication is disabled by default.

To enable it, add the following line to config.inc.php:

$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey.conf';

You then have to create the swekey.conf file that will associate each user with their Swekey Id. It is important to place this file outside of your web server's document root (in the example, it is located in /etc). A self documented sample file is provided in the contrib directory. Feel free to use it with your own users' information.

If you want to purchase a Swekey please visit http://phpmyadmin.net/auth_key since this link provides funding for phpMyAdmin.

Konfiguracja

Warning for Mac users: PHP does not seem to like Mac end of lines character ("\r"). So ensure you choose the option that allows to use the *nix end of line character ("\n") in your text editor before saving a script you have modified.

Configuration note: Almost all configurable data is placed in config.inc.php. If this file does not exist, please refer to the Quick install section to create one. This file only needs to contain the parameters you want to change from their corresponding default value in libraries/config.default.php.

The parameters which relate to design (like colors) are placed in themes/themename/layout.inc.php. You might also want to create config.footer.inc.php and config.header.inc.php files to add your site specific code to be included on start and end of each page.

$cfg['PmaAbsoluteUri'] string
Sets here the complete URL (with full path) to your phpMyAdmin installation's directory. E.g. http://www.your_web.net/path_to_your_phpMyAdmin_directory/. Note also that the URL on some web servers are case–sensitive. Don’t forget the trailing slash at the end.

Starting with version 2.3.0, it is advisable to try leaving this blank. In most cases phpMyAdmin automatically detects the proper setting. Users of port forwarding will need to set PmaAbsoluteUri (more info). A good test is to browse a table, edit a row and save it. There should be an error message if phpMyAdmin is having trouble auto–detecting the correct value. If you get an error that this must be set or if the autodetect code fails to detect your path, please post a bug report on our bug tracker so we can improve the code.
$cfg['PmaNoRelation_DisableWarning'] boolean
Starting with version 2.3.0 phpMyAdmin offers a lot of features to work with master / foreign – tables (see $cfg['Servers'][$i]['pmadb']).
Jeśli próbowałeś ustawiać ten parametr i nadal nie działa, spójrz na stronę "Struktura" bazy danych, gdzie chciałbyś ich użyć. Znajdziesz tam link, który przeanalizuje, dlaczego funkcje te są nieaktywne.
Jeżeli nie chcesz ich używać, ustaw tę zmienną na TRUE, a komunikat przestanie się pojawiać.
$cfg['SuhosinDisableWarning'] boolean
A warning is displayed on the main page if Suhosin is detected. You can set this parameter to TRUE to stop this message from appearing.
$cfg['McryptDisableWarning'] boolean
Disable the default warning that is displayed if mcrypt is missing for cookie authentication. You can set this parameter to TRUE to stop this message from appearing.
$cfg['TranslationWarningThreshold'] integer
Show warning about incomplete translations on certain threshold.
$cfg['AllowThirdPartyFraming'] boolean
Setting this to true allows a page located on a different domain to call phpMyAdmin inside a frame, and is a potential security hole allowing cross-frame scripting attacks.
$cfg['blowfish_secret'] string
The "cookie" auth_type uses blowfish algorithm to encrypt the password.
If you are using the "cookie" auth_type, enter here a random passphrase of your choice. It will be used internally by the blowfish algorithm: you won’t be prompted for this passphrase. There is no maximum length for this secret.

Since version 3.1.0 phpMyAdmin can generate this on the fly, but it makes a bit weaker security as this generated secret is stored in session and furthermore it makes impossible to recall user name from cookie.
$cfg['Servers'] array
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. In ./libraries/config.default.php, there is only one section for server definition, however you can put as many as you need in ./config.inc.php, copy that block or needed parts (you don't have to define all settings, just those you need to change).
$cfg['Servers'][$i]['host'] string
The hostname or IP address of your $i-th MySQL-server. E.g. localhost.
$cfg['Servers'][$i]['port'] string
The port-number of your $i-th MySQL-server. Default is 3306 (leave blank). If you use "localhost" as the hostname, MySQL ignores this port number and connects with the socket, so if you want to connect to a port different from the default port, use "127.0.0.1" or the real hostname in $cfg['Servers'][$i]['host'].
$cfg['Servers'][$i]['socket'] string
Ścieżka do gniazda, którego należy użyć. Pozostawione puste oznacza wartość domyślną.
To determine the correct socket, check your MySQL configuration or, using the mysql command–line client, issue the status command. Among the resulting information displayed will be the socket used.
$cfg['Servers'][$i]['ssl'] boolean
Whether to enable SSL for connection to MySQL server.
$cfg['Servers'][$i]['connect_type'] string
What type connection to use with the MySQL server. Your options are 'socket' and 'tcp'. It defaults to 'tcp' as that is nearly guaranteed to be available on all MySQL servers, while sockets are not supported on some platforms.

Aby użyć trybu gniazda, Twój serwer MySQL musi być na tej samej maszynie co serwer www.
$cfg['Servers'][$i]['extension'] string
What php MySQL extension to use for the connection. Valid options are:

mysql : The classic MySQL extension.

mysqli : The improved MySQL extension. This extension became available with PHP 5.0.0 and is the recommended way to connect to a server running MySQL 4.1.x or newer.
$cfg['Servers'][$i]['compress'] boolean
Czy używać protokołu kompresji dla połączeń z serwerem MySQL, czy też nie (opcja eksperymentalna).
$cfg['Servers'][$i]['controlhost'] string
Permits to use an alternate host to hold the configuration storage data.
$cfg['Servers'][$i]['controluser'] string
$cfg['Servers'][$i]['controlpass'] string
This special account is used for 2 distinct purposes: to make possible all relational features (see $cfg['Servers'][$i]['pmadb']) and, for a MySQL server running with --skip-show-database, to enable a multi-user installation (HTTP or cookie authentication mode).

When using HTTP or cookie authentication modes (or 'config' authentication mode since phpMyAdmin 2.2.1), you need to supply the details of a MySQL account that has SELECT privilege on the mysql.user (all columns except "Password"), mysql.db (all columns) and mysql.tables_priv (all columns except "Grantor" and "Timestamp") tables. This account is used to check what databases the user will see at login.
Please see the install section on "Using authentication modes" for more information.

In phpMyAdmin versions before 2.2.5, those were called "stduser/stdpass".
$cfg['Servers'][$i]['auth_type'] string ['HTTP'|'http'|'cookie'|'config'|'signon']
Whether config or cookie or HTTP or signon authentication should be used for this server.
  • 'config' authentication ($auth_type = 'config') is the plain old way: username and password are stored in config.inc.php.
  • 'cookie' authentication mode ($auth_type = 'cookie') as introduced in 2.2.3 allows you to log in as any valid MySQL user with the help of cookies. Username and password are stored in cookies during the session and password is deleted when it ends. This can also allow you to log in in arbitrary server if $cfg['AllowArbitraryServer'] enabled.
  • 'HTTP' authentication (was called 'advanced' in previous versions and can be written also as 'http') ($auth_type = 'HTTP') as introduced in 1.3.0 allows you to log in as any valid MySQL user via HTTP-Auth.
  • 'signon' authentication mode ($auth_type = 'signon') as introduced in 2.10.0 allows you to log in from prepared PHP session data or using supplied PHP script. This is useful for implementing single signon from another application. Sample way how to seed session is in signon example: scripts/signon.php. There is also alternative example using OpenID - scripts/openid.php and example for scripts based solution - scripts/signon-script.php. You need to configure session name or script to be executed and signon URL to use this authentication method.
Please see the install section on "Using authentication modes" for more information.
$cfg['Servers'][$i]['auth_http_realm'] string
When using auth_type = 'HTTP', this field allows to define a custom HTTP Basic Auth Realm which will be displayed to the user. If not explicitly specified in your configuration, a string combined of "phpMyAdmin " and either $cfg['Servers'][$i]['verbose'] or $cfg['Servers'][$i]['host'] will be used.
$cfg['Servers'][$i]['auth_swekey_config'] string
The name of the file containing Swekey ids and login names for hardware authentication. Leave empty to deactivate this feature.
$cfg['Servers'][$i]['user'] string
$cfg['Servers'][$i]['password'] string
When using auth_type = 'config', this is the user/password-pair which phpMyAdmin will use to connect to the MySQL server. This user/password pair is not needed when HTTP or cookie authentication is used and should be empty.
$cfg['Servers'][$i]['nopassword'] boolean
Allow attempt to log in without password when a login with password fails. This can be used together with http authentication, when authentication is done some other way and phpMyAdmin gets user name from auth and uses empty password for connecting to MySQL. Password login is still tried first, but as fallback, no password method is tried.
$cfg['Servers'][$i]['only_db'] string or array
If set to a (an array of) database name(s), only this (these) database(s) will be shown to the user. Since phpMyAdmin 2.2.1, this/these database(s) name(s) may contain MySQL wildcards characters ("_" and "%"): if you want to use literal instances of these characters, escape them (I.E. use 'my\_db' and not 'my_db').
This setting is an efficient way to lower the server load since the latter does not need to send MySQL requests to build the available database list. But it does not replace the privileges rules of the MySQL database server. If set, it just means only these databases will be displayed but not that all other databases can't be used.

An example of using more that one database: $cfg['Servers'][$i]['only_db'] = array('db1', 'db2');

As of phpMyAdmin 2.5.5 the order inside the array is used for sorting the databases in the left frame, so that you can individually arrange your databases.
If you want to have certain databases at the top, but don't care about the others, you do not need to specify all other databases. Use: $cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*'); instead to tell phpMyAdmin that it should display db3 and db4 on top, and the rest in alphabetic order.
$cfg['Servers'][$i]['hide_db'] string
Regular expression for hiding some databases from unprivileged users. This only hides them from listing, but a user is still able to access them (using, for example, the SQL query area). To limit access, use the MySQL privilege system.

For example, to hide all databases starting with the letter "a", use
$cfg['Servers'][$i]['hide_db'] = '^a';
and to hide both "db1" and "db2" use
$cfg['Servers'][$i]['hide_db'] = '^(db1|db2)$';
More information on regular expressions can be found in the PCRE pattern syntax portion of the PHP reference manual.
$cfg['Servers'][$i]['verbose'] string
Only useful when using phpMyAdmin with multiple server entries. If set, this string will be displayed instead of the hostname in the pull-down menu on the main page. This can be useful if you want to show only certain databases on your system, for example. For HTTP auth, all non-US-ASCII characters will be stripped.
$cfg['Servers'][$i]['pmadb'] string
The name of the database containing the phpMyAdmin configuration storage.

See the phpMyAdmin configuration storage section in this document to see the benefits of this feature, and for a quick way of creating this database and the needed tables.

If you are the only user of this phpMyAdmin installation, you can use your current database to store those special tables; in this case, just put your current database name in $cfg['Servers'][$i]['pmadb']. For a multi-user installation, set this parameter to the name of your central database containing the phpMyAdmin configuration storage.
$cfg['Servers'][$i]['bookmarktable'] string
Since release 2.2.0 phpMyAdmin allows users to bookmark queries. This can be useful for queries you often run.

To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • wprowadzić nazwę tabeli do $cfg['Servers'][$i]['bookmarktable']
$cfg['Servers'][$i]['relation'] string
Since release 2.2.4 you can describe, in a special 'relation' table, which column is a key in another table (a foreign key). phpMyAdmin currently uses this to
  • stworzenia klikalnymi, gdy przeglądasz główną tabelę, wartości danych, które wskazują na tabelę zewnętrzną;
  • display in an optional tool-tip the "display column" when browsing the master table, if you move the mouse to a column containing a foreign key (use also the 'table_info' table);
    (see FAQ 6.7)
  • in edit/insert mode, display a drop-down list of possible foreign keys (key value and "display column" are shown)
    (see FAQ 6.21)
  • wyświetlenia linków na stronie z właściwościami tabeli, by sprawdzić spójność powiązań (wskazanie brakujących kluczy zewnętrznych) dla każdego opisanego klucza;
  • in query-by-example, create automatic joins (see FAQ 6.6)
  • enable you to get a PDF schema of your database (also uses the table_coords table).
Klucze mogą być liczbowe lub znakowe.

To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • umieścić nazwę tabeli relacji w $cfg['Servers'][$i]['relation']
  • now as normal user open phpMyAdmin and for each one of your tables where you want to use this feature, click "Structure/Relation view/" and choose foreign columns.
Please note that in the current version, master_db must be the same as foreign_db. Those columns have been put in future development of the cross-db relations.
$cfg['Servers'][$i]['table_info'] string
Since release 2.3.0 you can describe, in a special 'table_info' table, which column is to be displayed as a tool-tip when moving the cursor over the corresponding key.
This configuration variable will hold the name of this special table. To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the table name in $cfg['Servers'][$i]['table_info'] (e.g. 'pma_table_info')
  • then for each table where you want to use this feature, click "Structure/Relation view/Choose column to display" to choose the column.
Usage tip: Display column.
$cfg['Servers'][$i]['table_coords'] string
$cfg['Servers'][$i]['pdf_pages'] string
Since release 2.3.0 you can have phpMyAdmin create PDF pages showing the relations between your tables. To do this it needs two tables "pdf_pages" (storing information about the available PDF pages) and "table_coords" (storing coordinates where each table will be placed on a PDF schema output).

You must be using the "relation" feature.

To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the correct table names in $cfg['Servers'][$i]['table_coords'] and $cfg['Servers'][$i]['pdf_pages']
Usage tips: PDF output.
$cfg['Servers'][$i]['column_info'] string
Od wersji 2.3.0 możesz przechowywać komentarze opisujące każdą kolumnę dowolnej tabeli. Będzie to pokazane w "widoku do wydruku".

Starting with release 2.5.0, comments are consequently used on the table property pages and table browse view, showing up as tool-tips above the column name (properties page) or embedded within the header of table in browse view. They can also be shown in a table dump. Please see the relevant configuration directives later on.

Also new in release 2.5.0 is a MIME-transformation system which is also based on the following table structure. See Transformations for further information. To use the MIME-transformation system, your column_info table has to have the three new columns 'mimetype', 'transformation', 'transformation_options'.

To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the table name in $cfg['Servers'][$i]['column_info'] (e.g. 'pma_column_info')
  • to update your PRE-2.5.0 Column_comments Table use this:
    ALTER TABLE `pma_column_comments`
        ADD `mimetype` VARCHAR( 255 ) NOT NULL,
        ADD `transformation` VARCHAR( 255 ) NOT NULL,
        ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
    
    and remember that the Variable in config.inc.php has been renamed from
    $cfg['Servers'][$i]['column_comments'] to $cfg['Servers'][$i]['column_info']
$cfg['Servers'][$i]['history'] string
Since release 2.5.0 you can store your SQL history, which means all queries you entered manually into the phpMyAdmin interface. If you don't want to use a table-based history, you can use the JavaScript-based history. Using that, all your history items are deleted when closing the window.

Using $cfg['QueryHistoryMax'] you can specify an amount of history items you want to have on hold. On every login, this list gets cut to the maximum amount.

The query history is only available if JavaScript is enabled in your browser.

To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the table name in $cfg['Servers'][$i]['history'] (e.g. 'pma_history')
$cfg['Servers'][$i]['recent'] string
Since release 3.5.0 you can show recently used tables in the left navigation frame. It helps you to jump across table directly, without the need to select the database, and then select the table. Using $cfg['LeftRecentTable'] you can configure the maximum number of recent tables shown. When you select a table from the list, it will jump to the page specified in $cfg['LeftDefaultTabTable'].

Without configuring the storage, you can still access the recently used tables, but it will disappear after you logout.

To allow the usage of this functionality persistently:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the table name in $cfg['Servers'][$i]['recent'] (e.g. 'pma_recent')
$cfg['Servers'][$i]['table_uiprefs'] string
Since release 3.5.0 phpMyAdmin can be configured to remember several things (sorted column $cfg['RememberSorting'] , column order, and column visibility from a database table) for browsing tables. Without configuring the storage, these features still can be used, but the values will disappear after you logout.

To allow the usage of these functionality persistently:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the table name in $cfg['Servers'][$i]['table_uiprefs'] (e.g. 'pma_table_uiprefs')
$cfg['Servers'][$i]['tracking'] string
Since release 3.3.x a tracking mechanism is available. It helps you to track every SQL command which is executed by phpMyAdmin. The mechanism supports logging of data manipulation and data definition statements. After enabling it you can create versions of tables.

The creation of a version has two effects:
  • phpMyAdmin saves a snapshot of the table, including structure and indexes.
  • phpMyAdmin logs all commands which change the structure and/or data of the table and links these commands with the version number.
Of course you can view the tracked changes. On the "Tracking" page a complete report is available for every version. For the report you can use filters, for example you can get a list of statements within a date range. When you want to filter usernames you can enter * for all names or you enter a list of names separated by ','. In addition you can export the (filtered) report to a file or to a temporary database.

To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the table name in $cfg['Servers'][$i]['tracking'] (e.g. 'pma_tracking')
$cfg['Servers'][$i]['tracking_version_auto_create'] boolean
Whether the tracking mechanism creates versions for tables and views automatically. Default value is false.

If this is set to true and you create a table or view with
  • CREATE TABLE ...
  • CREATE VIEW ...
and no version exists for it, the mechanism will create a version for you automatically.
$cfg['Servers'][$i]['tracking_default_statements'] string
Defines the list of statements the auto-creation uses for new versions. Default value is
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
$cfg['Servers'][$i]['tracking_add_drop_view'] boolean
Whether a DROP VIEW IF EXISTS statement will be added as first line to the log when creating a view. Default value is true.

$cfg['Servers'][$i]['tracking_add_drop_table'] boolean
Whether a DROP TABLE IF EXISTS statement will be added as first line to the log when creating a table. Default value is true.

$cfg['Servers'][$i]['tracking_add_drop_database'] boolean
Whether a DROP DATABASE IF EXISTS statement will be added as first line to the log when creating a database. Default value is true.

$cfg['Servers'][$i]['userconfig'] string
Since release 3.4.x phpMyAdmin allows users to set most preferences by themselves and store them in the database.

If you don't allow for storing preferences in pmadb, users can still personalize phpMyAdmin, but settings will be saved in browser's local storage, or, it is is unavailable, until the end of session.

To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the table name in $cfg['Servers'][$i]['userconfig']
$cfg['Servers'][$i]['designer_coords'] string
Since release 2.10.0 a Designer interface is available; it permits to visually manage the relations.

To allow the usage of this functionality:
  • set up pmadb and the phpMyAdmin configuration storage
  • put the table name in $cfg['Servers'][$i]['designer_coords'] (e.g. 'pma_designer_coords')
$cfg['Servers'][$i]['MaxTableUiprefs'] integer
Maximum number of rows saved in $cfg['Servers'][$i]['table_uiprefs'] table.

When tables are dropped or renamed, table_uiprefs may contain invalid data (referring to tables which no longer exist).
We only keep this number of newest rows in table_uiprefs and automatically delete older rows.
$cfg['Servers'][$i]['verbose_check'] boolean
Because release 2.5.0 introduced the new MIME-transformation support, the column_info table got enhanced with three new columns. If the above variable is set to TRUE (default) phpMyAdmin will check if you have the latest table structure available. If not, it will emit a warning to the superuser.

Możesz wyłączyć sprawdzanie, ustawiając zmienną na FALSE, co powinno zaowocować poprawą wydajności.

Gdy jest pewne, że struktura tabeli jest aktualna, zalecane jest ustawienie na FALSE.
$cfg['Servers'][$i]['AllowRoot'] boolean
Whether to allow root access. This is just a shortcut for the AllowDeny rules below.
$cfg['Servers'][$i]['AllowNoPassword'] boolean
Whether to allow logins without a password. The default value of false for this parameter prevents unintended access to a MySQL server with was left with an empty password for root or on which an anonymous (blank) user is defined.
$cfg['Servers'][$i]['AllowDeny']['order'] string
If your rule order is empty, then IP authorization is disabled.

If your rule order is set to 'deny,allow' then the system applies all deny rules followed by allow rules. Access is allowed by default. Any client which does not match a Deny command or does match an Allow command will be allowed access to the server.

Jeśli jest ustawiony na 'allow,deny', system stosuje wszystkie reguły pozytywne przed regułami negatywnymi. Dostęp jest domyślnie zabroniony. Dowolny klient, które nie pasuje do żadnego polecenia Allow lub pasuje do jakiegoś polecenia Deny, nie zyska dostępu do serwera.

If your rule order is set to 'explicit', authorization is performed in a similar fashion to rule order 'deny,allow', with the added restriction that your host/username combination must be listed in the allow rules, and not listed in the deny rules. This is the most secure means of using Allow/Deny rules, and was available in Apache by specifying allow and deny rules without setting any order.

Please also see $cfg['TrustedProxies'] for detecting IP address behind proxies.
$cfg['Servers'][$i]['AllowDeny']['rules'] array of strings
Ogólny format reguł jest następujący:
<'allow' | 'deny'> <username> [from] <ipmask>
Aby reguła pasowała do wszystkich użytkowników, można w polu nazwa-użytkownika jako symbolu wieloznacznego użyć znaku '%'.
There are a few shortcuts you can use in the ipmask field as well (please note that those containing SERVER_ADDRESS might not be available on all webservers):
'all' -> 0.0.0.0/0
'localhost' -> 127.0.0.1/8
'localnetA' -> SERVER_ADDRESS/8
'localnetB' -> SERVER_ADDRESS/16
'localnetC' -> SERVER_ADDRESS/24
Pusta lista reguł jest równoważna albo użyciu 'allow % from all', jeśli Twój porządek reguł jest ustawiony na 'deny,allow', albo 'deny % from all', jeśli Twój porządek reguł ustawiony jest na 'allow,deny' lub 'explicit'.

For the IP matching system, the following work:
xxx.xxx.xxx.xxx (an exact IP address)
xxx.xxx.xxx.[yyy-zzz] (an IP address range)
xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP addresses)
To natomiast nie zadziała:
xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range)
Also IPv6 addresses are not supported.
$cfg['Servers'][$i]['DisableIS'] boolean
Disable using INFORMATION_SCHEMA to retrieve information (use SHOW commands instead), because of speed issues when many databases are present. Currently used in some parts of the code, more to come.
$cfg['Servers'][$i]['ShowDatabasesCommand'] string
On a server with a huge number of databases, the default SHOW DATABASES command used to fetch the name of available databases will probably be too slow, so it can be replaced by faster commands (see libraries/config.default.php for examples).
$cfg['Servers'][$i]['CountTables'] boolean
Whether to count the number of tables for each database when preparing the list of databases for the navigation frame.
$cfg['Servers'][$i]['SignonScript'] string
Name of PHP script to be sourced and executed to obtain login credentials. This is alternative approach to session based single signon. The script needs to provide function get_login_credentials which returns list of username and password, accepting single parameter of existing username (can be empty). See scripts/signon-script.php for an example.
$cfg['Servers'][$i]['SignonSession'] string
Name of session which will be used for signon authentication method. You should use something different than phpMyAdmin, because this is session which phpMyAdmin uses internally. Takes effect only if SignonScript is not configured.
$cfg['Servers'][$i]['SignonURL'] string
URL where user will be redirected to log in for signon authentication method. Should be absolute including protocol.
$cfg['Servers'][$i]['LogoutURL'] string
URL where user will be redirected after logout (doesn't affect config authentication method). Should be absolute including protocol.
$cfg['ServerDefault'] integer
Jeżeli masz skonfigurowany więcej niż jeden serwer, możesz ustawić $cfg['ServerDefault'] na jeden z nich, by połączyć się automatycznie z tym serwerem przy starcie phpMyAdmina, albo na 0, żeby dostać listę serwerów bez logowania się.
Jeżeli tylko jeden serwer jest skonfigurowany, $cfg['ServerDefault'] MUSI wskazywać na ten serwer.
$cfg['AjaxEnable'] boolean
Defines whether to refresh only parts of certain pages using Ajax techniques. Applies only where a non-Ajax behavior is possible; for example, the Designer feature is Ajax-only so this directive does not apply to it.
$cfg['VersionCheck'] boolean
Enables check for latest versions using javascript on main phpMyAdmin page.
$cfg['MaxDbList'] integer
The maximum number of database names to be displayed in the navigation frame and the database list.
$cfg['MaxTableList'] integer
The maximum number of table names to be displayed in the main panel's list (except on the Export page). This limit is also enforced in the navigation panel when in Light mode.
$cfg['ShowHint'] boolean
Whether or not to show hints (for example, hints when hovering over table headers).
$cfg['MaxCharactersInDisplayedSQL'] integer
The maximum number of characters when a SQL query is displayed. The default limit of 1000 should be correct to avoid the display of tons of hexadecimal codes that represent BLOBs, but some users have real SQL queries that are longer than 1000 characters. Also, if a query's length exceeds this limit, this query is not saved in the history.
$cfg['OBGzip'] string/boolean
Defines whether to use GZip output buffering for increased speed in HTTP transfers.
Set to true/false for enabling/disabling. When set to 'auto' (string), phpMyAdmin tries to enable output buffering and will automatically disable it if your browser has some problems with buffering. IE6 with a certain patch is known to cause data corruption when having enabled buffering.
$cfg['PersistentConnections'] boolean
Whether persistent connections should be used or not. Works with following extensions:
$cfg['ForceSSL'] boolean
Whether to force using https while accessing phpMyAdmin.
$cfg['ExecTimeLimit'] integer [number of seconds]
Liczba sekund, w czasie których może działać skrypt. Jeżeli jest ustawione na na zero, żadne ograniczenia nie są nakładane.
This setting is used while importing/exporting dump files and in the Synchronize feature but has no effect when PHP is running in safe mode.
$cfg['SessionSavePath'] string
Path for storing session data (session_save_path PHP parameter).
$cfg['MemoryLimit'] string [number of bytes]
Set the number of bytes a script is allowed to allocate. If set to zero, no limit is imposed.
This setting is used while importing/exporting dump files and at some other places in phpMyAdmin so you definitely don't want to put here a too low value. It has no effect when PHP is running in safe mode.
You can also use any string as in php.ini, eg. '16M'. Ensure you don't omit the suffix (16 means 16 bytes!)
$cfg['SkipLockedTables'] boolean
Mark used tables and make it possible to show databases with locked tables (since MySQL 3.23.30).
$cfg['ShowSQL'] boolean
Defines whether SQL queries generated by phpMyAdmin should be displayed or not.
$cfg['RetainQueryBox'] boolean
Defines whether the SQL query box should be kept displayed after its submission.
$cfg['AllowUserDropDatabase'] boolean
Defines whether normal users (non-administrator) are allowed to delete their own database or not. If set as FALSE, the link "Drop Database" will not be shown, and even a "DROP DATABASE mydatabase" will be rejected. Quite practical for ISP's with many customers.
Please note that this limitation of SQL queries is not as strict as when using MySQL privileges. This is due to nature of SQL queries which might be quite complicated. So this choice should be viewed as help to avoid accidental dropping rather than strict privilege limitation.
$cfg['Confirm'] boolean
Whether a warning ("Are your really sure...") should be displayed when you're about to lose data.
$cfg['LoginCookieRecall'] boolean
Określa, czy poprzedni login powinien być ponownie przywołany w trybie uwierzytelniania cookie, czy też nie.

This is automatically disabled if you do not have configured $cfg['blowfish_secret'].
$cfg['LoginCookieValidity'] integer [number of seconds]
Define how long is login cookie valid. Please note that php configuration option session.gc_maxlifetime might limit session validity and if session is lost, login cookie is also invalidated. So it is a good idea to set session.gc_maxlifetime not lower than the value of $cfg['LoginCookieValidity'].
$cfg['LoginCookieStore'] integer [number of seconds]
Define how long login cookie should be stored in browser. Default 0 means that it will be kept for existing session. This is recommended for not trusted environments.
$cfg['LoginCookieDeleteAll'] boolean
If enabled (default), logout deletes cookies for all servers, otherwise only for current one. Setting this to false makes it easy to forget to log out from other server, when you are using more of them.
$cfg['UseDbSearch'] boolean
Określa, czy "szukanie tekstu wewnątrz bazy danych" jest włączone, czy też nie.
$cfg['IgnoreMultiSubmitErrors'] boolean
Define whether phpMyAdmin will continue executing a multi-query statement if one of the queries fails. Default is to abort execution.
$cfg['VerboseMultiSubmit'] boolean
Define whether phpMyAdmin will output the results of each query of a multi-query statement embedded into the SQL output as inline comments. Defaults to TRUE.
$cfg['AllowArbitraryServer'] boolean
If enabled, allows you to log in to arbitrary servers using cookie auth and permits to specify servers of your choice in the Synchronize dialog.

NOTE: Please use this carefully, as this may allow users access to MySQL servers behind the firewall where your HTTP server is placed.
$cfg['Error_Handler']['display'] boolean
Whether to display errors from PHP or not.
$cfg['Error_Handler']['gather'] boolean
Whether to gather errors from PHP or not.
$cfg['LeftFrameLight'] boolean
Defines whether to use a select-based menu and display only the current tables in the left frame (smaller page). Only in Non-Lightmode you can use the feature to display nested folders using $cfg['LeftFrameTableSeparator']
$cfg['LeftFrameDBTree'] boolean
Defines whether to display the names of databases (in the selector) using a tree, see also $cfg['LeftFrameDBSeparator'].
$cfg['LeftFrameDBSeparator'] string or array
The string used to separate the parts of the database name when showing them in a tree. Alternatively you can specify more strings in an array and all of them will be used as a separator.
$cfg['LeftFrameTableSeparator'] string
Defines a string to be used to nest table spaces. Defaults to '__'. This means if you have tables like 'first__second__third' this will be shown as a three-level hierarchy like: first > second > third. If set to FALSE or empty, the feature is disabled. NOTE: You should not use this separator at the beginning or end of a table name or multiple times after another without any other characters in between.
$cfg['LeftFrameTableLevel'] string
Defines how many sublevels should be displayed when splitting up tables by the above separator.
$cfg['LeftRecentTable'] integer
The maximum number of recently used tables shown in the left navigation frame. Set this to 0 (zero) to disable the listing of recent tables.
$cfg['ShowTooltip'] boolean
Określa, czy komentarz tabeli ma być wyświetlany jako etykieta narzędzia w lewej ramce, czy też nie.
$cfg['ShowTooltipAliasDB'] boolean
If tool-tips are enabled and a DB comment is set, this will flip the comment and the real name. That means that if you have a table called 'user0001' and add the comment 'MyName' on it, you will see the name 'MyName' used consequently in the left frame and the tool-tip shows the real name of the DB.
$cfg['ShowTooltipAliasTB'] boolean/string
Same as $cfg['ShowTooltipAliasDB'], except this works for table names. When setting this to 'nested', the Alias of the Tablename is only used to split/nest the tables according to the $cfg['LeftFrameTableSeparator'] directive. So only the folder is called like the Alias, the tablename itself stays the real tablename.
Defines whether or not to display the phpMyAdmin logo at the top of the left frame. Defaults to TRUE.
Enter URL where logo in the navigation frame will point to. For use especially with self made theme which changes this. The default value for this is main.php.
$cfg['LeftLogoLinkWindow'] string
Whether to open the linked page in the main window (main) or in a new one (new). Note: use new if you are linking to phpmyadmin.net.
$cfg['LeftDisplayTableFilterMinimum'] integer
Defines the minimum number of tables to display a JavaScript filter box above the list of tables in the left frame. Defaults to 30. To disable the filter completely some high number can he used (e.g. 9999)
$cfg['LeftDisplayServers'] boolean
Defines whether or not to display a server choice at the top of the left frame. Defaults to FALSE.
$cfg['DisplayServersList'] boolean
Defines whether to display this server choice as links instead of in a drop-down. Defaults to FALSE (drop-down).
$cfg['DisplayDatabasesList'] boolean or text
Defines whether to display database choice in light navigation frame as links instead of in a drop-down. Defaults to 'auto' - on main page list is shown, when database is selected, only drop down is displayed.
$cfg['LeftDefaultTabTable'] string
Defines the tab displayed by default when clicking the small icon next to each table name in the navigation panel. Possible values: "tbl_structure.php", "tbl_sql.php", "tbl_select.php", "tbl_change.php" or "sql.php".
$cfg['ShowStats'] boolean
Defines whether or not to display space usage and statistics about databases and tables.
Warto zauważyć, że statystyki wymagają MySQL-a w wersji przynajmniej 3.23.3 oraz że, jak dotąd, MySQL nie podaje takich informacji dla tabel Berkeley DB.
$cfg['ShowServerInfo'] boolean
Defines whether to display detailed server information on main page. You can additionally hide more information by using $cfg['Servers'][$i]['verbose'].
$cfg['ShowPhpInfo'] boolean
$cfg['ShowChgPassword'] boolean
$cfg['ShowCreateDb'] boolean
Defines whether to display the "PHP information" and "Change password " links and form for creating database or not at the starting main (right) frame. This setting does not check MySQL commands entered directly.

Please note that to block the usage of phpinfo() in scripts, you have to put this in your php.ini:
disable_functions = phpinfo()
Proszę również zauważyć, że aktywacja linku do "Zmiany hasła" nie ma żadnych skutków przy trybie uwierzytelniania "config": z powodu hasła ustalonego w pliku konfiguracyjnym, użytkownikowi końcowemu nie można pozwolić na jego zmianę.
$cfg['SuggestDBName'] boolean
Określa, czy sugerować nazwę bazy danych w formularzu "Utworzenie bazy danych", czy też pozostawić pole tekstowe puste.
$cfg['NavigationBarIconic'] string
Defines whether navigation bar buttons and the right panel top menu contain text or symbols only. A value of TRUE displays icons, FALSE displays text and 'both' displays both icons and text.
$cfg['ShowAll'] boolean
Defines whether a user should be displayed a "show all (rows)" button in browse mode or not.
$cfg['MaxRows'] integer
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.
$cfg['Order'] string [DESC|ASC|SMART]
Defines whether columns are displayed in ascending (ASC) order, in descending (DESC) order or in a "smart" (SMART) order - I.E. descending order for columns of type TIME, DATE, DATETIME and TIMESTAMP, ascending order else- by default.
$cfg['DisplayBinaryAsHex'] boolean
Defines whether the "Show binary contents as HEX" browse option is ticked by default.
$cfg['ProtectBinary'] boolean or string
Defines whether BLOB or BINARY columns are protected from editing when browsing a table's content. Valid values are:
  • FALSE to allow editing of all columns;
  • 'blob' to allow editing of all columns except BLOBS;
  • 'all' to disallow editing of all BINARY or BLOB columns.
$cfg['ShowFunctionFields'] boolean
Defines whether or not MySQL functions fields should be initially displayed in edit/insert mode. Since version 2.10, the user can toggle this setting from the interface.
$cfg['ShowFieldTypesInDataEditView'] boolean
Defines whether or not type fields should be initially displayed in edit/insert mode. The user can toggle this setting from the interface.
$cfg['CharEditing'] string
Defines which type of editing controls should be used for CHAR and VARCHAR columns. Possible values are:
  • input - this allows to limit size of text to size of columns in MySQL, but has problems with newlines in columns
  • textarea - no problems with newlines in columns, but also no length limitations
Domyślnym jest stare zachowanie, a więc input.
$cfg['MinSizeForInputField'] integer
Defines the minimum size for input fields generated for CHAR and VARCHAR columns.
$cfg['MaxSizeForInputField'] integer
Defines the maximum size for input fields generated for CHAR and VARCHAR columns.
$cfg['InsertRows'] integer
Defines the maximum number of concurrent entries for the Insert page.
$cfg['ForeignKeyMaxLimit'] integer
If there are fewer items than this in the set of foreign keys, then a drop-down box of foreign keys is presented, in the style described by the $cfg['ForeignKeyDropdownOrder'] setting.
$cfg['ForeignKeyDropdownOrder'] array
For the foreign key drop-down fields, there are several methods of display, offering both the key and value data. The contents of the array should be one or both of the following strings: 'content-id', 'id-content'.
$cfg['ZipDump'] boolean
$cfg['GZipDump'] boolean
$cfg['BZipDump'] boolean
Defines whether to allow the use of zip/GZip/BZip2 compression when creating a dump file
$cfg['CompressOnFly'] boolean
Defines whether to allow on the fly compression for GZip/BZip2 compressed exports. This doesn't affect smaller dumps and allows users to create larger dumps that won't otherwise fit in memory due to php memory limit. Produced files contain more GZip/BZip2 headers, but all normal programs handle this correctly.
$cfg['LightTabs'] boolean
If set to TRUE, use less graphically intense tabs on the top of the mainframe.
$cfg['PropertiesIconic'] string
If set to TRUE, will display icons instead of text for db and table properties links (like 'Browse', 'Select', 'Insert', ...).
Can be set to 'both' if you want icons AND text.
When set to FALSE, will only show text.
$cfg['PropertiesNumColumns'] integer
How many columns will be utilized to display the tables on the database property view? Default is 1 column. When setting this to a value larger than 1, the type of the database will be omitted for more display space.
$cfg['DefaultTabServer'] string
Defines the tab displayed by default on server view. Possible values: "main.php" (recommended for multi-user setups), "server_databases.php", "server_status.php", "server_variables.php", "server_privileges.php" or "server_processlist.php".
$cfg['DefaultTabDatabase'] string
Defines the tab displayed by default on database view. Possible values: "db_structure.php", "db_sql.php" or "db_search.php".
$cfg['DefaultTabTable'] string
Defines the tab displayed by default on table view. Possible values: "tbl_structure.php", "tbl_sql.php", "tbl_select.php", "tbl_change.php" or "sql.php".
$cfg['MySQLManualBase'] string
If set to an URL which points to the MySQL documentation (type depends on $cfg['MySQLManualType']), appropriate help links are generated.
See MySQL Documentation page for more information about MySQL manuals and their types.
$cfg['MySQLManualType'] string
Typ dokumentacji MySQL-a:
  • viewable - "viewable online", current one used on MySQL website
  • searchable - "Przeszukiwalny, z komentarzami użytkowników"
  • chapters - "HTML, jedna strona na rozdział"
  • big - "HTML, wszystko na jednej stronie"
  • none - nie pokazuje żadnych linków do dokumentacji
$cfg['DefaultLang'] string
Określa domyślny język, jakiego należy użyć, jeżeli nie został określony ani przez przeglądarkę, ani użytkownika.
The corresponding language file needs to be in locale/code/LC_MESSAGES/phpmyadmin.mo.
$cfg['DefaultConnectionCollation'] string
Defines the default connection collation to use, if not user-defined.
See the MySQL documentation for list of possible values. This setting is ignored when connected to Drizzle server.
$cfg['Lang'] string
Force language to use.
The corresponding language file needs to be in locale/code/LC_MESSAGES/phpmyadmin.mo.
$cfg['FilterLanguages'] string
Limit list of available languages to those matching the given regular expression. For example if you want only Czech and English, you should set filter to '^(cs|en)'.
$cfg['RecodingEngine'] string
You can select here which functions will be used for character set conversion. Possible values are:
  • auto - automatycznie użyj dostępnej funkcji (najpierw sprawdzana jest iconv, później recode)
  • iconv - użyj funkcji iconv lub libiconv
  • recode - użyj funkcji recode_string
  • none - disable encoding conversion
Domyślną wartością jest auto.
Enabled charset conversion activates a pull-down menu in the Export and Import pages, to choose the character set when exporting a file. The default value in this menu comes from $cfg['Export']['charset'] and $cfg['Import']['charset'].
$cfg['IconvExtraParams'] string
Specify some parameters for iconv used in charset conversion. See iconv documentation for details. By default //TRANSLIT is used, so that invalid characters will be transliterated.
$cfg['AvailableCharsets'] array
Dostępne systemy kodowania znaków dla konwersji MySQL. Możesz dodać tutaj swoje własne (dowolne obsługiwane przez recode/iconv) lub usunąć te, których nie używasz. Systemy kodowania będą pokazane w tej samej kolejności, w jakiej zostały tu umieszczone; jeśli więc często używasz niektórych z nich, przenieś je na górę.
$cfg['TrustedProxies'] array
Lists proxies and HTTP headers which are trusted for IP Allow/Deny. This list is by default empty, you need to fill in some trusted proxy servers if you want to use rules for IP addresses behind proxy.

The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:
$cfg['TrustedProxies'] =
     array('1.2.3.4' => 'HTTP_X_FORWARDED_FOR');
The $cfg['Servers'][$i]['AllowDeny']['rules'] directive uses the client's IP address as usual.
$cfg['GD2Available'] string
Określa, czy GD >= 2 jest dostępny. Jeśli tak, może zostać użyty do transformacji MIME.
Możliwymi wartościami są:
  • auto - automatically detect
  • yes - funkcje GD 2 mogą być użyte
  • no - GD 2 function cannot be used
Domyślną wartością jest auto.
$cfg['CheckConfigurationPermissions'] boolean
We normally check the permissions on the configuration file to ensure it's not world writable. However, phpMyAdmin could be installed on a NTFS filesystem mounted on a non-Windows server, in which case the permissions seems wrong but in fact cannot be detected. In this case a sysadmin would set this parameter to FALSE. Default is TRUE.
$cfg['LinkLengthLimit'] integer
Limit for length of URL in links. When length would be above this limit, it is replaced by form with button. This is required as some web servers (IIS) have problems with long URLs. Default is 1000.
$cfg['DisableMultiTableMaintenance'] boolean
In the database Structure page, it's possible to mark some tables then choose an operation like optimizing for many tables. This can slow down a server; therefore, setting this to true prevents this kind of multiple maintenance operation. Default is false.
$cfg['NaviWidth'] integer
Navi frame width in pixels. See themes/themename/layout.inc.php.
$cfg['NaviBackground'] string [CSS color for background]
$cfg['MainBackground'] string [CSS color for background]
The background styles used for both the frames. See themes/themename/layout.inc.php.
$cfg['NaviPointerBackground'] string [CSS color for background]
$cfg['NaviPointerColor'] string [CSS color]
The style used for the pointer in the navi frame. See themes/themename/layout.inc.php.
$cfg['LeftPointerEnable'] boolean
A value of TRUE activates the navi pointer (when LeftFrameLight is FALSE).
$cfg['Border'] integer
The size of a table's border. See themes/themename/layout.inc.php.
$cfg['ThBackground'] string [CSS color for background]
$cfg['ThColor'] string [CSS color]
The style used for table headers. See themes/themename/layout.inc.php.
$cfg['BgOne'] string [CSS color]
The color (HTML) #1 for table rows. See themes/themename/layout.inc.php.
$cfg['BgTwo'] string [CSS color]
The color (HTML) #2 for table rows. See themes/themename/layout.inc.php.
$cfg['BrowsePointerBackground'] string [CSS color]
$cfg['BrowsePointerColor'] string [CSS color]
$cfg['BrowseMarkerBackground'] string [CSS color]
$cfg['BrowseMarkerColor'] string [CSS color]
The colors (HTML) uses for the pointer and the marker in browse mode.
The former feature highlights the row over which your mouse is passing and the latter lets you visually mark/unmark rows by clicking on them. Highlighting / marking a column is done by hovering over / clicking the column's header (outside of the text).
See themes/themename/layout.inc.php.
$cfg['FontFamily'] string
You put here a valid CSS font family value, for example arial, sans-serif.
See themes/themename/layout.inc.php.
$cfg['FontFamilyFixed'] string
You put here a valid CSS font family value, for example monospace. This one is used in textarea.
See themes/themename/layout.inc.php.
$cfg['BrowsePointerEnable'] boolean
Whether to activate the browse pointer or not.
$cfg['BrowseMarkerEnable'] boolean
Whether to activate the browse marker or not.
$cfg['TextareaCols'] integer
$cfg['TextareaRows'] integer
$cfg['CharTextareaCols'] integer
$cfg['CharTextareaRows'] integer
Liczba kolumn i wierszy w obszarach tekstowych (textarea).
This value will be emphasized (*2) for SQL query textareas and (*1.25) for SQL textareas inside the query window.
The Char* values are used for CHAR and VARCHAR editing (if configured via $cfg['CharEditing']).
$cfg['LongtextDoubleTextarea'] boolean
Defines whether textarea for LONGTEXT columns should have double size.
$cfg['TextareaAutoSelect'] boolean
Określa, czy cały obszar tekstowy pola zapytania będzie zaznaczony przy kliknięciu.
$cfg['LimitChars'] integer
Maximum number of characters shown in any non-numeric field on browse view. Can be turned off by a toggle button on the browse page.
$cfg['RowActionLinks'] string
Defines the place where table row links (Edit, Copy, Delete) would be put when tables contents are displayed (you may have them displayed at the left side, right side, both sides or nowhere). "left" and "right" are parsed as "top" and "bottom" with vertical display mode.
$cfg['DefaultDisplay'] string
There are 3 display modes: horizontal, horizontalflipped and vertical. Define which one is displayed by default. The first mode displays each row on a horizontal line, the second rotates the headers by 90 degrees, so you can use descriptive headers even though columns only contain small values and still print them out. The vertical mode sorts each row on a vertical lineup.
$cfg['RememberSorting'] boolean
If enabled, remember the sorting of each table when browsing them.
$cfg['HeaderFlipType'] string
The HeaderFlipType can be set to 'auto', 'css' or 'fake'. When using 'css' the rotation of the header for horizontalflipped is done via CSS. The CSS transformation currently works only in Internet Explorer.If set to 'fake' PHP does the transformation for you, but of course this does not look as good as CSS. The 'auto' option enables CSS transformation when browser supports it and use PHP based one otherwise.
$cfg['ShowBrowseComments'] boolean
$cfg['ShowPropertyComments'] boolean
By setting the corresponding variable to TRUE you can enable the display of column comments in Browse or Property display. In browse mode, the comments are shown inside the header. In property mode, comments are displayed using a CSS-formatted dashed-line below the name of the column. The comment is shown as a tool-tip for that column.
$cfg['SQLQuery']['Edit'] boolean
Whether to display an edit link to change a query in any SQL Query box.
$cfg['SQLQuery']['Explain'] boolean
Whether to display a link to explain a SELECT query in any SQL Query box.
$cfg['SQLQuery']['ShowAsPHP'] boolean
Whether to display a link to wrap a query in PHP code in any SQL Query box.
$cfg['SQLQuery']['Validate'] boolean
Whether to display a link to validate a query in any SQL Query box. See also $cfg_SQLValidator.
$cfg['SQLQuery']['Refresh'] boolean
Whether to display a link to refresh a query in any SQL Query box.
$cfg['UploadDir'] string
The name of the directory where SQL files have been uploaded by other means than phpMyAdmin (for example, ftp). Those files are available under a drop-down box when you click the database or table name, then the Import tab.

If you want different directory for each user, %u will be replaced with username.

Please note that the file names must have the suffix ".sql" (or ".sql.bz2" or ".sql.gz" if support for compressed formats is enabled).

This feature is useful when your file is too big to be uploaded via HTTP, or when file uploads are disabled in PHP.

Proszę zauważyć, że jeżeli PHP jest uruchomiony w trybie bezpiecznym, właścicielem tego katalogu musi być ten sam użytkownik, który jest właścicielem skryptów phpMyAdmina.

See also FAQ 1.16 for alternatives.
$cfg['SaveDir'] string
The name of the directory where dumps can be saved.

If you want different directory for each user, %u will be replaced with username.

Please note that the directory must exist and has to be writable for the user running webserver.

Proszę zauważyć, że jeżeli PHP jest uruchomiony w trybie bezpiecznym, właścicielem tego katalogu musi być ten sam użytkownik, który jest właścicielem skryptów phpMyAdmina.
$cfg['TempDir'] string
The name of the directory where temporary files can be stored.

This is needed for importing ESRI Shapefiles, see FAQ 6.30 and to work around limitations of open_basedir for uploaded files, see FAQ 1.11.

If the directory where phpMyAdmin is installed is subject to an open_basedir restriction, you need to create a temporary directory in some directory accessible by the web server. However for security reasons, this directory should be outside the tree published by webserver. If you cannot avoid having this directory published by webserver, place at least an empty index.html file there, so that directory listing is not possible.

This directory should have as strict permissions as possible as the only user required to access this directory is the one who runs the webserver. If you have root privileges, simply make this user owner of this directory and make it accessible only by it:

chown www-data:www-data tmp
chmod 700 tmp
If you cannot change owner of the directory, you can achieve a similar setup using ACL:
chmod 700 tmp
setfacl -m "g:www-data:rwx" tmp
setfacl -d -m "g:www-data:rwx" tmp
If neither of above works for you, you can still make the directory chmod 777, but it might impose risk of other users on system reading and writing data in this directory.
$cfg['Export'] array
In this array are defined default parameters for export, names of items are similar to texts seen on export page, so you can easily identify what they mean.
$cfg['Export']['method'] string
Defines how the export form is displayed when it loads. Valid values are:
  • quick to display the minimum number of options to configure
  • custom to display every available option to configure
  • custom-no-form same as custom but does not display the option of using quick export
$cfg['Import'] array
In this array are defined default parameters for import, names of items are similar to texts seen on import page, so you can easily identify what they mean.
$cfg['SaveCellsAtOnce'] boolean
Defines whether or not to save all edited cells at once in browse-mode.
$cfg['ShowDisplayDirection'] boolean
Defines whether or not type display direction option is shown when browsing a table.
$cfg['RepeatCells'] integer
Powtórz nagłówki co X komórek. Wartość 0 powoduje dezaktywację.
$cfg['EditInWindow'] boolean
$cfg['QueryWindowWidth'] integer
$cfg['QueryWindowHeight'] integer
$cfg['QueryHistoryDB'] boolean
$cfg['QueryWindowDefTab'] string
$cfg['QueryHistoryMax'] integer
All those variables affect the query window feature. A SQL link or icon is always displayed on the left panel. If JavaScript is enabled in your browser, a click on this opens a distinct query window, which is a direct interface to enter SQL queries. Otherwise, the right panel changes to display a query box.

The size of this query window can be customized with $cfg['QueryWindowWidth'] and $cfg['QueryWindowHeight'] - both integers for the size in pixels. Note that normally, those parameters will be modified in layout.inc.php for the theme you are using.

If $cfg['EditInWindow'] is set to true, a click on [Edit] from the results page (in the "Showing Rows" section) opens the query window and puts the current query inside it. If set to false, clicking on the link puts the SQL query in the right panel's query box.

Jeśli masz przeglądarkę z obsługą JavaScriptu, użycie JavaScriptowego okna zapytań jest zalecane. Używane są proste funkcje by wymienić zaledwie kilka zmiennych, więc większość przeglądarek czwartej generacji powinna móc skorzystać z tej opcji. Aktualnie jest tylko testowana z Internet Explorerem 6 i Mozillą 1.x.

If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged to a table, which has to be created by you (see $cfg['Servers'][$i]['history']). If set to FALSE, all your queries will be appended to the form, but only as long as your window is opened they remain saved.

When using the JavaScript based query window, it will always get updated when you click on a new table/db to browse and will focus if you click on "Edit SQL" after using a query. You can suppress updating the query window by checking the box "Do not overwrite this query from outside the window" below the query textarea. Then you can browse tables/databases in the background without losing the contents of the textarea, so this is especially useful when composing a query with tables you first have to look in. The checkbox will get automatically checked whenever you change the contents of the textarea. Please uncheck the button whenever you definitely want the query window to get updated even though you have made alterations.

If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount of saved history items using $cfg['QueryHistoryMax'].

The query window also has a custom tabbed look to group the features. Using the variable $cfg['QueryWindowDefTab'] you can specify the default tab to be used when opening the query window. It can be set to either 'sql', 'files', 'history' or 'full'.
$cfg['BrowseMIME'] boolean
Włącza transformacje MIME.
$cfg['MaxExactCount'] integer
For InnoDB tables, determines for how large tables phpMyAdmin should get the exact row count using SELECT COUNT. If the approximate row count as returned by SHOW TABLE STATUS is smaller than this value, SELECT COUNT will be used, otherwise the approximate count will be used.
$cfg['MaxExactCountViews'] integer
For VIEWs, since obtaining the exact count could have an impact on performance, this value is the maximum to be displayed, using a SELECT COUNT ... LIMIT. Setting this to 0 bypasses any row counting.
$cfg['NaturalOrder'] boolean
Sorts database and table names according to natural order (for example, t1, t2, t10). Currently implemented in the left panel (Light mode) and in Database view, for the table list.
$cfg['InitialSlidersState'] string
If set to 'closed', the visual sliders are initially in a closed state. A value of 'open' does the reverse. To completely disable all visual sliders, use 'disabled'.
$cfg['UserprefsDisallow'] array
Contains names of configuration options (keys in $cfg array) that users can't set through user preferences. For possible values, refer to libraries/config/user_preferences.forms.php.
$cfg['UserprefsDeveloperTab'] boolean
Activates in the user preferences a tab containing options for developers of phpMyAdmin.
$cfg['TitleTable'] string
$cfg['TitleDatabase'] string
$cfg['TitleServer'] string
$cfg['TitleDefault'] string
Allows you to specify window's title bar. You can use format string expansion.
$cfg['ErrorIconic'] boolean
Uses icons for warnings, errors and informations.
$cfg['MainPageIconic'] boolean
Uses icons on main page in lists and menu tabs.
$cfg['ReplaceHelpImg'] boolean
Shows a help button instead of the "Documentation" message.
$cfg['ThemePath'] string
If theme manager is active, use this as the path of the subdirectory containing all the themes.
$cfg['ThemeManager'] boolean
Enables user-selectable themes. See FAQ 2.7.
$cfg['ThemeDefault'] string
The default theme (a subdirectory under cfg['ThemePath']).
$cfg['ThemePerServer'] boolean
Whether to allow different theme for each server.
$cfg['DefaultQueryTable'] string
$cfg['DefaultQueryDatabase'] string
Default queries that will be displayed in query boxes when user didn't specify any. You can use standard format string expansion.
$cfg['SQP']['fmtType'] string [html|none]
The main use of the new SQL Parser is to pretty-print SQL queries. By default we use HTML to format the query, but you can disable this by setting this variable to 'none'.
$cfg['SQP']['fmtInd'] float
$cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex]
For the pretty-printing of SQL queries, under some cases the part of a query inside a bracket is indented. By changing $cfg['SQP']['fmtInd'] you can change the amount of this indent.
Podobny cel ma $cfg['SQP']['fmtIndUnit'], który określa jednostki ilości wcięcia, którą określiłeś. Jest to używane w arkuszach stylów.
$cfg['SQP']['fmtColor'] array of string tuples
This array is used to define the colours for each type of element of the pretty-printed SQL queries. The tuple format is
klasa => [kod koloru HTML | pusty napis]
Jeśli określisz pusty napis jako kolor klasy, jest on ignorowany podczas tworzenia arkusza stylów. Nie powinno się zmieniać nazwy klas, a jedynie napisy kolorów.
Klucz nazw klas:
  • comment stosuje się do wszystkich podklas komentarzy
  • comment_mysql komentarze takie jak "#...\n"
  • comment_ansi komentarze takie jak "-- ...\n"
  • comment_c komentarze takie jak "/*...*/"
  • digit stosuje się do wszystkich podklas liczb
  • digit_hex liczby szesnastkowe
  • digit_integer liczby całkowite
  • digit_float liczby zmiennoprzecinkowe
  • punct stosuje się do wszystkich podklas znaków przestanowych
  • punct_bracket_open_round nawiasy otwierające "("
  • punct_bracket_close_round nawiasy zamykające ")"
  • punct_listsep separator elementów listy ","
  • punct_qualifier kwantyfikator tabel/kolumn "."
  • punct_queryend znacznik końca zapytania ";"
  • alpha stosuje się do wszystkich klas napisowych
  • alpha_columnType identyfikator pasujący do typu kolumny
  • alpha_columnAttrib identyfikator pasujący do atrybutu bazy danych/tabeli/kolumny
  • alpha_functionName identyfikator pasujący do nazwy funkcji MySQL
  • alpha_reservedWord identyfikator pasujący do innego słowa zarezerwowanego
  • alpha_variable Identifiers matching a SQL variable "@foo"
  • alpha_identifier wszystkie inne identyfikatory
  • quote pasuje do wszystkich klas cudzysłowów i apostrofów
  • quote_double cudzysłowy "
  • quote_single apostrofy '
  • quote_backtick odwrócone apostrofy `
$cfg['SQLValidator'] boolean
$cfg['SQLValidator']['use'] boolean
phpMyAdmin now supports use of the Mimer SQL Validator service, as originally published on Slashdot.
For help in setting up your system to use the service, see the FAQ 6.14.
$cfg['SQLValidator']['username'] string
$cfg['SQLValidator']['password'] string
The SOAP service allows you to log in with anonymous and any password, so we use those by default. Instead, if you have an account with them, you can put your login details here, and it will be used in place of the anonymous login.
$cfg['DBG']
TYLKO DLA PROGRAMISTÓW!
$cfg['DBG']['sql'] boolean
TYLKO DLA PROGRAMISTÓW!
Enable logging queries and execution times to be displayed in the bottom of main page (right frame).
$cfg['ColumnTypes'] array
Wszystkie możliwe typy kolumn MySQL. W większości przypadków nie ma potrzeby zmiany.
$cfg['AttributeTypes'] array
Possible attributes for columns. In most cases you don't need to edit this.
$cfg['Functions'] array
Lista funkcji, które obsługuje MySQL. W większości przypadków nie ma potrzeby zmiany.
$cfg['RestrictColumnTypes'] array
Mapping of column types to meta types used for preferring displayed functions. In most cases you don't need to edit this.
$cfg['RestrictFunctions'] array
Functions preferred for column meta types as defined in $cfg['RestrictColumnTypes']. In most cases you don't need to edit this.
$cfg['DefaultFunctions'] array
Functions selected by default when inserting/changing row, Functions are defined for meta types from $cfg['RestrictColumnTypes'] and for first_timestamp, which is used for first timestamp column in table.

Transformacje

  1. Introduction
  2. Usage
  3. File structure

1. Introduction

To enable transformations, you have to setup the column_info table and the proper directives. Please see the Configuration section on how to do so.

You can apply different transformations to the contents of each column. The transformation will take the content of each column and transform it with certain rules defined in the selected transformation.

Say you have a column 'filename' which contains a filename. Normally you would see in phpMyAdmin only this filename. Using 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.

For a general overview of all available transformations and their options, you can consult your <www.your-host.com>/<your-install-dir>/transformation_overview.php installation.

For a tutorial on how to effectively use transformations, see our Link section on the official phpMyAdmin homepage.

2. Usage

Go to your tbl_structure.php page (i.e. reached through clicking on the 'Structure' link for a table). There click on "Change" (or change icon) and there you will see three new fields at the end of the line. They are called 'MIME-type', 'Browser transformation' and 'Transformation options'.

  • The field 'MIME-type' is a drop-down field. Select the MIME-type that corresponds to the column's contents. Please note that transformations are inactive as long as no MIME-type is selected.
  • Pole 'Sposób prezentacji danych' jest polem wyboru. Możesz wybierać z - miejmy nadzieję - rosnącej liczby predefiniowanych transformacji. Informacje o tym, jak zbudować własną transformację, znajdują się poniżej.
    Mamy transformacje globalne i przywiązane do typu MIME. Transformacje globalne mogą zostać użyte dla każdego typu MIME. Jeśli to konieczne, wezmą one typ pod rozwagę. Transformacje związane z typem MIME zwykle operują tylko na określonym typie. Istnieją transformacje, które operują na głównym typie MIME (jak 'image'), które zwykle biorą pod rozwagę podtyp, oraz takie, które operują tylko na określonym podtypie (jak 'image/jpeg').
    Możesz użyć transformacji dla typów MIME, dla których funkcja nie została zdefiniowana. Nie ma żadnego zabezpieczenia przed wybraniem niewłaściwej tranformacji, więc sam zadbaj o to, jak wyglądał będzie wynik.
  • Pole 'Opcje transformacji' jest polem tekstowym. Musisz wprowadzić tu właściwe opcje funkcji przekształcającej. Zwykle tranformacje mogą działać z domyślnymi opcjami, lecz zwykle dobrym pomysłem jest rzucenie okiem na opis, by zobaczyć, które opcje są niezbędne.
    Bardzo podobnie jak w kolumnach ENUM/SET, musisz oddzielić poszczególne opcje używając formatu 'a','b','c',...(UWAGA NA BRAK ODSTĘPÓW). To dlatego, że wewnętrznie opcje będą przetwarzane jako tablica, gdzie pierwsza wartość to pierwszy element w tablicy, i tak dalej.
    Jeśli chcesz określić zestaw kodowania znaków MIME, możesz zdefiniować go w opcjach. Musisz umieścić tę definicję po opcjach predefiniowanych właściwej transformacji MIME, jako ostatnią wartość zestawu. Użyj formatu "'; charset=XXX'". Jeśli używasz transformacji, dla której możesz określić 2 opcje i chcesz dodać zestaw kodowania znaków, wprowadź "'pierwszy parameter','drugi parameter','charset=iso-8859-2'". Możesz jednakże użyć domyślnych wartości parametrów: "'','','charset=iso-8859-2'".

3. File structure

Wszystkie typy MIME i ich tranformacje są zdefiniowane poprzez pojedyncze pliki w katalogu 'libraries/transformations/'.

Są one składowane w plikach, aby ułatwić ich przystosowanie do własnych potrzeb i dodawanie nowych transformacji.

Because the user cannot enter own mimetypes, it is kept sure that transformations always work. It makes no sense to apply a transformation to a mimetype the transform-function doesn't know to handle.

One can, however, use empty mime-types and global transformations which should work for many mimetypes. You can also use transforms on a different mimetype than what they where built for, but pay attention to option usage as well as what the transformation does to your column.

There is a basic file called 'global.inc.php'. This function can be included by any other transform function and provides some basic functions.

Jest 5 możliwych nazw plików:

  1. Transformacja typu+podtypu MIME:

    [mimetype]_[subtype]__[transform].inc.php

    Proszę zauważyć, że typ-mime i podtyp są oddzielone znakiem '_', który nie powinien się znajdować w ich nazwach. Nazwa funkcji/pliku transformacji może zawierać tylko takie znaki, które nie powodują problemów w systemie plików, ani nie łamią konwencji nazewnictwa funkcji PHP.

    The transform function will the be called 'PMA_transform_[mimetype]_[subtype]__[transform]()'.

    Przykład:

    text_html__formatted.inc.php
    PMA_transform_text_html__formatted()
  2. Transformacja typu MIME (bez podtypu):

    [mimetype]__[transform].inc.php

    Proszę zauważyć, że brak jest pojedynczych znaków '_' w nazwie pliku. Nazwa funkcji/pliku transformacji może zawierać tylko takie znaki, które nie powodują problemów w systemie plików, ani nie łamią konwencji nazewnictwa funkcji PHP.

    The transform function will the be called 'PMA_transform_[mimetype]__[transform]()'.

    Przykład:

    text__formatted.inc.php
    PMA_transform_text__formatted()
  3. Typ+podtyp MIME bez właściwej funkcji przekształcającej

    [mimetype]_[subtype].inc.php

    Proszę zauważyć, że w nazwie pliku nie ma znaków '__'. Nie można używać specjalnych znaków powodujących problemy w systemie plików.

    Żadna funkcja przekształcająca nie jest zdefiniowana w samym pliku.

    Przykład:

    text_plain.inc.php
    (Brak funkcji)
  4. Typ MIME (bez podtypu) bez właściwej funkcji przekształcającej

    [mimetype].inc.php

    Proszę zauważyć, że brak jest pojedynczych znaków '_' w nazwie pliku. Nie można używać specjalnych znaków powodujących problemy w systemie plików.

    Żadna funkcja przekształcająca nie jest zdefiniowana w samym pliku.

    Przykład:

    text.inc.php
    (Brak funkcji)
  5. Transformacja globalna bez właściwego typu MIME

    global__[transform].inc.php

    The transform function will the be called 'PMA_transform_global__[transform]()'.

    Przykład:

    global__formatted
    PMA_transform_global__formatted()

Zatem, ogólnie rzecz biorąc, używaj '_' by rozdzielić typ i podtyp MIME, a '__' by dostarczyć nazwę funkcji przekształcającej.

Wszystkie pliki nie zawierające w nazwie '__' nie są pokazywane jako poprawne funkcje przekształcające w polu wyboru.

Please see the libraries/transformations/TEMPLATE file for adding your own transform function. See the libraries/transformations/TEMPLATE_MIMETYPE for adding a mimetype without a transform function.

To create a new transform function please see libraries/transformations/template_generator.sh. To create a new, empty mimetype please see libraries/transformations/template_generator_mimetype.sh.

A transform function always gets passed three variables:

  1. $buffer - Contains the text inside of the column. This is the text, you want to transform.
  2. $options - Contains any user-passed options to a transform function as an array.
  3. $meta - Contains an object with information about your column. The data is drawn from the output of the mysql_fetch_field() function. This means, all object properties described on the manual page are available in this variable and can be used to transform a column accordingly to unsigned/zerofill/not_null/... properties.
    The $meta->mimetype variable contains the original MIME-type of the column (i.e. 'text/plain', 'image/jpeg' etc.)

Additionally you should also provide additional function to provide information about the transformation to the user. This function should have same name as transformation function just with appended _info suffix. This function accepts no parameters and returns array with information about the transformation. Currently following keys can be used:

info
Long description of the transformation.

FAQ - Często zadawane pytania

  1. Server
  2. Configuration
  3. Known limitations
  4. ISPs, multi-user installations
  5. Browsers or client OS
  6. Using phpMyAdmin
  7. phpMyAdmin project
  8. Security
  9. Synchronization

Please have a look at our Link section on the official phpMyAdmin homepage for in-depth coverage of phpMyAdmin's features and or interface.

Server

1.1 My server is crashing each time a specific action is required or phpMyAdmin sends a blank page or a page full of cryptic characters to my browser, what can I do?

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 My Apache server crashes when using phpMyAdmin.

Po pierwsze, powinieneś wypróbować najnowszą wersję Apache'a (i, być może, MySQL-a).
See also the FAQ 1.1 entry about PHP bugs with output buffering.
Jeżeli serwer nadal pada, poproś o pomoc na różnych grupach pomocy technicznej Apache'a.

1.3 (withdrawn).

1.4 Using phpMyAdmin on IIS, I'm displayed the error message: "The specified CGI application misbehaved by not returning a complete set of HTTP headers ...".

You just forgot to read the install.txt file from the PHP distribution. Have a look at the last message in this bug report from the official PHP bug database.

1.5 Using phpMyAdmin on IIS, I'm facing crashes and/or many error messages with the HTTP.

This is a known problem with the PHP ISAPI filter: it's not so stable. Please use instead the cookie authentication mode.

1.6 I can't use phpMyAdmin on PWS: nothing is displayed!

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 libraries/header.inc.php, libraries/header_printview.inc.php, index.php, navigation.php and libraries/common.lib.php.

1.7 How can I GZip or Bzip a dump or a CSV export? It does not seem to work.

These features are based on the gzencode() and bzcompress() PHP functions to be more independent of the platform (Unix/Windows, Safe Mode or not, and so on). So, you must have Zlib/Bzip2 support (--with-zlib and --with-bz2).

1.8 I cannot insert a text file in a table, and I get an error about safe mode being in effect.

Twój wysyłany plik jest zapisywany przez PHP w "katalogu uploadu", zdefiniowanego w php.ini przez zmienną upload_tmp_dir (zwykle domyślną wartością systemową jest /tmp).
Zalecamy poniższą konfigurację dla serwerów Apache uruchomionym w trybie bezpiecznym, która włącza wysyłanie plików i jednocześnie jest przyzwoicie bezpieczna:

  • utwórz osobny katalog na uploady: mkdir /tmp/php
  • przekaż własność do użytkownika.grupy serwera Apache: chown apache.apache /tmp/php
  • daj odpowiednie prawa: chmod 600 /tmp/php
  • put upload_tmp_dir = /tmp/php in php.ini
  • zrestartuj Apache'a

1.9 (withdrawn).

1.10 I'm having troubles when uploading files with phpMyAdmin running on a secure server. My browser is Internet Explorer and I'm using the Apache server.

Jak zasugerował "Rob M" na forum phpWizarda, dodaj tę linijkę do swojego httpd.conf:

SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

Wygląda na to, że usuwa to wiele problemów pomiędzy Internet Explorerem i SSL.

1.11 I get an 'open_basedir restriction' while uploading a file from the query box.

Since version 2.2.4, phpMyAdmin supports servers with open_basedir restrictions. However you need to create temporary directory and configure it as $cfg['TempDir']. The uploaded files will be moved there, and after execution of your SQL commands, removed.

1.12 I have lost my MySQL root password, what can I do?

The MySQL manual explains how to reset the permissions.

1.13 (withdrawn).

1.14 (withdrawn).

1.15 I have problems with mysql.user column names.

In previous MySQL versions, the User and Passwordcolumns were named user and password. Please modify your column names to align with current standards.

1.16 I cannot upload big dump files (memory, HTTP or timeout problems).

Starting with version 2.7.0, the import engine has been re–written and these problems should not occur. If possible, upgrade your phpMyAdmin to the latest version to take advantage of the new import features.

The first things to check (or ask your host provider to check) are the values of upload_max_filesize, memory_limit and post_max_size in the php.ini configuration file. All of these three settings limit the maximum size of data that can be submitted and handled by PHP. One user also said that post_max_size and memory_limit need to be larger than upload_max_filesize.

There exist several workarounds if your upload is too big or your hosting provider is unwilling to change the settings:

  • Look at the $cfg['UploadDir'] feature. This allows one to upload a file to the server via scp, ftp, or your favorite file transfer method. PhpMyAdmin is then able to import the files from the temporary directory. More information is available in the Configuration section of this document.
  • Using a utility (such as BigDump) to split the files before uploading. We cannot support this or any third party applications, but are aware of users having success with it.
  • If you have shell (command line) access, use MySQL to import the files directly. You can do this by issuing the "source" command from within MySQL: source filename.sql.

1.17 Which MySQL versions does phpMyAdmin support?

Since phpMyAdmin 3.0.x, only MySQL 5.0.1 and newer are supported. For older MySQL versions, you need to use the latest 2.x branch. phpMyAdmin can connect to your MySQL server using PHP's classic MySQL extension as well as the improved MySQL extension (MySQLi) that is available in PHP 5.0. The latter one should be used unless you have a good reason not to do so.
When compiling PHP, we strongly recommend that you manually link the MySQL extension of your choice to a MySQL client library of at least the same minor version since the one that is bundled with some PHP distributions is rather old and might cause problems (see FAQ 1.17a).

MariaDB is also supported (versions 5.1 and 5.2 were tested).

Since phpMyAdmin 3.5 Drizzle is supported.

1.17a I cannot connect to the MySQL server. It always returns the error message, "Client does not support authentication protocol requested by server; consider upgrading MySQL client"

You tried to access MySQL with an old MySQL client library. The version of your MySQL client library can be checked in your phpinfo() output. In general, it should have at least the same minor version as your server - as mentioned in FAQ 1.17.

This problem is generally caused by using MySQL version 4.1 or newer. MySQL changed the authentication hash and your PHP is trying to use the old method. The proper solution is to use the mysqli extension with the proper client library to match your MySQL installation. Your chosen extension is specified in $cfg['Servers'][$i]['extension']. More information (and several workarounds) are located in the MySQL Documentation.

1.18 (withdrawn).

1.19 I can't run the "display relations" feature because the script seems not to know the font face I'm using!

Biblioteka "FPDF", której używamy dla tej funkcji wymaga pewnych specjalnych plików dla krojów czcionek.
Please refers to the FPDF manual to build these files.

1.20 I receive the error "cannot load MySQL extension, please check PHP Configuration".

To connect to a MySQL server, PHP needs a set of MySQL functions called "MySQL extension". This extension may be part of the PHP distribution (compiled-in), otherwise it needs to be loaded dynamically. Its name is probably mysql.so or php_mysql.dll. phpMyAdmin tried to load the extension but failed.

Zwykle problem można rozwiązać instalując pakiet oprogramowania o nazwie "PHP-MySQL" lub podobnej.

1.21 I am running the CGI version of PHP under Unix, and I cannot log in using cookie auth.

W pliku php.ini ustaw mysql.max_links na więcej niż 1.

1.22 I don't see the "Location of text file" field, so I cannot upload.

Najczęstszym powodem jest to, że w php.ini parametr file_uploads nie jest ustawiony na "on".

1.23 I'm running MySQL on a Win32 machine. Each time I create a new table the table and column names are changed to lowercase!

Dzieje się to z powodu dyrektywy MySQL lower_case_table_names domyślnie ustawionej na 1 (ON) w wersji MySQL dla Win32. Możesz zmienić to zachowanie po prostu poprzez zmianę jej na 0 (OFF):
Po prostu zmodyfikuj swój plik my.ini, który powinien znajdować się w katalogu Windows, dodając następująca linię do grupy [mysqld]:

set-variable = lower_case_table_names=0

Następnie zapis plik i zrestartuj usługę MySQL. Zawsze możesz sprawdzić wartość tej dyrektywy używając zapytania

SHOW VARIABLES LIKE 'lower_case_table_names';

1.24 (withdrawn).

1.25 I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get problems, such as undefined variables when I run a SQL query.

Wskazówka od Josego Fandosa: zakomentuj następujące dwie linie w httpd.conf, w ten sposób:

# mod_gzip_item_include file \.php$
# mod_gzip_item_include mime "application/x-httpd-php.*"

ponieważ ta wersja mod_gzip na serwerze Apache (w systemie Windows) ma problemy z obsługą skryptów PHP. Oczywiście serwer Apache musisz potem zrestartować.

1.26 Właśnie zainstalowałem phpMyAdmin w głównym katalogu dokumentów IIS, ale otrzymuję komunikat o błędzie "No input file specified" podczas próby uruchomienia phpMyAdmin.

This is a permission problem. Right-click on the phpmyadmin folder and choose properties. Under the tab Security, click on "Add" and select the user "IUSR_machine" from the list. Now set his permissions and it should work.

1.27 I get empty page when I want to view huge page (eg. db_structure.php with plenty of tables).

This is a PHP bug that occur when GZIP output buffering is enabled. If you turn off it (by $cfg['OBGzip'] = false in config.inc.php), it should work. This bug will be fixed in PHP 5.0.0.

1.28 My MySQL server sometimes refuses queries and returns the message 'Errorcode: 13'. What does this mean?

Może się to dziać z powodu błędu MySQL-a w sytuacji posiadania nazw baz danych / tabel z dużymi literami, pomimo lower_case_table_names ustawionego na 1. Aby to naprawić, wyłącz tę dyrektywę, przekształć wszystkie nazwy baz danych i tabel na składające się z małych liter i włącz ją ponownie. Błąd ten został także poprawiony w MySQL-u począwszy od wersji 3.23.56 / 4.0.11-gamma.

1.29 When I create a table or modify a column, I get an error and the columns are duplicated.

Istnieje możliwość skonfigurowania Apache'a w taki sposób, że PHP ma problemy z interpretacją plików .php.

Problemy występują, gdy używane są 2 różne (i niezgodne) zestawy dyrektyw:

SetOutputFilter PHP
SetInputFilter PHP

and

AddType application/x-httpd-php .php

In the case we saw, one set of directives was in /etc/httpd/conf/httpd.conf, while the other set was in /etc/httpd/conf/addon-modules/php.conf.
Polecanym sposobem jest ten z AddType, więc po prostu zakomentuj pierwszy zestaw linii i zrestartuj Apache'a:

#SetOutputFilter PHP
#SetInputFilter PHP

1.30 I get the error "navigation.php: Missing hash".

This problem is known to happen when the server is running Turck MMCache but upgrading MMCache to version 2.3.21 solves the problem.

1.31 Does phpMyAdmin support php5?

Yes.

Since release 3.0 only PHP 5.2 and newer. For older PHP versions 2.9 branch is still maintained.

1.32 Can I use HTTP authentication with IIS?

Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI mode under IIS 5.1.

  1. In your php.ini file, set cgi.rfc2616_headers = 0
  2. In Web Site Properties -> File/Directory Security -> Anonymous Access dialog box, check the Anonymous access checkbox and uncheck any other checkboxes (i.e. uncheck Basic authentication, Integrated Windows authentication, and Digest if it's enabled.) Click OK.
  3. In Custom Errors, select the range of 401;1 through 401;5 and click the Set to Default button.

1.33 (withdrawn).

1.34 Can I access directly to database or table pages?

Yes. Out of the box, you can use URLs like http://server/phpMyAdmin/index.php?server=X&db=database&table=table&target=script. For server you use the server number which refers to the order of the server paragraph in config.inc.php. Table and script parts are optional. If you want http://server/phpMyAdmin/database[/table][/script] URLs, you need to do some configuration. Following lines apply only for Apache web server. First make sure, that you have enabled some features within global configuration. You need Options FollowSymLinks and AllowOverride FileInfo enabled for directory where phpMyAdmin is installed and you need mod_rewrite to be enabled. Then you just need to create following .htaccess file in root folder of phpMyAdmin installation (don't forget to change directory name inside of it):

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]

1.35 Can I use HTTP authentication with Apache CGI?

Yes. However you need to pass authentication variable to CGI using following rewrite rule:

RewriteEngine On
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

1.36 I get an error "500 Internal Server Error".

There can be many explanations to this and a look at your server's error log file might give a clue.

1.37 I run phpMyAdmin on cluster of different machines and password encryption in cookie auth doesn't work.

If your cluster consist of different architectures, PHP code used for encryption/decryption won't work correct. This is caused by use of pack/unpack functions in code. Only solution is to use mcrypt extension which works fine in this case.

1.38 Can I use phpMyAdmin on a server on which Suhosin is enabled?

Yes but the default configuration values of Suhosin are known to cause problems with some operations, for example editing a table with many columns and no primary key or with textual primary key.

Suhosin configuration might lead to malfunction in some cases and it can not be fully avoided as phpMyAdmin is kind of application which needs to transfer big amounts of columns in single HTTP request, what is something what Suhosin tries to prevent. Generally all suhosin.request.*, suhosin.post.* and suhosin.get.* directives can have negative effect on phpMyAdmin usability. You can always find in your error logs which limit did cause dropping of variable, so you can diagnose the problem and adjust matching configuration variable.

The default values for most Suhosin configuration options will work in most scenarios, however you might want to adjust at least following parameters:

You can also disable the warning using the SuhosinDisableWarning directive.

1.39 When I try to connect via https, I can log in, but then my connection is redirected back to http. What can cause this behavior?

Be sure that you have enabled SSLOptions and StdEnvVars in your Apache configuration. See http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#ssloptions.

1.40 When accessing phpMyAdmin via an Apache reverse proxy, cookie login does not work.

To be able to use cookie auth Apache must know that it has to rewrite the set-cookie headers.
Example from the Apache 2.2 documentation:

ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com 
ProxyPassReverseCookiePath / /mirror/foo/ 

Note: if the backend url looks like http://host/~user/phpmyadmin, the tilde (~) must be url encoded as %7E in the ProxyPassReverse* lines. This is not specific to phpmyadmin, it's just the behavior of Apache.

ProxyPass /mirror/foo/ http://backend.example.com/~user/phpmyadmin
ProxyPassReverse /mirror/foo/
http://backend.example.com/%7Euser/phpmyadmin
ProxyPassReverseCookiePath /%7Euser/phpmyadmin /mirror/foo

See http://httpd.apache.org/docs/2.2/mod/mod_proxy.html for more details.

1.41 When I view a database and ask to see its privileges, I get an error about an unknown column.

The MySQL server's privilege tables are not up to date, you need to run the mysql_upgrade command on the server.

Konfiguracja

2.1 The error message "Warning: Cannot add header information - headers already sent by ..." is displayed, what's the problem?

Edit your config.inc.php file and ensure there is nothing (I.E. no blank lines, no spaces, no characters...) neither before the <?php tag at the beginning, neither after the ?> tag at the end. We also got a report from a user under IIS, that used a zipped distribution kit: the file libraries/Config.class.php contained an end-of-line character (hex 0A) at the end; removing this character cleared his errors.

2.2 phpMyAdmin can't connect to MySQL. What's wrong?

Albo jest to błąd konfiguracji PHP, albo nazwa-użytkownika/hasło są błędne. Spróbuj stworzyć mały skrypt, który używa mysql_connect i zobacz, czy działa. Jeśli nie, być może nawet nie wkompilowałeś obsługi MySQL-a do PHP.

2.3 The error message "Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) ..." is displayed. What can I do?

Dla użytkowników RedHata Harald Legner sugeruje na liście dyskusyjnej co następuje:

On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In your php.ini you will find a line

mysql.default_socket = /tmp/mysql.sock

Zmień ją na

mysql.default_socket = /var/lib/mysql/mysql.sock

Potem zrestartuj Apache'a i będzie działało.

Here is a fix suggested by Brad Ummer:

  • Po pierwsze: musisz określić jakiego gniazda używa MySQL.
    Aby to zrobić, zatelnetuj na swój serwer, wejdź go katalogu bin MySQL-a. W tym katalogu powinien być plik o nazwie mysqladmin. Napisz ./mysqladmin variables, co powinno dać sporo informacji o serwerze MySQL, w tym gniazdo (/tmp/mysql.sock, na przykład).
  • Następnie musisz powiedzieć PHP, żeby używał tego gniazda.
    To do this in phpMyAdmin, you need to complete the socket information in the config.inc.php.
    For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';

    Proszę również upewnić się, że prawa tego pliku pozwalają go odczytać przez Twój serwer WWW (tj. '0755').

Have also a look at the corresponding section of the MySQL documentation.

2.4 Nothing is displayed by my browser when I try to run phpMyAdmin, what can I do?

Try to set the $cfg['OBGZip'] directive to FALSE in the phpMyAdmin configuration file. It helps sometime.
Also have a look at your PHP version number: if it contains "b" or "alpha" it means you're running a testing version of PHP. That's not a so good idea, please upgrade to a plain revision.

2.5 Each time I want to insert or change a row or drop a database or a table, an error 404 (page not found) is displayed or, with HTTP or cookie authentication, I'm asked to log in again. What's wrong?

Check the value you set for the $cfg['PmaAbsoluteUri'] directive in the phpMyAdmin configuration file.

2.6 I get an "Access denied for user: 'root@localhost' (Using password: YES)"-error when trying to access a MySQL-Server on a host which is port-forwarded for my localhost.

Kiedy używasz portu na swoim hoście lokalnym, którego port jest przekierowywany do innego hosta, MySQL nie rozwiązuje nazwy localhost zgodnie z oczekiwaniami.
Erik Wasser explains: The solution is: if your host is "localhost" MySQL (the command line tool mysql as well) always tries to use the socket connection for speeding up things. And that doesn't work in this configuration with port forwarding.
If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the TCP connection.

2.7 Using and creating themes

Themes are configured with $cfg['ThemePath'], $cfg['ThemeManager'] and $cfg['ThemeDefault'].

Under $cfg['ThemePath'], you should not delete the directory "original" or its underlying structure, because this is the system theme used by phpMyAdmin. "original" 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.

To create a theme:

  • make a new subdirectory (for example "your_theme_name") under $cfg['ThemePath'] (by default themes)
  • copy the files and directories from "original" to "your_theme_name"
  • edit the css-files in "your_theme_name/css"
  • put your new images in "your_theme_name/img"
  • edit layout.inc.php in "your_theme_name"
  • edit info.inc.php in "your_theme_name" to contain your chosen theme name, that will be visible in user interface
  • make a new screenshot of your theme and save it under "your_theme_name/screen.png"

In theme directory there is file info.inc.php which contains theme verbose name, theme generation and theme version. These versions and generations are enumerated from 1 and do not have any direct dependence on phpMyAdmin version. Themes within same generation should be backwards compatible - theme with version 2 should work in phpMyAdmin requiring version 1. Themes with different generation are incompatible.

If you do not want to use your own symbols and buttons, remove the directory "img" in "your_theme_name". phpMyAdmin will use the default icons and buttons (from the system-theme "original").

2.8 I get "Missing parameters" errors, what can I do?

Here are a few points to check:

  • In config.inc.php, try to leave the $cfg['PmaAbsoluteUri'] directive empty. See also FAQ 4.7.
  • Maybe you have a broken PHP installation or you need to upgrade your Zend Optimizer. See http://bugs.php.net/bug.php?id=31134.
  • If you are using Hardened PHP with the ini directive varfilter.max_request_variables set to the default (200) or another low value, you could get this error if your table has a high number of columns. Adjust this setting accordingly. (Thanks to Klaus Dorninger for the hint).
  • In the php.ini directive arg_separator.input, a value of ";" will cause this error. Replace it with "&;".
  • If you are using Hardened-PHP, you might want to increase request limits.
  • The directory specified in the php.ini directive session.save_path does not exist or is read-only.

2.9 Seeing an upload progress bar

To be able to see a progress bar during your uploads, your server must have either the APC extension or the uploadprogress one. Moreover, the JSON extension has to be enabled in your PHP.

If using APC, you must set apc.rfc1867 to on in your php.ini.

Known limitations

3.1 When using HTTP authentication, a user who logged out can not log in again in with the same nick.

This is related to the authentication mechanism (protocol) used by phpMyAdmin. To bypass this problem: just close all the opened browser windows and then go back to phpMyAdmin. You should be able to log in again.

3.2 When dumping a large table in compressed mode, I get a memory limit error or a time limit error.

Compressed dumps are built in memory and because of this are limited to php's memory limit. For GZip/BZip2 exports this can be overcome since 2.5.4 using $cfg['CompressOnFly'] (enabled by default). Zip exports can not be handled this way, so if you need Zip files for larger dump, you have to use another way.

3.3 With InnoDB tables, I lose foreign key relationships when I rename a table or a column.

This is an InnoDB bug, see http://bugs.mysql.com/bug.php?id=21704.

3.4 I am unable to import dumps I created with the mysqldump tool bundled with the MySQL server distribution.

The problem is that older versions of mysqldump created invalid comments like this:

-- MySQL dump 8.22
--
-- Host: localhost Database: database
---------------------------------------------------------
-- Server version 3.23.54

The invalid part of the code is the horizontal line made of dashes that appears once in every dump created with mysqldump. If you want to run your dump you have to turn it into valid MySQL. This means, you have to add a whitespace after the first two dashes of the line or add a # before it:
-- -------------------------------------------------------
lub
#---------------------------------------------------------

3.5 When using nested folders there are some multiple hierarchies displayed in a wrong manner?! ($cfg['LeftFrameTableSeparator'])

Please note that you should not use the separating string multiple times without any characters between them, or at the beginning/end of your table name. If you have to, think about using another TableSeparator or disabling that feature

3.6 What is currently not supported in phpMyAdmin about InnoDB?

In Relation view, being able to choose a table in another database, or having more than one index column in the foreign key.

In Query-by-example (Query), automatic generation of the query LEFT JOIN from the foreign table.

3.7 I have table with many (100+) columns and when I try to browse table I get series of errors like "Warning: unable to parse url". How can this be fixed?

Your table neither have a primary key nor an unique one, so we must use a long expression to identify this row. This causes problems to parse_url function. The workaround is to create a primary or unique key.

3.8 I cannot use (clickable) HTML-forms in columns where I put a MIME-Transformation onto!

Due to a surrounding form-container (for multi-row delete checkboxes), no nested forms can be put inside the table where phpMyAdmin displays the results. You can, however, use any form inside of a table if keep the parent form-container with the target to tbl_row_delete.php and just put your own input-elements inside. If you use a custom submit input field, the form will submit itself to the displaying page again, where you can validate the $HTTP_POST_VARS in a transformation. For a tutorial on how to effectively use transformations, see our Link section on the official phpMyAdmin-homepage.

3.9 I get error messages when using "--sql_mode=ANSI" for the MySQL server

When MySQL is running in ANSI-compatibility mode, there are some major differences in how SQL is structured (see http://dev.mysql.com/doc/mysql/en/ansi-mode.html). Most important of all, the quote-character (") is interpreted as an identifier quote character and not as a string quote character, which makes many internal phpMyAdmin operations into invalid SQL statements. There is no workaround to this behaviour. News to this item will be posted in Bug report #816858

3.10 Homonyms and no primary key: When the results of a SELECT display more that one column with the same value (for example SELECT lastname from employees where firstname like 'A%' and two "Smith" values are displayed), if I click Edit I cannot be sure that I am editing the intended row.

Please make sure that your table has a primary key, so that phpMyAdmin can use it for the Edit and Delete links.

3.11 The number of rows for InnoDB tables is not correct.

phpMyAdmin uses a quick method to get the row count, and this method only returns an approximate count in the case of InnoDB tables. See $cfg['MaxExactCount'] for a way to modify those results, but this could have a serious impact on performance.

3.12 (withdrawn).

3.13 I get an error when entering USE followed by a db name containing an hyphen.

The tests I have made with MySQL 5.1.49 shows that the API does not accept this syntax for the USE command.

3.14 I am not able to browse a table when I don't have the right to SELECT one of the columns.

This has been a known limitation of phpMyAdmin since the beginning and it's not likely to be solved in the future.

3.15 (withdrawn).

3.16 (withdrawn).

3.17 (withdrawn).

3.18 When I import a CSV file that contains multiple tables, they are lumped together into a single table.

There is no reliable way to differentiate tables in CSV format. For the time being, you will have to break apart CSV files containing multiple tables.

3.19 When I import a file and have phpMyAdmin determine the appropriate data structure it only uses int, decimal, and varchar types.

Currently, the import type-detection system can only assign these MySQL types to columns. In future, more will likely be added but for the time being you will have to edit the structure to your liking post-import.

Also, you should note the fact that phpMyAdmin will use the size of the largest item in any given column as the column size for the appropriate type. If you know you will be adding larger items to that column then you should manually adjust the column sizes accordingly. This is done for the sake of efficiency.

ISPs, multi-user installations

4.1 I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to install it for each customer.

Since version 2.0.3, you can setup a central copy of phpMyAdmin for all your users. The development of this feature was kindly sponsored by NetCologne GmbH. This requires a properly setup MySQL user management and phpMyAdmin HTTP or cookie authentication. See the install section on "Using HTTP authentication".

4.2 What's the preferred way of making phpMyAdmin secure against evil access.

Zależy to od Twojego systemu.
Jeżeli używasz serwera, do którego nie mają dostępu inni ludzie, wystarczy użyć ochrony katalogów, którą dostarcza Twój serwer www (np. z Apachem możesz użyć plików .htaccess).
If other people have telnet access to your server, you should use phpMyAdmin's HTTP or cookie authentication features.

Propozycje:

  • Your config.inc.php file should be chmod 660.
  • All your phpMyAdmin files should be chown -R phpmy.apache, where phpmy is a user whose password is only known to you, and apache is the group under which Apache runs.
  • Follow security recommendations for PHP and your webserver.

4.3 I get errors about not being able to include a file in /lang or in /libraries.

Sprawdź php.ini, albo poproś swojego administratora systemu, by to sprawdził. Aby pozwolić na normalną pracę phpMyAdmina, Include_path musi zawierać "." gdzieś wewnątrz, a open_basedir, jeśli jest używane, musi zawierać "." i "./lang",

4.4 phpMyAdmin always gives "Access denied" when using HTTP authentication.

Może się to dziać z kilku powodów:

4.5 Is it possible to let users create their own databases?

Począwszy od wersji 2.2.5, na stronie zarządzania użytkownikami, można wprowadzić wieloznaczną nazwę bazy danych dla użytkownika (na przykład "joe"), i dać uprawnienia, jakie chcesz. Na przykład dodanie SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER pozwoli użytkownikowi tworzyć/zarządzać jego bazą (bazami) danych.

4.6 How can I use the Host-based authentication additions?

If you have existing rules from an old .htaccess file, you can take them and add a username between the 'deny'/'allow' and 'from' strings. Using the username wildcard of '%' would be a major benefit here if your installation is suited to using it. Then you can just add those updated lines into the $cfg['Servers'][$i]['AllowDeny']['rules'] array.

If you want a pre-made sample, you can try this fragment. It stops the 'root' user from logging in from any networks other than the private network IP blocks.

//block root from logging in except from the private networks
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
    '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 Authentication window is displayed more than once, why?

This happens if you are using a URL to start phpMyAdmin which is different than the one set in your $cfg['PmaAbsoluteUri']. For example, a missing "www", or entering with an IP address while a domain name is defined in the config file.

4.8 Which parameters can I use in the URL that starts phpMyAdmin?

When starting phpMyAdmin, you can use the db, pma_username, pma_password and server parameters. This last one can contain either the numeric host index (from $i of the configuration file) or one of the host names present in the configuration file. Using pma_username and pma_password has been tested along with the usage of 'cookie' auth_type.

Browsers or client OS

5.1 I get an out of memory error, and my controls are non-functional, when trying to create a table with more than 14 columns.

We could reproduce this problem only under Win98/98SE. Testing under WinNT4 or Win2K, we could easily create more than 60 columns.
A workaround is to create a smaller number of columns, then come back to your table properties and add the other columns.

5.2 With Xitami 2.5b4, phpMyAdmin won't process form fields.

Nie jest to problem phpMyAdmina, ale znany błąd Xitami: spotkasz się z nim przy każdym skrypcie i na każdej stronie używającej formularzy.
Zaktualizuj (do nowszej lub starszej wersji) swój serwer Xitami.

5.3 I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).

W Konquerorze 2.1.1: zwykłe zrzuty, zrzuty zip i GZip działają dobrze, z wyjątkiem tego, że proponowaną nazwą pliku jest zawsze 'tbl_dump.php'. Wygląda na to, że zrzuty BZip2 nie działają.
W Konquerorze 2.2.1: zwykłe zrzuty działają; zrzuty zip są umieszczane w katalogu tymczasowym użytkownika, więc muszą być stamtąd przeniesione przed zamknięciem Konquerora, albo znikną. Zrzuty GZip dają komunikat o błędzie.
Dla Konquerora 2.2.2 musimy przeprowadzić testy.

5.4 I can't use the cookie authentication mode because Internet Explorer never stores the cookies.

MS Internet Explorer seems to be really buggy about cookies, at least till version 6.

5.5 In Internet Explorer 5.0, I get JavaScript errors when browsing my rows.

Zaktualizuj Internet Explorera do wersji przynajmniej 5.5 SP2.

5.6 In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not found") when trying to modify a row in a table with many columns, or with a text column

Your table neither have a primary key nor an unique one, so we must use a long URL to identify this row. There is a limit on the length of the URL in those browsers, and this not happen in Netscape, for example. The workaround is to create a primary or unique key, or use another browser.

5.7 I refresh (reload) my browser, and come back to the welcome page.

Niektóre przeglądarki obsługują kliknięcie prawym klawiszem na ramkę, którą chcesz odświeżyć, więc po prostu zrób tak w prawej ramce.

5.8 With Mozilla 0.9.7 I have problems sending a query modified in the query box.

Wygląda to na błąd Mozilli: 0.9.6 było OK. Będziemy się przyglądać przyszłym wersjom Mozilli.

5.9 With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a whitespace in the SQL-Query edit area: the page scrolls down.

This is a Mozilla bug (see bug #26882 at BugZilla).

5.10 With Netscape 4.75 I get empty rows between each row of data in a CSV exported file.

Jest to znany błąd Netscape'a 4.75: dodaje trochę znaków wysuwu wiersza podczas eksportu danych w trybie octet-stream. Ponieważ nie mamy możliwości wykrycia konkretnej wersji Netscape'a, nie możemy obejść tego błędu.

5.11 Extended-ASCII characters like German umlauts are displayed wrong.

Proszę upewnić się, że system kodowania znaków ustawiony w przeglądarce na ten z pliku językowego, który został wybrany na stronie startowej phpMyAdmina. Możesz też wypróbować tryb autodetekcji, który obsługują najnowsze wersje większości przeglądarek.

5.12 Mac OS X: Safari browser changes special characters to "?".

This issue has been reported by a OS X user, who adds that Chimera, Netscape and Mozilla do not have this problem.

5.13 With Internet Explorer 5.5 or 6, and HTTP authentication type, I cannot manage two servers: I log in to the first one, then the other one, but if I switch back to the first, I have to log in on each operation.

Jest to błąd Internet Explorera, inne przeglądarki nie zachowują się w ten sposób.

5.14 Using Opera6, I can manage to get to the authentication, but nothing happens after that, only a blank screen.

Please upgrade to Opera7 at least.

5.15 I have display problems with Safari.

Please upgrade to at least version 1.2.3.

5.16 With Internet Explorer, I get "Access is denied" Javascript errors. Or I cannot make phpMyAdmin work under Windows.

Please check the following points:

  • Maybe you have defined your PmaAbsoluteUri setting in config.inc.php to an IP address and you are starting phpMyAdmin with a URL containing a domain name, or the reverse situation.
  • Security settings in IE and/or Microsoft Security Center are too high, thus blocking scripts execution.
  • The Windows Firewall is blocking Apache and MySQL. You must allow HTTP ports (80 or 443) and MySQL port (usually 3306) in the "in" and "out" directions.

5.17 With Firefox, I cannot delete rows of data or drop a database.

Many users have confirmed that the Tabbrowser Extensions plugin they installed in their Firefox is causing the problem.

5.18 With Konqueror 4.2.x an invalid LIMIT clause is generated when I browse a table.

This happens only when both of these conditions are met: using the http authentication mode and register_globals being set to On on the server. It seems to be a browser-specific problem; meanwhile use the cookie authentication mode.

5.19 I get JavaScript errors in my browser.

Issues have been reported with some combinations of browser extensions. To troubleshoot, disable all extensions then clear your browser cache to see if the problem goes away.

Using phpMyAdmin

6.1 I can't insert new rows into a table / I can't create a table - MySQL brings up a SQL-error.

Examine the SQL error with care. Often the problem is caused by specifying a wrong column-type.
Powszechnymi błędami są:

  • użycie VARCHAR bez argumentu rozmiaru
  • użycie TEXT lub BLOB z argumentem rozmiaru

Zobacz także, by potwierdzić jej prawidłowość, rozdział podręcznika MySQL dotyczący składni.

6.2 When I create a table, I set an index for two columns and phpMyAdmin generates only one index with those two columns.

This is the way to create a multi-columns index. If you want two indexes, create the first one when creating the table, save, then display the table properties and click the Index link to create the other index.

6.3 How can I insert a null value into my table?

Since version 2.2.3, you have a checkbox for each column that can be null. Before 2.2.3, you had to enter "null", without the quotes, as the column's value. Since version 2.5.5, you have to use the checkbox to get a real NULL value, so if you enter "NULL" this means you want a literal NULL in the column, and not a NULL value (this works in PHP4).

6.4 How can I backup my database or table?

Click on a database or table name in the left frame, the properties will be displayed. Then on the menu, click "Export", you can dump the structure, the data, or both. This will generate standard SQL statements that can be used to recreate your database/table.

You will need to choose "Save as file", so that phpMyAdmin can transmit the resulting dump to your station. Depending on your PHP configuration, you will see options to compress the dump. See also the $cfg['ExecTimeLimit'] configuration variable.

Dodatkową pomoc w tym temacie znajdziesz szukając w tym dokumencie słowa "zrzut".

6.5 How can I restore (upload) my database or table using a dump? How can I run a ".sql" file?

Click on a database name in the left frame, the properties will be displayed. Select "Import" from the list of tabs in the right–hand frame (or "SQL" if your phpMyAdmin version is previous to 2.7.0). In the "Location of the text file" section, type in the path to your dump filename, or use the Browse button. Then click Go.

With version 2.7.0, the import engine has been re–written, if possible it is suggested that you upgrade to take advantage of the new features.

Dodatkową pomoc w tym temacie znajdziesz szukając w tym dokumencie słowa "upload".

6.6 How can I use the relation table in Query-by-example?

Here is an example with the tables persons, towns and countries, all located in the database mydb. If you don't have a pma_relation table, create it as explained in the configuration section. Then create the example tables:

CREATE TABLE REL_countries (
    country_code char(1) NOT NULL default '',
    description varchar(10) NOT NULL default '',
    PRIMARY KEY (country_code)
) TYPE=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)
) TYPE=MyISAM;

INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
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)
) TYPE=MyISAM;

INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
INSERT INTO REL_towns VALUES ('M', 'Montréal');

To setup appropriate links and display information:

  • przy tabeli "REL_osoby" kliknij Strukturę, następnie Widok relacyjny
  • Łącze: dla "kod_miasta" wybierz "REL_miasta->kod_miasta"
  • Łącze: dla "kod_kraju" wybierz "REL_kraje->kod_kraju"
  • przy tabeli "REL_miasta" kliknij Strukturę, następnie Widok relacyjny
  • in "Choose column to display", choose "description"
  • powtórz dwa ostatnie kroki dla tabeli "REL_kraje"

Następnie wypróbuj coś takiego:

  • #-#-#-#-# Documentation-pl-2.5.2-pl1-1.html:2693 #-#-#-#-# Klinkij na nazwie bazy danych w lewej ramce #-#-#-#-# Documentation-pl-2.5.2-pl1-1.html:2731 #-#-#-#-# Kliknij na nazwie bazy danych w lewej ramce
  • Wybierz "Zapytanie"
  • Użyj tabel: osoby, miasta, kraje
  • Kliknij na "Zmianę zapytania"
  • In the columns row, choose persons.person_name and click the "Show" tickbox
  • Zrób to samo dla miasta.opis i kraje.opis w innych 2 kolumnach
  • Kliknij na "Zmianę zapytania", a zobaczysz w polu zapytania, że zostały wygenerowane odpowiednie połączenia
  • Kliknij na "Wykonanie zapytania"

6.7 How can I use the "display column" feature?

Starting from the previous example, create the pma_table_info as explained in the configuration section, then browse your persons table, and move the mouse over a town code or country code.

See also FAQ 6.21 for an additional feature that "display column" enables: drop-down list of possible values.

6.8 How can I produce a PDF schema of my database?

First the configuration variables "relation", "table_coords" and "pdf_pages" have to be filled in.

Then you need to think about your schema layout. Which tables will go on which pages?

  • Select your database in the left frame.
  • Choose "Operations" in the navigation bar at the top.
  • Choose "Edit PDF Pages" near the bottom of the page.
  • Enter a name for the first PDF page and click Go. If you like, you can use the "automatic layout," which will put all your linked tables onto the new page.
  • Select the name of the new page (making sure the Edit radio button is selected) and click Go.
  • Select a table from the list, enter its coordinates and click Save.
    Coordinates are relative; your diagram will be automatically scaled to fit the page. When initially placing tables on the page, just pick any coordinates -- say, 50x50. After clicking Save, you can then use the graphical editor to position the element correctly.
  • When you'd like to look at your PDF, first be sure to click the Save button beneath the list of tables and coordinates, to save any changes you made there. Then scroll all the way down, select the PDF options you want, and click Go.
  • Internet Explorer for Windows may suggest an incorrect filename when you try to save a generated PDF. When saving a generated PDF, be sure that the filename ends in ".pdf", for example "schema.pdf". Browsers on other operating systems, and other browsers on Windows, do not have this problem.

6.9 phpMyAdmin is changing the type of one of my columns!

No, it's MySQL that is doing silent column type changing.

6.10 When creating a privilege, what happens with underscores in the database name?

If you do not put a backslash before the underscore, this is a wildcard grant, and the underscore means "any character". So, if the database name is "john_db", the user would get rights to john1db, john2db ...

Jeśli umieścisz odwrotny ukośnik przed podkreśleniem, oznacza to że nazwa bazy danych będzie miała prawdziwe podkreślenie.

6.11 What is the curious symbol ø in the statistics pages?

Oznacza on "średnią".

6.12 I want to understand some Export options.

Struktura:

  • "Add DROP TABLE" will add a line telling MySQL to drop the table, if it already exists during the import. It does NOT drop the table after your export, it only affects the import file.
  • "If Not Exists" will only create the table if it doesn't exist. Otherwise, you may get an error if the table name exists but has a different structure.
  • "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any) will be included in backup.
  • "Enclose table and column names with backquotes" ensures that column and table names formed with special characters are protected.
  • "Add into comments" includes column comments, relations, and MIME types set in the pmadb in the dump as SQL comments (/* xxx */).

Data:

  • "Pełne dodania" dodają nazwy kolumn przy każdym poleceniu INSERT, w celu lepszej dokumentacji (ale skutkuje to większym plik).
  • "Rozszerzone dodania" zapewnia krótszy plik zrzutu poprzez użycie jeden razy czasownika INSERT i nazwy tabeli.
  • "Delayed inserts" are best explained in the MySQL manual.
  • "Ignore inserts" treats errors as a warning instead. Again, more info is provided in the MySQL manual, but basically with this selected, invalid values are adjusted and inserted rather than causing the entire statement to fail.

6.13 I would like to create a database with a dot in its name.

Jest to zły pomysł, gdyż składnia MySQL-a "baza-danych.tabela" jest zwykłym sposobem odwoływania się do bazy danych i nazwy tabeli. Co gorsza, MySQL zwykle pozwala na utworzenie bazy danych z kropką, ale nie da się ani z nią pracować, ani jej skasować.

6.14 How do I set up the SQL Validator?

To use SQL Validator, you need PHP with XML, PCRE and PEAR support. In addition you need a SOAP support, either as a PHP extension or as a PEAR SOAP module.

To install PEAR SOAP module, run "pear install Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP" to get the necessary PEAR modules for usage.

If you use the Validator, you should be aware that any SQL statement you submit will be stored anonymously (database/table/column names, strings, numbers replaced with generic values). The Mimer SQL Validator itself, is © 2001 Upright Database Technology. We utilize it as free SOAP service.

6.15 I want to add a BLOB column and put an index on it, but MySQL says "BLOB column '...' used in key specification without a key length".

The right way to do this, is to create the column without any indexes, then display the table structure and use the "Create an index" dialog. On this page, you will be able to choose your BLOB column, and set a size to the index, which is the condition to create an index on a BLOB column.

6.16 How can I simply move in page with plenty editing fields?

You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most pages with many editing fields (table structure changes, row editing, etc.). You can also have a look at the directive $cfg['DefaultPropDisplay'] ('vertical') and see if this eases up editing for you.

6.17 Transformations: I can't enter my own mimetype! WTF is this feature then useful for?

Slow down :). Defining mimetypes is of no use, if you can't put transformations on them. Otherwise you could just put a comment on the column. Because entering your own mimetype will cause serious syntax checking issues and validation, this introduces a high-risk false-user-input situation. Instead you have to initialize mimetypes using functions or empty mimetype definitions.
Poza tym, masz cały przegląd dostępnych typów MIME. Kto zna te wszystkie typy MIME na pamięć, tak że może je wprowadzać do woli?

6.18 Bookmarks: Where can I store bookmarks? Why can't I see any bookmarks below the query box? What is this variable for?

Any query you have executed can be stored as a bookmark on the page where the results are displayed. You will find a button labeled 'Bookmark this query' just at the end of the page.
Od momentu zapamiętania zapytania jest ono związane z bazą danych, na której je wykonujesz. Masz teraz dostęp do rozwijalnej listy zapytań na każdej stronie, na której pojawia się pole zapytania dla tej bazy danych.

Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks. Just use the string /*[VARIABLE]*/ anywhere in your query. Everything which is put into the value input box on the query box page will replace the string "/*[VARIABLE]*/" in your stored query. Just be aware of that you HAVE to create a valid query, otherwise your query won't be even able to be stored in the database.
Pamiętaj także, że wszystko inne wewnątrz napisu /*[VARIABLE]*/ zostanie w zapytaniu bez zmian, tyle że pozbawione znaków /**/. Możesz więc użyć:

/*, [VARIABLE] AS mojanazwa */

co zostanie rozwinięte w zapytaniu do

, ZMIENNA as mojanazwa

gdzie ZMIENNA jest wprowadzonym w polu tekstowym napisem. Jeśli będzie to pusty napis, żadne zmiany nie zostaną dokonane.

Bardziej rozbudowany przykład. Powiedzmy, że zapisałeś następujące zapytanie:

SELECT Nazwa, Adres FROM adresy WHERE 1 /* AND Nazwa LIKE '%[VARIABLE]%' */

Powiedzmy, że wpisujesz teraz "phpMyAdmin" jako zmienną dla tego zapytania; pełnym zapytaniem będzie:

SELECT Nazwa, Adres FROM adresy WHERE 1 AND Nazwa LIKE '%phpMyAdmin%'

You can use multiple occurrences of /*[VARIABLE]*/ in a single query (that is, multiple occurrences of the same variable).
UWAGA NA BRAK SPACJI wewnątrz konstrukcji "/**/". Każda spacja tam wstawiona będzie później również występować w zapytaniu i może powodować nieoczekiwane wyniki, zwłaszcza przy rozwijaniu zmiennej wewnątrz wyrażenia "LIKE ''".
Początkowe zapytanie musi dać w wyniku przynajmniej jeden rekord, by móc być zapamiętanym. Można to obejść używając dobrze umiejscowionych komentarzy "/**/".

6.19 How can I create simple LATEX document to include exported table?

You can simply include table in your LATEX documents, minimal sample document should look like following one (assuming you have table exported in file table.tex):

\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 I see a lot of databases which are not mine, and cannot access them.

You have one of these global privileges: CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also enable users to see all the database names. See this bug report.

So if your users do not need those privileges, you can remove them and their databases list will shorten.

6.21 In edit/insert mode, how can I see a list of possible values for a column, based on some foreign table?

You have to setup appropriate links between the tables, and also setup the "display column" in the foreign table. See FAQ 6.6 for an example. Then, if there are 100 values or less in the foreign table, a drop-down list of values will be available. You will see two lists of values, the first list containing the key and the display column, the second list containing the display column and the key. The reason for this is to be able to type the first letter of either the key or the display column.

For 100 values or more, a distinct window will appear, to browse foreign key values and choose one. To change the default limit of 100, see $cfg['ForeignKeyMaxLimit'].

6.22 Bookmarks: Can I execute a default bookmark automatically when entering Browse mode for a table?

Yes. If a bookmark has the same label as a table name and it's not a public bookmark, it will be executed.

6.23 Export: I heard phpMyAdmin can export Microsoft Excel files?

You can use CSV for Microsoft Excel, which works out of the box.
Since phpMyAdmin 3.4.5 support for direct export to Microsoft Excel version 97 and newer was dropped.

6.24 Now that phpMyAdmin supports native MySQL 4.1.x column comments, what happens to my column comments stored in pmadb?

Automatic migration of a table's pmadb-style column comments to the native ones is done whenever you enter Structure page for this table.

6.25 How does BLOB streaming work in phpMyAdmin?

For general information about BLOB streaming on MySQL, visit blobstreaming.org. You need the following components:

  • PBMS BLOB Streaming Daemon for MySQL (0.5.15 or later)
  • Streaming enabled PBXT Storage engine for MySQL (1.0.11-6 or later)
  • PBMS Client Library for MySQL (0.5.15 or later)
  • PBMS PHP Extension for MySQL (0.1.1 or later)

Here are details about configuration and operation:

  1. In config.inc.php your host should be defined with a FQDN (fully qualified domain name) instead of "localhost".
  2. Ensure that your target table is under the PBXT storage engine and has a LONGBLOB column (which must be nullable if you want to remove the BLOB reference from it).
  3. When you insert or update a row in this table, put a checkmark on the "Upload to BLOB repository" optional choice; otherwise, the upload will be done directly in your LONGBLOB column instead of the repository.
  4. Finally when you browse your table, you'll see in your column a link to stream your data, for example "View image". A header containing the correct MIME-type will be sent to your browser; this MIME-type was stored at upload time.

6.26 How can I select a range of rows?

Click the first row of the range, hold the shift key and click the last row of the range. This works everywhere you see rows, for example in Browse mode or on the Structure page.

6.27 What format strings can I use?

In all places where phpMyAdmin accepts format strings, you can use @VARIABLE@ expansion and strftime format strings. The expanded variables depend on a context (for example, if you haven't chosen a table, you can not get the table name), but the following variables can be used:

@HTTP_HOST@
HTTP host that runs phpMyAdmin
@SERVER@
MySQL server name
@VERBOSE@
Verbose MySQL server name as defined in server configuration
@VSERVER@
Verbose MySQL server name if set, otherwise normal
@DATABASE@
Currently opened database
@TABLE@
Currently opened table
@COLUMNS@
Columns of the currently opened table
@PHPMYADMIN@
phpMyAdmin with version

6.28 How can I easily edit relational schema for export?

By clicking on the button 'toggle scratchboard' on the page where you edit x/y coordinates of those elements you can activate a scratchboard where all your elements are placed. By clicking on an element, you can move them around in the pre-defined area and the x/y coordinates will get updated dynamically. Likewise, when entering a new position directly into the input field, the new position in the scratchboard changes after your cursor leaves the input field.

Aby zapisać nowe położenia, należy kliknąć na przycisk 'OK' pod tabelą. Jeżeli chcesz umieścić nowy element, najpierw dodaj go do tabeli elementów, a następnie go przeciągnij myszką.

Poprzez zmianę wielkości papieru i orientacji, możesz zmienić także wielkość scratchboardu. Możesz to zrobić po prostu przez zmianę pozycji na liście rozwijanej, która znajduje się niżej, a scratchboard zmieni rozmiar automatycznie, nie wpływając na aktualne położenia elementów.

Gdyby jakiś element znalazł się poza obszarem, możesz albo zwiększyć wielkość papieru, albo kliknąć na przycisk 'reset', aby umieścić wszystkie elementy pod sobą.

6.29 Why can't I get a chart from my query result table?

Not every table can be put to the chart. Only tables with one, two or three columns can be visualised as a chart. Moreover the table must be in a special format for chart script to understand it. Currently supported formats can be found in the wiki.

6.30 Import: How can I import ESRI Shapefiles

An ESRI Shapefile is actually a set of several files, where .shp file contains geometry data and .dbf file contains data related to those geometry data. To read data from .dbf file you need to have PHP compiled with the dBase extension (--enable-dbase). Otherwise only geometry data will be imported.

To upload these set of files you can use either of the following methods:

  • Configure upload directory with $cfg['UploadDir'], upload both .shp and .dbf files with the same filename and chose the .shp file from the import page.

  • Create a Zip archive with .shp and .dbf files and import it. For this to work, you need to set $cfg['TempDir'] to a place where the web server user can write (for example './tmp').

    To create the temporary directory on a UNIX-based system, you can do:

    cd phpMyAdmin
    mkdir tmp
    chmod o+rwx tmp
    

6.31 How do I create a relation in designer?

Aby wybrać powiązanie, kliknij :

Wyświetlania kolumna jest pokazywana w kolorze różowym. Aby ustawić/zmienić kolumny jak wyświetlanie kolumn, kliknij "Wybierz kolumny do wyświetlenia", a następnie kliknij odpowiednią nazwę kolumny.

6.32 How can I use the zoom search feature?

The Zoom search feature is an alternative to table search feature. It allows you to explore a table by representing its data in a scatter plot. You can locate this feature by selecting a table and clicking the 'Search' tab. One of the sub-tabs in the 'Table Search' page is 'Zoom Search'.

Consider the table REL_persons in FAQ 6.6 for an example. To use zoom search, two columns need to be selected, for example, id and town_code. The id values will be represented on one axis and town_code values on the other axis. Each row will be represented as a point in a scatter plot based on its id and town_code. You can include two additional search criteria apart from the two fields to display.

You can choose which field should be displayed as label for each point. If a display column has been set for the table (see FAQ 6.7), it is taken as the label unless you specify otherwise. You can also select the maximum number of rows you want to be displayed in the plot by specifing it in the 'Max rows to plot' field. Once you have decided over your criteria, click 'Go' to display the plot.

After the plot is generated, you can use the mousewheel 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 certail 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.

phpMyAdmin project

7.1 I have found a bug. How do I inform developers?

Our Bug Tracker is located at http://sf.net/projects/phpmyadmin/ under the Bugs section.

Ale proszę najpierw przedyskutować (po angielsku - przyp. tłum.) błąd z innymi użytkownikami:
https://sourceforge.net/projects/phpmyadmin/forums.

7.2 I want to translate the messages to a new language or upgrade an existing language, where do I start?

Always use latest Git version of the po file to translate. You can optionally translate online at our translation server where you can also get the latest po files and merge them with your translations. For creating a new translation simply use po/phpmyadmin.pot and generate po/LANG_CODE.po for your language (you can use msginit -i po/phpmyadmin.pot -l LANG_CODE --no-translator -o po/LANG_CODE.po to do this) or ask on the mailing list to add the translation to the web interface. More details are available on our wiki.

Please note that we try not to use HTML entities like &eacute; in the translations, since we define the right character set in the file. With HTML entities, the text on JavaScript messages would not display correctly. However there are some entities that need to be there: quotes, non-breakable spaces, ampersands, less than, greater than.

You can then put your translations, as a zip file to avoid losing special characters, on the sourceforge.net translation tracker.

It would be a good idea to subscribe to the phpmyadmin-translators mailing list, because this is where we ask for translations of new messages.

Documentation is being translated using po4a and gettext (see documentation for existing translations). To start, checkout localized_docs/po from Git, or just go to the translation server and translate it online. If your language is missing, just contact Michal Čihař; he will add it. If you prefer to directly translate the po files, please put updated ones into our translation tracker.

7.3 I would like to help out with the development of phpMyAdmin. How should I proceed?

W przypadku nowych programistów preferowana jest następująca metoda:

  1. fetch the current git repository over anonymous git:
    klon systemu git git://phpmyadmin.git.sourceforge.net/gitroot/phpmyadmin/phpmyadmin
  2. dodaj swoje rzeczy
  3. generate patch with your changes: git diff > xxx.diff
  4. submit your patch via the patch tracker of the phpMyAdmin project.

More details on git are available on our wiki.

Write access to the repository is granted only to experienced developers who have already contributed something useful to phpMyAdmin.
Rzuć także okiem na punkt Programiści.

Security

8.1 Where can I get information about the security alerts issued for phpMyAdmin?

Please refer to http://www.phpmyadmin.net/home_page/security.php

8.2 How can I protect phpMyAdmin against brute force attacks?

If you use Apache web server, phpMyAdmin exports information about authentication to the Apache environment and it can be used in Apache logs. Currently there are two variables available:

userID
User name of currently active user (he does not have to be logged in).
userStatus
Status of currently active user, one of ok (user is logged in), mysql-denied (MySQL denied user login), allow-denied (user denied by allow/deny rules), root-denied (root is denied in configuration), empty-denied (empty password is denied).

LogFormat directive for Apache can look like following:

LogFormat "%h %l %u %t \"%r\" %>s %b \
\"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n"   pma_combined

You can then use any log analyzing tools to detect possible break-in attempts.

Synchronization

9.1 How can I synchronize two databases/tables in phpMyAdmin?

You can now synchronize databases/tables in phpMyAdmin using the Synchronize feature. It allows you to connect to local as well as remote servers. This requires you to enter server host name, username, password, port and the name of the database. Therefore you can now synchronize your databases placed on the same server or some remote server.

This feature is helpful for developers who need to replicate their database’s structure as well as data. Moreover, this feature not only helps replication but also facilitates the user to keep his/her database in sync with another database. Other than the full database, certain tables of the databases can also be synchronized.

You need to fill in the host name of the server, the username and password of an user account already there in MySQL. Port is by default populated with 3306 (MySQL default port). Then the name of the database should be mentioned at the end. All the information other than the port needs to be filled explicitly for the source as well as target servers.

After successfully passing through the authentication phase, the source and target database table names will be displayed. It will be a tabular representation.

On the left, are listed the source database table names. Some of the names have a + plus sign preceding them. This shows that these tables are only present in source database and they need to be added to the target database in order to synchronize the target database. The tables whose names are not preceded by a + sign are already present in the target database.

On the right, are listed the target database table names. There are few table names that have (not present) appended after their names. This means that these tables are to be created in target database in order to synchronize target database with source database. Some table names have a - minus sign preceding them. This shows that these tables are only present in target database and they will remain unchanged in the target database. The column in the middle shows the difference between the source and target corresponding tables.

The difference is depicted by the red and green buttons with S and D letters, indicating that either Structure or Data are not up to date. By clicking on them, they will turn grey, what means that they will be synchronized.

Informacje dla programistów

phpMyAdmin jest projektem Open Source, a więc jesteś zaproszony, by go rozwijać. Wiele wspaniałych funkcji zostało napisanych przez innych ludzi, więc także ty możesz pomóc by phpMyAdmin stał się użytecznym narzędziem.

Jeśli planujesz rozwijać źródła, prosimy o przeczytanie poniższych informacji:

  • All files include libraries/header.inc.php (layout),. libraries/common.lib.php (common functions) and config.inc.php.
    Only configuration data should go in config.inc.php. Please keep it free from other code.
    Commonly used functions should be added to libraries/common.lib.php and more specific ones may be added within a library stored into the libraries sub-directory.
  • Oczywiście możesz użyć takiego stylu kodowania, jakiego tylko chcesz. Ale pamiętaj, by utrzymać swój kod tak prostym jak to możliwe: osoby początkujące używają phpMyAdmina jako przykładowej aplikacji.
    As far as possible, we want the scripts to be XHTML1.0 and CSS2 compliant on one hand, they fit the PEAR coding standards on the other hand. Please pay attention to this.
  • Please enable showing PHP errors and warnings by the $cfg['Error_Handler']['display'] configuration directive.
  • Please try to keep up the file-naming conventions. Table-related stuff goes to tbl_*.php, db-related code to db_*.php, server-related tools to server_*.php and so on.
  • Please use gettext wrappers around all messages (__('Some text') or _ngettext() function). To translate them, you need to call scripts/update-po script. To use translated messages, call scripts/generate-mo, which generates binary files read by Gettext.
  • Jeśli chcesz być naprawdę pomocny, wpisz się do ChangeLogu.
  • The DBG extension (PHP Debugger DBG) is now supported by phpMyAdmin for developers to better debug and profile their code.
    Please see the $cfg['DBG']* configuration options for more information.
    Ku pamięci Promu Kosmicznego Columbia (STS-107), który został utracony w czasie wejścia w atomsferę Ziemi i ku pamięci dzielnych mężczyzn i kobiet, którzy poświęcili życie dla mieszkańców Ziemi.
Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
Copyright (C) 2001-2012 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]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Wyrazy uznania

Credits, in chronological order

  • Tobias Ratschiller <tobias_at_ratschiller.com>
    • creator of the phpmyadmin project
    • maintainer from 1998 to summer 2000
  • Marc Delisle <marc_at_infomarc.info>
    • multi-language version in December 1998
    • various fixes and improvements
    • SQL analyser (most of it)
    • current project maintainer
  • Olivier Müller <om_at_omnis.ch>
    • started SourceForge phpMyAdmin project in March 2001
    • sync'ed different existing CVS trees with new features and bugfixes
    • multi-language improvements, dynamic language selection
    • many bugfixes and improvements
  • Loïc Chapeaux <lolo_at_phpheaven.net>
    • rewrote and optimized javascript, DHTML and DOM stuff
    • rewrote the scripts so they fit the PEAR coding standards and generate XHTML1.0 and CSS2 compliant codes
    • improved the language detection system
    • many bugfixes and improvements
  • Robin Johnson <robbat2_at_users.sourceforge.net>
    • database maintenance controls
    • table type code
    • Host authentication IP Allow/Deny
    • DB-based configuration (Not completed)
    • SQL parser and pretty-printer
    • SQL validator
    • many bugfixes and improvements
  • Armel Fauveau <armel.fauveau_at_globalis-ms.com>
    • bookmarks feature
    • multiple dump feature
    • gzip dump feature
    • zip dump feature
  • Geert Lund <glund_at_silversoft.dk>
    • various fixes
    • moderator of the phpMyAdmin former users forum at phpwizard.net
  • Korakot Chaovavanich <korakot_at_iname.com>
    • "insert as new row" feature
  • Pete Kelly <webmaster_at_trafficg.com>
    • rewrote and fix dump code
    • bugfixes
  • Steve Alberty <alberty_at_neptunlabs.de>
    • rewrote dump code for PHP4
    • mySQL table statistics
    • bugfixes
  • Benjamin Gandon <gandon_at_isia.cma.fr>
    • main author of the version 2.1.0.1
    • bugfixes
  • Alexander M. Turek <me_at_derrabus.de>
    • MySQL 4.0 / 4.1 / 5.0 compatibility
    • abstract database interface (PMA_DBI) with MySQLi support
    • privileges administration
    • XML exports
    • various features and fixes
    • German language file updates
  • Mike Beck <mike.beck_at_web.de>
    • automatic joins in QBE
    • links column in printview
    • Widok relacyjny
  • Michal Čihař <michal_at_cihar.com>
    • enhanced index creation/display feature
    • feature to use a different charset for HTML than for MySQL
    • improvements of export feature
    • various features and fixes
    • Czech language file updates
  • Christophe Gesché from the "MySQL Form Generator for PHPMyAdmin" (http://sf.net/projects/phpmysqlformgen/)
    • suggested the patch for multiple table printviews
  • Garvin Hicking <me_at_supergarv.de>
    • built the patch for vertical display of table rows
    • built the Javascript based Query window + SQL history
    • Improvement of column/db comments
    • (MIME)-Transformations for columns
    • Use custom alias names for Databases in left frame
    • hierarchical/nested table display
    • PDF-scratchboard for WYSIWYG-distribution of PDF relations
    • new icon sets
    • vertical display of column properties page
    • some bugfixes, features, support, German language additions
  • Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
    • japanese kanji encoding conversion feature
  • Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson
    • the Cookie authentication mode
  • Axel Sander <n8falke_at_users.sourceforge.net>
    • table relation-links feature
  • Maxime Delorme <delorme.maxime_at_free.fr>
  • Olof Edlund <olof.edlund_at_upright.se>
    • SQL validator server
  • Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
    • phpMyAdmin logo (until June 2004)
  • Mike Cochrane <mike_at_graftonhall.co.nz>
    • blowfish library from the Horde project
  • Marcel Tschopp <ne0x_at_users.sourceforge.net>
    • mysqli support
    • many bugfixes and improvements
  • Nicola Asuni (Tecnick.com)
  • Michael Keck <mkkeck_at_users.sourceforge.net>
    • redesign for 2.6.0
    • phpMyAdmin sailboat logo (June 2004)
  • Mathias Landhäußer
    • Representation at conferences
  • Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
    • interface improvements
    • various bugfixes
  • Ivan A Kirillov
    • new relations Designer
  • Raj Kissu Rajandran (Google Summer of Code 2008)
    • BLOBstreaming support
  • Piotr Przybylski (Google Summer of Code 2008, 2010 and 2011)
    • improved setup script
    • preferencje użytkownika
    • Obsługa Drizzle
  • Derek Schaefer (Google Summer of Code 2009)
    • Ulepszony system importu
  • Alexander Rutkowski (Google Summer of Code 2009)
    • Mechanizm monitorowania
  • Zahra Naeem (Google Summer of Code 2009)
    • Cecha synchronizacji
  • Tomáš Srnka (Google Summer of Code 2009)
    • Obsługa replikacji
  • Muhammad Adnan (Google Summer of Code 2010)
    • Eksport schematu relacyjnego do wielu formatów
  • Lori Lee (Google Summer of Code 2010)
    • Ulepszenia interfejsu użytkownika
    • Edytor ENUM/SET
    • Uproszczenie interfejsu do eksportu/importu
  • Ninad Pundalik (Google Summer of Code 2010)
    • Interfejs oparty na technologii AJAX
  • Martynas Mickevičius (Google Summer of Code 2010)
    • Wykresy
  • Barrie Leslie
    • Obsługa strumieni BLOB z rorszerzeniem PBMS PHP
  • Ankit Gupta (Google Summer of Code 2010)
    • Program do zapytań wizualnych
  • Rouslan Placella (Google Summer of Code 2011)
    • Ulepszona obsługa rutyn przechowywania, wyzwalaczy i zdarzeń
    • Aktualizacje tłumaczenia z języka włoskiego

Następujące osoby przyczyniły sie do mniejszych zmian, ulepszeń, eliminacji błędów lub obsługi nowego języka, począwszy od wersji 2.10:

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".

Oryginalne podziękowania z wersji 2.1.0

This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea to create a web-based interface to MySQL using PHP3. Although I have not used any of his source-code, there are some concepts I've borrowed from him. phpMyAdmin was created because Peter told me he wasn't going to further develop his (great) tool.

Thanks go to

  • Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the code for the check when dropping a table or database. He also suggested that you should be able to specify the primary key on tbl_create.php3. To version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as well as a bug-report. Plus many smaller improvements.
  • Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that were introduced in 1.3.0 (including quite significant ones like the authentication). For 1.4.1 he enhanced the table-dump feature. Plus bug-fixes and help.
  • Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin language-independent by outsourcing the strings to a separate file. He also contributed the French translation.
  • Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed tbl_select.php3, a feature to display only some columns from a table.
  • Chris Jackson <chrisj_at_ctel.net> added support for MySQL functions in tbl_change.php3. He also added the "Query by Example" feature in 2.0.
  • Dave Walton <walton_at_nordicdms.com> added support for multiple servers and is a regular contributor for bug-fixes.
  • Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access features for 2.0.6.

The following people have contributed minor changes, enhancements, bugfixes or support for a new language:

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.

And thanks to everyone else who sent me email with suggestions, bug-reports and or just some feedback.

To tłumaczenie jest wspólną pracą różnych tłumaczy, którzy pracowali nad tłumaczeniem, z języka angielskiego, dokumentacji phpMyAdmin -- wersja 3.5.0-dev, na serwerze tłumaczeń (Pootle). Właśnie tutaj powinni się oni podpisać: - Stanisław Krukowski,

Słownik

Z Wikipedii, wolnej encyklopedii

  • .htaccess - domyślna nazwa pliku konfiguracyjnego serwera Apache.
  • Blowfish - kluczowy, symetryczny szyfr blokowy, opracowany przez Bruce'a Schneier'a w 1993 roku.
  • Browser (Web Browser) - pol. przeglądarka (przeglądarka WWW); - program lub oprogramowanie, przeznaczone do wyświetlania na monitorze tekstu, obrazów i innych informacji, pobranych przez przeglądarkę ze stron WWW, a także do interakcji z nimi.
  • bzip2 - program i algorytm do kompresji danych Wolnego Oprogramowania, opracowany przez Julian'a Seward'a.
  • CGI - Common Gateway Interface - pol. wspólny interfejs bramy; - technologia WWW, umożliwiająca klientowi przeglądarki internetowej komunikację pomiędzy oprogramowaniem serwera, a innymi programami znajdującymi się na tym serwerze.
  • Changelog - pol. dziennik zmian; - forma zapisu zmian dokonanych w projekcie aplikacji, oprogramowania, strony WWW lub witryny internetowej.
  • Client - pol. klient; - system komputerowy, mający dostęp do usługi (zdalnej) na innym komputerze za pomocą pewnego rodzaju sieci komputerowej.
  • column - pol. kolumna; prosty zestaw wartości danych, jeden dla każdego wiersza tabeli.
  • Cookie - pol. "ciasteczko"; - pakiet informacji wysyłany przez serwer do przeglądarki WWW, a następnie przesyłany przez przeglądarkę z powrotem do serwera za każdym razem, gdy przeglądarka łączy się z tym serwerem.
  • CSV - Comma Separated Values - pol. wartości rozdzielone przecinkiem.
  • DB - patrz: Database.
  • Database - pol. baza danych; - zorganizowany zbiór danych.
  • Engine - patrz: Storage Engines.
  • extension - pol. rozszerzenie; - moduł języka PHP, rozszerzający PHP o dodatkową funkcjonalność.
  • FAQ - Frequently Asked Questions - pol. często zadawane pytania; - lista podstawowych pytań i odpowiedzi na określone tematy.
  • Field - pol. pole; - jedna część podzielonych danych lub kolumn.
  • foreign key - pol. klucz obcy; - identyfikuje kolumnę lub zestaw kolumn w jednej tabeli odniesienia bazy danych, która odwołuje się do klucza podstawowego (primary key) kolumny lub zestawu kolumn w innej tabeli odniesienia.
  • FPDF - FreePDF - biblioteka PDF Wolnego Oprogramowania.
  • GD Graphics Library - pol. biblioteka graficzna GD; - biblioteka do dynamicznego przetwarzania obrazów, opracowana przez Thomas'a Boutell'a i in.
  • GD2 - patrz: GD Graphics Library.
  • gzip - skrót od GNU zip; program komputerowy służący do bezstratnej kompresji danych, tworzony w ramach projektu Wolnego Oprogramowania GNU.
  • host - dowolna maszyna, uczestnicząca w wymianie danych poprzez sieć komputerową; węzeł posiadający własną nazwę hosta.
  • hostname - pol. nazwa hosta; - unikatowa nazwa, dzięki której urządzenie podłączone do sieci komputerowej jest rozpoznawane w tej sieci.
  • HTTP - HyperText Transfer Protocol - pol. protokół przesyłania dokumentów hipertekstowych; - podstawowa, znormalizowana metoda używana do przesyłania informacji oraz komunikowania się komputerów ze sobą w sieci WWW.
  • https - połączenie HTTP z dodatkowymi środkami bezpieczeństwa.
  • IIS - Internet Information Services - pol. internetowe usługi informacyjne; - zestaw usług internetowych, uruchamianych na serwerach, pracujących w systemie Microsoft Windows.
  • Indexpol. indeks; - cecha, która umożliwia szybki dostęp do wierszy w tabeli bazy danych.
  • Internet Protocol - pol. protokół internetowy IP; - podstawowy protokół stosowany w internecie, zorientowany na dane, używany przez host źródłowy i docelowy do wzajemnego komunikowania się i przesyłania danych w sieci WWW.
  • IP Address - pol. Adres IP; -unikatowa liczba, używana przez urządzenia do identyfikacji i wzajemnej komunikacji w sieci WWW, w oparciu o standard IP.
  • ISAPI - Internet Server Application Programming Interface - pol. interfejs programistyczny serwerów internetowych; - API do internetowych usług informacyjnych (Internet Information Services - IIS).
  • ISP - Internet Service Provider - pol. dostarczyciel usług internetowych; - firma lub organizacja, która oferuje (sprzedaje) użytkownikom możliwość dostępu do sieci internet i usług z tym związanych.
  • JPEG - Joint Photographic Experts Group - pol. połączona grupa ekspertów fotografii; - standard kompresjii obrazów statycznych, najczęściej stosowany format graficzny na stronach WWW.
  • JPG - patrz: JPEG.
  • Key - patrz: Index.
  • LATEX - system przygotowywania dokoumentów do składu tekstu w programie TEX.
  • Mac (Apple Macintosh) - linia komputerów osobistych, zaprojektowana, zaprogramowana, wyprodukowana i rozprowadzana na rynku komputerowym przez firmę Apple Macintosh.
  • Mac OS - Mac Operating System - pol. system operacyjny Mac X; - system operacyjny dołączany do wszystkich wyprodukowanych komputerów firmy Apple Macintosh.
  • MCrypt - biblioteka szyfrująca.
  • mcrypt - rozszerzenie MCrypt, używane w języku PHP.
  • MIME - Multipurpose Internet Mail Extensions; - pol. rozszerzenie poczty elektronicznej wielorakich zastosowań; - standard internetowy, umożliwiający dołączanie plików binarnych do przesyłek poczty elektronicznej i określający budowę komunikatu tej poczty.
  • module - pol. moduł; - rodzaj rozszerzenia do serwera WWW Apache.
  • MySQL - wielowątkowy, wieloużytkownikowy, wolnodostępny system zarzadzania relacyjnymi bazami danych (Database Management System - DBMS), działający w oparciu o standard strukturalnego języka zapytań (Structured Query Language - SQL).
  • mysqli - ulepszone rozszerzenie języka PHP, stosowane przez klienta MySQL.
  • mysql - rozszerzenie języka PHP, stosowane przez klienta MySQL.
  • OpenDocument - pol. otwartydokument; - otwartoźródłowy standard dokumentów biurowych.
  • OS X - patrz: Mac OS X
  • PDF - pol. format dokumentu przenośnego; - format plików, opracowany w firmie Adobe Systems, przeznaczony do wyświetlania/odwzorowywania/prezentacji dokumentów dwuwymiarowych w formacie niezależnym od urządzeń i ich rozdzielczości.
  • PEAR - the PHP Extension and Application Repository - pol. rozszerzenie języka PHP i repozytorium aplikacji.
  • PCRE - Perl Compatible Regular Expressions - pol. wyrażenia regularne zgodne z językiem Perl (Practical extraction and report language).
  • PHP - Hypertext Preprocessor - PHP to otwartoźródłowy, obiektowy, skryptowy język programowania, służący głównie do budowania aplikacji po stronie serwera i dynamicznych serwisów WWW, a ostatnio - do tworzenia szerszego zakresu samodzielnych aplikacji, np. pracujących w trybie graficznym.
  • port - połączenie, poprzez które są przesyłane i otrzymywane dane.
  • RFC - Request_for Comments - pol. żądanie (prośba) odpowiedzi (komentarzy); - dokumenty mające formę memorandum, nakierowane na nowe badania, innowacje i metodologie, używane w technologiach sieci internet.
  • RFC 1952 - specyfikacja formatu plików GZIP, wersja 4.3.
  • Row (record, tuple) - pol. rząd (rekord, krotka); - pojedyńczy, domniemany składnik danych strukturalnych w tabeli.
  • Server - pol. serwer; - system komputerowy, dostarczający usług innym systemom obliczeniowym poprzez sieć internet.
  • Storage Engines - pol. mechanizmy składowania; - programy do obsługi różnych typów tabel.
  • socket - pol. gniazdo; - forma komunikacji międzyprocesowej.
  • SSL (Secure Sockets Layer) - pol. bezpieczna warstwa gniazd; - protokół kryptograficzny, dostarczający bezpiecznej komunikacji w sieci internet.
  • Stored procedure - pol. procedura składowania; - subrutyna dostępna aplikacjom, które uzyskują dostep do systemu relacyjnych baz danych.
  • SQL - Structured Query Language - pol. strukturalny język zapytań - stosowany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz.
  • table - pol. tabela; - zestaw elementów danych (komórek), zorganizowanych, określonych i przechowywanych jako poziome rzędy i pionowe kolumny. Każdy składnik tabeli może być unikatowo zidentyfikowany poprzez etykietę lub klucz lub poprzez swoją pozycję w relacji do innych składników.
  • Typ tabeli
  • tar - the Tape ARchive format - pol archiwizator taśmowy; - typ formatu archiwizacji plików.
  • TCP (Transmission Control Protocol) - pol. protokół kontroli transmisji; - jeden z podstawowych protokołów pakietu protokołów internetowych, stosowany do strumieniowej komunikacji między dwoma komputerami.
  • trigger - pol. wyzwalacz; - kod proceduralny, wykonywany automatycznie w odpowiedzi na pewne zdarzenia w określonej tabeli lub widoku w bazie danych.
  • UFPDF - Unicode/UTF-8 rozszerzenie do FPDF.
  • URL (Uniform Resource Locator) - pol. ujednolicony format adresowania zasobów; - sekwencja znaków, zgodna ze standardowym formatem, używana w odniesieniu do zasobów internetowych, takich jak dokumenty i obrazy. URL, w sposób unikatowy, podaje lokalizacje tych zasobów w sieci komputerowej.
  • Webserver - pol. serwer WWW; - komputer (program) odpowiedzialny za akceptowanie żądań HTTP od klientów i dostarczający im stron WWW.
  • XML (Extensible Markup Language) - pol. rozszerzalny jezyk znaczników; - rekomendowany przez organizację W3C język znaczników ogólnego zastosowania, przeznaczony do tworzenia języków znaczników specjalnego zastosowania; mozna w nim opisać wiele różnych rodzajów danych.
  • ZIP - popularny format archiwizacji i kompresji danych.
  • zlib - otwartoźródłowa, międzyplatformowa bibliteka kompresji danych, opracowana przez Jean-Joup'a Gailly'ego i Mark'a Adler'a.