Do góry  -  Wymagania  -  Wprowadzenie  -  Instalacja  -  Konfiguracja
Transformacje  -  FAQ  -  Programiści  -  Wyrazy uznania

Dokumentacja phpMyAdmina 2.5.2-pl1


Wymagania


Wprowadzenie

phpMyAdmin potrafi zarządzać całym serwerem MySQL (co wymaga konta superużytkowika), jak również pojedynczą bazą danych. Do realizacji tego ostatniego wymagane jest prawidłowo skonfigurowane konto użytkownika MySQL, który będzie mógł odczytywać/modyfikować tylko określoną bazę danych. Do Ciebie należy odszukanie odpowiedniego fragmentu podręcznika MySQL. Obecnie phpMyAdmin potrafi:

(*)  phpMyAdmin potrafi kompresować (formaty: Zip, GZip -RFC 1952- lub Bzip2) zrzuty i eksporty CSV, jeśli używasz PHP4 >= 4.0.4 z obsługą Zlib (--with-zlib) i/lub obsługą Bzip2 (--with-bz2).


Instalacja

UWAGA: phpMyAdmin nie stosuje żadnych specjalnych mechanizmów bezpieczeństwa jeśli chodzi o serwer MySQL. Przyznanie odpowiednich uprawnień do baz danych MySQL jest ciągle zadaniem administratora. Do tego celu może być użyta strona "Uprawnienia" w phpMyAdminie.

Ostrzeżenie dla użytkowników Maców: jeśli jesteś użytkownikiem MacOS-a w wersji wcześniejszej niż OS X, StuffIt rozpakowuje pliki do formatów Maca.
Tak więc będziesz musiał ponownie zapisać w BBEdit'cie WSZYSTKIE skrypty phpMyAdmina w stylu Uniksa przed wrzuceniem ich na serwer, jako że PHP wydaje się nie lubić znaków końca linii w stylu Maca ("\r").

Ostrzeżenie: kiedy widzisz w tym dokumencie rozszerzenie .php3, proszę potraktować je jako .php, jeśli używasz zestawu z takim właśnie rozszerzeniem.

Szybka instalacja:

  1. Wybierz i pobierz zestaw dystrybucyjny z plikami o rozszerzaniach (.php3 lub .php) zależnych od sposobu, w jaki Twój serwer www/PHP traktuje te rozszerzenia.
  2. Odtaruj lub odzipuj dystrybucję (pamiętaj by odzipować także podkatalogi): wywołaj tar -xzvf phpMyAdmin_x.x.x.tar.gz głównym katalogu dokumentów na swoim serwerze www. Jeśli nie masz bezpośredniego dostępu do tego katalogu, umieść pliki w katalogu na swojej lokalnej maszynie, a następnie, po kroku 3, skopiuj ten katalog na swój serwer www używając, na przykład, ftp.
  3. Otwórz plik config.inc.php3 w swoim ulubionym edytorze i zmień wartości hosta, użytkownika, hasła i trybu uwierzytelniania, tak by pasowały do Twojego środowiska. Tutaj "host" oznacza serwer MySQL. Wprowadź również prawidłową wartość $cfg['PmaAbsoluteUri']. Wszystkie wartości są wyjaśnione w punkcie Konfiguracja.
  4. Zaleca się, by chronić katalog w którym został zainstalowany phpMyAdmin (chyba że jest on w zamkniętym intranecie, lub chciałbyś używać uwierzytelniania HTTP lub cookie), na przykład za pomocą HTTP-AUTH (w pliku .htaccess). Dodatkowe informacje znajdziesz w FAQ.
  5. Otwórz plik <www.twój-host.com>/<twój-katalog-instalacyjny>/index.php3 w przeglądarce. phpMyAdmin powinien wyświetlić ekran powitalny i Twoją bazę danych lub - w przypadku trybu uwierzytelniania HTTP lub cookie - okno logowania .
  6. Cały zestaw nowych funkcji (zapamiętywanie zapytań, komentarze, historia SQL, generowanie PDF-ów) wymaga utworzenia zestawu tabel w bazie danych. Proszę zajrzeć do katalogu scripts/, gdzie powinieneś znaleźć plik o nazwie create_tables.sql. By utworzyć te tabele, możesz już teraz użyć phpMyAdmina. Proszę być świadomym, że utworzenie bazy danych i tabel może wymagać specjalnych uprawnień (uprawnień administratora). Po zaimportowaniu pliku create_tables.sql, powinieneś określić nazwy tabel w pliku config.inc.php3. Dyrektywy użyte w tym celu można znaleźć w punkcie Konfiguracja.

Aktualizacja ze starszej wersji:

Używanie trybów uwierzytelniania:

tryb uwierzytelniania 'http':

tryb uwierzytelniania 'cookie':

tryb uwierzytelniania 'config':


Konfiguracja

Ostrzeżenie dla użytkowników Maców: wygląda na to, że PHP nie lubi Macowych znaków końca linii ("\r"). Upewnij się więc, że wybrałeś w swoim edytorze tekstu opcję umożliwiającą używanie uniksowych znaków końca linii ("\n") przed zapisaniem skryptu, który zmodyfikowałeś.

Wszystkie dane konfiguracyjne są umieszczone w pliku config.inc.php3.

$cfg['PmaAbsoluteUri'] napis
Kompletny URL (z pełną ścieżką) do Twojej wersji phpMyAdmina. Np. http://www.twoje_www.net.pl/sciezka_do_katalogu_z_twoim_phpMyAdminem/.

phpMyAdmin potrzebuje tego ustawienia z powodu wymagań protokołu HTTP, co zostało wyjaśnione w punkcie 14.30 RFC2616.

Nie zapomnij o ukośniku na końcu URL-a. Musi się on składać się ze znaków, które dla URL-a są poprawne, a na niektórych serwerach w ścieżce należy uwzględnić wielkość liter.

Począwszy od wersji 2.3.0, parametr ten może pozostać pusty, gdyż program próbuje automatycznie wykryć jego właściwą wartość. Dodatkowe informacje można znaleźć w pliku konfiguracyjnym.

Można także ustalać to ustawienie dynamicznie. Na przykład możesz spróbować użyć kodu w rodzaju:
$cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
                       . $_SERVER['HTTP_HOST']
                       . (!empty($_SERVER['SERVER_PORT']) ? ':' . $_SERVER['SERVER_PORT'] : '')
                       . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')+1);

    lub

$cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
                       . $_SERVER['SERVER_NAME']
                       . (!empty($_SERVER['SERVER_PORT']) ? ':' . $_SERVER['SERVER_PORT'] : '')
                       . substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/')+1);
        
Proszę zauważyć, że tablica $_SERVER nie istnieje w PHP < 4.1.0. W takim wypadku trzeba spróbować zastąpić $_SERVER przez $HTTP_SERVER_VARS lub $GLOBALS.

$cfg['PmaAbsoluteUri_DisableWarning'] wartość logiczna
Domyślnie, gdy $cfg['PmaAbsoluteUri'] jest zostawiony pusty i system wykrywa Twój absolutny URI, wyświetlane jest na ten temat ostrzeżenie. Jeżeli przetestowałeś automatyczne wykrywanie i działa idealnie dla Twoich ustawień, możesz ustawić tę zmienną by uciszyć ostrzeżenie.

