Dokumentacja phpMyAdmina 2.5.2-pl1
Wymagania
-
PHP3, PHP4 lub PHP5: phpMyAdmin często używa funkcji PHP 'str_replace()',
która została dodana w PHP 3.0.6, ale była błędna aż do
PHP 3.0.8.
A więc nie powinno się uruchamiać tego skryptu
przy użyciu PHP3 < 3.0.8.
PHP musi być także skompilowane z obsługą
MySQL;
Jeśli chcesz wyświetlać miniaturki JPEG-ów w oryginalnych proporcjach,
wymagana jest w PHP również obsługa GD2.
-
MySQL (przetestowano wersje 3.21.x, 3.22.x, 3.23.x, 4.0.x i 4.1.x);
Uwaga: Zaimplementowana obsługa MySQL 4.1.x jest eksperymentalna!
-
przeglądarka (!).
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:
- tworzyć i usuwać bazy danych
- tworzyć, kopiować, usuwać, zmieniać nazwy i modyfikować tabele
- zarządzać tabelami
- usuwać, edytować i dodawać pola
- wykonywać dowolne instrukcje SQL, nawet sekwencje zapytań
- zarządzać indeksami pól
- wczytywać tekst z plików do tabel
- tworzyć (*) i wczytywać zrzuty tabel
- eksportować (*) dane do formatów CSV, XML i Latex
- administrować wieloma serwerami
- zarządzać użytkownikami MySQL i ich uprawnieniami
- sprawdzać spójność powiązań
- automatycznie łączyć odpowiednie tabele za pomocą zapytania-przez-przykład
- tworzyć grafikę PDF z planem bazy danych
- przeszukiwać globalnie bazę danych lub jej część
- przekształcać składowane dane do dowolnego formatu używając zestawu predefiniowanych funkcji,
np. wyświetlać dane BLOB jako obrazek lub link do pobrania lub ...
-
komunikować się w 42 różnych językach
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:
- 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.
- 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.
- 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.
- 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.
- 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 .
- 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:
- Proszę nie zastępować nowego config.inc.php3 starszym: ten pierwszy
może oferować nowe zmienne konfiguracyjne, a nowe wersje mogą ich wymagać
do normalnego działania. Zamiast tego, sugeruje się, by wprowadzić wartości
właściwe dla Twojego serwisu do nowego pliku.
Używanie trybów uwierzytelniania:
- Tryby uwierzytelniania HTTP i cookie są zalecane w środowisku
wielu użytkowników, kiedy chcesz dać użytkownikom dostęp do ich własnych baz danych
i nie chcesz, żeby sobie nawzajem przeszkadzali.
Niemniej jednak należy być ostrożnym, gdyż MS Internet Explorer wydaje się być wyjątkowo
dziurawym, jeśli chodzi o ciasteczka (cookies), przynajmniej do wersji 6. PHP 4.1.1 jest
również w tej dziedzinie trochę dziurawy!
Nawet w środowisku jednego użytkownika możesz woleć używać
trybów HTTP lub cookie, aby nazwa użytkownika/hasło nie były umieszczone
w pliku konfiguracyjnym.
- Tryby uwierzytelniania HTTP i cookie są bezpieczniejsze: hasło MySQL
nie musi być przechowywane z pliku konfiguracyjnym phpMyAdmina
(z wyjątkiem "controlusera" - patrz
punkt Konfiguracja).
Z drugiej strony, należy pamiętać, że hasło - jeżeli nie używasz protokołu HTTPS -
jest przesyłane czystym tekstem.
W trybie cookie hasło, zakodowane algorytmem blowfish,
jest przechowywane w tymczasowym ciasteczku.
-
W trybach 'HTTP' i 'cookie' phpMyAdmin wymaga controlusera, który ma
tylko uprawnienia SELECT do tabel mysql.user (wszystkie
pola z wyjątkiem "Password"), mysql.db (wszystkie pola)
i mysql.tables_priv (wszystkie pola z wyjątkiem "Grantor"
i "Timestamp") .
Musisz określić szczegółowe informacje na temat controlusera w pliku
config.inc.php3, ustawiając opcje
$cfg['Servers'][$i]['controluser'] i
$cfg['Servers'][$i]['controlpass'].
W następującym przykładzie założyliśmy, że chcesz użyć pma jako controlusera
i pmapass jako controlpass (jego hasło), ale to tylko przykład:
użyj czegoś innego w swoim pliku!
Oczywiście musisz zamienić localhost na nazwę hosta serwera WWW,
jeśli nie jest taki sam jak serwera MySQL.
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO 'pma'@'localhost';
Jeśli używasz starszej wersji MySQL-a (poniżej 4.0.2),
użyj tego zapytania:
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
) ON mysql.user TO 'pma'@'localhost';
... a jeśli chcesz używać wielu nowych funkcji relacyjnych i móc
zapamiętywać zapytania SQL:
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
(to oczywiście wymaga posiadania specjalnej bazy danych dla
phpMyAdmina, co zostanie wyjaśnione dalej)
Oczywiście, powyższe zapytania działają tylko jeśli Twoja wersja MySQL-a
obsługuje polecenie GRANT. Jest tak w przypadku wersji 3.22.11 i następnych.
-
Każdy z prawdziwych użytkowników powinien uzyskać
uprawnienia do poszczególnych pojedynczych baz danych. Zwykle nie powinieneś
dawać uprawnień globalnych zwykłemu użytkownikowi, chyba że zdajesz sobie sprawę
ze skutków takich uprawnień
(np. tworzysz superużytkownika).
Na przykład by nadać użytkownikowi prawdziwy_uzytkownik wszystkie
uprawnienia do bazy danych baza_uzytkownika:
GRANT ALL PRIVILEGES ON baza_uzytkownika.* TO 'prawdziwy_uzytkownik'@localhost IDENTIFIED BY 'prawdziwe_haslo';
To, co może on teraz zrobić jest całkowicie kontrolowane przez system
zarządzania użytkownikami MySQL.
W trybach uwierzytelniania HTTP lub cookie nie trzeba wypełniać pól user/password
tablicy $cfg['Servers'].
tryb uwierzytelniania 'http':
- W wersjach wcześniejszych niż 2.2.3. był nazywany 'advanced'.
- Wprowadzony w wersji 1.3.0, używa prostego uwierzytelniania HTTP i
pozwala zalogować się jako dowolny prawidłowy użytkownik MySQL.
- Jest obsługiwany jedynie gdy PHP działa jako moduł Apache'a, nie jako
CGI.
tryb uwierzytelniania 'cookie':
- Możesz użyć tej metody jako zamiennik uwierzytelniania
HTTP (na przykład jeśli używasz IIS-a).
- Oczywiście użytkownik musi mieć w swojej przeglądarce włączone ciasteczka (cookies).
- W tym trybie użytkownik może faktycznie wylogować się z phpMyAdmina i zalogować się z powrotem
z taką samą nazwą użytkownika.
tryb uwierzytelniania 'config':
- Ten tryb jest mniej bezpieczny, ponieważ wymaga wypełniania pól
$cfg['Servers'][$i]['user'] i
$cfg['Servers'][$i]['password'].
Nie musisz jednak ustawiać "controlusera":
użycie $cfg['Servers'][$i]['only_db'] powinno wystarczyć.
- W części ISP FAQ zostało wyjaśnione jak chronić
Twój plik konfiguracyjny.
- Dla dodatkowego bezpieczeństwa w tym trybie, możesz rozważyć
uwierzytelnianiu w oparciu o hosty: dyrektywy konfiguracyjne
$cfg['Servers'][$i]['AllowDeny']['order']
i $cfg['Servers'][$i]['AllowDeny']['rules'].
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.
-
uwierzytelnianie 'config'
($auth_type = 'config') to zwykły, stary
sposób: nazwa użytkownika i hasło są przechowywane w
config.inc.php3.
-
tryb uwierzytelniania 'cookie'
($auth_type = 'cookie'), wprowadzony w
wersji 2.2.3, pozwala zalogować się jako dowolny prawidłowy użytkownik MySQL
za pomocą... ciasteczek (cookies). Nazwa użytkownika i hasło są przechowywane
w ciasteczkach (cookies) podczas trwania sesji, a hasło jest kasowane,
kiedy sesja się kończy.
-
uwierzytelnianie 'http' (we wcześniejszych wersjach nazywane 'advanced')
($auth_type = 'http'),
wprowadzone w wersji 1.3.0, pozwala zalogować się jako dowolny
prawidłowy użytkownik MySQL poprzez uwierzytelnianie na poziomie
protokołu 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:
-
stwórz nową bazę danych dla phpMyAdmina:
CREATE DATABASE phpmyadmin;
Zauważ, że "controluser" musi mieć uprawnienia
SELECT, INSERT, UPDATE i DELETE
do tej bazy danych. Oto zapytanie, które nada
te uprawnienia (używając "phpmyadmin"
jako nazwy bazy danych i "pma" jako
controlusera):
GRANT SELECT,INSERT,UPDATE,DELETE ON phpmyadmin.* to 'pma'@'localhost';
nie dawaj żadnym innym użytkowników praw dostępu do tej bazy danych.
-
wprowadź nazwę bazy danych do $cfg['Servers'][$i]['pmadb']
-
$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:
- ustawić "pmadb", jak zostało wyjaśnione powyżej
- w obrębie tej bazy danych stworzyć tabelę wg poniższego schematu:
CREATE TABLE `PMA_bookmark` (
id int(11) DEFAULT '0' NOT NULL auto_increment,
dbase varchar(255) NOT NULL,
user varchar(255) NOT NULL,
label varchar(255) NOT NULL,
query text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM COMMENT='Zapamiętane zapytania';
- wprowadzić nazwę tabeli do
$cfg['Servers'][$i]['bookmarktable']
-
$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
-
stworzenia klikalnymi, gdy przeglądasz główną tabelę, wartości danych,
które wskazują na tabelę zewnętrzną;
-
w czasie przeglądania tabeli głównej - pokazania w opcjonalnej etykietce narzędzia
"wyświetlanego pola", gdy przeniesiesz mysz na kolumnę
zawierającą klucz zewnętrzny (używana jest również tabela 'table_info');
(zobacz FAQ 6.7)
-
pokazania rozwijalnej listy możliwych kluczy zewnętrznych w trybie
edycji/wstawiania (pokazywane są: wartość klucza i
"wyświetlane pole")
(zobacz 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;
-
w "zapytaniu przez przykład" - automatycznego tworzenia złączeń (zobacz FAQ 6.6)
-
umożliwienia otrzymania schematu PDF bazy danych (używana jest również tabela
'table_coords').
Klucze mogą być liczbowe lub znakowe.
Aby umożliwić korzystanie z tej funkcji, superużytkownik musi:
- ustawić "pmadb", jak zostało wyjaśnione powyżej
-
w obrębie tej bazy danych stworzyć tabelę według poniższego schematu:
CREATE TABLE `PMA_relation` (
`master_db` varchar(64) NOT NULL default '',
`master_table` varchar(64) NOT NULL default '',
`master_field` varchar(64) NOT NULL default '',
`foreign_db` varchar(64) NOT NULL default '',
`foreign_table` varchar(64) NOT NULL default '',
`foreign_field` varchar(64) NOT NULL default '',
PRIMARY KEY (`master_db`, `master_table`, `master_field`),
KEY foreign_field (foreign_db, foreign_table)
) TYPE=MyISAM COMMENT='Tabela relacji';
-
umieścić nazwę tabeli relacji w
$cfg['Servers'][$i]['relation']
-
teraz jako normalny użytkownik otwórz phpMyAdmina i dla każdej z twoich normalnych
tabel, dla których chcesz używać tej funkcji, kliknij na
"Struktura/Widok relacyjny/" i wybierz pola zewnętrzne.
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:
- ustawić "pmadb", jak zostało wyjaśnione powyżej
- w obrębie tej bazy danych stworzyć tabelę wg poniższego schematu:
CREATE TABLE `PMA_table_info` (
`db_name` varchar(64) NOT NULL default '',
`table_name` varchar(64) NOT NULL default '',
`display_field` varchar(64) NOT NULL default '',
PRIMARY KEY (`db_name`, `table_name`)
) TYPE=MyISAM COMMENT='Informacje o tabelach dla phpMyAdmina';
-
umieścić nazwę tabeli w
$cfg['Servers'][$i]['table_info']
-
następnie dla każdej tabeli, gdzie chcesz użyj tej funkcji,
kliknij "Struktura/Widok relacyjny/Wybierz wyświetlane pole",
aby wybrać pole.
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:
- ustawić "pmadb", jak zostało wyjaśnione powyżej
-
w obrębie tej bazy danych stworzyć tabelę wg poniższego schematu:
CREATE TABLE `PMA_table_coords` (
`db_name` varchar(64) NOT NULL default '',
`table_name` varchar(64) NOT NULL default '',
`pdf_page_number` int NOT NULL default '0',
`x` float unsigned NOT NULL default '0',
`y` float unsigned NOT NULL default '0',
PRIMARY KEY (`db_name`, `table_name`, `pdf_page_number`)
) TYPE=MyISAM COMMENT='Współrzędne tabeli dla PDF-ów phpMyAdmina';
-
również w obrębie tej bazy danych stworzyć:
CREATE TABLE `PMA_pdf_pages` (
`db_name` varchar(64) NOT NULL default '',
`page_nr` int(10) unsigned NOT NULL auto_increment,
`page_descr` varchar(50) NOT NULL default '',
PRIMARY KEY (page_nr),
KEY (db_name)
) TYPE=MyISAM COMMENT='Strony relacji PDF dla PMA';
-
umieścić nazwę pierwszej tabeli w
$cfg['Servers'][$i]['table_coords'],
a drugiej w
$cfg['Servers'][$i]['pdf_pages']
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:
- ustawić "pmadb", jak zostało wyjaśnione powyżej
-
w obrębie tej bazy danych stworzyć tabelę według poniższego schematu:
CREATE TABLE `PMA_column_info` (
id int(5) unsigned NOT NULL auto_increment,
db_name varchar(64) NOT NULL default '',
table_name varchar(64) NOT NULL default '',
column_name varchar(64) NOT NULL default '',
`comment` varchar(255) NOT NULL default '',
mimetype varchar(255) NOT NULL default '',
transformation varchar(255) NOT NULL default '',
transformation_options varchar(255) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY db_name (db_name, table_name, column_name)
) TYPE=MyISAM COMMENT='Komentarze dla kolumn';
-
umieścić nazwę tabeli w
$cfg['Servers'][$i]['column_info']
-
Aby zaktualizować tabelę column_comments sprzed 2.5.0, użyj tego:
ALTER TABLE `PMA_column_comments`
ADD `mimetype` VARCHAR( 255 ) NOT NULL ,
ADD `transformation` VARCHAR( 255 ) NOT NULL ,
ADD `transformation_options` VARCHAR( 255 ) NOT NULL ;
i pamiętaj, że w config.inc.php zmienna zmieniła nazwę
z
$cfg['Servers'][$i]['column_comments'] na $cfg['Servers'][$i]['column_info']
-
$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:
- ustawić "pmadb", jak zostało wyjaśnione powyżej
-
w obrębie tej bazy danych stworzyć tabelę według poniższego schematu:
CREATE TABLE `PMA_history` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`username` VARCHAR( 64 ) NOT NULL ,
`db` VARCHAR( 64 ) NOT NULL ,
`table` VARCHAR( 64 ) NOT NULL ,
`timevalue` TIMESTAMP NOT NULL ,
`sqlquery` TEXT NOT NULL ,
PRIMARY KEY ( `id` ) ,
INDEX ( `username` , `db` , `table` , `timevalue` )
) TYPE=MyISAM COMMENT='Historia SQL';
-
umieścić nazwę tabeli w
$cfg['Servers'][$i]['history']
-
$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ą:
-
input - umożliwia ograniczenie długości tekstu do długości pola
MySQL, ale powoduje problemy z nowymi liniami w polach
-
textarea - żadnych problemów z nowymi liniami w polach, ale też żadnych
ograniczeń długości
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:
- old - stary styl używany w phpMyAdminie 2.3.0 i w wersjach wcześniejszych
- 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'] 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ą:
- 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
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ą:
-
auto - wykryj automatycznie; jest to dosyć kosztowna
operacja dla PHP < 4.3.0, zaleca się więc zmienić to
zależnie od faktycznych możliwościami serwera
- yes - funkcje GD 2 mogą być użyte
- no - funkcje GD 2 nie mogą być użyte
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:
- 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 identyfikator pasujący do zmiennej SQL "@coś"
- 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']['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'.
- Pole 'Typ MIME' jest polem wyboru. Możesz pozostawić je puste
lub użyć wartości 'auto' [funkcja ta jest jeszcze niedostępna]. Proszę zauważyć,
że transformacje są nieaktywne, dopóki nie zostanie wybrany żaden typ MIME.
- 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. 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:
- 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()
- 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()
- 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)
- 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)
- 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:
- 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
- umieść upload_tmp_dir = /tmp/php w pliku php.ini
- zrestartuj Apache'a
[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:
-
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.
Zakładając, że
używasz PHP 3.0.10 lub lepszego, możesz określić gniazdo, które będzie używane gdy
otwierasz połączenie. Aby to zrobić w phpMyAdminie, musisz uzupełnić informację
o gnieździe w config.inc.php3.
Na przykład:
$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').
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:
-
Twój plik config.inc.php3 powinien mieć prawa 660 (chmod 660).
-
Wszystkie pliki phpMyAdmina powinny należeć do użytkownika phpmy i grupy apache (chown phpmy.apache),
gdzie phpmy jest użytkownikiem, którego hasło jest znane tylko Tobie, a apache jest
grupą z jaką uruchomiony jest Apache.
-
Powinieneś używać PHP w trybie bezpiecznym, aby ochronić się przed użytkownikami, którzy próbują
włączać config.inc.php3 w swoich skryptach.
[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:
-
$cfg['Servers'][$i]['controluser'] lub
$cfg['Servers'][$i]['controlpass'] są błędne.
-
Nazwa-użytkownika/hasło, które zostały podane w oknie logowania są błędne.
-
Jest już ustawiony jakiś mechanizm bezpieczeństwa dla katalogu
phpMyAdmina, np. plik .htaccess. Będzie on kolidował z
uwierzytelnianiem phpMyAdmina, więc usuń go.
[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ą:
- 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] 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:
- 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
- w "Wybierz wyświetlane pole", wybierz "opis"
- powtórz dwa ostatnie kroki dla tabeli "REL_kraje"
Następnie wypróbuj coś takiego:
- Klinkij na nazwie bazy danych w lewej ramce
- Wybierz "Zapytanie"
- Użyj tabel: osoby, miasta, kraje
- Kliknij na "Zmianę zapytania"
- W wierszu pól wybierz osoby.imie_osoby i kliknij na
kratkę "Pokazanie"
- 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] 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.
- Kliknij na nazwie bazy danych w lewej ramce
- Wybierz "Strukturę"
- Wybierz "Edycję stron PDF", która powinna być gdzieś
na dole strony
- Wprowadź nazwę pierwszej strony pdf i wyślij
- Wybierz tę stronę do edycji
- Dodaj tabelę, którą chcesz pokazać na tej stronie i jej współrzędne, a
następnie wyślij.
Na początku będziesz musiał zgadnąć współrzędne, tak więc po prostu
oczekuj obszaru około 297 × 210 i umieść współrzędne tabel
gdzieś w jego obrębie; będziesz miał możliwość zobaczyć, co się stało
i zmienić je później.
Na przykład x=100 i y=200 oznacza, że tabela będzie położona 200 mm
poniżej i 100 mm na prawo od lewego górnego rogu.
Tak naprawdę jeśli będziesz miał szerokość ponad 300 lub wysokość ponad
200, zostanie to automatycznie przeskalowane, ale 200×100 jest
dobre, by zacząć orientować się w tym, jakich współrzędnych używać.
- Po wysłaniu każdej tabeli będziesz miał możliwość wysłania
następnych
- Kiedy wprowadzisz wystarczającą liczbę tabel, kliknij ponownie
na nazwę swojej bazy danych w lewej ramce
- Teraz, powinieneś móc ponownie wybrać
"Wyświetl schemat PDF"
Dla testów może być użyteczne wyświetlenie także siatki, tak byś mógł zobaczyć
współrzędne, których użyłeś.
Możesz także wybrać kolor i wysłać.
- Zapisz zaproponowany plik jako coś w rodzaju Schemat.pdf
(Internet Explorer ma błąd, który może spowodować zaproponowanie nazwy
bez rozszerzenia. Pod Windows rozszerzenie ".pdf" jest
ważne, pod innymi systemami operacyjnymi powinno wystarczyć
zapisanie pliku pod proponowaną nazwą).
[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śl