Initial import.
[openemr.git] / interface / main / myadmin / Documentation.txt
blob907c12f34a4b0a90825d1c97e1aa427dff2d11f8
2    ______________________________________________________________________
4    Top    -    Requirements    -    Introduction    -    Installation   -
5    Configuration
6    Transformations  -  FAQ  -  Developers  -  Credits  -  Translators
7    ______________________________________________________________________
9                        phpMyAdmin 2.5.5pl1 Documentation
11      * SourceForge phpMyAdmin project page   [ http://www.phpmyadmin.net/
12        ] 
13      * Local documents:
14           + Version history: ChangeLog
15           + General notes: README
16           + License: LICENSE
17      * Documentation    version:    $Id:   Documentation.html,v   2.9.2.4
18        2004/01/03 02:19:10 lem9 Exp $
20 Requirements
22      * php 4.1.0 or later
23        If  you  want  to  display  inline  thumbnails  of  JPEGs with the
24        original aspect ratio, you also need GD2 support in PHP.
25      * MySQL 3.23.32 or newer (details);
26      * a web-browser (doh!).
28 Introduction
30    phpMyAdmin  can  manage  a  whole MySQL server (needs a super-user) as
31    well  as  a  single  database.  To accomplish the latter you'll need a
32    properly  set  up  MySQL  user  who  can  read/write  only the desired
33    database.  It's up to you to look up the appropriate part in the MySQL
34    manual.
35    Currently phpMyAdmin can:
36      * create and drop databases
37      * create, copy, drop, rename and alter tables
38      * do table maintenance
39      * delete, edit and add fields
40      * execute any SQL-statement, even batch-queries
41      * manage keys on fields
42      * load text files into tables
43      * create (*) and read dumps of tables
44      * export (*) data to CSV, XML and Latex formats
45      * administer multiple servers
46      * manage MySQL users and privileges
47      * check referential integrity in MyISAM tables
48      * using Query-by-example (QBE), create complex queries automatically
49        connecting required tables
50      * create PDF graphics of your Database layout
51      * search globally in a database or a subset of it
52      * transform  stored  data  into any format using a set of predefined
53        functions,  like displaying BLOB-data as image or download-link or
54        ...
55      * support InnoDB tables and foreign keys (see FAQ 3.6)
56      * communicate in 47 different languages
58    (*)   phpMyAdmin  can compress (Zip, GZip -RFC 1952- or Bzip2 formats)
59    dumps  and  CSV  exports  if  you  use PHP4 >= 4.0.4 with Zlib support
60    (--with-zlib) and/or Bzip2 support (--with-bz2).
62 Installation
64    NOTE:  phpMyAdmin  does  not apply any special security methods to the
65    MySQL  database  server. It is still the system administrator's job to
66    grant  permissions  on  the  MySQL  databases  properly.  phpMyAdmin's
67    "Privileges" page can be used for this.
69    Warning  for  Mac  users:if  you  are  on a MacOS version before OS X,
70    StuffIt unstuffs with Mac formats.
71    So  you'll  have  to  resave as in BBEdit to Unix style ALL phpMyAdmin
72    scripts before uploading them to your server, as PHP seems not to like
73    Mac-style end of lines character ("\r").
75    Quick Install:
76     1. Untar   or   unzip   the   distribution  (be  sure  to  unzip  the
77        subdirectories):   tar   -xzvf   phpMyAdmin_x.x.x.tar.gz  in  your
78        webserver's document root. If you don't have direct access to your
79        document root, put the files in a directory on your local machine,
80        and,  after  step  3,  transfer  the  directory on your web server
81        using, for example, ftp.
82     2. Open  the  file  config.inc.php in your favorite editor and change
83        the values for host, user, password and authentication mode to fit
84        your environment. Here, "host" means the MySQL server. Also insert
85        the  correct  value  for  $cfg['PmaAbsoluteUri'].  Have  a look at
86        Configuration section for an explanation of all values.
87     3. It  is  recommended  that  you  protect the directory in which you
88        installed  phpMyAdmin  (unless  it's  on a closed intranet, or you
89        wish  to  use  HTTP  or  cookie  authentication), for example with
90        HTTP-AUTH (in a .htaccess file). See the multi-user sub-section of
91        the FAQ for additional information, especially FAQ 4.4.
92     4. Open  the file <www.your-host.com>/<your-install-dir>/index.php in
93        your  browser.  phpMyAdmin should now display a welcome screen and
94        your  databases,  or  a  login  dialog  if  using  HTTP  or cookie
95        authentication mode.
96     5. For a whole set of new features (bookmarks, comments, SQL-history,
97        PDF-generation,  field  contents transformation, etc.) you need to
98        create  a  set  of  tables  in  your database. Please look at your
99        scripts/   directory,   where   you  should  find  a  file  called
100        create_tables.sql. (If you are using a Windows server, pay special
101        attention  to  FAQ  1.23).  You can already use your phpMyAdmin to
102        create  the  tables  for you. Please be aware that you may have to
103        have special (administrator) privileges to create the database and
104        tables.  After  having  imported  the  create_tables.sql file, you
105        should  specify  the  table names in your config.inc.php file. The
106        directives  used  for  that  can  be  found  in  the Configuration
107        section.
109    Upgrading from an older version:
110      * Please  do not copy your older config.inc.php over the new one: it
111        may  offer  new  configuration  variables, and the new version may
112        depend  on  these  for normal behavior. It is suggested instead to
113        insert your site values in the new one.
115    Using authentication modes:
116      * HTTP   and  cookie  authentication  modes  are  recommended  in  a
117        multi-user  environment  where  you  want  to give users access to
118        their own database and don't want them to play around with others.
119        Nevertheless be aware that MS Internet Explorer seems to be really
120        buggy  about  cookies,  at  least till version 6. And PHP 4.1.1 is
121        also a bit buggy in this area!
122        Even in a single-user environment, you might prefer to use HTTP or
123        cookie  mode  so  that your user/password pair are not in clear in
124        the configuration file.
125      * HTTP  and  cookie  authentication modes are more secure: the MySQL
126        password  does  not need to be set in the phpMyAdmin configuration
127        file   (except   for  the  "controluser"  -see  the  Configuration
128        section).
129        However,  keep  in  mind  that the password travels in plain text,
130        unless you are using the HTTPS protocol.
131        In  cookie  mode,  the  password  is  stored,  encrypted  with the
132        blowfish algorithm, in a temporary cookie.
133      * For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that
134        has  only  the  SELECT  privilege  on  the mysql.user (all columns
135        except  "Password"),  mysql.db  (all  columns) & mysql.tables_priv
136        (all columns except "Grantor" & "Timestamp") tables.
137        You   must   specify  the  details  for  the  controluser  in  the
138        config.inc.php  file under the $cfg['Servers'][$i]['controluser']&
139        $cfg['Servers'][$i]['controlpass'] settings.
140        The  following  example  assumes  you  want  to  use  pma  as  the
141        controluser  and  pmapass  as the controlpass, but this is only an
142        example: use something else in your file!
143        Of course you have to replace localhost by the webserver's host if
144        it's not the same as the MySQL server's one.
146 GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
147 GRANT SELECT (
148     Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
149     Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
150     File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
151     Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
152     Execute_priv, Repl_slave_priv, Repl_client_priv
153     ) ON mysql.user TO 'pma'@'localhost';
154 GRANT SELECT ON mysql.db TO 'pma'@'localhost';
155 GRANT SELECT ON mysql.host TO 'pma'@'localhost';
156 GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
157     ON mysql.tables_priv TO 'pma'@'localhost';
159        If  you  are  using an old MySQL version (below 4.0.2), please use
160        this query instead of the second one:
162 GRANT SELECT (
163     Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
164     Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
165     File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
166     ) ON mysql.user TO 'pma'@'localhost';
168        ...  and  if  you  want  to use the many new relation and bookmark
169        features:
171 GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
173        (this  of course requires you to have a special DB for phpMyAdmin,
174        the contents will be explained later)
175        Of  course,  the  above  queries  only  work if your MySQL version
176        supports the GRANT command. This is the case since 3.22.11.
177      * Then  each of the true users should be granted a set of privileges
178        on  a  set  of  particular  databases. Normally you shouldn't give
179        global  privileges  to an ordinary user, unless you understand the
180        impact  of  those  privileges  (for  example,  you  are creating a
181        superuser).
182        For  example,  to  grant the user real_user with all privileges on
183        the database user_base:
184           GRANT  ALL  PRIVILEGES  ON user_base.* TO 'real_user'@localhost
185        IDENTIFIED BY 'real_password';
186        What  the user may now do is controlled entirely by the MySQL user
187        management system.
188        With  HTTP  or  cookie authentication mode, you don't need to fill
189        the user/password fields inside the $cfg['Servers'] array.
191    'http' authentication mode:
192      * Was called 'advanced' in versions before 2.2.3.
193      * Introduced  in 1.3.0, it uses Basic HTTP authentication method and
194        allows you to login as any valid MySQL user.
195      * Is  only  supported with PHP running as an Apache module, not with
196        CGI.
197      * See  also  FAQ  4.4  about not using the .htaccess mechanism along
198        with 'http' authentication mode.
200    'cookie' authentication mode:
201      * You   can   use   this  method  as  a  replacement  for  the  HTTP
202        authentication (for example, if you're running IIS).
203      * Obviously, the user must enable cookies in the browser.
204      * With  this  mode, the use can truly logout of phpMyAdmin and login
205        back with the same username.
206      * If    you    want    to    login    to    arbitrary   server   see
207        $cfg['AllowArbitraryServer'] directive.
209    'config' authentication mode:
210      * This  mode  is the less secure one because it requires you to fill
211        the $cfg['Servers'][$i]['user'] and
212        $cfg['Servers'][$i]['password'] fields.
213        But  you  don't  need  to  setup  a  "controluser" here: using the
214        $cfg['Servers'][$i]['only_db'] might be enough.
215      * In  the  ISP  FAQ  section,  there  is  an entry explaining how to
216        protect your configuration file.
217      * For additional security in this mode, you may wish to consider the
218        Host  authentication $cfg['Servers'][$i]['AllowDeny']['order'] and
219        $cfg['Servers'][$i]['AllowDeny']['rules']            configuration
220        directives.
222 Configuration
224    Warning  for  Mac  users:  PHP  seems  not  to  like  Mac end of lines
225    character  ("\r").  So ensure you choose the option that allows to use
226    the  *nix  end  of  line  character  ("\n") in your text editor before
227    registering a script you have modified.
229    All configurable data is placed in config.inc.php.
231    $cfg['PmaAbsoluteUri'] string
232           Sets  here the complete URL (with full path) to your phpMyAdmin
233           version. E.g.
234           http://www.your_web.net/path_to_your_phpMyAdmin_directory/.
235           phpMyAdmin  needs  this setting, because of requirements of the
236           HTTP protocol, explained in RFC2616, section 14.30.
237           Don't  forget  the  slash  at the end of your URL. The URL must
238           contain  characters  that  are  valid  for  a  URL, and on some
239           servers, the path is case-sensitive.
240           Starting  with  version  2.3.0,  you  can  try  to  leave  this
241           parameter  empty,  because the program tries to auto-detect its
242           proper value. Additional details are in the configuration file.
243           Alternatively,  this  setting can be dynamically completed. For
244           example, you can try to use such a kind of code:
246 $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
247                        . $_SERVER['HTTP_HOST']
248                        . (!empty($_SERVER['SERVER_PORT']) ? ':' . $_SERVER['SERVER_PORT'] : '')
249                        . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')+1);
251     or
253 $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
254                        . $_SERVER['SERVER_NAME']
255                        . (!empty($_SERVER['SERVER_PORT']) ? ':' . $_SERVER['SERVER_PORT'] : '')
256                        . substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/')+1);
259           Please   note   that   the  $_SERVER  array  doesn't  exist  in
260           PHP < 4.1.0.  Try  to  replace $_SERVER by $HTTP_SERVER_VARS or
261           $GLOBALS in this case.
263    $cfg['PmaAbsoluteUri_DisableWarning'] boolean
264           By  default,  when  you leave $cfg['PmaAbsoluteUri'] empty, and
265           the  system detects your absolute URI automatically, we display
266           a  warning  to  remind  you.  If  you have tested the automatic
267           detection,  and it works perfectly for your setup, then you can
268           set this variable to squelch the warning.
270    $cfg['PmaNoRelation_DisableWarning'] boolean
271           Starting with version 2.3.0 phpMyAdmin offers a lot of features
272           to    work    with    master    /   foreign   -   tables   (see
273           $cfg['Servers'][$i]['pmadb']).
274           If  you tried to set this up and it does not work for you, have
275           a  look on the "Structure" page of one database where you would
276           like  to  use  it.  You  will find a link that will analyze why
277           those features have been disabled.
278           If  you  do not want to use those features set this variable to
279           TRUE to stop this message from appearing.
281    $cfg['blowfish_secret'] string
282           Starting  with  version  2.5.2,  the  'cookie'  auth_type  uses
283           blowfish algorithm to encrypt the password.
284           If  at  least one server configuration uses 'cookie' auth_type,
285           enter  here  a  passphrase  of your choice that will be used by
286           blowfish.
288    $cfg['Servers'] array
289           Since  version 1.4.2, phpMyAdmin supports the administration of
290           multiple  MySQL servers. Therefore, a $cfg['Servers']-array has
291           been  added  which  contains  the  login  information  for  the
292           different   servers.   The   first  $cfg['Servers'][$i]['host']
293           contains   the   hostname  of  the  first  server,  the  second
294           $cfg['Servers'][$i]['host']  the hostname of the second server,
295           etc.  If  you  have only one server to administer, simply leave
296           free the hostname of the other $cfg['Server']-entries.
298    $cfg['Servers'][$i]['host'] string
299           The  hostname  or  IP  address of your $i-th MySQL-server. E.g.
300           localhost.
302    $cfg['Servers'][$i]['port'] string
303           The  port-number  of  your  $i-th MySQL-server. Default is 3306
304           (leave  blank).  If  you use "localhost" as the hostname, MySQL
305           ignores  this  port  number and connects with the socket, so if
306           you  want to connect to a port different from the default port,
307           use "127.0.0.1" or the real hostname in
308           $cfg['Servers'][$i]['host'].
310    $cfg['Servers'][$i]['socket'] string
311           The path to the socket to use. Leave blank for default.
312           To use the socket feature you must run PHP 3.0.10 or more.
314    $cfg['Servers'][$i]['connect_type'] string
315           What type connection to use with the MySQL server. Your options
316           are  'socket'  &  'tcp'. It defaults to 'tcp' as that is nearly
317           guaranteed  to be available on all MySQL servers, while sockets
318           are not supported on some platforms.
319           To  use  the socket mode, your MySQL server must be on the same
320           machine as the Web server.
322    $cfg['Servers'][$i]['compress'] boolean
323           Whether  to  use  a  compressed  protocol  for the MySQL server
324           connection or not (experimental).
325           This feature requires PHP >= 4.3.0.
327    $cfg['Servers'][$i]['controluser'] string
328           $cfg['Servers'][$i]['controlpass'] string
329           This  special  account is used for 2 distinct purposes: to make
330           possible    a   multi-user   installation   (http   or   cookie
331           authentication  mode) and also for all relational features (see
332           $cfg['Servers'][$i]['pmadb']).
333           When  using  HTTP  or  cookie authentication modes (or 'config'
334           authentication mode since phpMyAdmin 2.2.1), you need to supply
335           the details of a MySQL account that has SELECT privilege on the
336           mysql.user  (all  columns  except  "Password"),  mysql.db  (all
337           columns)  &  mysql.tables_priv  (all columns except "Grantor" &
338           "Timestamp")  tables.  This  account  is  used  to  check  what
339           databases the user will see at login.
340           Please  see  the install section on "Using HTTP authentication"
341           for more information.
342           Note   that   if   you   try  login  to  phpMyAdmin  with  this
343           "controluser",  you  could get some errors, depending the exact
344           privileges  you  gave to the "controluser". phpMyAdmin does not
345           support a direct login with the "controluser".
346           In versions before 2.2.5, those were called "stduser/stdpass".
348    $cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']
349           Whether  config or cookie or http authentication should be used
350           for this server.
352           + 'config'  authentication ($auth_type = 'config') is the plain
353             old way: username and password are stored in config.inc.php.
354           + 'cookie'   authentication   mode  ($auth_type = 'cookie')  as
355             introduced  in  2.2.3 allows you to log in as any valid MySQL
356             user  with  the  help  of  cookies. Log name and password are
357             stored  in cookies during the session and password is deleted
358             when  it  ends. This can also allow you to login in arbitrary
359             server if $cfg['AllowArbitraryServer'] enabled.
360           + 'http'   authentication   (was  called  'advanced'  in  older
361             versions) ($auth_type = 'http') as introduced in 1.3.0 allows
362             you to log in as any valid MySQL user via HTTP-Auth.
364           Please  see the install section on "Using authentication modes"
365           for more information.
367    $cfg['Servers'][$i]['user'] string
368           $cfg['Servers'][$i]['password'] string
369           The  user/password-pair which phpMyAdmin will use to connect to
370           this  MySQL-server.  This user/password pair is not needed when
371           HTTP or cookie authentication is used, and should be empty.
373    $cfg['Servers'][$i]['only_db'] string or array
374           If  set  to  a(an  array of) database name(s), only this(these)
375           database(s)  will be shown to the user. Since phpMyAdmin 2.2.1,
376           this/these  database(s)  name(s)  may  contain  MySQL wildcards
377           characters  ("_" and "%"): if you want to use literal instances
378           of  these  characters,  escape  them (I.E. use 'my\_db' and not
379           'my_db').
380           This  setting  is  an  efficient way to lower the server charge
381           since  the latter does not need to send MySQL requests to build
382           the  available  database  list.  But  it  does  not replace the
383           privileges  rules of the MySQL database server. If set, it just
384           means  only  these databases will be displayed but not that all
385           other databases can't be used.
386           An    example    of    using    more    that    one   database:
387           $cfg['Servers'][$i]['only_db'] = array('db1', 'db2');
388           As  of  phpMyAdmin 2.5.5 the order inside the array is used for
389           sorting  the  databases  in  the  left  frame,  so that you can
390           individually arrange your databases.
391           If  you  want to have certain tables at the top, but don't care
392           about  the  others,  you  do  not  need  to  specify  all other
393           databases.  Use:  $cfg['Servers'][$i]['only_db'] = array('db3',
394           'db4',  '*'); instead to tell phpMyAdmin that it should display
395           db3 and db4 on top, and the rest in alphabetic order.
397    $cfg['Servers'][$i]['verbose'] string
398           Only useful when using phpMyAdmin with multiple server entries.
399           If  set,  this string will be displayed instead of the hostname
400           in  the  pull-down menu on the main page. This can be useful if
401           you  want  to  show  only certain databases on your system, for
402           example.
404    $cfg['Servers'][$i]['pmadb'] string
405           Starting with version 2.3.0 phpMyAdmin offers a lot of features
406           to work with master / foreign - tables. To use those as well as
407           the  bookmark feature you need special tables with a predefined
408           structure, which we explain below.
409           See  the Quick Install section in this document for a quick way
410           of  creating  those  tables.  Also,  if you are using a Windows
411           server, read FAQ 1.23.
412           If  you  are the only user of this phpMyAdmin installation, you
413           can use your current database to store those special tables; in
414           this   case,   just   put   your   current   database  name  in
415           $cfg['Servers'][$i]['pmadb'].
416           If you are setting up a multi-user phpMyAdmin installation, you
417           will   need   to  create  a  new  database  and  setup  special
418           privileges, so, as superuser:
420           + create a new database for phpMyAdmin:
421               CREATE DATABASE phpmyadmin;
422             Note  that "controluser" must have SELECT, INSERT, UPDATE and
423             DELETE privileges on this database. Here is a query to set up
424             those  privileges  (using  "phpmyadmin" as the database name,
425             and "pma" as the controluser):
426               GRANT   SELECT,INSERT,UPDATE,DELETE   ON   phpmyadmin.*  to
427             'pma'@'localhost';
428             do not give any other user rights on this database.
429           + enter the database name in $cfg['Servers'][$i]['pmadb']
431    $cfg['Servers'][$i]['bookmarktable'] string
432           Since release 2.2.0 phpMyAdmin allows to bookmark queries. This
433           can be useful for queries you often run.
434           To allow the usage of this functionality you have to:
436           + set up "pmadb" as described above
437           + within this database create a table following this scheme:
438                  CREATE TABLE `pma_bookmark` (
439                    id int(11) DEFAULT '0' NOT NULL auto_increment,
440                    dbase varchar(255) NOT NULL,
441                    user varchar(255) NOT NULL,
442                    label varchar(255) NOT NULL,
443                    query text NOT NULL,
444                    PRIMARY KEY (id)
445                  ) TYPE=MyISAM COMMENT='Bookmarks';
446           + enter the table name in $cfg['Servers'][$i]['bookmarktable']
448    $cfg['Servers'][$i]['relation'] string
449           Since  release  2.2.4 you can describe, in a special 'relation'
450           table,  which  field is a key in another table (a foreign key).
451           phpMyAdmin currently uses this to
453           + make  clickable,  when  you browse the master table, the data
454             values that point to the foreign table;
455           + display  in  an  optional  tool-tip  the "display field" when
456             browsing  the master table, if you move the mouse to a column
457             containing a foreign key (use also the 'table_info' table);
458             (see FAQ 6.7)
459           + in  edit/insert  mode,  display  a drop-down list of possible
460             foreign keys (key value and "display field" are shown)
461             (see FAQ 6.21)
462           + display   links  on  the  table  properties  page,  to  check
463             referential integrity (display missing foreign keys) for each
464             described key;
465           + in query-by-example, create automatic joins (see FAQ 6.6)
466           + enable  you  to  get a PDF schema of your database (also uses
467             the table_coords table).
469           The keys can be numeric or character.
470           To allow the usage of this functionality the superuser has to:
472           + set up "pmadb" as described above
473           + within this database create a table following this scheme:
474                  CREATE TABLE `pma_relation` (
475                    `master_db` varchar(64) NOT NULL default '',
476                    `master_table` varchar(64) NOT NULL default '',
477                    `master_field` varchar(64) NOT NULL default '',
478                    `foreign_db` varchar(64) NOT NULL default '',
479                    `foreign_table` varchar(64) NOT NULL default '',
480                    `foreign_field` varchar(64) NOT NULL default '',
481                    PRIMARY      KEY     (`master_db`,     `master_table`,
482             `master_field`),
483                    KEY foreign_field (foreign_db, foreign_table)
484                  ) TYPE=MyISAM COMMENT='Relation table';
485           + put the relation table name in
486             $cfg['Servers'][$i]['relation']
487           + now  as  normal user open phpMyAdmin and for each one of your
488             tables   where   you   want   to   use  this  feature,  click
489             "Structure/Relation view/" and choose foreign fields.
491           Please note that in the current (2.3.0) version, master_db must
492           be the same as foreign_db. Those fields have been put in future
493           development of the cross-db relations.
495    $cfg['Servers'][$i]['table_info'] string
496           Since release 2.3.0 you can describe, in a special 'table_info'
497           table, which field is to be displayed as a tool-tip when moving
498           the cursor over the corresponding key.
499           This  configuration variable will hold the name of this special
500           table.  To  allow the usage of this functionality the superuser
501           has to:
503           + set up "pmadb" as described above
504           + within this database create a table following this scheme:
505                  CREATE TABLE `pma_table_info` (
506                    `db_name` varchar(64) NOT NULL default '',
507                    `table_name` varchar(64) NOT NULL default '',
508                    `display_field` varchar(64) NOT NULL default '',
509                    PRIMARY KEY (`db_name`, `table_name`)
510                  )    TYPE=MyISAM    COMMENT='Table    information    for
511             phpMyAdmin';
512           + put the table name in $cfg['Servers'][$i]['table_info']
513           + then for each table where you want to use this feature, click
514             "Structure/Relation  view/Choose  field to display" to choose
515             the field.
517           Usage tip: Display field.
519    $cfg['Servers'][$i]['table_coords'] string
520           $cfg['Servers'][$i]['pdf_pages'] string
521           Since  release  2.3.0  you can have phpMyAdmin create PDF pages
522           showing  the relations between your tables. To do this it needs
523           two tables "pdf_pages" (storing information about the available
524           PDF  pages)  and "table_coords" (storing coordinates where each
525           table will be placed on a PDF schema output).
526           You  must  be  using the "relation" feature and have a table of
527           PDF  pages (see $cfg['Servers'][$i]['pdf_pages']) to create PDF
528           output.
529           To allow the usage of this functionality the superuser has to:
531           + set up "pmadb" as described above
532           + within this database create a table following this scheme:
533                  CREATE TABLE `pma_table_coords` (
534                    `db_name` varchar(64) NOT NULL default '',
535                    `table_name` varchar(64) NOT NULL default '',
536                    `pdf_page_number` int NOT NULL default '0',
537                    `x` float unsigned NOT NULL default '0',
538                    `y` float unsigned NOT NULL default '0',
539                    PRIMARY       KEY       (`db_name`,      `table_name`,
540             `pdf_page_number`)
541                  )  TYPE=MyISAM COMMENT='Table coordinates for phpMyAdmin
542             PDF output';
543           + also within this database create:
544                  CREATE TABLE `pma_pdf_pages` (
545                    `db_name` varchar(64) NOT NULL default '',
546                    `page_nr` int(10) unsigned NOT NULL auto_increment,
547                    `page_descr` varchar(50) NOT NULL default '',
548                    PRIMARY KEY (page_nr),
549                    KEY (db_name)
550                  ) TYPE=MyISAM COMMENT='PDF Relationpages for PMA';
551           + put the first table name in
552             $cfg['Servers'][$i]['table_coords'] and the second table name
553             in $cfg['Servers'][$i]['pdf_pages']
555           Usage tips: PDF output.
557    $cfg['Servers'][$i]['column_info'] string
558           Since  release  2.3.0  you  can store comments to describe each
559           column  for  each  table.  These  will  then  be  shown  on the
560           "printview".
561           Starting  with release 2.5.0, comments are consequently used on
562           the  table  property pages and table browse view, showing up as
563           tool-tips  above  the column name (properties page) or embedded
564           within  the  header  of  table in browse view. They can also be
565           shown  in  a  table dump. Please see the relevant configuration
566           directives later on.
567           Also new in release 2.5.0 is a mime-transformation system which
568           is   also   based   on   the  following  table  structure.  See
569           Transformations   for   further   information.   To   use   the
570           mime-transformation  system, your column_info table has to have
571           the    three    new    fields   'mimetype',   'transformation',
572           'transformation_options'.
573           To allow the usage of this functionality the superuser has to:
575           + set up "pmadb" as described above
576           + within this database create a table following this scheme:
577                  CREATE TABLE `pma_column_info` (
578                    id int(5) unsigned NOT NULL auto_increment,
579                    db_name varchar(64) NOT NULL default '',
580                    table_name varchar(64) NOT NULL default '',
581                    column_name varchar(64) NOT NULL default '',
582                    `comment` varchar(255) NOT NULL default '',
583                    mimetype varchar(255) NOT NULL default '',
584                    transformation varchar(255) NOT NULL default '',
585                    transformation_options  varchar(255)  NOT NULL default
586             '',
587                    PRIMARY KEY (id),
588                    UNIQUE KEY db_name (db_name, table_name, column_name)
589                  ) TYPE=MyISAM COMMENT='Comments for Columns';
590           + put the table name in $cfg['Servers'][$i]['column_info']
591           + To update your PRE-2.5.0 Column_comments Table use this:
592                  ALTER TABLE `pma_column_comments`
593                    ADD `mimetype` VARCHAR( 255 ) NOT NULL ,
594                    ADD `transformation` VARCHAR( 255 ) NOT NULL ,
595                    ADD `transformation_options` VARCHAR( 255 ) NOT NULL ;
596             and  remember  that  the  Variable in config.inc.php has been
597             renamed from
598             $cfg['Servers'][$i]['column_comments']                     to
599             $cfg['Servers'][$i]['column_info']
601    $cfg['Servers'][$i]['history'] string
602           Since release 2.5.0 you can store your SQL history, which means
603           all queries you entered manually into the phpMyAdmin interface.
604           If  you  don't  want to use a table- based history, you can use
605           the  JavaScript-based  history.  Using  that,  all your history
606           items are deleted when closing the window.
607           Using  $cfg['QueryHistoryMax']  you  can  specify  an amount of
608           history  items  you  want to have on hold. On every login, this
609           list gets cut to the maximum amount.
610           The   query   history   is   only  available  if  you  use  the
611           JavaScript-based query window, see $cfg['QueryFrame'].
612           To allow the usage of this functionality the superuser has to:
614           + set up "pmadb" as described above
615           + within this database create a table following this scheme:
616                  CREATE TABLE `pma_history` (
617                    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
618                    `username` VARCHAR( 64 ) NOT NULL ,
619                    `db` VARCHAR( 64 ) NOT NULL ,
620                    `table` VARCHAR( 64 ) NOT NULL ,
621                    `timevalue` TIMESTAMP NOT NULL ,
622                    `sqlquery` TEXT NOT NULL ,
623                    PRIMARY KEY ( `id` ) ,
624                    INDEX ( `username` , `db` , `table` , `timevalue` )
625                    ) TYPE=MyISAM COMMENT='SQL history';
626           + put the table name in $cfg['Servers'][$i]['history']
628    $cfg['Servers'][$i]['verbose_check'] string
629           Because  release  2.5.0  introduced the new MIME-transformation
630           support,  the  column_info  table  got  enhanced with three new
631           fields.  If  the  above  variable  is  set  to  TRUE  (default)
632           phpMyAdmin  will  check  if you have the latest table structure
633           available. If not, it will emit a warning to the superuser.
634           You  can disable this checking behavior by setting the variable
635           to false, which should offer a performance increase.
636           Recommended  to  set  to  FALSE,  when you are sure, your table
637           structure is up to date.
639    $cfg['Servers'][$i]['AllowDeny']['order'] string
640           If  your  rule  order  is  empty,  then  IP  authentication  is
641           disabled.
642           If  your  rule  order  is  set  to 'deny,allow' then the system
643           applies  all  deny  rules  followed  by  allow rules. Access is
644           allowed  by  default.  Any  client  which does not match a Deny
645           command  or  does match an Allow command will be allowed access
646           to the server.
647           If  your  rule  order  is  set  to 'allow,deny' then the system
648           applies  all  allow  rules  followed  by  deny rules. Access is
649           denied  by  default.  Any  client which does not match an Allow
650           directive  or does match a Deny directive will be denied access
651           to the server.
652           If  your rule order is set to 'explicit', the authentication is
653           performed in a similar fashion to rule order 'deny,allow', with
654           the  added restriction that your host/username combination must
655           be listed in the allow rules, and not listed in the deny rules.
656           This  is  the  most secure means of using Allow/Deny rules, and
657           was  available  in  Apache  by  specifying allow and deny rules
658           without setting any order.
660    $cfg['Servers'][$i]['AllowDeny']['rules'] array of strings
661           The general format for the rules is as such:
662                 <'allow' | 'deny'> <username> [from] <ipmask>
663           If  you wish to match all users, it is possible to use a '%' as
664           a wildcard in the username field.
665           There  are  a  few shortcuts you can use in the ipmask field as
666           well:
667                'all' -> 0.0.0.0/0
668                'localhost' -> 127.0.0.1/8
669           Having  an empty rule list is equivalent to either using 'allow
670           %  from all' if your rule order is set to 'deny,allow' or 'deny
671           %  from  all'  if  your  rule  order  is set to 'allow,deny' or
672           'explicit'.
673           For the IP matching system, the following work:
674           xxx.xxx.xxx.xxx (an exact IP address)
675           xxx.xxx.xxx.[yyy-zzz] (an IP address range)
676           xxx.xxx.xxx.xxx/nn  (CIDR,  Classless Inter-Domain Routing type
677           IP addresses)
678           But the following does not work:
679           xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range)
681    $cfg['ServerDefault'] integer
682           If  you  have  more  than  one  server  configured, you can set
683           $cfg['ServerDefault'] to any one of them to autoconnect to that
684           server when phpMyAdmin is started, or set it to 0 to be given a
685           list of servers without logging in.
686           If  you  have only one server configured, $cfg['ServerDefault']
687           MUST be set to that server.
689    $cfg['OBGzip'] string/boolean
690           Defines  whether  to  use  GZip  output buffering for increased
691           speed in HTTP transfers.
692           Set  to  true/false  for enabling/disabling. When set to 'auto'
693           (string),  phpMyAdmin tries to enable output buffering and will
694           automatically  disable  it,  if  your browser has some problems
695           with buffering. IE6 with a certain patch is known to cause data
696           corruption having enabled buffering.
698    $cfg['PersistentConnections'] boolean
699           Whether   persistent   connections   should   be  used  or  not
700           (mysql_connect or mysql_pconnect).
702    $cfg['ExecTimeLimit'] integer [number of seconds]
703           Set  the  number  of  seconds  a  script  is allowed to run. If
704           seconds is set to zero, no time limit is imposed.
705           This  setting  is used while importing/exporting dump files but
706           has no effect when PHP is running in safe mode.
708    $cfg['SkipLockedTables'] boolean
709           Mark  used  tables  and make it possible to show databases with
710           locked tables (since 3.23.30).
712    $cfg['ShowSQL'] boolean
713           Defines  whether  SQL-queries generated by phpMyAdmin should be
714           displayed or not.
716    $cfg['AllowUserDropDatabase'] boolean
717           Defines whether normal users (non-administrator) are allowed to
718           delete  their  own  database  or not. If set as FALSE, the link
719           "Drop  Database"  will  not be shown, and even a "DROP DATABASE
720           mydatabase"  will  be  rejected. Quite practical for ISP's with
721           many customers.
723    $cfg['Confirm'] boolean
724           Whether   a  warning  ("Are  your  really  sure..")  should  be
725           displayed when you're about to loose data.
727    $cfg['LoginCookieRecall'] boolean
728           Define  whether the previous login should be recalled or not in
729           cookie authentication mode.
731    $cfg['UseDbSearch'] boolean
732           Define  whether  the "search string inside database" is enabled
733           or not.
735    $cfg['IgnoreMultiSubmitErrors'] boolean
736           Define whether phpMyAdmin will continue executing a multi-query
737           statement  if  one  of  the  queries fails. Default is to abort
738           execution.
740    $cfg['VerboseMultiSubmit'] boolean
741           Define whether phpMyAdmin will output the results of each query
742           of  a  multi-query  statement  embedded  into the SQL output as
743           inline comments. Defaults to TRUE.
745    $cfg['AllowArbitraryServer'] boolean
746           If enabled allows you to login to arbitrary server using cookie
747           auth.
748           NOTE:  Please  use  this carefully, as this may allow to access
749           MySQL servers behind firewall where your http server is placed.
751    $cfg['LeftFrameLight'] boolean
752           Defines  whether  to use select-based menu and display only the
753           current  tables  in  the  left  frame  (smaller  page). Only in
754           Non-Lightmode you can use the feature to display nested folders
755           using $cfg['LeftFrameTableSeparator']
757    $cfg['LeftFrameTableSeparator'] string
758           Defines  a  string to be used to nest table spaces. Defaults to
759           '__'. This means if you have tables like 'first__second__third'
760           this  will  be  shown as a three-level hierarchie like: first >
761           second  >  third.  If  set  to  FALSE  or empty, the feature is
762           disabled.  NOTE:  You  shall  not use this Separator in a table
763           name at the beginning or end of a table name, or multiple times
764           after another without any other characters in between.
766    $cfg['LeftFrameTableLevel'] string
767           Defines  how  many sublevels should be displayed when splitting
768           up tables by the above Separator.
770    $cfg['ShowTooltip'] boolean
771           Defines  whether  to  display table comment as tool-tip in left
772           frame or not.
774    $cfg['ShowTooltipAliasDB'] boolean
775           If  tool-tips  are  enabled  and a DB comment is set, this will
776           flip  the  comment and the real name. That means, if you have a
777           table called 'user0001' and add the comment 'MyName' on it, you
778           will  see the name 'MyName' used consequently in the left frame
779           and the tool-tip shows the real name of the DB.
781    $cfg['ShowTooltipAliasTB'] boolean
782           Same as $cfg['ShowTooltipAliasDB'], except this works for table
783           names.
785    $cfg['ShowStats'] boolean
786           Defines  whether  to  display  space usage and statistics about
787           databases and tables or not.
788           Note  that  statistics requires at least MySQL 3.23.3 and that,
789           at  this  date,  MySQL  doesn't  return  such  information  for
790           Berkeley DB tables.
792    $cfg['ShowMysqlInfo'] boolean
793           $cfg['ShowMysqlVars'] boolean
794           $cfg['ShowPhpInfo'] boolean
795           $cfg['ShowChgPassword'] boolean
796           Defines  whether  to  display  the "MySQL runtime information",
797           "MySQL   system   variables",  "PHP  information"  and  "Change
798           password  "  links or not for simple users at the starting main
799           (right)  frame.  This  setting  does  not  check MySQL commands
800           entered directly.
801           Please  note  that  to block the usage of phpinfo() in scripts,
802           you have to put this in your php.ini:
803               disable_functions = phpinfo()
804           Also  note  that  enabling  the  "Change password " link has no
805           effect  with  "config" authentication mode: because of the hard
806           coded password value in the configuration file, end users can't
807           be allowed to change their passwords.
809    $cfg['SuggestDBName'] boolean
810           Defines  whether  to  suggest  a  database  name on the "Create
811           Database" form or to keep the textfield empty.
813    $cfg['ShowBlob'] boolean
814           Defines  whether  BLOB fields are shown when browsing a table's
815           content or not.
817    $cfg['NavigationBarIconic'] boolean
818           Defines  whether navigation bar buttons contain text or symbols
819           only.
821    $cfg['ShowAll'] boolean
822           Defines  whether  an  user  should  be  displayed  a  "show all
823           (records)" button in browse mode or not.
825    $cfg['MaxRows'] integer
826           Number  of  rows  displayed  when browsing a result set. If the
827           result  set  contains  more  rows,  Previous/Next links will be
828           shown.
830    $cfg['Order'] string [DESC|ASC|SMART]
831           Defines  whether fields are displayed in ascending (ASC) order,
832           in descending (DESC) order or in a "smart" (SMART) order - I.E.
833           descending  order  for  fields  of  type TIME, DATE, DATETIME &
834           TIMESTAMP, ascending order else- by default.
836    $cfg['ProtectBinary'] boolean or string
837           Defines  whether  BLOB  or  BINARY  fields  are  protected from
838           edition  when  browsing  a table's content or not. Valid values
839           are:
840           - FALSE to allow edition of all fields;
841           - blob to allow edition of all fields except BLOBS;
842           - all to disallow edition of all BINARY or BLOB fields.
844    $cfg['ShowFunctionFields'] boolean
845           Defines  whether  MySQL functions fields should be displayed or
846           not in edit/insert mode.
848    $cfg['CharEditing'] string
849           Defines  which type of editing controls should be used for CHAR
850           and VARCHAR fields. Possible values are:
852           + input - this allows to limit size of text to size of field in
853             MySQL, but has problems with newlines in fields
854           + textarea  -  no problems with newlines in fields, but also no
855             length limitations
857           Default is old behavior so input.
859    $cfg['ZipDump'] boolean
860           $cfg['GZipDump'] boolean
861           $cfg['BZipDump'] boolean
862           Defines  whether to allow the use of zip/GZip/BZip2 compression
863           when creating a dump file or not.
865    $cfg['CompressOnFly'] boolean
866           Defines whether to allow ont the fly compression for GZip/BZip2
867           compressed  exports.  This  doesn't  affect  smaller  dumps and
868           allows  to  create  larger  dumps,  that won't fit otherwise in
869           memory  due  to  php  memory limit. Produced files contain more
870           GZip/BZip2  headers,  but  all  normal  programs  handles  this
871           correctly.
873    $cfg['LightTabs'] string
874           If set to True, do use less graphically intense tabs on the top
875           of the mainframe.
877    $cfg['PropertiesIconic'] string
878           If  set  to True, will display icons instead of text for db and
879           table  properties  links  (like  'Browse',  'Select', 'Insert',
880           ...).
881           Can be set to 'both' if you want icons AND text.
882           When set to False, will only show text.
884    $cfg['PropertiesNumColumns'] integer
885           How  many columns will be utilized to display the tables on the
886           database  property view? Default is 1 column. When setting this
887           to  a  value  larger  than  1, the type of the database will be
888           omitted for more display space.
890    $cfg['DefaultTabServer'] string
891           Defines  the  tab displayed by default on server view. Possible
892           values:   "main.php"   (recommended   for  multi-user  setups),
893           "server_databases.php",                    "server_status.php",
894           "server_variables.php",        "server_privileges.php"       or
895           "server_processlist.php".
897    $cfg['DefaultTabDatabase'] string
898           Defines the tab displayed by default on database view. Possible
899           values:    "db_details_structure.php",    "db_details.php"   or
900           "db_search.php".
902    $cfg['DefaultTabTable'] string
903           Defines  the  tab  displayed by default on table view. Possible
904           values:  "tbl_properties_structure.php",  "tbl_properties.php",
905           "tbl_select.php" or "tbl_change.php".
907    $cfg['MySQLManualBase'] string
908           If  set to an URL which points to the MySQL documentation (type
909           depends on $cfg['MySQLManualType']), appropriate help links are
910           generated.
911           See  MySQL  Documentation page for more information about MySQL
912           manuals and their types.
914    $cfg['MySQLManualType'] string
915           Type of MySQL documentation:
917           + old - old style used in phpMyAdmin 2.3.0 and sooner
918           + searchable - "Searchable, with user comments"
919           + chapters - "HTML, one page per chapter"
920           + big - "HTML, all on one page"
921           + none - do not show documentation links
923    $cfg['DefaultLang'] string
924           Defines  the default language to use, if not browser-defined or
925           user-defined.
926           See the select_lang.inc.php script to know the valid values for
927           this setting.
929    $cfg['Lang'] string
930           Force:  always  use  this  language  (must  be  defined  in the
931           select_lang.inc.php script).
933    $cfg['DefaultCharset'] string
934           Default  character  set  to  use for recoding of MySQL queries.
935           This    must    be    enabled    and    it's    described    by
936           $cfg['AllowAnywhereRecoding'] option.
937           You   can   give   here   any   character   set   which  is  in
938           $cfg['AvailableCharsets']   array  and  this  is  just  default
939           choice, user can select any of them.
941    $cfg['AllowAnywhereRecoding'] boolean
942           Allow  character set recoding of MySQL queries. You need recode
943           or  iconv support (compiled in or module) in PHP to allow MySQL
944           queries  recoding  and  used language file must have it enabled
945           (by  default  only  these  which  are in Unicode, just to avoid
946           losing some characters).
948    $cfg['RecodingEngine'] string
949           You  can select here which functions will be used for character
950           set conversion. Possible values are:
952           + auto  -  automatically  use  available  one  (first is tested
953             iconv, then recode)
954           + iconv - use iconv or libiconv functions
955           + recode - use recode_string function
957           Default is auto.
959    $cfg['IconvExtraParams'] string
960           Specify  some  parameters for iconv used in charset conversion.
961           See iconv documentation for details.
963    $cfg['AvailableCharsets'] array
964           Available character sets for MySQL conversion. You can add your
965           own  (any  of  supported by recode/iconv) or remove these which
966           you  don't  use.  Character sets will be shown in same order as
967           here  listed,  so if you frequently use some of these move them
968           to the top.
970    $cfg['GD2Available'] string
971           Specifies  whether  GD >= 2 is available. If yes it can be used
972           for MIME transformations.
973           Possible values are:
975           + auto   -  automatically  detect,  this  is  a  bit  expensive
976             operation  for  php < 4.3.0 so it is preffered to change this
977             according to your server real possibilities
978           + yes - GD 2 functions can be used
979           + no - GD 2 function can not be used
981           Default is auto.
983    $cfg['LeftWidth'] integer
984           Left frame width in pixel.
986    $cfg['LeftBgColor'] string [HTML color]
987           $cfg['RightBgColor'] string [HTML color]
988           The background colors (HTML) used for both the frames.
990    $cfg['RightBgImage'] string
991           The  URI  of  the background image used for the right frame. It
992           can  be  absolute  as  well  as  relative  from your phpMyAdmin
993           directory.
995    $cfg['LeftPointerColor'] string [HTML color]
996           The  color  (HTML) used for the pointer in the left frame (does
997           not work with Netscape 4).
999    $cfg['Border'] integer
1000           The size of a table's border.
1002    $cfg['ThBgcolor'] string [HTML color]
1003           The color (HTML) used for table headers.
1005    $cfg['BgcolorOne'] string [HTML color]
1006           The color (HTML) #1 for table rows.
1008    $cfg['BgcolorTwo'] string [HTML color]
1009           The color (HTML) #2 for table rows.
1011    $cfg['BrowsePointerColor'] string [HTML color]
1012           $cfg['BrowseMarkerColor'] string [HTML color]
1013           The colors (HTML) uses for the pointer and the marker in browse
1014           mode (does not work with Netscape 4).
1015           The  former feature highlights the row over which your mouse is
1016           passing  and  the  latter lets you visually mark/unmark rows by
1017           clicking on them.
1018           You  can  disable  both  of  these  features  by  emptying  the
1019           respective directive.
1021    $cfg['TextareaCols'] integer
1022           $cfg['TextareaRows'] integer
1023           $cfg['CharTextareaCols'] integer
1024           $cfg['CharTextareaRows'] integer
1025           Number of columns and rows for the textareas.
1026           This  value will be emphasized (*2) for SQL query textareas and
1027           (*1.25) for SQL textareas inside the query window.
1028           The  Char*  values  are  used  for CHAR and VARCHAR editing (if
1029           configured via $cfg['CharEditing']).
1031    $cfg['LongtextDoubleTextarea'] boolean
1032           Defines whether textarea for LONGTEXT fields should have double
1033           size.
1035    $cfg['TextareaAutoSelect'] boolean
1036           Defines if the whole textarea of the query box will be selected
1037           on click.
1039    $cfg['CtrlArrowsMoving'] boolean
1040           Enable Ctrl+Arrows moving between fields when editing?
1042    $cfg['LimitChars'] integer
1043           Maximal  number  of  Chars  showed  in any non-numeric field on
1044           browse view. Can be turned off by a toggle button on the browse
1045           page.
1047    $cfg['ModifyDeleteAtLeft'] boolean
1048           $cfg['ModifyDeleteAtRight'] boolean
1049           Defines  the  place  where modify and delete links would be put
1050           when tables contents are displayed (you may have them displayed
1051           both  at  the  left  and  at the right). "Left" and "right" are
1052           parsed as "top" and "bottom" with vertical display mode.
1054    $cfg['DefaultDisplay'] string
1055           $cfg['HeaderFlipType'] string
1056           There  are  3  display modes: horizontal, horizontalflipped and
1057           vertical.  Define  which one is displayed by default. The first
1058           mode displays each row on a horizontal line, the second rotates
1059           the  headers  by 90 degrees, so you can use descriptive headers
1060           even  though  fields  only contain small values and still print
1061           them  out.  The  vertical  mode  sorts  each  row on a vertical
1062           lineup.
1063           The  HeaderFlipType  can be set to 'css' or 'faked'. When using
1064           'css'  the rotation of the header for horizontalflipped is done
1065           via CSS. If set to 'faked' PHP does the transformation for you,
1066           but of course this does not look as good as CSS.
1068    $cfg['DefaultPropDisplay'] string
1069           When  editing/creating  new  columns  in  a  table  all  fields
1070           normally   get   lined   up   one   field   a  line.  (default:
1071           'horizontal').  If you set this to 'vertical' you can have each
1072           field lined up vertically beneath each other. You can save up a
1073           lot  of place on the horizontal direction and no longer have to
1074           scroll.
1076    $cfg['ShowBrowseComments'] boolean
1077           $cfg['ShowPropertyComments'] boolean
1078           By  setting  the  corresponding variable to TRUE you can enable
1079           the  display  of column comments in Browse or Property display.
1080           In  browse  mode,  the  comments are show inside the header. In
1081           property  mode,  comments  are  displayed using a CSS-formatted
1082           dashed-line  below  the name of the field. The comment is shown
1083           as a tool-tip for that field.
1085    $cfg['UploadDir'] string
1086           The  name  of the directory, where SQL files have been uploaded
1087           by  other means than phpMyAdmin (for example, ftp). Those files
1088           are available under a drop-down box when you click the database
1089           name, then the SQL tab.
1090           Please note that the file names must have the suffix ".sql" (or
1091           ".sql.bz2"  or  ".sql.gz"  if support for compressed formats is
1092           enabled).
1093           This feature is useful when your file is too big to be uploaded
1094           via HTTP, or when file uploads are disabled in PHP.
1095           Please note that if PHP is running in safe mode, this directory
1096           must  be  owned by the same user as the owner of the phpMyAdmin
1097           scripts.
1099    $cfg['docSQLDir'] string
1100           The  name  of the directory, where docSQL files can be uploaded
1101           for import into phpMyAdmin.
1102           Please note that if PHP is running in safe mode, this directory
1103           must  be  owned by the same user as the owner of the phpMyAdmin
1104           scripts.
1106    $cfg['SaveDir'] string
1107           The name of the directory, where dumps can be saved.
1108           Please  note  that  the  directory  has to be writable for user
1109           running webserver.
1110           Please note that if PHP is running in safe mode, this directory
1111           must  be  owned by the same user as the owner of the phpMyAdmin
1112           scripts.
1114    $cfg['Export'] array
1115           In  this array are defined default parameters for export, names
1116           of  items are simmilar to texts seen on export page, so you can
1117           easily identify what they mean.
1119    $cfg['RepeatCells'] integer
1120           Repeat the headers every X cells, or 0 to deactivate.
1122    $cfg['QueryFrame'] boolean
1123           $cfg['QueryFrameJS'] boolean
1124           $cfg['QueryFrameDebug'] boolean
1125           $cfg['QueryWindowWidth'] integer
1126           $cfg['QueryWindowHeight'] integer
1127           $cfg['QueryHistoryDB'] boolean
1128           $cfg['QueryWindowDefTab'] string
1129           $cfg['QueryHistoryMax'] integer
1130           All  those  variables  affect  the new query frame/window. When
1131           $cfg['QueryFrame']  is  set  to true a new frame is embedded on
1132           the left with a small area. Clicking on that results in opening
1133           a direct interface to enter SQL queries.
1134           When $cfg['QueryFrameJS'] is set to true, clicking on that link
1135           opens a new custom sized browser window
1136           ($cfg['QueryWindowWidth'],   $cfg['QueryWindowWidth']   -  both
1137           integers  for the size in pixels). If set to false, clicking on
1138           the link only opens the SQL input in the mainframe.
1139           The  usage of the JavaScript query window is recommended if you
1140           have  a JavaScript enabled browser. Basic functions are used to
1141           exchange quite a few variables, so most 4th generation browsers
1142           should  be  capable  to  use that feature. It currently is only
1143           tested with Internet Explorer 6 and Mozilla 1.x.
1144           If  $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are
1145           logged  to  a  table,  which  has  to  be  created  by you (see
1146           $cfg['Servers'][$i]['history']).  If  set  to  FALSE,  all your
1147           queries  will be appended to the form, but only as long as your
1148           window is opened they remain saved.
1149           When  using  the  JavaScript based query window, it will always
1150           get updated when you click on a new table/db to browse and will
1151           focus  if  you click on "Edit SQL" after using a query. You can
1152           suppress  updating the query window by checking the box "Do not
1153           overwrite  this  query from outside the window" below the query
1154           textarea.   Then   you   can  browse  tables/databases  in  the
1155           background without losing the contents of the textarea, so this
1156           is  especially  useful  when  composing a query with tables you
1157           first  have  to  look  in.  The checkbox will get automatically
1158           checked  whenever  you  change  the  contents  of the textarea.
1159           Please  uncheck  the  button  whenever  you definitely want the
1160           query   window  to  get  updated  even  though  you  have  made
1161           alterations.
1162           If  $cfg['QueryHistoryDB']  is  set to TRUE you can specify the
1163           amount of saved history items using $cfg['QueryHistoryMax'].
1164           The  query  window  also  has a custom tabbed look to group the
1165           features.  Using the variable $cfg['QueryWindowDefTab'] you can
1166           specify  the  default  tab  to  be  used when opening the query
1167           window.  It  can  be set to either 'sql', 'files', 'history' or
1168           'full'.
1169           The  variable $cfg['QueryFrameDebug'] can be used by developers
1170           for easier future feature integration.
1172    $cfg['BrowseMIME'] boolean
1173           Enable MIME-transformations.
1175    $cfg['MaxExactCount'] integer
1176           Determines for how large tables phpMyAdmin should get exact row
1177           count by SELECT COUNT. If approximate row count is smaller than
1178           this  value,  SELECT  COUNT  will be used, otherwise only value
1179           returned by SHOW TABLE STATUS.
1181    $cfg['WYSIWYG-PDF'] boolean
1182           Utilizes  a WYSIWYG editing control to easily place elements of
1183           a  PDF page. By clicking on the button 'toggle scratchboard' on
1184           the  page  where you edit x/y coordinates of those elements you
1185           can activate a scratchboard where all your elements are placed.
1186           By  clicking  on  an  element,  you can move them around in the
1187           pre-defined  area  and  the  x/y  coordinates  will get updated
1188           dynamically.  Likewise,  when  entering a new position directly
1189           into  the  input  field,  the  new position in the scratchboard
1190           changes after your cursors leaves the input field.
1191           You  have  to click on the 'OK'-button below the tables to save
1192           the  new  positions.  If you want to place a new element, first
1193           add  it  to the table of elements and then you can drag the new
1194           element around.
1195           By  changing  the paper size and the orientation you can change
1196           the  size  of  the  scratchboard as well. You can do so by just
1197           changing  the  dropdown  field below, and the scratchboard will
1198           resize  automatically,  without  interfering  with  the current
1199           placement of the elements.
1200           If ever an element gets out of range you can either enlarge the
1201           paper size or click on the 'reset' button to place all elements
1202           below each other.
1203           NOTE:  You  have to use a recent browser like IE6 or Mozilla to
1204           get   this   control   to  work.  The  basic  Drag&Drop  script
1205           functionality  was kindly borrowed from www.youngpup.net and is
1206           underlying so specific license.
1208    $cfg['DefaultQueryTable'] string
1209    $cfg['DefaultQueryDatabase'] string
1210           Default  query that will be displayed in query boxes, when user
1211           didn't  specify  any. Use %d for database name and %t for table
1212           name.
1214    $cfg['SQP']['fmtType'] string [html|none]
1215           The  main  use  of  the  new  SQL Parser is to pretty-print SQL
1216           queries.  By  default  we use HTML to format the query, but you
1217           can disable this by setting this variable to 'none'.
1219    $cfg['SQP']['fmtInd'] float
1220           $cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex]
1221           For  the  pretty-printing  of SQL queries, under some cases the
1222           part  of  a  query  inside  a  bracket is indented. By changing
1223           $cfg['SQP']['fmtInd'] you can change the amount of this indent.
1224           Related in purpose is $cfg['SQP']['fmtIndUnit'] which specifies
1225           the units of the indent amount that you specified. This is used
1226           via stylesheets.
1228    $cfg['SQP']['fmtColor'] array of string tuples
1229           This  array  is  used  to  define  the colours for each type of
1230           element of the pretty-printed SQL queries. The tuple format is
1231           class => [HTML colour code | empty string]
1232           If  you specify an empty string for the color of a class, it is
1233           ignored  in  creating  the stylesheet. You should not alter the
1234           class names, only the colour strings.
1235           Class name key:
1237           + comment Applies to all comment sub-classes
1238           + comment_mysql Comments as "#...\n"
1239           + comment_ansi Comments as "-- ...\n"
1240           + comment_c Comments as "/*...*/"
1241           + digit Applies to all digit sub-classes
1242           + digit_hex Hexadecimal numbers
1243           + digit_integer Integer numbers
1244           + digit_float Floating point numbers
1245           + punct Applies to all punctuation sub-classes
1246           + punct_bracket_open_round Opening brackets"("
1247           + punct_bracket_close_round Closing brackets ")"
1248           + punct_listsep List item Separator ","
1249           + punct_qualifier Table/Column Qualifier "."
1250           + punct_queryend End of query marker ";"
1251           + alpha Applies to all alphabetic classes
1252           + alpha_columnType Identifiers matching a column type
1253           + alpha_columnAttrib        Identifiers        matching       a
1254             database/table/column attribute
1255           + alpha_functionName Identifiers matching a MySQL function name
1256           + alpha_reservedWord  Identifiers  matching  any other reserved
1257             word
1258           + alpha_variable Identifiers matching a SQL variable "@foo"
1259           + alpha_identifier All other identifiers
1260           + quote Applies to all quotation mark classes
1261           + quote_double Double quotes "
1262           + quote_single Single quotes '
1263           + quote_backtick Backtick quotes `
1265    $cfg['SQLValidator']['use'] boolean
1266           phpMyAdmin now supports use of the Mimer SQL Validator service,
1267           as originally published on Slashdot.
1268           For  help in setting up your system to use the service, see the
1269           FAQ #6.14.
1271    $cfg['SQLValidator']['username'] string
1272           $cfg['SQLValidator']['password'] string
1273           The  SOAP  service  allows  you to login with anonymous and any
1274           password,  so we use those by default.. Instead, if you have an
1275           account  with them, you can put your login details here, and it
1276           will be used in place of the anonymous login.
1278    $cfg['DBG']['enable'] boolean
1279           DEVELOPERS ONLY!
1280           Enable the DBG extension for debugging phpMyAdmin. Required for
1281           profiling the code.
1282           For  help in setting up your system to this, see the Developers
1283           section.
1285    $cfg['DBG']['profile']['enable'] boolean
1286           DEVELOPERS ONLY!
1287           Enable  profiling  support  for  phpMyAdmin. This will append a
1288           chunk  of  data  to the end of every page displayed in the main
1289           window with profiling statistics for that page.
1290           You  may  need  need to increase the maximum execution time for
1291           this to complete successfully.
1293    $cfg['DBG']['profile']['threshold'] float (units in milliseconds)
1294           DEVELOPERS ONLY!
1295           When  profiling  data  is displayed, this variable controls the
1296           threshold  of  display  for  any  profiling  data, based on the
1297           average  time  each time has taken. If it is over the threshold
1298           it  is  displayed,  otherwise it is not displayed. This takes a
1299           value  in  milliseconds.  In  most cases you don't need to edit
1300           this.
1302    $cfg['ColumnTypes'] array
1303           All  possible  types of a MySQL column. In most cases you don't
1304           need to edit this.
1306    $cfg['AttributeTypes'] array
1307           Possible attributes for fields. In most cases you don't need to
1308           edit this.
1310    $cfg['Functions'] array
1311           A  list  of  functions  MySQL supports. In most cases you don't
1312           need to edit this.
1314    $cfg['RestrictColumnTypes'] array
1315           Mapping  of  column  types  to  meta  types  used for prefering
1316           displayed functions. In most cases you don't need to edit this.
1318    $cfg['RestrictFunctions'] array
1319           Functions   prefered  for  column  meta  types  as  defined  in
1320           $cfg['RestrictColumnTypes'].  In  most  cases you don't need to
1321           edit this.
1323    $cfg['DefaultFunctions'] array
1324           Functions  selected  by  default  when  insering/changing  row,
1325           Functions     are     defined     for     meta    types    from
1326           $cfg['RestrictColumnTypes']  and  for first_timestamp, which is
1327           used for first timestamp column in table.
1329 Transformations
1331    Introduction  -  Usage  -  File structure
1333   [1. Introduction]
1335    To enable transformations, you have to setup the column_info table and
1336    the  proper directives. Please see the Configuration section on how to
1337    do so.
1339    You can apply different transformations to the contents of each field.
1340    The  transformation  will take the content of each field and transform
1341    it with certain rules defined in the selected transformation.
1343    Say  you  have  a field 'filename' which contains a filename. Normally
1344    you  would see in phpMyAdmin only this filename. Using transformations
1345    you  can  transform  that  filename into a HTML link, so you can click
1346    inside  of  the  phpMyAdmin structure on the field's link and will see
1347    the  file  displayed  in  a  new  browser window. Using transformation
1348    options  you can also specify strings to append/prepend to a string or
1349    the format you want the output stored in.
1351    For  a  general  overview  of  all available transformations and their
1352    options, you can consult your
1353    <www.your-host.com>/<your-install-dir>/libraries/transformations/overv
1354    iew.php installation.
1356    For a tutorial on how to effectively use transformations, see our Link
1357    section on the official phpMyAdmin-homepage.
1359   [2. Usage]
1361    Go  to your tbl_properties.inc.php page (i.e. reached through clicking
1362    on  the  'properties'  link  for a table). There click on "Change" (or
1363    change icon) and there you will see three new fields at the end of the
1364    line.  They  are  called  'MIME-type',  'Browser  transformation'  and
1365    'Transformation options'.
1366      * The field 'MIME-type' is a dropdown field. You have the options to
1367        leave  that  field empty or to use 'auto' [this feature is not yet
1368        available].  Please note that transformations are inactive as long
1369        as no mime-type is selected.
1370      * The  field  'Browser transformation' is a drop-down field. You can
1371        choose   from   a   hopefully   growing   amount   of  pre-defined
1372        transformations.  See  below  for information on how to build your
1373        own transformation.
1374        There    are    global    transformations    and    mimetype-bound
1375        transformations.  Global  transformations  can  be  used  for  any
1376        mimetype.  They will take the mimetype, if necessary, into regard.
1377        Mimetype-bound  transformations  usually only operate on a certain
1378        mimetype.  There  are  transformations  which  operate on the main
1379        mimetype  (like  'image'), which will most likely take the subtype
1380        into  regard,  and  those  who  only operate on a specific subtype
1381        (like 'image/jpeg').
1382        You  can  use  transformations on mimetypes for which the function
1383        was  not  defined for. There is no security check for you selected
1384        the  right transformation, so take care of what the output will be
1385        like.
1386      * The  field  'Transformation options' is a free-type textfield. You
1387        have  to  enter  transform-function specific options here. Usually
1388        the  transforms  can  operate  with  default  options,  but  it is
1389        generally a good idea to look up the overview to see which options
1390        are necessary.
1391        Much  like  the  ENUM/SET-Fields,  you  have  to  split up several
1392        options using the format 'a','b','c',...(NOTE THE MISSING BLANKS).
1393        This is because internally the options will be parsed as an array,
1394        leaving  the  first  value  the first element in the array, and so
1395        forth.
1396        If  you  want to specify a MIME character set you can define it in
1397        the  transformation_options.  You  have to put that outside of the
1398        pre-defined  options  of  the specific mime-transform, as the last
1399        value  of  the set. Use the format "'; charset=XXX'". If you use a
1400        transform,  for  which  you  can specify 2 options and you want to
1401        append   a   character   set,   enter  "'first  parameter','second
1402        parameter','charset=us-ascii'".  You can, however use the defaults
1403        for the parameters: "'','','charset=us-ascii'".
1405   [3. File structure]
1407    All  mimetypes  and  their  transformations are defined through single
1408    files in the directory 'libraries/transformations/'.
1410    They  are  stored in files to ease up customization and easy adding of
1411    new transformations.
1413    Because  the  user  cannot  enter  own mimetypes, it is kept sure that
1414    transformations   always   work.   It   makes  no  sense  to  apply  a
1415    transformation  to  a mimetype, the transform-function doesn't know to
1416    handle.
1418    One  can,  however,  use  empty  mime-types and global transformations
1419    which should work for many mimetypes. You can also use transforms on a
1420    different  mimetype  they where built for, but pay attention to option
1421    usage as well as what the transformation does to your field.
1423    There  is  a  basic file called 'global.inc.php'. This function can be
1424    included  by  any  other  transform  function  and provides some basic
1425    functions.
1427    There are 5 possible file names:
1428     1. A mimetype+subtype transform:
1429        [mimetype]_[subtype]__[transform].inc.php
1430        Please  not that mimetype and subtype are separated via '_', which
1431        shall   not   be   contained   in   their   names.  The  transform
1432        function/filename  may  contain  only  characters  which  cause no
1433        problems  in  the  file  system as well as the PHP function naming
1434        convention.
1435        The transform function will the be called
1436        'PMA_transform_[mimetype]_[subtype]__[transform]()'.
1437        Example:
1438        text_html__formatted.inc.php
1439        PMA_transform_text_html__formatted()
1440     2. A mimetype (w/o subtype) transform:
1441        [mimetype]__[transform].inc.php
1442        Please note that there are no single '_' characters. The transform
1443        function/filename  may  contain  only  characters  which  cause no
1444        problems  in  the  file  system as well as the PHP function naming
1445        convention.
1446        The transform function will the be called
1447        'PMA_transform_[mimetype]__[transform]()'.
1448        Example:
1449        text__formatted.inc.php
1450        PMA_transform_text__formatted()
1451     3. A mimetype+subtype without specific transform function
1452        [mimetype]_[subtype].inc.php
1453        Please  note that there are no '__' characters in the filename. Do
1454        not  use  special characters in the filename causing problems with
1455        the file system.
1456        No transformation function is defined in the file itself.
1457        Example:
1458        text_plain.inc.php
1459        (No function)
1460     4. A mimetype (w/o subtype) without specific transform function
1461        [mimetype].inc.php
1462        Please  note  that there are no '_' characters in the filename. Do
1463        not  use  special characters in the filename causing problems with
1464        the file system.
1465        No transformation function is defined in the file itself.
1466        Example:
1467        text.inc.php
1468        (No function)
1469     5. A global transform function with no specific mimetype
1470        global__[transform].inc.php
1471        The transform function will the be called
1472        'PMA_transform_global__[transform]()'.
1473        Example:
1474        global__formatted
1475        PMA_transform_global__formatted()
1477    So  generally  use  '_'  to split up mimetype and subtype, and '__' to
1478    provide a transform function.
1480    All  filenames containing no '__' in themselves are not shown as valid
1481    transform functions in the dropdown.
1483    Please see the libraries/transformations/TEMPLATE file for adding your
1484    own transform function. See the
1485    libraries/transformations/TEMPLATE_MIMETYPE   for  adding  a  mimetype
1486    without a transform function. Also note the introduction of a function
1487    description   in   the   language   files.   For   each   function   a
1488    $strTransformation_[filename without .inc.php] has to exist.
1490    You  can  use  the  template  generator  to generate new functions and
1491    entries in the language file.
1493    To     create     a     new     transform    function    please    see
1494    libraries/transformations/template_generator.sh.   To  create  a  new,
1495    empty mimetype please see
1496    libraries/transformations/template_generator_mimetype.sh.
1498    A transform function always gets passed three variables:
1499     1. $buffer  -  Contains  the  text  inside of the column. This is the
1500        text, you want to transform.
1501     2. $options  -  Contains  any  user-passed  options  to  a  transform
1502        function as an array.
1503     3. $meta  - Contains an object with field information to your column.
1504        The  data  is  drawn  from  the  output of the mysql_fetch_field()
1505        function.  This  means,  all  object  properties  described on the
1506        manual  page  are  available  in  this variable and can be used to
1507        transform  a  field  accordingly to unsigned/zerofill/not_null/...
1508        properties.
1509        The  $meta->mimetype  variable  contains the original MIME-type of
1510        the field (i.e. 'text/plain', 'image/jpeg' etc.)
1512 FAQ - Frequently Asked Questions
1514    Server   -   Configuration  -  Limitations  -  Multi-user  -  Browsers
1515    -  Usage tips  -  Project  -  Security
1517    Please  have  a  look  at  our Link section on the official phpMyAdmin
1518    homepage   for  in-depth  coverage  of  phpMyAdmin's  features  and/or
1519    interface.
1521   [1. Server]
1523     [1.1] I'm running PHP 4+ and my server is crashing each time a specific
1524     action is required or phpMyAdmin sends a blank page or a page full of
1525     cryptic characters to my browser, what can I do?
1527    There are some known PHP bugs with output buffering and compression.
1528    Try   to   set   the   $cfg['OBGzip']   directive  to  FALSE  in  your
1529    config.inc.php  file  and the zlib.output_compression directive to Off
1530    in your php configuration file.
1531    Furthermore,  we  know  about  such  problems connected to the release
1532    candidates  of  PHP  4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together
1533    with  MS  Internet Explorer. Please upgrade to the release version PHP
1534    4.2.0.
1536     [1.2] My Apache server crashes when using phpMyAdmin.
1538    You  should  first  try  the  latest  versions of Apache (and possibly
1539    MySQL).
1540    See also the other FAQ entry about PHP bugs with output buffering.
1541    If  your  server  keeps  crashing,  please ask for help in the various
1542    Apache support groups.
1544     [1.3] I'm running phpMyAdmin with "cookie" authentication mode under PHP
1545     4.2.0 or 4.2.1 loaded as an Apache 2+ module but can't enter the script:
1546     I'm always displayed the login screen.
1548    This  is  a  known PHP bug (see this bug report) from the official PHP
1549    bug  database.  It  means  there  is  and  won't be any phpMyAdmin fix
1550    against it because there is no way to code a fix.
1552     [1.4] Using phpMyAdmin on IIS, I'm displayed the error message: "The
1553     specified CGI application misbehaved by not returning a complete set of
1554     HTTP headers...".
1556    You   just   forgot   to  read  the  install.txt  file  from  the  php
1557    distribution.  Have a look at the last message in this bug report from
1558    the official PHP bug database.
1560     [1.5] Using phpMyAdmin on IIS, I'm facing crashes and/or many error
1561     messages with the HTTP or advanced authentication mode.
1563    This is a known problem with the PHP ISAPI filter: it's not so stable.
1564    For  some  more  information  and  complete  testings see the messages
1565    posted  by André B. aka "djdeluxe76" in this thread from the phpWizard
1566    forum.
1567    Please use instead the cookie authentication mode.
1569     [1.6] I can't use phpMyAdmin on PWS: nothing is displayed!
1571    This  seems  to be a PWS bug. Filippo Simoncini found a workaround (at
1572    this  time  there  is  no  better  fix): remove or comment the DOCTYPE
1573    declarations    (2    lines)    from   the   scripts   header.inc.php,
1574    header_printview.inc.php,        index.php,        left.php        and
1575    libraries/common.lib.php.
1577     [1.7] How can I GZip or Bzip a dump or a CSV export. It does not seem to
1578     work.
1580    These  features  are  based  on  the  gzencode()  and bzcompress() PHP
1581    functions  to  be more independent of the platform (Unix/Windows, Safe
1582    Mode  or  not,  and  so  on).  So,  you  must  have  PHP4 >= 4.0.4 and
1583    Zlib/Bzip2 support (--with-zlib and --with-bz2).
1584    We  faced  PHP crashes when trying to download a dump with MS Internet
1585    Explorer when phpMyAdmin is run with a release candidate of PHP 4.2.0.
1586    In this case you should switch to the release version of PHP 4.2.0.
1588     [1.8] I cannot insert a text file in a table, and I get an error about safe
1589     mode being in effect.
1591    Your  uploaded file is saved by PHP in the "upload dir", as defined in
1592    php.ini  by the variable upload_tmp_dir (usually the system default is
1593    /tmp).
1594    We  recommend  the  following setup for Apache servers running in safe
1595    mode, to enable uploads of files while being reasonably secure:
1596      * create a separate directory for uploads: mkdir /tmp/php
1597      * give   ownership   to   the   Apache  server's  user.group:  chown
1598        apache.apache /tmp/php
1599      * give proper permission: chmod 600 /tmp/php
1600      * put upload_tmp_dir = /tmp/php in php.ini
1601      * restart Apache
1603     [1.9] I'm having troubles when uploading files. In general file uploads
1604     don't work on my system and uploaded files have a Content-Type: header in
1605     the first line.
1607    It's  not  really phpMyAdmin related but RedHat 7.0. You have a RedHat
1608    7.0  and  you  updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't
1609    you?
1610    So  the  problem  is  that  this  package  has  a serious bug that was
1611    corrected  ages  ago in PHP (2001-01-28: see PHP's bug tracking system
1612    for  more  details).  The  problem is that the bugged package is still
1613    available  though  it  was  corrected  (see RedHat's BugZilla for more
1614    details).
1615    So  please  download  the  fixed  package (4.0.4pl1-9) and the problem
1616    should go away.
1617    And that fixes the \r\n problem with file uploads!
1619     [1.10] I'm having troubles when uploading files with phpMyAdmin running on
1620     a secure server. My browser is Internet Explorer and I'm using the Apache
1621     server.
1623    As  suggested by "Rob M" in the phpWizard forum, add this line to your
1624    httpd.conf:
1625        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
1626    It seems to clear up many problems between Internet Explorer and SSL.
1628     [1.11] I get an 'open_basedir restriction' while uploading a file from the
1629     query box.
1631    Since  version  2.2.4,  phpMyAdmin  supports servers with open_basedir
1632    restrictions.  Assuming  that the restriction allows you to open files
1633    in  the  current directory ('.'), all you have to do is create a 'tmp'
1634    directory under the phpMyAdmin install directory, with permissions 777
1635    and  the  same  owner  as  the owner of your phpMyAdmin directory. The
1636    uploaded  files  will  be moved there, and after execution of your SQL
1637    commands, removed.
1639     [1.12] I have lost my MySQL root password, what can I do?
1641    The MySQL manual explains how to reset the permissions.
1643     [1.13] I get an error 'No SQL query' when trying to execute a bookmark.
1645    If  PHP  does  not  have  read/write  access to its upload_tmp_dir, it
1646    cannot access the uploaded query.
1648     [1.14] I get an error 'No SQL query' when trying to submit a query from the
1649     convenient text area.
1651    Check the post_max_size directive from your PHP configuration file and
1652    try to increase it.
1654     [1.15] I have problems with mysql.user field names.
1656    In  older MySQL versions, the User and Password fields were named user
1657    and  password.  Please  modify  your field names to align with current
1658    standards.
1660     [1.16] I cannot upload big dump files (memory, http or timeout problems).
1662    The first things to check (or ask your host provider to check) are the
1663    values  of  upload_max_filesize, memory_limit and post_max_size in the
1664    php.ini configuration file.
1665    All of these three settings limit the maximum size of data that can be
1666    submitted  and  handled  by PHP. One user also said that post_max_size
1667    and memory_limit need to be larger than upload_max_filesize.
1668    If you get a timeout problem, look at the $cfg['UploadDir'] feature.
1670     [1.17] Which MySQL versions does phpMyAdmin support?
1672    All  MySQL  versions from 3.23.32 till 4.0 are fully supported. Please
1673    note  that  the  older your MySQL version is, the more limitations you
1674    will have to face.
1675    phpMyAdmin  provides  experimental support for MySQL 4.1 and 5.0. That
1676    means that although you can assign character sets to a table or field,
1677    phpMyAdmin  will  not recode the data when inserting or extracting it.
1678    Instead,  it  will  still  use the character set you specified for the
1679    MySQL onnection.
1680    When  compiling  php, we strongly recommend that you manually link the
1681    MySQL extension to a MySQL client library of at least the same version
1682    since the one that is bundled with current php distributions is rather
1683    old and might cause problems.
1684    Also, we do not yet support the improved MySQL extension (mysqli) that
1685    comes  with php 5. For the moment, the old MySQL extension should also
1686    work fine here, if compiled correctly.
1687    MySQL 5.1 is not yet supported.
1689     [1.18] I'm running MySQL <= 4.0.1 having lower_case_table_names set to 1.
1690     If I create a new table with a capital letter in its name it is changed to
1691     lowercase as it should. But if I try to DROP this table MySQL is unable to
1692     find the corresponding file.
1694    This   is  a  bug  of  MySQL <= 4.0.1.  Please  upgrade  to  at  least
1695    MySQL 4.0.2 or turn off your lower_case_table_names directive.
1697     [1.19] I can't run the "display relations" feature because the script seems
1698     not to know the font face I'm using!
1700    The  "FPDF" library we're using for this feature requires some special
1701    files to use font faces.
1702    Please refers to the FPDF manual to build these files.
1704     [1.20] I receive the error "cannot load MySQL extension, please check PHP
1705     Configuration".
1707    To  connect  to  a  MySQL  server,  PHP needs a set of MySQL functions
1708    called  "MySQL  extension".  This  extension  may  be  part of the PHP
1709    distribution   (compiled-in),   otherwise   it   needs  to  be  loaded
1710    dynamically.   Its   name   is  probably  mysql.so  or  php_mysql.dll.
1711    phpMyAdmin tried to load the extension but failed.
1712    Usually, the problem is solved by installing a software package called
1713    "PHP-MySQL" or something similar.
1715     [1.21] I am running the CGI version of PHP under Unix, and I cannot login
1716     using cookie auth.
1718    In php.ini, set mysql.max_links higher than 1.
1720     [1.22] I don't see the "Location of text file" field, so I cannot upload.
1722    This is most likely because in php.ini, your file_uploads parameter is
1723    not set to "on".
1725     [1.23] I'm running MySQL on a Win32 machine. Each time I create a new table
1726     the table and field names are changed to lowercase!
1728    This   happens  because  the  MySQL  directive  lower_case_table_names
1729    defaults  to 1 (ON) in the Win32 version of MySQL. You can change this
1730    behavior by simply changing the directive to 0 (OFF):
1731    Just  edit  your  my.ini  file  that should be located in your Windows
1732    directory and add the following line to the group [mysqld]:
1733    set-variable = lower_case_table_names=0
1734    Next,  save  the  file  and  restart the MySQL service. You can always
1735    check the value of this directive using the query
1736    SHOW VARIABLES LIKE 'lower_case_table_names';
1738     [1.24] Some characters are being truncated in my queries, or I get
1739     characters randomly added. I am running PHP 4.2.3.
1741    This is a PHP 4.2.3 bug.
1743     [1.25] I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get
1744     problems, such as undefined variables when I run a SQL query.
1746    A  tip  from  Jose Fandos: put a comment on the following two lines in
1747    httpd.conf, like this:
1748    # mod_gzip_item_include file \.php$
1749    # mod_gzip_item_include mime "application/x-httpd-php.*"
1750    as  this version of mod_gzip on Apache (Windows) has problems handling
1751    PHP scripts. Of course you have to restart Apache.
1753     [1.26] I just installed phpMyAdmin in my document root of IIS but I get the
1754     error "No input file specified" when trying to run phpMyAdmin.
1756    This is a permission problem. Right-click on the phpmyadmin folder and
1757    choose  properties.  Under the tab Security, click on "Add" and select
1758    the user "IUSER_machine" from the list. Now set his permissions and it
1759    should work.
1761     [1.27] I get empty page when I want to view huge page (eg.
1762     db_details_structure.php with plenty of tables).
1764    This  is  a  PHP bug that occur when GZIP output buffering enabled. If
1765    you  turn  off  it  (by  $cfg['OBGzip'] = FALSE in config.inc.php), it
1766    should work. This bug will be fixed in PHP 5.0.0.
1768     [1.28] My MySQL server sometimes refuses queries and returns the message
1769     'Errorcode: 13'. What does this mean?
1771    This  can happen due to a MySQL bug when having database / table names
1772    with  upper  case characters although lower_case_table_names is set to
1773    1.  To  fix  this,  turn  off this directive, convert all database and
1774    table names to lower case and turn it on again. Alternatively, there's
1775    a bug-fix available starting with MySQL 3.23.56 / 4.0.11-gamma.
1777     [1.29] When I create a table or modify a field, I get an error and the
1778     fields are duplicated.
1780    It is possible to configure Apache in such a way that PHP has problems
1781    interpreting .php files.
1782    The  problems  occur  when  two  different  (and  conflicting)  set of
1783    directives are used:
1784    SetOutputFilter PHP
1785    SetInputFilter PHP
1786    &
1787    AddType application/x-httpd-php .php
1788    In    the    case   we   saw,   one   set   of   directives   was   in
1789    /etc/httpd/conf/httpd.conf,    while    the    other    set   was   in
1790    /etc/httpd/conf/addon-modules/php.conf.
1791    The recommended way is with AddType, so just comment out the first set
1792    of lines and restart Apache:
1793    #SetOutputFilter PHP
1794    #SetInputFilter PHP
1795    
1796     [1.30] I get the error "left.php: Missing hash".
1798    This  problem  is  known  to  happen  when the server is running Turck
1799    MMCache but upgrading MMCache to version 2.3.21 solves the problem.
1801   [2. Configuration]
1803     [2.1] The error message "Warning: Cannot add header information - headers
1804     already sent by ..." is displayed, what's the problem?
1806    Edit  your  config.inc.php  or  .php  file and ensure there is nothing
1807    (I.E.  no blank lines, no spaces, no characters...) neither before the
1808    <?php tag at the beginning, neither after the ?> tag at the end.
1810     [2.2] phpMyAdmin can't connect to MySQL. What's wrong?
1812    Either there is an error with your PHP setup or your username/password
1813    is  wrong. Try to make a small script which uses mysql_connect and see
1814    if  it works. If it doesn't, it may be you haven't even compiled MySQL
1815    support into PHP.
1817     [2.3] The error message "Warning: MySQL Connection Failed: Can't connect to
1818     local MySQL server through socket '/tmp/mysql.sock' (111)..." is displayed.
1819     What can I do?
1821    For RedHat users, Harald Legner suggests this on the mailing list:
1822    On  my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In
1823    your php.ini you will find a line
1824        mysql.default_socket = /tmp/mysql.sock
1825    change it to
1826        mysql.default_socket = /var/lib/mysql/mysql.sock
1827    Then restart apache and it will work.
1828    Here is a fix suggested by Brad Ummer in the phpwizard forum:
1829      * First, you need to determine what socket is being used by MySQL.
1830        To  do  this,  telnet  to  your  server  and  go  to the MySQL bin
1831        directory.  In  this  directory  there  should  be  a  file  named
1832        mysqladmin.  Type ./mysqladmin variables, and this should give you
1833        a  bunch  of  info  about  your MySQL server, including the socket
1834        (/tmp/mysql.sock, for example).
1835      * Then, you need to tell PHP to use this socket.
1836        Assuming  you  are using PHP 3.0.10 or better, you can specify the
1837        socket  to  use  when  you  open  the  connection.  To  do this in
1838        phpMyAdmin,  you  need  to  complete the socket information in the
1839        config.inc.php.
1840        For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
1841        Please  also  make sure that the permissions of this file allow to
1842        be readable by your webserver (i.e. '0755').
1844    Have   also   a  look  at  the  corresponding  section  of  the  MySQL
1845    documentation.
1847     [2.4] Nothing is displayed by my browser when I try to run phpMyAdmin, what
1848     can I do?
1850    Try  to  set  the  $cfg['OBGZip'] directive to FALSE in the phpMyAdmin
1851    configuration file. It helps sometime.
1852    Also  have a look at your PHP version number: if it contains "4.0b..."
1853    it  means  you're  running a beta version of PHP. That's not a so good
1854    idea, please upgrade to a plain revision.
1856     [2.5] Each time I want to insert or change a record or drop a database or a
1857     table, an error 404 (page not found) is displayed or, with HTTP or cookie
1858     authentication, I'm asked to login again. What's wrong?
1860    Check  the  value  you set for the $cfg['PmaAbsoluteUri'] directive in
1861    the phpMyAdmin configuration file.
1863     [2.6] I get an "Access denied for user: 'root@localhost' (Using password:
1864     YES)"-error when trying to access a MySQL-Server on a host which is
1865     port-forwarded for my localhost
1867    When  you  are  using a port on your localhost, which you redirect via
1868    port-forwarding  to another host, MySQL is not resolving the localhost
1869    as expected.
1870    Erik  Wasser  explains:  The  solution is: if your host is "localhost"
1871    MySQL  (the  commandline tool 'mysql' as well) always tries to use the
1872    socket  connection  for  speeding  up things. And that doesn't work in
1873    this configuration with port forwarding.
1874    If  you  enter  "127.0.0.1" as hostname, everything is right and MySQL
1875    uses the TCP connection.
1877   [3. Known limitations]
1879     [3.1] When using HTTP authentication, an user who logged out can not
1880     relogin in with the same nick.
1882    This  is  related  to  the authentication mechanism (protocol) used by
1883    phpMyAdmin.  To bypass this problem: just close all the opened browser
1884    windows  and  then go back to phpMyAdmin. You should be able to log in
1885    again.
1887     [3.2] When dumping a large table in compressed mode, I get a memory limit
1888     error or a time limit error.
1890    Compressed  dumps  are built in memory and because of this are limited
1891    to  php's  memory  limit.  For GZip/BZip2 exports this can be overcome
1892    since  2.5.4  using  $cfg['CompressOnFly']  (enabled  by default). Zip
1893    exports  can  not  be  handled  this way, so if you need Zip files for
1894    larger dump, you have to use another way.
1896     [3.3] With InnoDB tables, I lose foreign key relationships when I rename or
1897     alter a table.
1899    This seems to be a InnoDB bug (fixed in MySQL 3.23.50?).
1901     [3.4] I am unable to import dumps I created with the mysqldump tool bundled
1902     with the MySQL server distribution.
1904    The problem is that mysqldump creates invalid comments like this:
1905 -- MySQL dump 8.22
1907 -- Host: localhost Database: database
1908 ---------------------------------------------------------
1909 -- Server version 3.23.54
1911    The  invalid  part  of  the code is the horizontal line made of dashes
1912    that appears once in every dump created with mysqldump. If you want to
1913    run  your  dump  you have to turn it into valid MySQL. This means, you
1914    have  to add a whitespace after the first to dashes of the line or add
1915    a # before it:
1916    -- -------------------------------------------------------
1917    or
1918    #---------------------------------------------------------
1920     [3.5] When using nested folders ($cfg['LeftFrameTableSeparator']) there are
1921     some multiple hierarchies displayed in a wrong manner?!
1923    Please  note  that  you  should not use the seperating string multiple
1924    times  without any characters between them, or at the beginning/end of
1925    your   table   name.  If  you  have  to,  think  about  using  another
1926    TableSeparator or disabling that feature
1928     [3.6] What is currently not supported in phpMyAdmin about InnoDB?
1930    In Relation view, being able to choose a table in another database, or
1931    having more than one index field in the foreign key.
1932    In  Query-by-example  (Query),  automatic generation of the query LEFT
1933    JOIN from the foreign table.
1935     [3.7] I have table with many (100+) fields and when I try to browse table I
1936     get series of errors like "Warning: unable to parse url". How can this be
1937     fixed?
1939    Your  table  neither  have a primary key nor an unique one, so we must
1940    use  a  long  expression to identify this row. This causes problems to
1941    parse_url  function.  The  workaround is to create a primary or unique
1942    key.
1944     [3.8] I cannot use (clickable) HTML-forms in fields where I put a
1945     MIME-Transformation onto!
1947    Due to a surrounding form-container (for multi-row delete checkboxes),
1948    no  nested forms can be put inside the table where phpMyAdmin displays
1949    the  results. You can, however, use any form inside of a table if keep
1950    the  parent  form-container  with the target to tbl_row_delete.php and
1951    just  put  your  own input-elements inside. If you use a custom submit
1952    input field, the form will submit itself to the displaying page again,
1953    where  you can validate the $HTTP_POST_VARS in a transformation. For a
1954    tutorial  on  how  to  effectively  use  transformations, see our Link
1955    section on the official phpMyAdmin-homepage.
1957     [3.9] I get error messages when using "--sql_mode=ANSI" for the MySQL
1958     server
1960    When MySQL is running in ANSI-compatibility mode, there are some major
1961    differences in how SQL is structured (see
1962    http://www.mysql.com/doc/en/ANSI_mode.html).  Most  important  of all,
1963    the   quote-character  (")  is  interpreted  as  an  identifier  quote
1964    character  and  not  as  a  string  quote  character, which makes many
1965    internal  phpMyAdmin  operations into invalid SQL statements. There is
1966    no  workaround  to this behaviour. News to this item will be posted in
1967    Bug report #816858
1969     [3.10] Homonyms and no primary key: When the results of a SELECT display
1970     more that one column with the same value (for example SELECT lastname from
1971     employees where firstname like 'A%' and two "Smith" values are displayed),
1972     if I click Edit I cannot be sure that I am editing the intended row.
1974    Please make sure that your table has a primary key, so that phpMyAdmin
1975    can use it for the Edit and Delete links.
1977   [4. ISPs, multi-user installations ]
1979     [4.1] I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need
1980     to install it for each customer.
1982    Since  version  2.0.3,  you can setup a central copy of phpMyAdmin for
1983    all  your  users. The development of this feature was kindly sponsored
1984    by  NetCologne  GmbH.  This  requires  a  properly  setup  MySQL  user
1985    management  and  phpMyAdmin  HTTP  or  cookie  authentication. See the
1986    install section on "Using HTTP authentication".
1988     [4.2] What's the preferred way of making phpMyAdmin secure against evil
1989     access.
1991    This depends on your system.
1992    If  you're  running a server which cannot be accessed by other people,
1993    it's  sufficient  to  use  the  directory protection bundled with your
1994    webserver (with Apache you can use .htaccess files, for example).
1995    If  other  people  have  telnet  access to your server, you should use
1996    phpMyAdmin's HTTP authentication feature.
1997    Suggestions:
1998      * Your config.inc.php file should be chmod 660.
1999      * All  your  phpMyAdmin  files  should  be chown phpmy.apache, where
2000        phpmy is a user whose password is only known to you, and apache is
2001        the group under which Apache runs.
2002      * You should use PHP safe mode, to protect from other users that try
2003        to include your config.inc.php in their scripts.
2005     [4.3] I get errors about not being able to include a file in /lang or in
2006     /libraries.
2008    Check php.ini, or ask your sysadmin to check it. The include_path must
2009    contain  "."  somewhere in it, and open_basedir, if used, must contain
2010    "." and "./lang" to allow normal operation of phpMyAdmin.
2012     [4.4] phpMyAdmin always gives "Access denied" when using HTTP
2013     authentication.
2015    This could happen for several reasons:
2016      * $cfg['Servers'][$i]['controluser']                          and/or
2017        $cfg['Servers'][$i]['controlpass'] are wrong.
2018      * The username/password you specify in the login-dialog are invalid.
2019      * You   have   already   setup   a   security   mechanism   for  the
2020        phpMyAdmin-directory,  eg.  a .htaccess file. This would interfere
2021        with phpMyAdmin's authentication, so remove it.
2023     [4.5] Is it possible to let users create their own databases?
2025    Starting  with  2.2.5,  in  the  user management page, you can enter a
2026    wildcard  database  name  for a user (for example "joe%"), and put the
2027    privileges  you  want.  For  example,  adding  SELECT, INSERT, UPDATE,
2028    DELETE,  CREATE,  DROP,  INDEX,  ALTER  would let a user create/manage
2029    his/her database(s).
2031     [4.6] How can I use the Host-based authentication additions?
2033    If  you  have  existing rules from an old .htaccess file, you can take
2034    them and add a username between the 'deny'/'allow' and 'from' strings.
2035    Using  the  username  wildcard of '%' would be a major benefit here if
2036    your  installation  is suited to using it. Then you can just add those
2037    updated   lines   into  the  $cfg['Servers'][$i]['AllowDeny']['rules']
2038    array.
2039    If you want a pre-made sample, you can try this fragment. It stops the
2040    'root'  user  from logging in from any networks other than the private
2041    network IP blocks.
2042        //block root from logging in except from the private networks
2043        $cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
2044        $cfg['Servers'][$i]['AllowDeny']['rules'] = array(
2045            'deny root from all',
2046            'allow root from localhost',
2047            'allow root from 10.0.0.0/8',
2048            'allow root from 192.168.0.0/16',
2049            'allow root from 172.16.0.0/12',
2050            );
2052     [4.7] Authentication window is displayed more than once, why?
2054    This  happens  if  you  are  using  a URL to start phpMyAdmin which is
2055    different  than  the  one  set  in  your  $cfg['PmaAbsoluteUri'].  For
2056    example,  a  missing  "www",  or  entering  with an IP address while a
2057    domain name is defined in the config file.
2059   [5. Browsers or client OS]
2061     [5.1] I get an out of memory error, and my controls are non-functional,
2062     when trying to create a table with more than 14 fields.
2064    We  could  reproduce this problem only under Win98/98SE. Testing under
2065    WinNT4 or Win2K, we could easily create more than 60 fields.
2066    A  workaround  is to create a smaller number of fields, then come back
2067    to your table properties and add the other fields.
2069     [5.2] With Xitami 2.5b4, phpMyAdmin won't process form fields.
2071    This  is  not a phpMyAdmin problem but a Xitami known bug: you'll face
2072    it with each script/website that use forms.
2073    Upgrade or downgrade your Xitami server.
2075     [5.3] I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).
2077    With  Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except
2078    that  the  proposed  file  name for the dump is always 'tbl_dump.php'.
2079    Bzip2 dumps don't seem to work.
2080    With  Konqueror 2.2.1: plain dumps work; zip dumps are placed into the
2081    user's  temporary  directory,  so  they  must  be moved before closing
2082    Konqueror, or else they disappear. GZip dumps give an error message.
2083    Testing needs to be done for Konqueror 2.2.2.
2085     [5.4] I can't use the cookie authentication mode because Internet Explorer
2086     never stores the cookies.
2088    MS  Internet Explorer seems to be really buggy about cookies, at least
2089    till  version  6. And thanks to Andrew Zivolup we've traced also a PHP
2090    4.1.1 bug in this area!
2091    Then,  if  you're running PHP 4.1.1, try to upgrade or downgrade... it
2092    may work!
2094     [5.5] In Internet Explorer 5.0, I get JavaScript errors when browsing my
2095     rows.
2097    Upgrade to at least Internet Explorer 5.5 SP2.
2099     [5.6] In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not
2100     found") when trying to modify a row in a table with many fields, or with a
2101     text field
2103    Your  table  neither  have a primary key nor an unique one, so we must
2104    use a long URL to identify this row. There is a limit on the length of
2105    the  URL  in  those  browsers,  and  this  not happen in Netscape, for
2106    example.  The  workaround is to create a primary or unique key, or use
2107    another browser.
2109     [5.7] I refresh (reload) my browser, and come back to the welcome page.
2111    Some  browsers  support  right-clicking  into  the  frame  you want to
2112    refresh, just do this in the right frame.
2114     [5.8] With Mozilla 0.9.7 I have problems sending a query modified in the
2115     query box.
2117    Looks  like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future
2118    Mozilla versions.
2120     [5.9] With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a
2121     whitespace in the SQL-Query edit area: the page scrolls down.
2123    This is a Mozilla bug (see bug #26882 at BugZilla).
2125     [5.10] With Netscape 4.75 I get empty rows between each row of data in a
2126     CSV exported file.
2128    This  is  a  known  Netscape  4.75  bug:  it adds some line feeds when
2129    exporting  data  in  octet-stream  mode.  Since  we  can't  detect the
2130    specific Netscape version, we cannot workaround this bug.
2132     [5.11] Extended-ASCII characters like German umlauts are displayed wrong.
2134    Please  ensure  that  you have set your browser's character set to the
2135    one of the language file you have selected on phpMyAdmin's start page.
2136    Alternatively,  you  can try the auto detection mode that is supported
2137    by the recent versions of the most browsers.
2139     [5.12] Apple OS X: Safari browser changes special characters to "?".
2141    This  issue  has  been reported by a OS X user, who adds that Chimera,
2142    Netscape and Mozilla do not have this problem.
2144     [5.13] With Internet Explorer 5.5 or 6, and HTTP authentication type, I
2145     cannot manage two servers: I login to the first one, then the other one,
2146     but if I switch back to the first, I have to login on each operation.
2148    This  is a bug in Internet Explorer, other browsers do not behave this
2149    way.
2151     [5.14] Using Opera6, I can manage to get to the authentification, but
2152     nothing happens after that, only a blank screen.
2154    Having  $cfg['QueryFrameJS']  set  to  TRUE,  this  leads  to a bug in
2155    Opera6,  because  it  is  not  able to interpret frameset definitiions
2156    written by JavaScript. Please upgrade to Opera7 at least.
2158   [6. Using phpMyAdmin]
2160     [6.1] I can't insert new rows into a table / I can't create a table - MySQL
2161     brings up a SQL-error.
2163    Examine  the  SQL  error  with  care.  Often  the problem is caused by
2164    specifying a wrong field-type.
2165    Common errors include:
2166      * Using VARCHAR without a size argument
2167      * Using TEXT or BLOB with a size argument
2169    Also,  look  at the syntax chapter in the MySQL manual to confirm that
2170    your syntax is correct.
2172     [6.2] When I create a table, I click the Index checkbox for 2 fields and
2173     phpMyAdmin generates only one index with those 2 fields.
2175    In   phpMyAdmin  2.2.0  and  2.2.1,  this  is  the  way  to  create  a
2176    multi-fields index. If you want two indexes, create the first one when
2177    creating  the table, save, then display the table properties and click
2178    the Index link to create the other index.
2180     [6.3] How can I insert a null value into my table?
2182    Since  version  2.2.3,  you have a checkbox for each field that can be
2183    null.  Before  2.2.3,  you had to enter "null", without the quotes, as
2184    the  field's  value. Since version 2.5.5, you have to use the checkbox
2185    to get a real NULL value, so if you enter "NULL" this means you want a
2186    literal NULL in the field, and not a NULL value (this works in PHP4).
2188     [6.4] How can I backup my database or table?
2190    Click  on  a  database or table name in the left frame, the properties
2191    will  be displayed. Then on the menu, click "Export", you can dump the
2192    structure,  the  data,  or  both.  This  will  generate  standard  SQL
2193    statements that can be used to recreate your database/table.
2194    You  will  need  to  choose  "Save  as  file",  so that phpMyAdmin can
2195    transmit  the  resulting  dump  to your station. Depending on your PHP
2196    configuration, you will see options to compress the dump. See also the
2197    $cfg['ExecTimeLimit'] configuration variable.
2198    For  additional help on this subject, look for the word "dump" in this
2199    document.
2201     [6.5] How can I restore (upload) my database or table using a dump? How can
2202     I run a ".sql" file.
2204    Click  on  a  database  name in the left frame, the properties will be
2205    local  displayed.  Then  in  the "Run SQL query" section, type in your
2206    dump filename, or use the Browse button. Then click Go.
2207    For  additional  help  on  this subject, look for the word "upload" in
2208    this document.
2210     [6.6] How can I use the relation table in Query-by-example?
2212    Here  is  an example with the tables persons, towns and countries, all
2213    located  in the database mydb. If you don't have a pma_relation table,
2214    create  it  as explained in the configuration section. Then create the
2215    example tables:
2216         CREATE TABLE REL_countries (
2217           country_code char(1) NOT NULL default '',
2218           description varchar(10) NOT NULL default '',
2219           PRIMARY KEY (country_code)
2220         ) TYPE=MyISAM;
2221         INSERT INTO REL_countries VALUES ('C', 'Canada');
2222         CREATE TABLE REL_persons (
2223           id tinyint(4) NOT NULL auto_increment,
2224           person_name varchar(32) NOT NULL default '',
2225           town_code varchar(5) default '0',
2226           country_code char(1) NOT NULL default '',
2227           PRIMARY KEY (id)
2228         ) TYPE=MyISAM;
2229         INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
2230         INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
2231         CREATE TABLE REL_towns (
2232           town_code varchar(5) NOT NULL default '0',
2233           description varchar(30) NOT NULL default '',
2234           PRIMARY KEY (town_code)
2235         ) TYPE=MyISAM;
2236         INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
2237         INSERT INTO REL_towns VALUES ('M', 'Montréal');
2238    To setup appropriate links and display information:
2239      * on table "REL_persons" click Structure, then Relation view
2240      * in Links, for "town_code" choose "REL_towns->code"
2241      * in Links, for "country_code" choose "REL_countries->country_code"
2242      * on table "REL_towns" click Structure, then Relation view
2243      * in "Choose field to display", choose "description"
2244      * repeat the two previous steps for table "REL_countries"
2246    Then test like this:
2247      * Click on your db name in the left frame
2248      * Choose "Query"
2249      * Use tables: persons, towns, countries
2250      * Click "Update query"
2251      * In the fields row, choose persons.person_name and click the "Show"
2252        tickbox
2253      * Do  the  same  for towns.description and countries.descriptions in
2254        the other 2 columns
2255      * Click  "Update  query"  and you will see in the query box that the
2256        correct joins have been generated
2257      * Click "Submit query"
2259     [6.7] How can I use the "display field" feature?
2261    Starting  from  the  previous  example,  create  the pma_table_info as
2262    explained  in  the  configuration  section,  then  browse your persons
2263    table, and move the mouse over a town code or country code.
2264    See  also  FAQ  6.21  for  an additionnal feature that "display field"
2265    enables: drop-down list of possible values.
2267     [6.8] How can I produce a PDF schema of my database?
2269    First  you have to fill the "relation", "table_coords" and "pdf_pages"
2270    configuration variables.
2271    Then,  think  about  your schema layout: which tables will go on which
2272    pages.
2273      * Click on your db name in the left frame
2274      * Choose "Structure" in the navigation on top
2275      * Choose "Edit PDF Pages" which should be somewhere at the bottom of
2276        the page
2277      * Enter  the  name for a first pdf page and submit (you can also use
2278        the  "Automatic  layout",  which  will  place on your page all the
2279        tables that are linked)
2280      * Choose this page to edit
2281      * Now  add a table you want to show on this page and its coordinates
2282        and submit
2283        First  you will have to guess those coordinates of course, so just
2284        expect  to  have  an  area  of  about 297 * 210 and put the tables
2285        coordinates somewhere in there, you will be able to have a look at
2286        what happened and change them later.
2287        For  example,  x=100 and y=200 means that the table will be at 200
2288        mm down and 100 mm right from the upper left corner.
2289        Actually  if you have a width of more than 300 or a height of more
2290        than  200  then  it  will automatically be scaled but 200*100 is a
2291        good start to have an idea of what coordinates to use.
2292      * There  is  also  a visual editor (scratchboard) available, see the
2293        explanation at the $cfg['WYSIWYG-PDF'] section.
2294      * After  every  table you submitted you will have the possibility to
2295        submit more tables
2296      * When  you  have entered enough tables Click on your db name in the
2297        left frame again
2298      * Now,  again at the bottom of the page you should be able to choose
2299        "Display PDF schema"
2300        For  testing  it  might be useful to show the grid as well, so you
2301        can see the coordinates used.
2302        Maybe also choose color and submit.
2303      * Save  the  file  he  will  offer  you to something like Schema.pdf
2304        (Internet Explorer has some bug there which might make it offer it
2305        without  an  extension.  Under Windows it is important to have the
2306        extension  ".pdf", under other OSes you should be fine just saving
2307        the file under the name it offers).
2309     [6.9] phpMyAdmin is changing the type of one of my columns!
2311    No, it's MySQL that is doing silent column type changing.
2313     [6.10] When creating a privilege, what happens with underscores in the
2314     database name?
2316    If  you  do  not  put  a  backslash  before  the underscore, this is a
2317    wildcard  grant,  and the underscore means "any character". So, if the
2318    database  name  is  "john_db",  the  user would get rights to john1db,
2319    john2db...
2320    If  you  put  a  backslash  before  the  underscore, it means that the
2321    database name will have a real underscore.
2323     [6.11] What is the curious symbol ø in the statistics pages?
2325    It means "average".
2327     [6.12] I want to understand some Export options.
2329    "Complete  inserts" adds the column names on every INSERT command, for
2330    better documentation (but resulting file is bigger).
2331    "Extended inserts" provides a shorter dump file by using only once the
2332    INSERT verb and the table name.
2333    "Enclose table and field names with backquotes" ensures that field and
2334    table names formed with special characters are protected.
2335    "Add AUTO_INCREMENT value" ensures, that AUTO_INCREMENT value (if any)
2336    will be included in backup.
2337    "Add into comments" includes column comments, relations and MIME types
2338    set in the PMA-DB in the dump as SQL comments (/* xxx */).
2340     [6.13] I would like to create a database with a dot in its name.
2342    This  is  a  bad idea, because in MySQL the syntax "database.table" is
2343    the  normal  way  to reference a database and table name. Worse, MySQL
2344    will usually let you create a database with a dot, but then you cannot
2345    work with it, nor delete it.
2347     [6.14] How do I set up the SQL Validator?
2349    To  use  it, you need a very recent version of PHP, 4.3.0 recommended,
2350    with  XML,  PCRE  and  PEAR  support. On your system command line, run
2351    "pear install Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP"
2352    to get the necessary PEAR modules for usage.
2353    If  you  use it, you should be aware that any SQL statement you submit
2354    will  be  stored  anonymously  (database/table/column  names, strings,
2355    numbers replaced with generic values). The Mimer SQL Validator itself,
2356    is  ©  2001  Upright  Database  Technology. We utilize it as free SOAP
2357    service.
2359     [6.15] I want to add a BLOB field and put an index on it, but MySQL says
2360     "BLOB column '...' used in key specification without a key length".
2362    The  right way to do this, is to create the field without any indexes,
2363    then display the table structure and use the "Create an index" dialog.
2364    On  this  page,  you will be able to choose your BLOB field, and set a
2365    size to the index, which is the condition to create an index on a BLOB
2366    field.
2368     [6.16] How can I simply move in page with plenty editing fields?
2370    You  can  use Ctrl+arrows for moving on most pages with plenty editing
2371    fields  (table  structure changes, row editing, etc.) (must be anabled
2372    in configuration - see. $cfg['CtrlArrowsMoving']). You can also have a
2373    look  at the directive $cfg['DefaultPropDisplay'] ('vertical') and see
2374    if this eases up editing for you.
2376     [6.17] Transformations: I can't enter my own mimetype! WTF is this feature
2377     then useful for?
2379    Slow  down  :).  Defining  mimetypes  is  of  no use, if you can't put
2380    transformations on them. Otherwise you could just put a comment on the
2381    field.  Because  entering  your own mimetype will cause serious syntax
2382    checking   issues   and   validation,   this  introduces  a  high-risk
2383    false-user-input  situation.  Instead you have to initialize mimetypes
2384    using functions or empty mimetype definitions.
2385    Plus,  you have a whole overview of available mimetypes. Who knows all
2386    those mimetypes by heart so he/she can enter it at will?
2388     [6.18] Bookmarks: Where can I store bookmarks? Why can't I see any
2389     bookmarks below the query box? What is this variable for?
2391    Any  query  you  have executed can be stored as a bookmark on the page
2392    where  the  results  are  displayed.  You  will  find a button labeled
2393    'Bookmark this query' just at the end of the page.
2394    As  soon  as you have stored a bookmark, it is related to the database
2395    you  run  the query on. You can now access a bookmark dropdown on each
2396    page, the query box appears on for that database.
2397    Since  phpMyAdmin  2.5.0  you are also able to store variables for the
2398    bookmarks.  Just use the string /*[VARIABLE]*/ anywhere in your query.
2399    Everything which is put into the value input box on the query box page
2400    will replace the string "/*[VARIABLE]*/" in your stored query. Just be
2401    aware  of  that you HAVE to create a valid query, otherwise your query
2402    won't be even able to be stored in the database.
2403    Also  remember,  that everything else inside the /*[VARIABLE]*/ string
2404    for  your query will remain the way it is, but will be stripped of the
2405    /**/ chars. So you can use:
2406    /*, [VARIABLE] AS myname */
2407    which will be expanded to
2408    , VARIABLE as myname
2409    in  your  query, where VARIABLE is the string you entered in the input
2410    box. If an empty string is provided, no replacements are made.
2411    A more complex example. Say you have stored this query:
2412    SELECT  Name,  Address  FROM  addresses  WHERE  1  /*  AND  Name  LIKE
2413    '%[VARIABLE]%' */
2414    Say,  you now enter "phpMyAdmin" as the variable for the stored query,
2415    the full query will be:
2416    SELECT   Name,   Address   FROM   addresses  WHERE  1  AND  Name  LIKE
2417    '%phpMyAdmin%'
2418    You can use multiple occurences of /*[VARIABLE]*/ in a single query.
2419    NOTE  THE  ABSENCE  OF  SPACES inside the "/**/" construct. Any spaces
2420    inserted there will be later also inserted as spaces in your query and
2421    may  lead  to  unexpected  results  especially when using the variable
2422    expansion inside of a "LIKE ''" expression.
2423    Your  initial  query  which is going to be stored as a bookmark has to
2424    yield  at  least one result row so you can store the bookmark. You may
2425    have that to work around using well positioned "/**/" comments.
2427     [6.19] How can I create simple LaTeX document to include exported table?
2429    You  can  simply include table in your LaTeX documents, minimal sample
2430    document  should  look  like  following  one  (assuming you have table
2431    exported in file table.tex):
2432 \documentclass{article} % or any class you want
2433 \usepackage{longtable}  % for displaying table
2434 \begin{document}        % start of document
2435 \include{table}         % including exported table
2436 \end{document}          % end of document
2438     [6.20] In MySQL 4, I see a lot of databases which are not mine, and cannot
2439     access them.
2441    Upgrading  to  MySQL  4  usually  gives users those global privileges:
2442    CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges
2443    also  enables  users  to see all the database names, until you upgrade
2444    the  grant tables as described in the MySQL manual, section 2.5.6. See
2445    this bug report.
2446    So if your users do not need those privileges, you can remove them and
2447    their databases list will shorten.
2449     [6.21] In edit/insert mode, how can I see a list of possible values for a
2450     field, based on some foreign table?
2452    You have to setup appropriate links between the tables, and also setup
2453    the  "display field" in the foreign table. See FAQ 6.6 for an example.
2454    Then,  if  there  are  200  values  or  less  in  the foreign table, a
2455    drop-down  list of values will be available. For 200 values or more, a
2456    distinct  window  will appear, to browse foreign key values and choose
2457    one.
2458    You  will  see  two lists of values, the first list containing the key
2459    and  the  display  field, the second list containing the display field
2460    and  the  key.  The  reason  for  this is to be able to type the first
2461    letter of either the key or the display field.
2463     [6.22] Bookmarks: Can I execute a default bookmark automatically when
2464     entering Browse mode for a table?
2466    Yes.  If  a  bookmark  has  the same label as a table name, it will be
2467    executed.
2469   [7. phpMyAdmin project]
2471     [7.1] I have found a bug. How do I inform developers?
2473    Our Bug Tracker is located at
2474    http://sourceforge.net/projects/phpmyadmin/ under the Bugs section.
2475    But please first discuss your bug with other users:
2476    http://sourceforge.net/projects/phpmyadmin/ (and choose Forums)
2478     [7.2] I want to translate the messages to a new language or upgrade an
2479     existing language, where do I start?
2481    Always  use  the  current CVS version of your language file. For a new
2482    language, start from english-iso-8859-1.inc.php. If you don't know how
2483    to get the CVS version, please ask one of the developers.
2484    Please  note that we try not to use HTML entities like &eacute; in the
2485    translations,  since  we  define  the right character set in the file.
2486    With  HTML entities, the text on JavaScript messages would not display
2487    correctly.  However there are some entities that need to be there, for
2488    quotes ,non-breakable spaces, ampersands, less than, greater than.
2489    You  can  then  put  your  translations, as a zip file to avoid losing
2490    special characters, on the sourceforge.net translation tracker.
2491    It  would  be  a  good idea to subscribe to the phpmyadmin-translators
2492    mailing  list,  because  this  is where we ask for translations of new
2493    messages.
2495     [7.3] I would like to help out with the development of phpMyAdmin. How
2496     should I proceed?
2498    The following method is preferred for new developers:
2499     1. fetch the current CVS tree over anonymous CVS:
2500        cvs
2501        -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmy
2502        admin login
2503        [Password: simply press the Enter key]
2504        cvs -z3
2505        -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmy
2506        admin checkout phpMyAdmin
2507        [This will create a new sub-directory named phpMyAdmin]
2508     2. add your stuff
2509     3. put  the  modified  files  (tar'ed  and  gzip'ed) inside the patch
2510        tracker of the phpMyAdmin SourceForge account.
2512    Write access to the CVS tree is granted only to experienced developers
2513    who have already contributed something useful to phpMyAdmin.
2514    Also, have a look at the Developers section.
2516   [8. Security ]
2518     [8.1] Security alert, dated 2003-06-18.
2520    Last update of this FAQ: 2003-07-22.
2521    The  phpMyAdmin  development  team  received  notice  of this security
2522    alert: http://www.securityfocus.com/archive/1/325641.
2523    The  team  regrets  that the author did not communicate with us before
2524    sending  this  alert. However, here is our current reply to the points
2525    mentionned:
2526      * "Directory transversal attack"
2527        This  problem  had been fixed in version 2.5.0, even if the author
2528        reports  the  2.5.2  development  version  as vulnerable, which we
2529        could not reproduce.
2530      * "Remote local file retrieving"
2531        This is a misleading title, as the author tells in his text: "Note
2532        that you can't request files ( only dirs )".
2533      * "Remote internal directory listing"
2534        It  was  possible  to  retrieve the list of phpMyAdmin's directory
2535        (which  we  doubt  can cause any damage), but we fixed this in the
2536        2.5.2 version.
2537      * "XSS and Path disclosures"
2538        Most  of  the  XSS  problems have been fixed in version 2.5.0. The
2539        rest have been fixed in the 2.5.2 version.
2540        We believe that the Path disclosures problems have also been fixed
2541        in version 2.5.2.
2542      * "Information encoding weakness"
2543        We believe that an exploit for this weakness would be difficult to
2544        achieve.  However version 2.5.2 now encrypts the password with the
2545        well-known blowfish algorithm.
2547 Developers Information
2549    phpMyAdmin is Open Source, so you're invited to contribute to it. Many
2550    great  features have been written by other people and you too can help
2551    to make phpMyAdmin a useful tool.
2553    If  you're  planning  to  contribute source, please read the following
2554    information:
2555      * All       files       include       header.inc.php       (layout),
2556        libraries/common.lib.php (common functions) and config.inc.php.
2557        All  configuration  data belongs in config.inc.php. Please keep it
2558        free from other code.
2559        Commonly used functions should be added to
2560        libraries/common.lib.php  and  more  specific  ones  may  be added
2561        within a library stored into the libraries sub-directory.
2562      * Obviously,  you're free to use whatever coding style you want. But
2563        please  try to keep your code as simple as possible: beginners are
2564        using phpMyAdmin as an example application.
2565        As  far  as  possible, we want the scripts to be XHTML1.0 and CSS2
2566        compliant  on  one hand, they fit the PEAR coding standards on the
2567        other hand. Please pay attention to this.
2568      * Please  try  to keep up the file-naming conventions. Table-related
2569        stuff   goes   to   tbl_*.php,   db-related   code   to  db_*.php,
2570        server-related tools to server_*.php and so on.
2571      * Please  don't  use  verbose  strings in your code, instead add the
2572        string  (at  least)  to  english-iso-8859-1.inc.php and print() it
2573        out.
2574      * If  you  want  to  be  really  helpful,  write  an  entry  for the
2575        ChangeLog.
2576      * The   DBG  extension  (PHP  Debugger  DBG)  is  now  supported  by
2577        phpMyAdmin for developers to better debug and profile their code.
2578        Please   see  the  $cfg['DBG']*  configuration  options  for  more
2579        information.
2580        This  is in memoriam of the Space Shuttle Columbia (STS-107) which
2581        was lost during its re-entry into Earth's atmosphere and in memory
2582        of  the brave men and women who gave their lives for the people of
2583        Earth.
2585 Credits
2588 phpMyAdmin - Credits
2589 ====================
2591 CREDITS, in chronological order
2592 -------------------------------
2594 - Tobias Ratschiller <tobias.ratschiller_at_maguma.com>
2595     * creator of the phpmyadmin project
2596     * maintainer from 1998 to summer 2000
2598 - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca>
2599     * multi-language version
2600     * various fixes and improvements
2601     * project co-administrator
2603 - Olivier Müller <om_at_omnis.ch>
2604     * started SourceForge phpMyAdmin project in March 2001
2605     * sync'ed different existing CVS trees with new features and bugfixes
2606     * multi-language improvements, dynamic language selection
2607     * current project maintainer
2608     * many bugfixes and improvements
2610 - Loïc Chapeaux <lolo_at_phpheaven.net>
2611     * rewrote and optimized javascript, DHTML and DOM stuff
2612     * rewrote the scripts so they fit the PEAR coding standards and
2613       generate XHTML1.0 and CSS2 compliant codes
2614     * improved the language detection system
2615     * many bugfixes and improvements
2617 - Robin Johnson <robbat2_at_users.sourceforge.net>
2618     * database maintence controls
2619     * table type code
2620     * Host authentication IP Allow/Deny
2621     * DB-based configuration (Not completed)
2622     * SQL parser
2623     * SQL validator
2624     * many bugfixes and improvements
2626 - Armel Fauveau <armel.fauveau_at_globalis-ms.com>
2627     * bookmarks feature
2628     * multiple dump feature
2629     * gzip dump feature
2630     * zip dump feature
2632 - Geert Lund <glund_at_silversoft.dk>
2633     * various fixes
2634     * moderator of the phpMyAdmin users forum at phpwizard.net
2636 - Korakot Chaovavanich <korakot_at_iname.com>
2637     * "insert as new row" feature
2639 - Pete Kelly <webmaster_at_trafficg.com>
2640     * rewrote and fix dump code
2641     * bugfixes
2643 - Steve Alberty <alberty_at_neptunlabs.de>
2644     * rewrote dump code for PHP4
2645     * mySQL table statistics
2646     * bugfixes
2648 - Benjamin Gandon <gandon_at_isia.cma.fr>
2649     * main author of the version 2.1.0.1
2650     * bugfixes
2652 - Alexander M. Turek <derrabus_at_gmx.de>
2653     * XML exports
2654     * MySQL 4 related features
2655     * various features and fixes
2656     * German language file updates
2658 - Mike Beck <mike.beck_at_ibmiller.de>
2659     * automatic joins in QBE
2660     * links column in printview
2661     * Relation view
2663 - Michal Cihar <michal_at_cihar.com>
2664     * enhanced index creation/display feature
2665     * feature to use a different charset for HTML than for MySQL
2666     * improvements of export feature
2667     * various features and fixes
2668     * Czech language file updates
2670 - Christophe Gesché from the "MySQL Form Generator for PHPMyAdmin"
2671   (http://sourceforge.net/projects/phpmysqlformgen/)
2672     * suggested the patch for multiple table printviews
2674 - Garvin Hicking <me_at_supergarv.de>
2675     * built the patch for vertical display of table rows
2676     * built the Javascript based Query window + SQL history
2677     * Improvement of column/db comments
2678     * (MIME)-Transformations for columns
2679     * Use custom alias names for Databases in left frame
2680     * hierarchical/nested table display
2681     * PDF-scratchboard for WYSIWYG-distribution of PDF relations
2682     * new icon sets
2683     * vertical display of column properties page
2684     * some bugfixes, features, support, german language additions
2686 - Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
2687     * japanese kanji encoding conversion feature
2689 - Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson
2690     * the Cookie authentication mode
2692 - Axel Sander <n8falke_at_users.sourceforge.net>
2693     * table relation-links feature
2695 - Maxime Delorme <delorme.maxime_at_free.fr>
2696     * PDF schema output, thanks also to Olivier Plathey for the
2697       "FPDF" library (see http://www.fpdf.org/).
2699 - Olof Edlund <olof.edlund_at_upright.se>
2700     * SQL validator server
2702 - Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
2703     * phpMyAdmin logo
2705 - Mike Cochrane <mike_at_graftonhall.co.nz>
2706     * blowfish library from the Horde project
2708 And also to the following people who have contributed minor changes,
2709 enhancements, bugfixes or support for a new language since version 2.1.0:
2711 Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
2712 Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
2713 Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger,
2714 Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
2715 Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna,
2716 www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec,
2717 Michael Tacelosky, Rachim Tamsjadi, Kositer Uros,
2718 Luís V., Martijn W. van der Lee,
2719 Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
2720 Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai".
2723 Original Credits of Version 2.1.0
2724 ---------------------------------
2726     This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
2727     to create a web-based interface to MySQL using PHP3. Although I have not
2728     used any of his source-code, there are some concepts I've borrowed from
2729     him. phpMyAdmin was created because Peter told me he wasn't going to
2730     further develop his (great) tool.
2731     Thanks go to
2732     - Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the
2733       code for the check when dropping a table or database. He also suggested
2734       that you should be able to specify the primary key on tbl_create.php3. To
2735       version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
2736       well as a bug-report. Plus many smaller improvements.
2737     - Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that
2738       were introduced in 1.3.0 (including quite significant ones like the
2739       authentication). For 1.4.1 he enhanced the table-dump feature. Plus
2740       bug-fixes and help.
2741     - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin
2742       language-independent by outsourcing the strings to a separate file. He
2743       also contributed the French translation.
2744     - Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed
2745       tbl_select.php3, a feature to display only some fields from a table.
2746     - Chris Jackson <chrisj_at_ctel.net> added support for MySQL
2747       functions in tbl_change.php3. He also added the
2748       "Query by Example" feature in 2.0.
2749     - Dave Walton <walton_at_nordicdms.com> added support for multiple
2750       servers and is a regular contributor for bug-fixes.
2751     - Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access
2752       features for 2.0.6.
2753     The following people have contributed minor changes, enhancements, bugfixes
2754     or support for a new language:
2755     Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
2756     Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
2757     Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
2758     G. Wieggers.
2760     And thanks to everyone else who sent me email with suggestions, bug-reports
2761     and or just some feedback.
2763                                         Valid XHTML 1.0!      Valid CSS!