$cfg['PmaNoRelation_DisableWarning'] wartość logiczna
Począwszy od wersji 2.3.0 phpMyAdmin oferuje wiele funkcji pracujących z głównymi / zewnętrznymi tabelami (patrz $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['blowfish_secret'] napis
Począwszy od wersji 2.5.2 typ uwierzytelniania 'cookie' używa algorytmu blowfish do zakodowania hasła.
Jeśli przynajmniej jedna konfiguracja serwera używa typu 'cookie', wprowadź tutaj frazę kodującą (passphrase), której będzie używał blowfish.
$cfg['Servers'] tablica
Od wersji 1.4.2 phpMyAdmin obsługuję administrację wieloma serwerami MySQL. Z tego powodu została dodana tablica $cfg['Servers'], która zawiera dane dotyczące logowania się na różne serwery. Pierwszy wpis $cfg['Servers'][$i]['host'] zawiera nazwę hosta pierwszego serwera, drugi wpis $cfg['Servers'][$i]['host'] nazwę hosta drugiego serwera, itd. Jeżeli masz tylko jeden serwer do administracji, pozostaw nazwę hosta z innych wpisów $cfg['Server'] pustą.

$cfg['Servers'][$i]['host'] napis
Nazwa hosta $i-tego serwera MySQL. Np. localhost.

$cfg['Servers'][$i]['port'] napis
Numer portu Twojego $i-tego serwera MySQL. Domyślnie 3306 (pozostaw puste). Jeśli używasz "localhost" jako nazwy hosta, MySQL ignoruje numer portu i łączy się z gniazdem, więc jeśli chcesz połączyć się z innymi niż domyślnym portem, w $cfg['Servers'][$i]['host'] użyj "127.0.0.1" lub faktycznej nazwy hosta.

$cfg['Servers'][$i]['socket'] napis
Ścieżka do gniazda, którego należy użyć. Pozostawione puste oznacza wartość domyślną.
By użyć funkcji gniazd niezbędny jest PHP w wersji co najmniej 3.0.10.

$cfg['Servers'][$i]['connect_type'] napis
Jakiego rodzaju połączenia z serwerem MySQL użyć. Do wyboru jest: 'socket' i 'tcp'. Domyślna wartość to 'tcp', gdyż jest niemal pewnie dostępna dla wszystkich serwerów MySQL, podczas gdy gniazda nie są obsługiwane na niektórych platformach.

Aby użyć trybu gniazda, Twój serwer MySQL musi być na tej samej maszynie co serwer www.

$cfg['Servers'][$i]['compress'] wartość logiczna
Czy używać protokołu kompresji dla połączeń z serwerem MySQL, czy też nie (opcja eksperymentalna).
Funkcja ta wymaga PHP >= 4.3.0.
$cfg['Servers'][$i]['controluser'] napis
$cfg['Servers'][$i]['controlpass'] napis
Kiedy używane są tryby uwierzytelniania HTTP lub cookie (albo trybu uwierzytelniania 'config' od wersji 2.2.1 phpMyAdmina), musisz dostarczyć szczegółów konta MySQL, które ma uprawnienie SELECT dla tabel mysql.user (wszystkie kolumny oprócz "Password"), mysql.db (wszystkie kolumny) & mysql.tables_priv (wszystkie kolumny z wyjątkiem "Grantor" i "Timestamp") . Konto to jest używane do sprawdzenia, które bazy danych będzie widział użytkownik po zalogowaniu.
Więcej informacji znajdziesz w punkcie Instalacja, temat: "Używanie uwierzytelniania HTTP".

Zauważ, że jeśli spróbujesz zalogować się do phpMyAdmina jako tenże "controluser", możesz dostać różne błędy, w zależności od faktycznych uprawnień, jakie dałeś "controluserowi". phpMyAdmin nie obsługuje bezpośredniego logowania się jako "controluser".

W wersjach przed 2.25 zmienne te miały nazwy "stduser/stdpass".

$cfg['Servers'][$i]['auth_type'] napis ['http'|'cookie'|'config']
Jaki tryb uwierzytelniania powinien zostać użyty dla serwera: config, cookie czy HTTP.
Więcej informacji znajdziesz w punkcie Instalacja, temat "Używanie trybów uwierzytelniania".

$cfg['Servers'][$i]['user'] napis
$cfg['Servers'][$i]['password'] napis
Para nazwa-użytkownika/hasło, których phpMyAdmin użyje, by połączyć się do serwera MySQL. Taka para nie jest potrzebna, kiedy używany jest tryb uwierzytelniania HTTP lub cookie - i wtedy powinna być pusta.

$cfg['Servers'][$i]['only_db'] tablica napisów
Jeśli jest ustawione na nazwę bazy danych (tablicę nazw baz danych), jedynie ta baza danych będzie (te bazy danych będą) pokazane użytkownikowi. Począwszy od phpMyAdmina 2.2.1, nazwy baz danych mogą zawierać symbole wieloznaczne MySQL-a ("_" i "%"): jeśli chcesz użyć dosłownych znaczeń tych znaków, poprzedź je odwrotnym ukośnikiem (tj. użyć 'my\_db', a nie 'my_db').
To ustawienie to wydajny sposób, by zmniejszyć obciążenie serwera, nie wymaga bowiem, wysyłania do serwera MySQL żądań w celu zbudowania dostępnej listy baz danych. Ale nie jest zamiennikiem reguł uprawnień serwera MySQL. Ustawienie zmiennej oznacza jedynie, że bazy danych nie będą wyświetlane, ale bynajmniej nie, że nie mogą być używane.

Oto przykład użycia więcej niż jednej bazy danych: $cfg['Servers'][$i]['only_db'] = array('db1', 'db2');
$cfg['Servers'][$i]['verbose'] napis
Użyteczne jedynie w phpMyAdminie obsługującym wiele serwerów. Jeśli ustawione, napis ten będzie wyświetlany zamiast nazwy hosta w rozwijalnym menu na stronie głównej. Może to być użytecze, np. jeśli chcesz pokazać jedynie niektóre bazy danych.


$cfg['Servers'][$i]['pmadb'] napis
Począwszy od wersji 2.3.0 phpMyAdmin oferuje wiele funkcji pracujących z głównymi / zewnętrznymi tabelami. Aby ich użyć, podobnie jak przy zapamiętywaniu zapytań, niezbędna jest specjalna tabela o strukturze wyjaśnionej poniżej.
Jeśli jesteś jedynym użytkownikiem tej instalacji phpMyAdmina, możesz użyć swojej aktualnej bazy danych do przechowywania takich specjalnych tabel; w takim przypadku po prostu umieść nazwę aktualnej bazy danych w $cfg['Servers'][$i]['pmadb'].

Jeśli konfigurujesz instalację phpMyAdmina przeznaczoną dla wielu użytkowników, będziesz musiał stworzyć nową bazę danych i nadać specjalne uprawnienia, tak więc, jako superużytkownik:



$cfg['Servers'][$i]['bookmarktable'] napis
Począwszy od wersji 2.2.0 phpMyAdmin pozwala zapamiętywać zapytania. Może to być użyteczne w przypadku zapytań, których często używasz.

Aby móc używać tej funkcji, musisz:

$cfg['Servers'][$i]['relation'] napis
Począwszy do wersji 2.2.4 możesz opisać, w specjalnej tabeli 'relation', które pole jest kluczem innej tabeli (klucz zewnętrzny). phpMyAdmin aktualnie używa tej informacji w celu
Klucze mogą być liczbowe lub znakowe.

Aby umożliwić korzystanie z tej funkcji, superużytkownik musi:
Proszę zauważyć, że w aktualnej (2.3.0) wersji master_db musi być identyczne z foreign_db. Pola te zostały utworzone na potrzeby przyszłego rozwoju relacji między bazami danych.


$cfg['Servers'][$i]['table_info'] napis
Od wersji 2.3.0 możesz w specjalnej tabeli 'table_info' opisać, które pole ma być wyświetlane jako etykieta narzędzia podczas przenoszenia kursora nad odpowiadającym jej kluczem.
Zmienna ta będzie przechowywać nazwę tabeli. Aby pozwolić na użycie tej funkcji superużytkownik musi:
Praktyczne wskazówki: Wyświetlane pole.


$cfg['Servers'][$i]['table_coords'] napis
$cfg['Servers'][$i]['pdf_pages'] napis
Od wydania 2.3.0 możesz użyć phpMyAdmina do tworzenia stron PDF pokazujących relacje w twoich tabelach. Aby to zrobić, potrzebne są dwie tabele: "pdf_pages" (zawierającą informacje o dostępnych stronach PDF) i "table_coords" (zawierających określenia miejsc, w jakich będą położone na schemacie).

Aby stworzyć schemat PDF musisz używać funkcji "relacji" i mieć tabelę stron PDF (patrz $cfg['Servers'][$i]['pdf_pages']).

Aby umożliwiść korzystanie z tej funkcji superużytkownik musi:
Praktyczne wskazówki: Schemat PDF.


$cfg['Servers'][$i]['column_info'] napis
Od wersji 2.3.0 możesz przechowywać komentarze opisujące każdą kolumnę dowolnej tabeli. Będzie to pokazane w "widoku do wydruku".

Począwszy od wersji 2.5.0 komentarze są konsekwentnie używane na stronach właściwości tabeli i w widoku przeglądania, pokazywane jako etykieta narzędzia przy nazwie kolumny (strona właściwości) lub osadzone w nagłówku tabeli w widoku przeglądania. Mogą być również pokazywane w zrzucie tabeli. Proszę zobaczyć później odpowiednie dyrektywy konfiguracji.

Nowością w wersji 2.5.0 jest również system transformacji MIME, który także bazuje na poniższej strukturze. Dalsze informacje można znaleźć w części Transformacje. By użyć systemu transformacji MIME, tabela column_info musi mieć trzy dodatkowe pola: 'mimetype', 'transformation' i 'transformation_options'.

Aby umożliwić korzystanie z tej funkcji superużytkownik musi:

$cfg['Servers'][$i]['history'] napis
Od wersji 2.5.0 możesz zapamiętywać historię SQL, czyli wszystkie zapytania wpisane ręcznie w phpMyAdminie. Jeżeli nie chcesz używać historii opartej na tabelach, możesz użyć historii opartej na JavaScript'cie. Użycie jej oznacza, że cała historia zostanie skasowana przy zamknięciu okna.

Używając $cfg['QueryHistoryMax'] możesz określić liczbę pozycji historii, które chcesz przetrzymywać. Przy każdym zalogowaniu lista ta zostanie przycięta do maksymalnej liczby.

Historia zapytań jest dostępna tylko gdy używane jest okno zapytań oparte na JavaScript'cie, zobacz $cfg['QueryFrame'].

Aby umożliwić korzystanie z tej funkcji, superużytkownik musi:

$cfg['Servers'][$i]['verbose_check'] napis
Ponieważ w wersji 2.5.0 wprowadzono obsługę transformacji MIME, tabela column_info została rozszerzona o trzy nowe pola. Jeśli zmienna ta ustawiona jest na TRUE (domyślnie) phpMyAdmin sprawdzi, czy najnowsza struktura jest dostępna. Jeśli nie, da superużytkownikowi ostrzeżenie.

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]['AllowDeny']['order'] napis
Jeśli porządek reguł jest pusty, uwierzytelnianie IP jest nieaktywne.

Jeśli Twój porządek reguł jest ustawiony na 'deny,allow', system stosuje wszystkie reguły negatywne (zabraniające) przed regułami pozytywnymi (zezwalającymi). Zezwolenie na dostęp jest domyślne. Dowolny klient, który nie pasuje do żadnego polecenia Deny lub pasuje do któregoś polecenia Allow, zyska dostęp do serwera.

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.

Jeżeli jest ustawiony na 'explicit', uwierzytelnianie jest przeprowadzane w podobny sposób jak przy porządku 'deny,allow', z tym ograniczeniem, że jeśli kombinacja host/nazwa-użytkownika musi być i wymieniona wśród reguł pozytywnych i nie wymieniona wśród reguł negatywnych. Jest to najbezpieczniejszy sposób używania reguł Allow/Deny, dostępny w Apache'u poprzez określenie reguł pozytywnych i negatywnych bez ustawiania żadnego porządku.

$cfg['Servers'][$i]['AllowDeny']['rules'] tablica napisów
Ogólny format reguł jest następujący:
      <'allow' | 'deny'> <nazwa-użytkownika> [from] <maska-ip>

Aby reguła pasowała do wszystkich użytkowników, można w polu nazwa-użytkownika jako symbolu wieloznacznego użyć znaku '%'.
Istnieje kilka skrótów, których możesz zastępczo użyć w polu maska-ip:
     'all' -> 0.0.0.0/0
     'localhost' -> 127.0.0.1/8


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

W systemie dopasowywania IP działają:
xxx.xxx.xxx.xxx (dokładny adres IP)
xxx.xxx.xxx.[yyy-zzz] (zakres adresów IP)
xxx.xxx.xxx.xxx/nn (CIDR, adresy IP typu Classless Inter-Domain Routing)
To natomiast nie zadziała:
xxx.xxx.xxx.xx[yyy-zzz] (częściowy zakres adresów IP)

$cfg['ServerDefault'] liczba całkowita
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['OBGzip'] napis/wartość logiczna
Określa, czy używać buforowania wyjścia poprzez GZip, co zwiększa szybkość transferu HTTP.
Ustaw na true/false by włączyć/wyłączyć. Przy ustawieniu na 'auto' (napis), phpMyAdmin próbuje włączyć buforowanie wyjścia i automatycznie je wyłączy, jeżeli przeglądarka ma jakieś problemy z buforowaniem. IE6 z określoną łatą jest znany z powodowania uszkodzeń danych przy włączonym buforowaniu.

$cfg['PersistentConnections'] wartość logiczna
Czy używać połączeń trwałych, czy też nie (mysql_connect czy mysql_pconnect).

$cfg['ExecTimeLimit'] liczba całkowita [liczba sekund]
Liczba sekund, w czasie których może działać skrypt. Jeżeli jest ustawione na na zero, żadne ograniczenia nie są nakładane.
Ustawienie to jest używane w czasie importu/eksportu plików zrzutów, ale nie ma żadnych skutków, gdy PHP jest uruchomiony w trybie bezpiecznym.

$cfg['SkipLockedTables'] wartość logiczna
Zaznacz używane bazy danych i umożliw wyświetlanie baz danych z zablokowanymi tabelami (od 3.23.30).

$cfg['ShowSQL'] wartość logiczna
Określa czy zapytania SQL generowane przez phpMyAdmina powinny być pokazywane, czy też nie.

$cfg['AllowUserDropDatabase'] wartość logiczna
Określa, czy zwykli użytkownicy (nieadministratorzy) mają możliwość usunięcia ich własnej bazy danych, czy też nie. Jeżeli jest ustawione na FALSE, link "Usunięcie bazy danych" nie będzie pokazywany, a nawet "DROP DATABASE mojabaza" zostanie odrzucone. Całkiem użyteczne dla usługodawców internetowych z dużą liczbą klientów.

$cfg['Confirm'] wartość logiczna
Czy ostrzeżenie ("Czy na pewno chcesz to zrobić?") powinno być wyświetlane, gdy istnieje ryzyko utraty danych.

$cfg['LoginCookieRecall'] wartość logiczna
Określa, czy poprzedni login powinien być ponownie przywołany w trybie uwierzytelniania cookie, czy też nie.

$cfg['UseDbSearch'] wartość logiczna
Określa, czy "szukanie tekstu wewnątrz bazy danych" jest włączone, czy też nie.

$cfg['LeftFrameLight'] wartość logiczna
Określa, czy używać menu wyboru i wyświetlać jedynie aktualne tabele w lewej ramce (mniejsza strona). Tylko w trybie nie-lekkim (tj. z wyłączoną opcją) można zastosować tę funkcję do wyświetlania zagnieżdżonych folderów przy użyciu $cfg['LeftFrameTableSeparator']

$cfg['LeftFrameTableSeparator'] napis
Określa napis używany do zagnieżdżania odstępów tabel. Domyślnie '__'. Oznacza to, że jeśli masz tabelę o nazwie w rodzaju 'raz__dwa__trzy', zostanie to pokazane jako trójstopniowa hierarchia w rodzaju: raz > dwa > trzy. Ustawienie na FALSE lub pusty napis wyłącza funkcję. Uwaga: Nie powinieneś używać tego separatora na początku nazwy tabeli lub na jej końcu albo wielokrotnie bez żadnego innego znaku pomiędzy separatorami.

$cfg['LeftFrameTableLevel'] napis
Określa, jak wiele podpoziomów ma być wyświetlanych podczas podziału tabel przez powyższy separator.

$cfg['ShowTooltip'] wartość logiczna
Określa, czy komentarz tabeli ma być wyświetlany jako etykieta narzędzia w lewej ramce, czy też nie.

$cfg['ShowTooltipAliasDB'] wartość logiczna
Jeżeli etykiety narzędzia są włączone a komentarz bazy danych ustawiony, zamieni to miejscami komentarz i prawdziwą nazwę. Oznacza to, że jeśli nazwałeś tabelę 'user0001' i dodasz do niej komentarz 'MojaNazwa', zobaczysz użytą wszędzie w lewej ramce nazwę 'MojaNazwa', a etykieta narzędzia pokaże prawdziwą nazwę bazy danych.

$cfg['ShowTooltipAliasTB'] wartość logiczna
To samo co $cfg['ShowTooltipAliasDB'], tylko że dotyczy nazw tabel.

$cfg['ShowStats'] wartość logiczna
Określa, czy wyświetlać zużycie miejsca i statystyki na temat baz danych i tabel, czy też nie.
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['ShowMysqlInfo'] wartość logiczna
$cfg['ShowMysqlVars'] wartość logiczna
$cfg['ShowPhpInfo'] wartość logiczna
$cfg['ShowChgPassword'] wartość logiczna
Określa, czy dla zwykłych użytkowników wyświetlać linki "Informacje o stanie serwera MySQL", "Zmienne systemowe serwera MySQL", "Informacje o PHP" i "Zmiana hasła" w (prawej) ramce początkowej. Ustawienie to nie sprawdza poleceń MySQL wprowadzonych bezpośrednio.

Proszę zauważyć, że aby zablokować możliwość użycia phpinfo() w skryptach, musisz umieścić w twoim pliku php.ini co następuje:
    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'] wartość logiczna
Określa, czy sugerować nazwę bazy danych w formularzu "Utworzenie bazy danych", czy też pozostawić pole tekstowe puste.

$cfg['ShowBlob'] wartość logiczna
Określa, czy pola BLOB są pokazywane podczas przeglądania zawartości tabeli, czy też nie.

$cfg['NavigationBarIconic'] wartość logiczna
Określa, czy przyciski na pasku nawigacyjnym mają zawierać tekst, czy tylko symbole.

$cfg['ShowAll'] wartość logiczna
Określa, czy użytkownik powinien mieć wyświetlony przycisk "Pokazanie wszystkiego (wszystkich rekordów)" w trybie przeglądania, czy też nie.

$cfg['MaxRows'] liczba całkowita
Liczba wierszy wyświetlanych podczas przeglądania zestawu wyników. Jeśli zestaw składa się z większej ilości wierszy, zostanie pokazany link Poprzednie/Następne.

$cfg['Order'] napis [DESC|ASC|SMART]
Określa, czy domyślnie pola mają być wyświetlane w kolejności rosnącej (ASC), malejącej (DESC), czy też w kolejność "sprytnej" (SMART) - tj. malejącej dla pól typu TIME, DATE, DATETIME i TIMESTAMP, a rosnącej dla pozostałych typów.

$cfg['ProtectBinary'] wartość logiczna lub napis
Określa, czy pola typu BLOB lub BINARY mają być zabezpieczane przed edycją podczas przeglądania zawartości tabeli, czy też nie. Prawidłowymi wartościami są:
- FALSE pozwala na edycję wszystkich pól;
- blob pozwala na edycję wszystkich pól oprócz BLOB-ów;
- all nie pozwala na edycję żadnych pól BINARY, ani BLOB.

$cfg['ShowFunctionFields'] wartość logiczna
Określa, czy pola funkcji MySQL powinny być wyświetlane w trybie edycji/wstawiania, czy też nie.

$cfg['CharEditing'] napis
Określa jaki rodzaj pól edycyjnych powinna zostać użyta dla pól CHAR i VARCHAR. Możliwymi wartościami są: Domyślnym jest stare zachowanie, a więc input.

$cfg['ZipDump']wartość logiczna
$cfg['GZipDump']wartość logiczna
$cfg['BZipDump'] wartość logiczna
Określa, czy ma być zezwolona kompresja zip/GZip/BZip2 podczas tworzenia zrzutów do pliku, czy też nie.

$cfg['LightTabs'] napis
Jeżeli jest ustawione na True, na górze głównej ramki zostaną użyte graficznie mniej intensywne zakładki.

$cfg['DefaultTabServer'] napis
Określa zakładkę wyświetlaną domyślnie w widoku serwera. Możliwymi wartościami są: "main.php3" (zalecane przy konfiguracjach z wieloma użytkownikami), "server_databases.php3", "server_status.php3", "server_variables.php3", "server_privileges.php3" lub "server_processlist.php3".

$cfg['DefaultTabDatabase'] napis
Określa domyślną zakładkę wyświetlaną w widoku bazy danych. Możliwymi wartościami są: "db_details_structure.php3", "db_details.php3" i "db_search.php3".

$cfg['DefaultTabTable'] napis
Określa domyślną zakładkę wyświetlaną w widoku tabeli. Możliwymi wartościami są: "tbl_properties_structure.php3", "tbl_properties.php3", "tbl_select.php3" i "tbl_change.php3".

$cfg['MySQLManualBase'] napis
Jeśli zostało ustawione na URL prowadzący do dokumentacji MySQL-a (jej typ zależy od $cfg['MySQLManualType']), to zostaną wygenerowane odpowiednie linki pomocy.
Więcej informacji na temat podręczników MySQL i ich typów znajduje się w Dokumentacji MySQL-a.

$cfg['MySQLManualType'] napis
Typ dokumentacji MySQL-a:

$cfg['DefaultLang'] napis
Określa domyślny język, jakiego należy użyć, jeżeli nie został określony ani przez przeglądarkę, ani użytkownika.
B y dowiedzieć się o prawidłowych wartościach dla tego ustawienia, proszę zobaczyć skrypt select_lang.inc.php3.

$cfg['Lang'] napis
Wymuszenie: zawsze używaj tego języka (musi być zdefiniowany w skrypcie select_lang.inc.php3).

$cfg['DefaultCharset'] napis
Domyślny system kodowania znaków, jaki będzie używany do konwersji zapytań MySQL. Konwersja musi być włączona, jak zostało wyjaśnione przy opcji $cfg['AllowAnywhereRecoding'].
Możesz umieścić tu dowolny system kodowania, który jest w tablicy $cfg['AvailableCharsets'] i jest to tylko wybór domyślny; użytkownik może wybrać dowolny z nich.

$cfg['AllowAnywhereRecoding'] wartość logiczna
Pozwala na zmianę systemu kodowania znaków zapytań MySQL. By umożliwić konwersję zapytań MySQL, niezbędna jest obsługa recode lub iconv (wkompilowana lub jako moduł) w PHP, a konwersja musi być włączona w pliku językowym (domyślnie jedynie te, które są zapisane w Unikodzie, tylko by uniknąć utraty niektórych znaków).

$cfg['RecodingEngine'] napis
Możesz wybrać, które funkcji będą użyte dla konwersji systemu kodowania znaków. Możliwymi wartościami są:
Domyślną wartością jest auto.

$cfg['IconvExtraParams'] napis
Określa niektóre parametry konwersji systemu kodowania znaków iconv. Szczegóły zawiera dokumentacja iconva.

$cfg['AvailableCharsets'] tablica
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['GD2Available'] napis
Określa, czy GD >= 2 jest dostępny. Jeśli tak, może zostać użyty do transformacji MIME.
Możliwymi wartościami są:
Domyślną wartością jest auto.

$cfg['LeftWidth'] liczba całkowita
Szerokość lewej ramki w pikselach.

$cfg['LeftBgColor'] napis [kolor HTML]
$cfg['RightBgColor'] napis [kolor HTML]
Kolory (HTML) tła obu ramek.

$cfg['RightBgImage'] napis
URI obrazka używanego jako tło prawej ramki. Może to być to ścieżka absolutna lub względna do Twojego katalogu z phpMyAdminem.
$cfg['LeftPointerColor'] napis [kolor HTML]
Kolor (HTML) wskaźnika w lewej ramce (nie działa w Netscapie 4).

$cfg['Border'] liczba całkowita
Szerokość obramowania tabeli.

$cfg['ThBgcolor'] napis [kolor HTML]
Kolor (HTML) nagłówków tabeli.

$cfg['BgcolorOne'] napis [kolor HTML]
Pierwszy kolor (HTML) wierszy tabeli.

$cfg['BgcolorTwo'] napis [kolor HTML]
Drugi kolor (HTML) wierszy tabeli.

$cfg['BrowsePointerColor'] napis [kolor HTML]
$cfg['BrowseMarkerColor'] napis [kolor HTML]
Kolory (HTML) wskaźnika i zaznaczenia w trybie przeglądania (nie działa w Netscapie 4).
Pierwszy z nich podświetla wiersz nad którym porusza się myszka a drugi pozwala na wizualne zaznaczenie/odznaczenie wierszy poprzez kliknięcie na nich.
Możesz wyłączyć obie funkcji przez pozostawienie pustymi odpowiednich dyrektyw.

$cfg['TextareaCols'] liczba całkowita
$cfg['TextareaRows'] liczba całkowita
$cfg['CharTextareaCols'] liczba całkowita
$cfg['CharTextareaRows'] liczba całkowita
Liczba kolumn i wierszy w obszarach tekstowych (textarea).
Wartość ta będzie powiększona (dwukrotnie) dla obszarów tekstowych dla zapytań SQL i (1.25 razy) dla obszarów tekstowych w oknie zapytania SQL.
Wartości Char* są używane w przypadku edycji pól CHAR i VARCHAR (jeśli zostało to skonfigurowane poprzez $cfg['CharEditing']).

$cfg['LongtextDoubleTextarea'] wartość logiczna
Określa, czy obszar tekstowy dla pól LONGTEXT ma mieć podwójną wielkość.

$cfg['TextareaAutoSelect'] wartość logiczna
Określa, czy cały obszar tekstowy pola zapytania będzie zaznaczony przy kliknięciu.

$cfg['CtrlArrowsMoving'] wartość logiczna
Czy ma być możliwe poruszanie się między polami za pomocą kombinacji klawiszy Ctrl+strzałka?

$cfg['LimitChars'] liczba całkowita
Maksymalna liczba znaków pokazywanych w polach nieliczbowych w trybie przeglądania. Może zostać wyłączone przyciskiem na stronie przeglądania.

$cfg['ModifyDeleteAtLeft'] wartość logiczna
$cfg['ModifyDeleteAtRight'] wartość logiczna
Określa miejsce, w którym mają być umieszczone linki modyfikacji i kasowania, gdy wyświetlana jest zawartość tabeli (mogą być one wyświetlane i po lewej, i po prawej stronie). "Left" i "right" są rozumiane jako "góra" i "dół" w pionowym trybie wyświetlania.

$cfg['DefaultDisplay'] napis
$cfg['HeaderFlipType'] napis
Są 3 tryby wyświetlania: horizontal (poziomy), horizontalflipped (poziomy odwrócony) i vertical (pionowy). Określa, który z nich jest używany domyślnie. Pierwszy wyświetla każdy wiersz w linii poziomej, drugi obraca nagłówki o 90 stopni, tak że możesz użyć nagłówków opisowych, nawet gdy pola zawierają jedynie małe wartości, i nadal je wypisywać. Tryb pionowy umieszcza każdy wiersz w linii pionowej.

HeaderFlipType może być ustawiony na 'css' lub 'faked'. Przy użyciu 'css', obrót nagłówka dla trybu poziomego odwróconego (horizontalflipped) jest dokonywany przez CSS. Przy wartości 'faked', przekształcenia dokonuje PHP, lecz nie wygląda to oczywiście tak dobrze jak przy CSS.

$cfg['DefaultPropDisplay'] napis
Podczas edycji/tworzenia nowych kolumn w tabeli, wszystkie pola są normalnie są uszeregowane w oddzielnych liniach. (domyślnie: 'horizontal'). Jeśli ustawisz tę zmienną na 'vertical', możesz mieć każde pole uszeregowane pionowo jedno obok drugiego. Możesz w ten sposób zyskać sporo miejsca w kierunku poziomym i nie musieć więcej przewijać.

$cfg['ShowBrowseComments'] wartość logiczna
$cfg['ShowPropertyComments'] wartość logiczna
Ustawienie odpowiedniej zmiennej na TRUE włączy wyświetlanie komentarzy dla kolumn w widokach przeglądania i właściwości. W trybie przeglądania komentarze są pokazywane wewnątrz nagłówka. W trybie właściwości komentarze są wyświetlane przy użyciu sformatowanej CSS-em kreskowanej linii pod nazwą pola. Komentarz jest pokazywany jako etykieta narzędzia tego pola.

$cfg['UploadDir'] napis
Nazwa katalogu, kończąca się ukośnikiem (/), do którego zostały wysłane poprzez inne środki niż phpMyAdmin (np. ftp) pliki SQL. Pliki te są dostępne na liście rozwijalnej, gdy klikniesz nazwę bazy danych, a następnie zakładkę SQL.

Warto zauważyć, że nazwy plików muszą mieć rozszerzenie ".sql".

Funkcja ta jest przydatna, gdy Twój plik jest zbyt duży by wysłać go poprzez HTTP lub gdy upload jest wyłączony w PHP.

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

$cfg['SaveDir'] napis
Nazwa katalogu kończąca się ukośnikiem, gdzie mogą być zapisywane zrzuty.

Proszę zauważyć, że użytkownik, z którego prawami uruchomiony jest serwer www, musi mieć prawa zapisu do katalogu.

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['Export'] tablica
W tej tablicy określone są domyślnie parametry eksportu; nazwy pozycji są podobne do tekstów widocznych na stronie eksportu, więc można łatwo rozpoznać, co oznaczają.

$cfg['RepeatCells'] liczba całkowita
Powtórz nagłówki co X komórek. Wartość 0 powoduje dezaktywację.

$cfg['QueryFrame'] wartość logiczna
$cfg['QueryFrameJS'] wartość logiczna
$cfg['QueryFrameDebug'] wartość logiczna
$cfg['QueryWindowWidth'] liczba całkowita
$cfg['QueryWindowHeight'] liczba całkowita
$cfg['QueryHistoryDB'] wartość logiczna
$cfg['QueryWindowDefTab'] napis
$cfg['QueryHistoryMax'] liczba całkowita
Wszystkie te zmienne dotyczą nowego okna/nowej ramki zapytania. Kiedy $cfg['QueryFrame'] jest ustawione na TRUE, po lewej stronie osadza się ramka z niewielkim obszarem. Kliknięcie na nim powoduje otwarcie bezpośredniego interfejsu do wprowadzania zapytań SQL.

Kiedy $cfg['QueryFrameJS'] jest ustawione na true, kliknięcie na ten link otwiera nowe okno przeglądarki o ustalonym rozmiarze ($cfg['QueryWindowWidth'], $cfg['QueryWindowHeight'] - wysokość i szerokość w pikselach jako liczby całkowite). Jeżeli ustawione na false, kliknięcie na link otwiera tylko pole SQL w głównej ramce.

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.

Jeżeli $cfg['QueryHistoryDB'] jest ustawione TRUE, wszystkie zapytania są rejestrowane w tabeli, która została przez Ciebie stworzona (zobacz $cfg['Servers'][$i]['history']). Jeżeli jest ustawione FALSE, wszystkie zapytania zostaną dodane do formularza, ale będą pamiętane tylko tak długo, jak otwarte będzie Twoje okno.

Przy użyciu okna opartego na JavaScript'cie, zostanie ono zawsze zaktualizowane przy kliknięciu na przeglądanie nowej tabelę/bazę danych i zaktywowane, jeśli klikniesz na "Edycja SQL" po użyciu zapytania. Można wyłączyć aktualizację przez zaznaczenie pola "Nie nadpisuj tego zapytania spoza okna", znajdującego się poniżej obszaru tekstowego zapytania. Następnie możesz przeglądać tabele/bazy danych w tle bez utraty zawartości pola tekstowego; jest to szczególnie użyteczne przy układaniu zapytania dotyczącego tabel, do których wcześniej musisz zajrzeć. Pole wyboru zostanie automatycznie znaczone przy każdej zmianie w zawartości pola tekstowego. Należy odznaczyć przycisk kiedy faktycznie okno zapytania ma być aktualizowane, nawet pomimo dokonanych w nim zmian.

Jeżeli $cfg['QueryHistoryDB'] jest ustawione na TRUE, możesz określić liczbę zapisywanych pozycji historii przy użyciu $cfg['QueryHistoryMax'].

Okno zapytania ma również własny zastaw zakładek grupujących funkcje. Używając zmiennej $cfg['QueryWindowDefTab'] można określić, która zakładka będzie domyślna przy otwierania okna. Może być ona ustawiona na 'sql', 'files', 'history' lub 'full'.

Zmienna $cfg['QueryFrameDebug'] może być używana przez programistów dla łatwiejszej integracji przyszłych funkcji.

$cfg['BrowseMIME'] wartość logiczna
Włącza transformacje MIME.

$cfg['MaxExactCount'] liczba całkowita
Określa dla jak dużych tabel phpMyAdmin powinien pobierać dokładną liczbę wierszy poprzez SELECT COUNT. Jeśli przybliżona liczba wierszy jest mniejsza niż ta wartość, zostanie użyte SELECT COUNT, w przeciwnym wypadku jedynie wartość zwrócona przez SHOW TABLE STATUS.

$cfg['WYSIWYG-PDF'] wartość logiczna
Użytkuje mechanizm edycji WYSIWYG, by łatwo umieszczać elementy na stronie PDF. Poprzez kliknięcie na przycisku 'włącz / wyłącz scratchboard' znajdującym się na stronie edycji współrzędnych x/y tych elementów, możesz włączyć scratchboard, gdzie będą umieszczone wszystkie elementy. Poprzez kliknięcie możesz je przenosić wśród wcześniej zdefiniowanego obszaru a współrzędne x/y będą się dynamicznie aktualizowały. Podobnie, gdy wprowadzasz nowe współrzędne bezpośrednio do pola tekstowego, zmieni się ona na scratchboardzie po opuszczeniu pola tekstowego przez kursor.
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ą.
UWAGA: By ten mechanizm zadziałał, wymagana jest nowoczesna przeglądarka, taka jak IE6 lub Mozilla. Podstawowa funkcjonalność przeciągnij-i-upuść została uprzejmie pożyczona z www.youngpup.net i korzysta ze specjalnej licencji.

$cfg['SQP']['fmtType'] napis [html|none]
Głównym zastosowaniem nowego analizatora składni SQL jest eleganckie wypisywanie zapytań SQL. Domyślnie do formatowania zapytań używany jest HTML, ale możesz to wyłączyć, ustawiając tę zmienną na 'none'

$cfg['SQP']['fmtInd'] liczba zmiennoprzecinkowa
$cfg['SQP']['fmtIndUnit'] napis [em|px|pt|ex]
Przy eleganckim wypisywaniu zapytań SQL, w niektórych przypadkach część zapytania wewnątrz nawiasów jest wcięta. Zmieniając $cfg['SQP']['fmtInd'] można zmienić wielkość tego wcięcia.
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'] tablica par napisów
Tablica ta jest używana, by określić kolory każdego typu elementu eleganckiego wypisywania zapytań SQL. Format pary to
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:

$cfg['SQLValidator']['use'] wartość logiczna
phpMyAdmin obsługuje aktualnie usługę Mimer SQL Validator, oryginalnie opublikowaną na Slashdot'cie.
Aby uzyskać pomoc, jak skonfigurować system, by używać tej usługi, zobacz FAQ 6.14.

$cfg['SQLValidator']['username'] napis
$cfg['SQLValidator']['password'] napis
Usługa SOAP pozwala zalogować się jako anonymous z dowolnym hasłem, tak więc używamy tego domyślnie. Zamiast tego, jeśli masz u nich konto, możesz umieścić tutaj szczegóły potrzebne do zalogowania; zostaną one użyte zamiast logowania się anonimowo.

$cfg['DBG']['enable'] wartość logiczna
TYLKO DLA PROGRAMISTÓW!
Włącza obsługę modułu DBG do debugowania phpMyAdmina. Wymagane do profilowania kodu.
Pomoc w konfiguracji systemu do użycia tej funkcji znajduje się w punkcie Programiści.
$cfg['DBG']['profile']['enable'] wartość logiczna
TYLKO DLA PROGRAMISTÓW!
Włącza profilowanie w phpMyAdminie. Doda to porcję danych na końcu każdej strony wyświetlanej w głównym oknie ze statystykami profilowania dla tej strony.
Być może będziesz musiał zwiększyć maksymalny czas na pomyślnie zakończenie wykonywania skryptu.
$cfg['DBG']['profile']['threshold'] liczba zmiennoprzecinkowa (jednostka - milisekundy)
TYLKO DLA PROGRAMISTÓW!
Podczas wyświetlania danych o profilowaniu, zmienna ta kontroluje czasowy próg wyświetlania każdych danych. Jeżeli czas przekroczy wartość progową, są one wyświetlane, w przeciwnym wypadku - nie są. Wartość jest wyrażona w milisekundach. W większości przypadków nie ma potrzeby zmiany.
$cfg['ColumnTypes'] tablica
Wszystkie możliwe typy kolumn MySQL. W większości przypadków nie ma potrzeby zmiany.

$cfg['AttributeTypes'] tablica
Możliwe atrybuty pól. W większości przypadków nie ma potrzeby zmiany.

$cfg['Functions'] tablica
Lista funkcji, które obsługuje MySQL. W większości przypadków nie ma potrzeby zmiany.


Transformacje

Wprowadzenie  -  Użycie  -  Struktura plików  - 


[1. Wprowadzenie]

Aby włączyć transformacje, musisz ustawić tabelę column_info table i odpowiednie dyrektywy. W części Konfiguracja można zobaczyć jak to zrobić.


Możesz zastosować różne transformacje do zwartości każdego pola. Transformacja weźmie tę zawartość i przekształci ją zgodnie z określonymi regułami zdefiniowanymi w wybranej transformacji.


Powiedzmy, że masz pole 'nazwapliku', które zawiera nazwę pliku. Normalnie zobaczyłbyś w phpMyAdminie jedynie tę nazwę. Używając tranformacji możesz przekształcić ją na HTML-owy link, na który będziesz mógł kliknąć i zobaczyć plik wyświetlony w nowym oknie przeglądarki. Używając opcji transformacji możesz również określić napisy, które będą dołączane na początku/końcu napisu albo format w jakim chcesz mieć wynik.


Ogólny opis wszystkich dostępnych transformacji i ich opcji jest dostępny w <www.twój-host.com>/<twój-katalog-instalacyjny>/libraries/transformations/overview.php3 .


Jeśli potrzebujesz wprowadzenia do efektywnego użycia tranformacji można znaleźć, zobacz linki na oficjalnej stronie domowej phpMyAdmina.


[2. Użycie]

Przejdź do strony tbl_properties.inc.php3 (osiągalną przez kliknięcie na linku 'właściwości' tabeli). Tam zobaczy trzy nowe pola na końcu linii. Są one nazwane 'Typ MIME', 'Sposób prezentacji danych' and 'Opcje transformacji'.



[3. Struktura plików]

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.


Ponieważ użytkownik nie może wprowadzać własnych typów MIME, jest pewne, że transformacje zawsze będą działać. Nie ma sensu przeprowadzanie tranformacji dla typu MIME, którego funkcja przekształcająca nie wie jak obsłużyć.


Można jednak użyć pustych typów MIME i globalnych transformacji, które powinny działać dla wielu typów. Możesz również użyć transformacji do innego typu MIME, niż tego, do którego zostały stworzone, ale zwracaj uwagę na użycie opcji, jak również na to, co transformacja robi z polem.


Istnieje podstawowy plik o nazwie 'global.inc.php3'. Może on zostać włączony przez inną funkcję przekształcającą, a dostarcza on pewnych podstawowych funkcji.


Jest 5 możliwych nazw plików:

  1. Transformacja typu+podtypu MIME:

    [typ-mime]_[podtyp]__[transformacja].inc.php3

    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.

    Funkcja przekształcająca będzie nazywała się 'PMA_transform_[typ-mime]_[podtyp]__[transformacja]()'.

    Przykład:

    text_html__sformatowany.inc.php3
    PMA_transform_text_html__sformatowany()
  2. Transformacja typu MIME (bez podtypu):

    [typ]__[transformacja].inc.php3

    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.

    Funkcja przekształcająca będzie nazywała się 'PMA_transform_[typ-mime]__[transformacja]()'.

    Przykład:

    text__sformatowany.inc.php3
    PMA_transform_text__sformatowany()
  3. Typ+podtyp MIME bez właściwej funkcji przekształcającej

    [typ-mime]_[podtyp].inc.php3

    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.php3
    (Brak funkcji)
  4. Typ MIME (bez podtypu) bez właściwej funkcji przekształcającej

    [typ-mime].inc.php3

    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.php3
    (Brak funkcji)
  5. Transformacja globalna bez właściwego typu MIME

    global__[transformacja].inc.php3

    Funkcja przekształcająca będzie się nazywała 'PMA_transform_global__[transformacja]()'.

    Przykład:

    global__sformatowane
    PMA_transform_global__sformatowane()

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.


By dodać nową funkcję przekształcającą, zobacz plik libraries/transformations/TEMPLATE. By dodać typ MIME bez funkcji, zobacz plik libraries/transformations/TEMPLATE_MIMETYPE. Proszę również zwrócić uwagę na opis funkcji w plikach językowych. Dla każdej funkcji musi istnieć zmienna $strTransformation_[nazwa pliku bez .inc.php3].


Aby wygenerować nowe funkcje i wpisy w plikach językowych, możesz użyć generatora szablonów.


Do tworzenia nowych funkcji przekształcających służy skrypt libraries/transformations/template_generator.sh. Aby utworzyć nowy, pusty typ MIME, skorzystaj ze skryptu libraries/transformations/template_generator_mimetype.sh.



FAQ - Często zadawane pytania

Serwer  -  Konfiguracja  -  Ograniczenia  -  Wielu użytkowników  -  Przeglądarki  -  Wskazówki  -  Projekt  -  Bezpieczeństwo


Rzuć okiem na linki na oficjalnej stronie domowej phpMyAdmina, które prowadzą do gruntownych omówień funkcji i/lub interfejsu phpMyAdmina.


[1. Serwer]

Używam PHP 4+ i mój serwer pada za każdym razem kiedy wymagana jest określona czynność albo phpMyAdmin wysyła pustą stronę lub stronę pełną tajemniczych znaków do przeglądarki; co mogę zrobić?

Jest kilka znanych błędów PHP związanych z buforowaniem wyjścia i kompresją.
Spróbuj w pliku config.inc.php lub .php3 ustawić dyrektywę $cfg['OBGzip'] na FALSE a w pliku konfiguracyjnym PHP.
dyrektywę zlib.output_compression na Off. Oprócz tego wiemy o problemach związanych z wersjami kandydującymi do wydania jako PHP 4.2.0 (testowane z PHP 4.2.0 RC1 do RC4) oraz z MS Internet Explorerem. Prosimy o aktualizację do wydania PHP w wydaniu 4.2.0.

[1.2] Mój serwer Apache pada, gdy używam phpMyAdmina.

Po pierwsze, powinieneś wypróbować najnowszą wersję Apache'a (i, być może, MySQL-a).
Zobacz także inne wpisy FAQ o błędach PHP związanych z buforowaniem wyjścia.
Jeżeli serwer nadal pada, poproś o pomoc na różnych grupach pomocy technicznej Apache'a.

[1.3] Używam phpMyAdmina z trybem uwierzytelniania "cookie" pod PHP 4.2.0 lub 4.2.1 załadowanym jako moduł Apache'a 2+, ale nie mogę skorzystać ze skryptu: cały czas widzę ekran logowania.

Jest to znany błąd PHP (zobacz raport o błędzie) z oficjalnej bazy danych błędów PHP. Oznacza to, że nie ma i nie będzie żadnej poprawki phpMyAdmina tego błędu, jako że nie ma możliwości napisania takiej poprawki.

[1.4] Używam phpMyAdmin na IIS-ie, dostaję komunikat o błędzie: "The specified CGI application misbehaved by not returning a complete set of HTTP headers...".

Po prostu zapomniałeś przeczytać pliku install.txt z dystrybucji PHP. Rzuć okiem na ostatnią wiadomość raportu o błędzie z oficjalnej bazy danych błędów PHP.

[1.5] Używam phpMyAdmina na IIS-ie, spotykam się z padami i/lub wieloma komunikatami o błędach przy trybie uwierzytelniania HTTP lub advanced.

Jest to znany problem z filtrem ASAPI PHP: nie jest zbyt stabilny. Więcej informacji i kompletne testy w wiadomości wysłanej André B. aka "djdeluxe76" w tym wątku forum phpWizarda.
Zamiast tego proszę użyć trybu uwierzytelniania cookie.

[1.6] Nie mogę używać phpMyAdmina na PWS-ie: nic się nie wyświetla!

Wygląda to na błąd PWS-a. Filippo Simoncini znalazł obejście problemu (na razie nie ma lepszej poprawki): usuń lub zakomentuj deklaracje DOCTYPE (2 linijki) ze skryptów header.inc.php3, header_printview.inc.php3, index.php3, left.php3 i libraries/common.lib.php3.

[1.7] Jak skompresować zrzut lub eksport CSV poprzez GZip lub Bzip2? Wygląda na to, że nie działa.

Kompresja bazuje na funkcjach PHP gzencode() i bzcompress(), by być bardziej niezależnym od platformy (Unix/Windows, tryb bezpieczny lub nie, itd.). Dlatego musisz mieć PHP4 >= 4.0.4 z obsługą Zlib/Bzip2 (--with-zlib i --with-bz2).
Spotkaliśmy się z padami PHP podczas prób ściągnięcia zrzutu przez MS Internet Explorera, kiedy phpMyAdmin jest uruchomiony na PHP w wersji kandydującej do wydania 4.2.0. W takim przypadku powinieneś przerzucić się na wydanie 4.2.0 PHP.

[1.8] Nie mogę wstawić pliku tekstowego do tabeli i w efekcie dostaję błąd o byciu w trybie bezpiecznym.

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:

[1.9] Mam kłopoty podczas wysyłania plików. Ogólnie rzecz biorąc wysyłanie plików nie działa w moim systemie a wysłane pliki mają nagłówek Content-Type: w pierwszej linii.

W rzeczywistości nie jest to związane z phpMyAdminem, ale z RedHatem 7.0. Masz RedHata 7.0 i zaktualizowałeś swój RPM z PHP do php-4.0.4pl1-3.i386.rpm, prawda?
Tak więc problem polega na tym, że pakiet ten ma poważny błąd, który został poprawiony lata temu w PHP (2001-01-28: szczegóły w systemie śledzenia błędów PHP). Problemem jest to, że błędny pakiet jest ciągle dostępny, mimo że został poprawiony (szczegóły w bugzilli RedHata).
Proszę więc ściągnąć poprawiony pakiet (4.0.4pl1-9), a problem powinien zniknąć.
Przy okazji poprawia to problem \r\n z wysyłaniem plików!

[1.10] Mam kłopoty podczas wysyłania plików poprzez phpMyAdmina chodzącego na bezpiecznym serwerze (tj. na serwerze z obsługą SSL - przyp. tłum.). Moją przeglądarką jest Internet Explorer i używam serwera Apache.

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] Podczas wysyłania pliku z pola zapytania dostaję 'open_basedir restriction'

Od wersji 2.2.4 phpMyAdmin obsługuje serwery z restrykcjami open_basedir. Zakładając, że restrykcja pozwala ci otwierać pliki w aktualnym katalogu ('.'), wszystko co musisz zrobić to stworzyć katalog 'tmp' w katalogu instalacyjnym phpMyAdmina z prawami 777 i z tym samym właścicielem, który jest właścicielem Twojego phpMyAdmina. Wysłane pliki będą tam przemieszczone, a po wykonaniu twoich poleceń SQL, usunięte.

[1.12] Straciłem moje hasło do roota MySQL, co mam robić?

Podręcznik MySQL-a wyjaśnia jak sprowadzić uprawnienia do stanu początkowego.

[1.13] Dostaję błąd 'Brak zapytania SQL' podczas próby wykonania zapamiętanego zapytania.

Jeśli PHP nie ma praw do czytania/pisania do swojego upload_tmp_dir, nie ma też dostępu do wysłanego zapytania.

[1.14] Dostaję błąd 'Brak zapytania SQL' podczas próby wysłania zapytania z wygodnego obszaru tekstowego.

Sprawdź dyrektywę post_max_size ze swojego pliku konfiguracyjnego PHP i spróbuj zwiększyć jej wartość.

[1.15] Mam problemy z nazwami pól mysql.user.

We wcześniejszych wersjach MySQL pola User i Password miały nazwy user i password. Zmodyfikuj nazwy swoich pól, tak żeby pasowały do aktualnych standardów.

[1.16] Nie mogę wysyłać dużych plików ze zrzutami (problemy z pamięcią, http lub z przekroczeniem czasu bezczynności).

Pierwszymi rzeczami do sprawdzenia (lub poproszenia swojego dostawcy hosta) są wartości upload_max_filesize, memory_limit i post_max_size z pliku konfiguracyjnym php.ini.
Wszystkie te trzy ustawienia ograniczają maksymalne wielkości danych, które mogą został wysłane i obsłużone przez PHP. Jeden z użytkowników stwierdził również, że post_max_size i memory_limit powinny być większe niż upload_max_filesize.
Jeżeli masz problem z przekroczeniem czasu bezczynności, zobacz opcję $cfg['UploadDir'].

[1.17] Czy phpMyAdmin obsługuje MySQL-a 4.1 i 5.0?

phpMyAdmin zapewnia ograniczoną obsługę MySQL-a 4.1. Oznacza to, że nie możesz ani przyporządkować tabeli lub polu systemu kodowania znaków, ani zmieniać automatycznie przydzielonych zestawów.
Podczas kompilacji PHP mocno zalecamy ręczną konsolidację z biblioteką kliencką MySQL-a 4.1, gdyż ta, która jest aktualnie dostarczana z PHP jest raczej stara i może powodować problemy.
MySQL 5 nie jest jeszcze obsługiwany.

[1.18] Używam MySQL-a <= 4.0.1 z lower_case_table_names ustawionym na 1. Jeżeli stworzę nową tabelę z dużą literą w nazwie, jest ona zmieniana na małą, tak jak powinna być. Ale jeżeli spróbuję usunąć tę tabelę, MySQL nie może znaleźć odpowiedniego pliku.

Jest ot błąd MySQL-a <= 4.0.1. Prosimy o aktualizację do przynajmniej MySQL 4.0.2 lub wyłączenie dyrektywy lower_case_table_names.

[1.19] Nie mogę używać funkcji "wyświetlania relacji", bo skrypt wydaje się nie znać kroju czcionki, jakiej używam!

Biblioteka "FPDF", której używamy dla tej funkcji wymaga pewnych specjalnych plików dla krojów czcionek.
Aby utworzyć te pliki, odwołaj się do podręcznika FPDF.


[1.20] Dostaję błąd "nie można załadować modułu MySQL, proszę sprawdzić konfigurację PHP".

Aby połączyć się z serwerem MySQL, PHP potrzebuje zestawu funkcji MySQL nazywanych "modułem MySQL". Moduł ten może być częścią serwera PHP (wkompilowany), w przeciwnym wypadku musi być załadowany dynamicznie. Jego nazwą jest prawdopodobnie mysql.so lub mysql.dll. phpMyAdmin próbował załadować moduł, ale się to nie udało.

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

[1.21] Używam wersji CGI PHP pod Uniksem, nie mogę zalogować się używając uwierzytelniania cookie.

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

[1.22] Nie widzę pola "Lokalizacja pliku tekstowego", więc nie mogę wysyłać pliku.

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

[1.23] Używam MySQL-a na maszynie z Win32. Za każdym razem, kiedy tworzę nową tabelę jej nazwa i nazwy jej pól są zmieniane na małe litery!

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] W moich zapytaniach niektóre znaki są obcięte albo dostaję losowo dodane znaki. Używam PHP 4.2.3.

Jest to błąd PHP 4.2.3.

[1.25] Używam Apache'a z mod_gzip-1.3.26.1a na Windows XP i miewam problemy, takie jak niezdefiniowe zmienne podczas uruchamiana zapytania SQL.

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.*"
bo ta wersja mod_gzip na Apache'u (Windows) ma problemy z obsługą skryptów PHP. Oczywiście Apache'a trzeba zrestartować.

[1.26] Właśnie zainstalowałem phpMyAdmina w głównym katalogu dokumentów IIS-a, ale podczas próby uruchomienia phpMyAdmina dostaję błąd "No input file specified"

Problemem są prawa dostępu. Kliknij prawym przyciskiem na folderze phpMyAdmina i wybierz właściwości. W zakładce Bezpieczeństwo (Security), kliknij na "Dodaj" ("Add") i wybierz z listy użytkownika "IUSER_machine". Ustaw jego prawa dostępu i powinno zadziałać.

[1.27] Dostaję pusty ekran, kiedy chcę oglądnąć bardzo dużą stronę (np. db_details_structure.php3 z dużą ilością baz danych)

Jest to błąd PHP, który występuje przy włączonym buforowaniu wyjścia GZIP. Jeśli je wyłączysz (poprzez $cfg['OBGzip'] = FALSE w config.inc.php3), powinno zadziałać. Błąd ten zostanie naprawiony w PHP 5.0.0.

[1.28] Serwer MySQL czasami odrzuca zapytania i zwraca komunikat 'Errorcode: 13'. Co to oznacza?

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] Kiedy tworzę tabelę albo modyfikuję pole, dostaję błąd a pola są zdublowane.

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
i
AddType application/x-httpd-php .php

W przypadku, który widzieliśmy, jeden zestaw był w httpd.conf, podczas gdy drugi w php.conf.
Polecanym sposobem jest ten z AddType, więc po prostu zakomentuj pierwszy zestaw linii i zrestartuj Apache'a:

#SetOutputFilter PHP
#SetInputFilter PHP


[2. Konfiguracja]

[2.1] Wyświetlany jest komunikat o błędzie "Warning: Cannot add header information - headers already sent by ...", gdzie jest problem?

Sprawdź swój plik config.inc.php lub .php3 i upewnij się, że nie ma niczego (tj. pustych linii, spacji, znaków...) ani przed znacznikiem <?php na początku, ani po znaczniku ?> na końcu.

[2.2] phpMyAdmin nie może się połączyć z MySQL-em. Co jest źle?

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] Wyświetlany jest komunikat o błędzie "Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)...". Co mogę zrobić?


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

Na moim RedHat'cie gniazdem MySQL-a jest /var/lib/mysql/mysql.sock. W swoim pliku php.ini znajdziesz linię
    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.

Oto poprawka zaproponowana przez Brada Ummera na forum phpWizarda:

Rzuć okiem również na odpowiedni punkt dokumentacji MySQL.

[2.4] Moja przeglądarka niczego nie wyświetla, kiedy próbuję uruchomić phpMyAdmina; co mogę zrobić?

Spróbuj ustawić w pliku konfiguracyjnym phpMyAdmina dyrektywę $cfg['OBGZip'] na FALSE. To czasem pomaga.
Rzuć również okiem na wersję swojego PHP: jeśli zawiera "4.0b...", oznacza to, że używasz wersji beta PHP. Nie jest to szczególnie dobry pomysł, zaktualizuj go do zwykłej wersji.

[2.5] Za każdym razem kiedy chcę wstawić lub zmienić rekord albo usunąć bazę danych lub tabelę, wyświetla się błąd 404 (strony nie znaleziono) albo, przy uwierzytelnianiu HTTP lub cookie, jestem proszony o ponowne zalogowanie się. Co jest źle?

Sprawdź wartość, dyrektywy $cfg['PmaAbsoluteUri'], którą ustawiłeś w pliku konfiguracyjnym phpMyAdmina.

[2.6] Dostaję błąd "Access denied for user: 'root@localhost' (Using password: YES)" podczas próby zalogowania się na serwer MySQL na hoście, który przekazuje port na mój host lokalny.

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 wyjaśnia: Oto rozwiązanie: jeżeli Twoim hostem jest "localhost" MySQL (w tym również narzędzie linii poleceń 'mysql') zawsze próbuje użyć połączenia z gniazdem, by przyspieszyć sprawy. I nie działa to w takiej konfiguracji z przekazywaniem portów.
Jeżeli wpiszesz "127.0.0.1" jako nazwę hosta, wszystko jest w porządku i MySQL używa połączenia TCP.


[3. Znane ograniczenia]


[3.1] Podczas używania uwierzytelniania HTTP, użytkownik, który się wylogował nie może się ponownie zalogować pod tym samym nickiem.

Jest to związane w mechanizmem uwierzytelniania (protokołem) używanym przez phpMyAdmina. Planujemy zmienić to kiedy tylko znajdziemy wystarczająco dużo wolnego czasu, by to zrobić, ale można obejść ten problem: po prostu zamknij wszystkie otwarte okna przegląderek i wtedy powróć do phpMyAdmin. Powinieneś móc zalogować się ponownie.

[3.2] Podczas zrzucania dużej tabeli w trybie kompresji dostaję błąd przekroczenia limitu pamięci albo limitu czasu.

W wersji 2.2.4 budujemy skompresowane zrzuty w pamięci, tak że duże zrzuty tabel mogą się zawieszać. Jedyna alternatywa, jaka przychodzi nam do głowy (używanie wywołań systemowych do mysqldumpa, a następnie gzipa lub bzip2) nie dałaby się zastosować w środowiskach gdzie PHP pracuje w trybie bezpiecznym: dostęp do programów systemowych jest ograniczony przez administratora systemu i egzekwowane są ograniczenia czasu. (alternatywa ta nie da się zastosować również w środowiskach z Windows, gdzie gzipa zwykle po prostu brak - przyp. tłum.)

[3.3] Kiedy zmieniam nazwę lub modyfikuję strukturę tabeli InnoDB, tracę związki z kluczem zewnętrznym.

Wygląda to na błąd InnoDB (poprawiony w MySQL 3.23.50?). Z drugiej strony, proszę pamiętać, że phpMyAdmin w wersji 2.3.0 nie wspiera InnoDB.

[3.4] Nie mogę zaimportować zrzutów stworzonych przez narzędzie mysqldump z dystrybucji serwera MySQL.

Problemem jest to, że mysqldump tworzy nieprawidłowe komentarze, takie jak te:

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

Niewłaściwą częścią kodu są poziome linie zrobione z myślników, które występują raz w każdym zrzucie stworzonym przez mysqldump. Jeżeli chcesz uruchomić swój zrzut, musisz przekształcić go na prawidłowy MySQL. Oznacza to, że musisz dodać biały znak po pierwszych dwóch myślnikach, albo dodać # przed nimi:
-- -------------------------------------------------------
lub
#---------------------------------------------------------

[3.3] Podczas używania zagnieżdżonych folderów ($cfg['LeftFrameTableSeparator']), niektóre wielokrotne hierarchie wyświetlane są w zły sposób!

Proszę zauważyć, że nie powinno się używać napisów oddzielających wielokrotnie bez żadnych znaków pomiędzy nimi albo na początku / końcu nazwy tabeli. Jeżeli musisz - pomyśl o użyciu innego TableSeparator-a lub wyłączeniu tej funkcji.


[4. Usługodawcy internetowi, instalacje dla wielu użytkowników]

[4.1] Jestem usługodawcą internetowym. Czy mogę skonfigurować jedną centralną kopię phpMyAdmina, czy też muszę instalować go dla osobno dla każdego klienta?

Począwszy od wersji 2.0.3 możesz skonfigurować centralną kopię phpMyAdmina dla wszystkich użytkowników. Rozwój tej funkcji został życzliwie zasponsorowany przez NetCologne GmbH. Wymaga ona poprawnie ustawionego zarządzania użytkownikami MySQL i uwierzytelniania HTTP lub cookie w phpMyAdminie. Zobacz punkt Instalacja, temat "Używanie uwierzytelniania HTTP".

[4.2] Jaki jest zalecany sposób na uczynienie phpMyAdmina odpornego na niepowołany dostęp?

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).
Jeżeli inni ludzie mają dostęp przez telnet do Twojego serwera, powinieneś używać funkcji uwierzytelniania HTTP phpMyAdmina.

Propozycje:

[4.3] Dostaję błędy o braku możliwości włączenia pliku w katalogu /lang lub /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 zawsze daje "Access denied" ("Dostęp zabroniony") podczas używania uwierzytelniania HTTP.

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

[4.5] Czy jest możliwe pozwolenie użytkownikom na tworzenie ich własnych baz danych?

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] Jak mogę używać dodatkowego uwierzytelniania podstawie hostów?

Jeżeli masz istniejące reguły ze starego pliku .htaccess, możesz je wziąć i dodać nazwę użytkownika pomiędzy napisami 'deny'/'allow' a 'from'. Użycie znaku wieloznacznego '%' dla nazwy użytkownika będzie tu dużą zaletą, jeśli pasuje to do Twojej instalacji. Następnie możesz po prostu dodać zaktualizowane linie do tablic $cfg['Servers'][$i]['AllowDeny']['rules'].

Jeśli potrzebujesz gotowego przykładu, możesz wypróbować ten fragment. Zabrania on użytkownikowi 'root' logowania się z innych sieci niż bloki prywatnej sieci IP.
    // zabroń rootowi logować się, pozwól tylko z sieci lokalnych
    $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] Okno uwierzytelniania jest wyświetlane więcej niż raz, dlaczego?

Zdarza się to gdy do uruchomienia phpMyAdmina używasz URL-a, który różni się od tego ustawionego w $cfg['PmaAbsoluteUri']. Na przykład brakuje "www" albo wpisany został adres IP, kiedy w pliku konfiguracyjnym została zdefiniowana nazwa domeny.


[5. Przeglądarki lub systemy operacyjne klientów]

[5.1] Nie mogę pozbyć się błędu pamięci a moje kontrolki nie funkcjonują kiedy próbuję stworzyć tabelę z ponad 14 polami.

Udało nam się odtworzyć ten problem jedynie pod Win98/98SE. Testując pod Windows NT 4 lub Windows 200 mogliśmy łatwo utworzyć ponad 60 pól.
Obejściem problemu jest stworzenie małej ilości pól i późniejszy powrót do właściwości tabeli i dodanie kolejnych pól.

[5.2] Z Xitami 2.5b4 phpMyAdmin nie przetwarza pól formularza.

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] Mam problemy ze zrzucaniem tabel w Konquerorze (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] Nie mogę używać trybu uwierzytelniania cookie, bo Internet Explorer nigdy nie przechowuje ciasteczek.

MS Internet Explorer wygląda na naprawdę dziurawego, jeśli chodzi o ciasteczka (cookies), przynajmniej do wersji 6. I dzięki Andrew Zivolupowi, wyśledziliśmy w tej dziedzinie także błąd PHP 4.1.1!
Tak więc, jeśli używasz PHP 4.1.1, spróbuj go zaktualizować do nowszej lub starszej wersji... to może zadziałać!

[5.5] W Internet Explorerze 5.0 podczas przeglądania rekordów dostaję błędy JavaScriptu.

Zaktualizuj Internet Explorera do wersji przynajmniej 5.5 SP2.

[5.6] W Internet Explorerze 5.0, 5.5 lub 6.0, dostaję błąd (w rodzaju "Strony nie znaleziono") podczas próby zmodyfikowania rekordu w tabeli z wieloma polami albo z polem tekstowym.

Twoja tabela nie ma ani klucza podstawowego, ani unikalnego, musimy więc używać długiego URL-a do identyfikacji tego rekordu. Przeglądarki te mają limit długości URL-a i takie sytuacje nie mają miejsca np. w Netscapie. Można obejść ten problem tworząc podstawowy lub unikalny klucz albo używając innej przeglądarki.

[5.7] Odświeżam (przeładowuję) stronę i wracam do strony z ekranem powitalnym.

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] W Mozilli 0.9.7 mam problemy z wysyłaniem zmodyfikowanego zapytania w polu zapytania.

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

[5.9] W Mozilli od 0.9.? do 1.0 i w Netscapie 7.0-PR1 nie mogę napisać białego znaku w obszarze edycyjnym zapytania SQL: strona przewija się w dół.

Jest to błąd Mozilli (zobacz błąd #26882 na BugZilli).

[5.10] W Netscapie 4.75 dostaję puste linijki pomiędzy każdym wierszem danych w wyeksportowanym pliku CSV.

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] Rozszerzone znaki ASCII, takie jak niemieckie litery z przegłosem (również tzw. polskie litery - przyp. tłum.) są źle wyświetlane.

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] Apple OS X: przeglądarka Safari zmienia specjalne znaki na "?".

Kwestia ta została zgłoszona przez użytkownika OS X, który dodaje, że Chimera, Netscape i Mozilla nie sprawiają tego problemu.

[5.13] Z Internet Explorerem 5.5 lub 6 i trybem uwierzytelniania HTTP, nie mogę zarządzać dwoma serwerami: loguję się na pierwszy, potem na drugi, ale jeśli przełączę się z powrotem na pierwszy, muszę logować się przy każdej operacji.

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

[5.14] W Operze 6 mogę się dostać do uwierzytelniania, ale potem nic się nie dzieje, jest tylko pusty ekran.

Jeśli $cfg['QueryFrameJS'] jest ustawione na TRUE, jest to błąd w Operze 6, która nie jest w stanie zinterpretować definicji ramek napisanych w JavaScript'cie. Prosimy o aktualizację co najmniej do Opery 7.


[6. Używanie phpMyAdmina]

[6.1] Nie mogę dodać nowych rekordów do tabeli / Nie mogę utworzyć tabeli - MySQL daje błąd SQL-a.

Uważnie zbadaj błąd SQL-a. Często problem jest spowodowany przez złe określenie typu pola.
Powszechnymi błędami są:

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

[6.2] Kiedy tworzę tabelę, klikam na pola wyboru Indeks dla dwóch kolumn, a phpMyAdmin tworzy tylko jeden indeks z tymi dwoma polami.

W phpMyAdminie 2.2.0 i 2.2.1 jest to sposób na tworzenie wielopolowych indeksów. Jeśli chcesz mieć dwa indeksy, utwórz pierwszy podczas tworzenia tabeli, zapisz, następnie wyświetl właściwości tabeli i kliknij na link Indeks, aby utworzyć drugi.

[6.3] Jak mogę wstawić wartość null do tabeli?

Począwszy od wersji 2.2.3 dla każdego pola, które może przybierać wartość null, istnieje odpowiednie pole wyboru. Przed 2.2.3 konieczne było wprowadzenie "null", bez cudzysłowów, jako wartości pola.

[6.4] Jak mogę utworzyć kopię zapasową tabeli albo bazy danych?

Kliknij na nazwie bazy danych lub nazwie tabeli w lewej ramce, pokażą się właściwości. Następnie w menu kliknij "Eksport", a będziesz mógł zrzucić strukturę, dane, albo i to, i to. Wygeneruje to standardowe zdania SQL, które będą mogły być użyte do odtworzenia bazy danych/tabeli.

Będziesz musiał wybrać "Zapisz jako plik", aby phpMyAdmin mógł przesłać wynikowy zrzut na Twoją stację. W zależności od konfiguracji PHP zobaczysz opcje kompresji zrzutu. Zobacz także zmienną konfiguracyjną $cfg['ExecTimeLimit'].

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

[6.5] Jak mogę odtworzyć (poprzez upload) moją bazę danych lub tabelę używająć zrzutów? Jak mogę uruchomić plik ".sql"?

Kliknij na nazwie bazy danych w lewej ramce, wyświetlone zostaną właściwości. Następnie w części "Wykonanie zapytania SQL" wprowadź nazwę pliku zrzutu albo użyj przycisku Przeglądanie. Następnie kliknij Wykonanie.

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

[6.6] Jak mogę użyć tabeli relacji w zapytaniu-przez-przykład?

Oto przykład tabeli z osobami, miastami i państwami, wszystkimi zamieszczonymi w bazie danych mydb. Jeśli nie masz tabeli PMA_relation, utwórz ją w sposób wyjaśniony w punkcie Konfiguracja. Następnie utwórz przykładowe tabele:

     CREATE TABLE REL_kraje (
       kod_kraju char(1) NOT NULL default '',
       opis varchar(10) NOT NULL default '',
       PRIMARY KEY (kod_kraju)
     ) TYPE=MyISAM;

     INSERT INTO REL_kraje VALUES ('K', 'Kanada');

     CREATE TABLE REL_osoby (
       id tinyint(4) NOT NULL auto_increment,
       imie_osoby varchar(32) NOT NULL default '',
       kod_miasta varchar(5) default '0',
       kod_kraju char(1) NOT NULL default '',
       PRIMARY KEY (id)
     ) TYPE=MyISAM;

     INSERT INTO REL_osoby VALUES (11, 'Marek', 'S', '');
     INSERT INTO REL_osoby VALUES (15, 'Paweł', 'S', 'K');

     CREATE TABLE REL_miasta (
       kod_miasta varchar(5) NOT NULL default '0',
       opis varchar(30) NOT NULL default '',
       PRIMARY KEY (kod_miasta)
     ) TYPE=MyISAM;

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

Aby ustawić odpowiednie łącza i wyświetlać informacje:

Następnie wypróbuj coś takiego:



[6.7] Jak mogę użyć funkcji "wyświetlanego pola"?

Skorzystawszy z poprzedniego przykładu, stwórz PMA_table_info, tak jak zostało to wyjaśnione w punkcie Konfiguracja, przeglądnij tabelę osoby, i przesuń kursor myszy na kod miasta lub kod kraju.

Jak włączyć dodatkową funkcję "wyświetlanego pola": rozwijalną listę możliwych wartości, wyjaśnia FAQ 6.21.


[6.8] Jak mogę stworzyć schemat PDF mojej bazy danych?

Na początek musisz wypełnić zmienne konfiguracyjne "relation", "table_coords" i "pdf_pages".

Następnie pomyśl jak ma wyglądać Twój schemat: jakie tabele będą na jakich stronach.

[6.9] phpMyAdmin zmienia typ jednej z kolumn!

Nie, to MySQL robi ciche zmiany typów kolumn.


[6.10] Co się dzieje z podkreśleniami w nazwie bazy danych podczas tworzenia uprawnienia?

Jeśli nie umieścisz odwrotnego ukośnika przed podkreśleniem, jest to wieloznaczne nadanie uprawnień a podkreślenie oznacza "dowolny znak". Więc jeśli nazwą bazy danych jest "john_db", użytkownik dostanie prawa do john1db, john2db...

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