Error Buddy

Do you have an error message from your application? Then find the answer with Error Buddy. You can search over 40000 source code files and troubleshooting documents using our beta lucene/nutch search interface or if you prefer, search as normal using google. With LXR technology you can drill right down into the line of source code where it came from with full cross-referencing.

If after searching you didn't get your ideal answer, or you are still unclear what the error means, you can choose to post that question to the community forums following the link included in the search results.

corestack/ phpMyAdmin-2.6.1-pl3/ Documentation.txt [1.6]
001    ______________________________________________________________________
002 
003    Top  -  Requirements  -  Introduction  -  Installation  -  Configuration
004    Transformations  -  FAQ  -  Developers  -  Credits  -  Translators
005    ______________________________________________________________________
006 
007                       phpMyAdmin 2.6.1-pl3 Documentation
008 
009      * SourceForge phpMyAdmin project page   [ http://www.phpmyadmin.net/ ] 
010      * Local documents:
011           + Version history: ChangeLog
012           + General notes: README
013           + License: LICENSE
014      * Documentation version: $Id: Documentation.html,v 2.103.2.5 2005/03/03        20:54:24 rabus Exp $
015 
016 Requirements
017 
018      * PHP
019           + You need PHP 4.1.0 or newer (*)
020           + If you want to display inline thumbnails of JPEGs with the original
021             aspect ratio, you also need GD2 support in PHP
022           + Starting with phpMyAdmin 2.6.1, MIME-based transformations that use
023             an external program need PHP 4.3.0 or newer
024      * MySQL 3.23.32 or newer (details);
025      * Not really a requirement but a strong suggestion: if you are using th       e "cookie" authentication method, having the mcrypt PHP extension on
026        your web server accelerates not only the login phase but every other
027        action that you do in phpMyAdmin.
028      * a web-browser (doh!).
029 
030 Introduction
031 
032    phpMyAdmin can manage a whole MySQL server (needs a super-user) as well a   s a single database. To accomplish the latter you'll need a properly set    up MySQL user who can read/write only the desired database. It's up to   you to look up the appropriate part in the MySQL manual.
033    Currently phpMyAdmin can:
034      * create and drop databases
035      * create, copy, drop, rename and alter tables
036      * do table maintenance
037      * delete, edit and add fields
038      * execute any SQL-statement, even batch-queries
039      * manage keys on fields
040      * load text files into tables
041      * create (*) and read dumps of tables
042      * export (*) data to CSV, XML and Latex formats
043      * administer multiple servers
044      * manage MySQL users and privileges
045      * check referential integrity in MyISAM tables
046      * using Query-by-example (QBE), create complex queries automatically co       nnecting required tables
047      * create PDF graphics of your Database layout
048      * search globally in a database or a subset of it
049      * transform stored data into any format using a set of predefined funct       ions, like displaying BLOB-data as image or download-link or ...
050      * support InnoDB tables and foreign keys (see FAQ 3.6)
051      * support mysqli, the improved MySQL extension (see FAQ 1.17)
052      * communicate in 47 different languages
053 
054    (*)  phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dump   s and CSV exports if you use PHP4 >= 4.0.4 with Zlib support (--with-zli   b) and/or Bzip2 support (--with-bz2).
055 
056 Installation
057 
058    NOTE: phpMyAdmin does not apply any special security methods to the MySQL    database server. It is still the system administrator's job to grant pe   rmissions on the MySQL databases properly. phpMyAdmin's "Privileges" pag   e can be used for this.
059 
060    Warning for Mac users:if you are on a MacOS version before OS X, StuffIt   unstuffs with Mac formats.
061    So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin script   s before uploading them to your server, as PHP seems not to like Mac-sty   le end of lines character ("\r").
062 
063   Quick Install
064 
065     1. Untar or unzip the distribution (be sure to unzip the subdirectories)       : tar -xzvf phpMyAdmin_x.x.x.tar.gz in your webserver's document root.
066        If you don't have direct access to your document root, put the files in
067        a directory on your local machine, and, after step 3, transfer the
068        directory on your web server using, for example, ftp.
069     2. Ensure that all the scripts have the appropriate owner (if PHP is run       ning in safe mode, having some scripts with an owner different from the
070        owner of other scripts will be a problem). See FAQ 4.2 for suggestions.
071     3. Open the file config.inc.php in your favorite editor and change the v       alues for host, user, password and authentication mode to fit your
072        environment.  Here, "host" means the MySQL server. Also insert the
073        correct value for $cfg['PmaAbsoluteUri']. Have a look at Configuration
074        section  for  an  explanation  of all values. Please also read the
075        remaining  of  this  Installation  section  for  information about
076        authentication modes and the linked-tables infrastructure.
077     4. It is recommended that you protect the directory in which you install       ed phpMyAdmin (unless it's on a closed intranet, or you wish to use
078        HTTP  or  cookie authentication), for example with HTTP-AUTH (in a
079        .htaccess  file).  See  the  multi-user sub-section of the FAQ for
080        additional information, especially FAQ 4.4.
081     5. Open the file <www.your-host.com>/<your-install-dir>/index.php in you       r browser. phpMyAdmin should now display a welcome screen and your
082        databases, or a login dialog if using HTTP or cookie authentication
083        mode.
084 
085   Linked-tables infrastructure
086 
087    For a whole set of new features (bookmarks, comments, SQL-history, PDF-ge   neration, field contents transformation, etc.) you need to create a set   of special tables. Those tables can be located in your own database, or   in a central database for a multi-user installation (this database would    then be accessed by the controluser, so no other user should have right   s to it).
088    Please look at your scripts/ directory, where you should find a file call   ed create_tables.sql. (If you are using a Windows server, pay special at   tention to FAQ 1.23).
089    If your MySQL server's version is 4.1.2 or later, please use create_table   s_mysql_4_1_2+.sql instead, for a new installation.
090    If you already had this infrastructure and upgraded to MySQL 4.1.2 or lat   er, please use upgrade_tables_mysql_4_1_2+.sql.
091    You can use your phpMyAdmin to create the tables for you. Please be aware    that you may need special (administrator) privileges to create the data   base and tables, and that the script may need some tuning, depending on   the database name.
092    After having imported the create_tables.sql file, you should specify the   table names in your config.inc.php file. The directives used for that ca   n be found in the Configuration section. You will also need to have a co   ntroluser with the proper rights to those tables (see section Using auth   entication modes below).
093 
094   Upgrading from an older version
095 
096      * You can safely copy your older config.inc.php over a new one, if you       can live with default values for possible new parameters (you can check
097        release notes to see what new features were added). This compatibility
098        will stay for long time, current version supports importing config files
099        from 2.2 and maybe even older (nobody has tried that).
100 
101   Using authentication modes
102 
103      * HTTP and cookie authentication modes are recommended in a multi-user       environment where you want to give users access to their own database
104        and don't want them to play around with others.
105        Nevertheless be aware that MS Internet Explorer seems to be really buggy
106        about cookies, at least till version 6. And PHP 4.1.1 is also a bit
107        buggy in this area!
108        Even in a single-user environment, you might prefer to use HTTP or
109        cookie mode so that your user/password pair are not in clear in the
110        configuration file.
111      * HTTP and cookie authentication modes are more secure: the MySQL login        information does not need to be set in the phpMyAdmin configuration
112        file (except possibly for the controluser).
113        However, keep in mind that the password travels in plain text, unless
114        you are using the HTTPS protocol.
115        In cookie mode, the password is stored, encrypted with the blowfish
116        algorithm, in a temporary cookie.
117      * Note: starting with phpMyAdmin 2.6.1, configuring the controluser to       enable HTTP and cookie authentication applies only to MySQL servers
118        older than 4.1.2.
119        For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has
120        only  the  SELECT  privilege on the mysql.user (all columns except
121        "Password"),  mysql.db (all columns), mysql.host (all columns) and
122        mysql.tables_priv (all columns except "Grantor" & "Timestamp") tables.
123        You must specify the details for the controluser in the config.inc.php
124        file       under      the      $cfg['Servers'][$i]['controluser']&
125        $cfg['Servers'][$i]['controlpass'] settings.
126        The following example assumes you want to use pma as the controluser and
127        pmapass as the controlpass, but this is only an example: use something
128        else in your file!
129        Of course you have to replace localhost by the webserver's host if it's
130        not the same as the MySQL server's one.
131 
132 GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
133 GRANT SELECT (
134     Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
135     Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
136     File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
137     Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
138     Execute_priv, Repl_slave_priv, Repl_client_priv
139     ) ON mysql.user TO 'pma'@'localhost';
140 GRANT SELECT ON mysql.db TO 'pma'@'localhost';
141 GRANT SELECT ON mysql.host TO 'pma'@'localhost';
142 GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
143     ON mysql.tables_priv TO 'pma'@'localhost';
144 
145        If you are using an old MySQL version (below 4.0.2), please replace the
146        first GRANT SELECT query by this one:
147 
148 GRANT SELECT (
149     Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
150     Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
151     File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
152     ) ON mysql.user TO 'pma'@'localhost';
153 
154        ... and if you want to use the many new relation and bookmark features:
155 
156 GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
157 
158        (this of course requires you to have a special DB for phpMyAdmin, the
159        contents will be explained later)
160        Of course, the above queries only work if your MySQL version supports
161        the GRANT command. This is the case since 3.22.11.
162      * Then each of the true users should be granted a set of privileges on       a set of particular databases. Normally you shouldn't give global
163        privileges to an ordinary user, unless you understand the impact of
164        those privileges (for example, you are creating a superuser).
165        For example, to grant the user real_user with all privileges on the
166        database user_base:
167           GRANT  ALL  PRIVILEGES  ON user_base.* TO 'real_user'@localhost
168        IDENTIFIED BY 'real_password';
169        What  the user may now do is controlled entirely by the MySQL user
170        management system.
171        With HTTP or cookie authentication mode, you don't need to fill the
172        user/password fields inside the $cfg['Servers'] array.
173 
174     'http' authentication mode
175 
176      * Was called 'advanced' in versions before 2.2.3.
177      * Introduced in 1.3.0, it uses Basic HTTP authentication method and all       ows you to login as any valid MySQL user.
178      * Is supported with PHP running as an Apache module. For IIS (ISAPI) su       pport using CGI PHP, see FAQ 1.32.
179      * See also FAQ 4.4 about not using the .htaccess mechanism along with '       http' authentication mode.
180 
181     'cookie' authentication mode
182 
183      * You can use this method as a replacement for the HTTP authentication       (for example, if you're running IIS).
184      * Obviously, the user must enable cookies in the browser.
185      * With this mode, the user can truly logout of phpMyAdmin and login bac       k with the same username.
186      * If you want to login to arbitrary server see $cfg['AllowArbitraryServ       er'] directive.
187      * See also the requirements section for a way to improve the interface       speed while using this mode.
188 
189     'config' authentication mode
190 
191      * This mode is the less secure one because it requires you to fill the        $cfg['Servers'][$i]['user'] and $cfg['Servers'][$i]['password'] fields.
192        But  you  don't  need  to  setup  a  "controluser" here: using the
193        $cfg['Servers'][$i]['only_db'] might be enough.
194      * In the ISP FAQ section, there is an entry explaining how to protect y       our configuration file.
195      * For additional security in this mode, you may wish to consider the Ho       st  authentication  $cfg['Servers'][$i]['AllowDeny']['order'] and
196        $cfg['Servers'][$i]['AllowDeny']['rules'] configuration directives.
197 
198 Configuration
199 
200    Warning for Mac users: PHP seems not to like Mac end of lines character (   "\r"). So ensure you choose the option that allows to use the *nix end o   f line character ("\n") in your text editor before registering a script   you have modified.
201 
202    Configuration note: Almost all configurable data is placed in config.inc.   php. The parameters which relate to design (like colors) are placed in t   hemes/themename/layout.inc.php. You might also want to modify config.foo   ter.inc.php and config.header.inc.php files to add your site specific co   de to be included on start and end of each page.
203 
204    $cfg['PmaAbsoluteUri'] string
205           Sets  here the complete URL (with full path) to your phpMyAdmin
206           version. E.g.
207           http://www.your_web.net/path_to_your_phpMyAdmin_directory/.
208           phpMyAdmin needs this setting, because of requirements of the HTTP
209           protocol, explained in RFC2616, section 14.30.
210           Don't forget the slash at the end of your URL. The URL must contain
211           characters that are valid for a URL, and on some servers, the path is
212           case-sensitive.
213           Starting with version 2.3.0, you can try to leave this parameter
214           empty, because the program tries to auto-detect its proper value.
215           Additional details are in the configuration file.
216 
217    $cfg['PmaAbsoluteUri_DisableWarning'] boolean
218           By default, when you leave $cfg['PmaAbsoluteUri'] empty, and the
219           system detects your absolute URI automatically, we display a warning
220           to remind you. If you have tested the automatic detection, and it
221           works perfectly for your setup, then you can set this variable to
222           squelch the warning.
223 
224    $cfg['PmaNoRelation_DisableWarning'] boolean
225           Starting with version 2.3.0 phpMyAdmin offers a lot of features to
226           work with master / foreign - tables (see
227           $cfg['Servers'][$i]['pmadb']).
228           If you tried to set this up and it does not work for you, have a look
229           on the "Structure" page of one database where you would like to use
230           it. You will find a link that will analyze why those features have
231           been disabled.
232           If you do not want to use those features set this variable to TRUE to
233           stop this message from appearing.
234 
235    $cfg['blowfish_secret'] string
236           Starting with version 2.5.2, the 'cookie' auth_type uses blowfish
237           algorithm to encrypt the password.
238           If  you  are  using the 'cookie' auth_type, enter here a random
239           passphrase of your choice. It will be used internally by the blowfish
240           algorithm: you won't be prompted for this passphrase. The maximum
241           number of characters for this parameter seems to be 46.
242 
243    $cfg['Servers'] array
244           Since  version 1.4.2, phpMyAdmin supports the administration of
245           multiple MySQL servers. Therefore, a $cfg['Servers']-array has been
246           added which contains the login information for the different servers.
247           The first $cfg['Servers'][$i]['host'] contains the hostname of the
248           first server, the second $cfg['Servers'][$i]['host'] the hostname of
249           the second server, etc. If you have only one server to administer,
250           simply leave free the hostname of the other $cfg['Server']-entries.
251 
252    $cfg['Servers'][$i]['host'] string
253           The  hostname  or  IP  address of your $i-th MySQL-server. E.g.
254           localhost.
255 
256    $cfg['Servers'][$i]['port'] string
257           The port-number of your $i-th MySQL-server. Default is 3306 (leave
258           blank). If you use "localhost" as the hostname, MySQL ignores this
259           port number and connects with the socket, so if you want to connect
260           to a port different from the default port, use "127.0.0.1" or the
261           real hostname in $cfg['Servers'][$i]['host'].
262 
263    $cfg['Servers'][$i]['socket'] string
264           The path to the socket to use. Leave blank for default.
265           To use the socket feature you must run PHP 3.0.10 or more.
266 
267    $cfg['Servers'][$i]['connect_type'] string
268           What type connection to use with the MySQL server. Your options are
269           'socket' & 'tcp'. It defaults to 'tcp' as that is nearly guaranteed
270           to be available on all MySQL servers, while sockets are not supported
271           on some platforms.
272           To use the socket mode, your MySQL server must be on the same machine
273           as the Web server.
274 
275    $cfg['Servers'][$i]['extension'] string
276           What php MySQL extension to use for the connection. Valid options
277           are:
278           mysql :  The classic MySQL extension. This is the recommended and
279           default method at this time.
280           mysqli :   The  improved MySQL extension. This extension became
281           available with php 5.0.0 and is the recommended way to connect to a
282           server running MySQL 4.1.x.
283           Note: phpMyAdmin's MySQL 4.1 support is experimental!
284 
285    $cfg['Servers'][$i]['compress'] boolean
286           Whether to use a compressed protocol for the MySQL server connection
287           or not (experimental).
288           This feature requires PHP >= 4.3.0.
289 
290    $cfg['Servers'][$i]['controluser'] string
291           $cfg['Servers'][$i]['controlpass'] string
292           Note: starting with phpMyAdmin 2.6.1, configuring the controluser to
293           enable HTTP and cookie authentication applies only to MySQL servers
294           older than 4.1.2.
295           This  special  account is used for 2 distinct purposes: to make
296           possible all relational features (see $cfg['Servers'][$i]['pmadb'])
297           and, for a MySQL server older than 4.1.2, to enable a multi-user
298           installation (http or cookie authentication mode).
299           When  using  HTTP  or  cookie authentication modes (or 'config'
300           authentication mode since phpMyAdmin 2.2.1), you need to supply the
301           details  of  a  MySQL  account that has SELECT privilege on the
302           mysql.user (all columns except "Password"), mysql.db (all columns) &
303           mysql.tables_priv  (all columns except "Grantor" & "Timestamp")
304           tables. This account is used to check what databases the user will
305           see at login.
306           Please see the install section on "Using authentication modes" for
307           more information.
308           Note that if you try login to phpMyAdmin with this "controluser", you
309           could get some errors, depending the exact privileges you gave to the
310           "controluser". phpMyAdmin does not support a direct login with the
311           "controluser".
312           In   phpMyAdmin   versions  before  2.2.5,  those  were  called
313           "stduser/stdpass".
314 
315    $cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']
316           Whether config or cookie or http authentication should be used for
317           this server.
318 
319           + 'config' authentication ($auth_type = 'config') is the plain old
320             way: username and password are stored in config.inc.php.
321           + 'cookie' authentication mode ($auth_type = 'cookie') as introduced
322             in 2.2.3 allows you to log in as any valid MySQL user with the help
323             of cookies. Log name and password are stored in cookies during the
324             session and password is deleted when it ends. This can also allow
325             you to login in arbitrary server if $cfg['AllowArbitraryServer']
326             enabled.
327           + 'http' authentication (was called 'advanced' in older versions)
328             ($auth_type = 'http') as introduced in 1.3.0 allows you to log in
329             as any valid MySQL user via HTTP-Auth.
330 
331           Please see the install section on "Using authentication modes" for
332           more information.
333 
334    $cfg['Servers'][$i]['user'] string
335           $cfg['Servers'][$i]['password'] string
336           The user/password-pair which phpMyAdmin will use to connect to this
337           MySQL-server. This user/password pair is not needed when HTTP or
338           cookie authentication is used, and should be empty.
339 
340    $cfg['Servers'][$i]['only_db'] string or array
341           If  set  to a (an array of) database name(s), only this (these)
342           database(s)  will be shown to the user. Since phpMyAdmin 2.2.1,
343           this/these database(s) name(s) may contain MySQL wildcards characters
344           ("_"  and  "%"):  if you want to use literal instances of these
345           characters, escape them (I.E. use 'my\_db' and not 'my_db').
346           This setting is an efficient way to lower the server load since the
347           latter does not need to send MySQL requests to build the available
348           database list. But it does not replace the privileges rules of the
349           MySQL database server. If set, it just means only these databases
350           will be displayed but not that all other databases can't be used.
351           An    example    of    using    more    that    one   database:
352           $cfg['Servers'][$i]['only_db'] = array('db1', 'db2');
353           As of phpMyAdmin 2.5.5 the order inside the array is used for sorting
354           the databases in the left frame, so that you can individually arrange
355           your databases.
356           If you want to have certain databases at the top, but don't care
357           about the others, you do not need to specify all other databases.
358           Use: $cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*');
359           instead to tell phpMyAdmin that it should display db3 and db4 on top,
360           and the rest in alphabetic order.
361 
362    $cfg['Servers'][$i]['verbose'] string
363           Only useful when using phpMyAdmin with multiple server entries. If
364           set, this string will be displayed instead of the hostname in the
365           pull-down menu on the main page. This can be useful if you want to
366           show only certain databases on your system, for example.
367 
368    $cfg['Servers'][$i]['pmadb'] string
369           The name of the database containing the linked-tables infrastructure.
370           See the Linked-tables infrastructure section in this document to see
371           the benefits of this infrastructure, and for a quick way of creating
372           this database and the needed tables.
373           If you are the only user of this phpMyAdmin installation, you can use
374           your current database to store those special tables; in this case,
375           just put your current database name in $cfg['Servers'][$i]['pmadb'].
376           For a multi-user installation, set this parameter to the name of your
377           central database containing the linked-tables infrastructure.
378 
379    $cfg['Servers'][$i]['bookmarktable'] string
380           Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can
381           be useful for queries you often run.
382           To allow the usage of this functionality:
383 
384           + set up pmadb and the linked-tables infrastructure
385           + enter the table name in $cfg['Servers'][$i]['bookmarktable']
386 
387    $cfg['Servers'][$i]['relation'] string
388           Since release 2.2.4 you can describe, in a special 'relation' table,
389           which field is a key in another table (a foreign key). phpMyAdmin
390           currently uses this to
391 
392           + make clickable, when you browse the master table, the data values
393             that point to the foreign table;
394           + display in an optional tool-tip the "display field" when browsing
395             the master table, if you move the mouse to a column containing a
396             foreign key (use also the 'table_info' table);
397             (see FAQ 6.7)
398           + in edit/insert mode, display a drop-down list of possible foreign
399             keys (key value and "display field" are shown)
400             (see FAQ 6.21)
401           + display links on the table properties page, to check referential
402             integrity (display missing foreign keys) for each described key;
403           + in query-by-example, create automatic joins (see FAQ 6.6)
404           + enable you to get a PDF schema of your database (also uses the
405             table_coords table).
406 
407           The keys can be numeric or character.
408           To allow the usage of this functionality:
409 
410           + set up pmadb and the linked-tables infrastructure
411           + put the relation table name in $cfg['Servers'][$i]['relation']
412           + now as normal user open phpMyAdmin and for each one of your tables
413             where you want to use this feature, click "Structure/Relation
414             view/" and choose foreign fields.
415 
416           Please note that in the current version, master_db must be the same
417           as foreign_db. Those fields have been put in future development of
418           the cross-db relations.
419 
420    $cfg['Servers'][$i]['table_info'] string
421           Since release 2.3.0 you can describe, in a special 'table_info'
422           table, which field is to be displayed as a tool-tip when moving the
423           cursor over the corresponding key.
424           This configuration variable will hold the name of this special table.
425           To allow the usage of this functionality:
426 
427           + set up pmadb and the linked-tables infrastructure
428           + put the table name in $cfg['Servers'][$i]['table_info']
429           + then for each table where you want to use this feature, click
430             "Structure/Relation view/Choose field to display" to choose the
431             field.
432 
433           Usage tip: Display field.
434 
435    $cfg['Servers'][$i]['table_coords'] string
436           $cfg['Servers'][$i]['pdf_pages'] string
437           Since release 2.3.0 you can have phpMyAdmin create PDF pages showing
438           the relations between your tables. To do this it needs two tables
439           "pdf_pages" (storing information about the available PDF pages) and
440           "table_coords" (storing coordinates where each table will be placed
441           on a PDF schema output).
442           You must be using the "relation" feature.
443           To allow the usage of this functionality:
444 
445           + set up pmadb and the linked-tables infrastructure
446           + put the correct table names in $cfg['Servers'][$i]['table_coords']
447             and $cfg['Servers'][$i]['pdf_pages']
448 
449           Usage tips: PDF output.
450 
451    $cfg['Servers'][$i]['column_info'] string
452           Since release 2.3.0 you can store comments to describe each column
453           for each table. These will then be shown on the "printview".
454           Starting with release 2.5.0, comments are consequently used on the
455           table property pages and table browse view, showing up as tool-tips
456           above the column name (properties page) or embedded within the header
457           of table in browse view. They can also be shown in a table dump.
458           Please see the relevant configuration directives later on.
459           Also new in release 2.5.0 is a MIME-transformation system which is
460           also based on the following table structure. See Transformations for
461           further information. To use the MIME-transformation system, your
462           column_info  table has to have the three new fields 'mimetype',
463           'transformation', 'transformation_options'.
464           To allow the usage of this functionality:
465 
466           + set up pmadb and the linked-tables infrastructure
467           + put the table name in $cfg['Servers'][$i]['column_info']
468           + to update your PRE-2.5.0 Column_comments Table use this:
469                  ALTER TABLE `pma_column_comments`
470                    ADD `mimetype` VARCHAR( 255 ) NOT NULL ,
471                    ADD `transformation` VARCHAR( 255 ) NOT NULL ,
472                    ADD `transformation_options` VARCHAR( 255 ) NOT NULL ;
473             and remember that the Variable in config.inc.php has been renamed
474             from
475             $cfg['Servers'][$i]['column_comments']                     to
476             $cfg['Servers'][$i]['column_info']
477 
478    $cfg['Servers'][$i]['history'] string
479           Since release 2.5.0 you can store your SQL history, which means all
480           queries you entered manually into the phpMyAdmin interface. If you
481           don't  want  to  use  a  table-  based history, you can use the
482           JavaScript-based history. Using that, all your history items are
483           deleted when closing the window.
484           Using $cfg['QueryHistoryMax'] you can specify an amount of history
485           items you want to have on hold. On every login, this list gets cut to
486           the maximum amount.
487           The query history is only available if you use the JavaScript-based
488           query window, see $cfg['QueryFrame'].
489           To allow the usage of this functionality:
490 
491           + set up pmadb and the linked-tables infrastructure
492           + put the table name in $cfg['Servers'][$i]['history']
493 
494    $cfg['Servers'][$i]['verbose_check'] boolean
495           Because release 2.5.0 introduced the new MIME-transformation support,
496           the column_info table got enhanced with three new fields. If the
497           above variable is set to TRUE (default) phpMyAdmin will check if you
498           have the latest table structure available. If not, it will emit a
499           warning to the superuser.
500           You can disable this checking behavior by setting the variable to
501           false, which should offer a performance increase.
502           Recommended to set to FALSE, when you are sure, your table structure
503           is up to date.
504 
505    $cfg['Servers'][$i]['AllowRoot'] boolean
506           Whether to allow root access, This is just simplification of rules
507           below.
508 
509    $cfg['Servers'][$i]['AllowDeny']['order'] string
510           If your rule order is empty, then IP authentication is disabled.
511           If your rule order is set to 'deny,allow' then the system applies all
512           deny rules followed by allow rules. Access is allowed by default. Any
513           client which does not match a Deny command or does match an Allow
514           command will be allowed access to the server.
515           If your rule order is set to 'allow,deny' then the system applies all
516           allow rules followed by deny rules. Access is denied by default. Any
517           client which does not match an Allow directive or does match a Deny
518           directive will be denied access to the server.
519           If  your rule order is set to 'explicit', the authentication is
520           performed in a similar fashion to rule order 'deny,allow', with the
521           added restriction that your host/username combination must be listed
522           in the allow rules, and not listed in the deny rules. This is the
523           most secure means of using Allow/Deny rules, and was available in
524           Apache by specifying allow and deny rules without setting any order.
525 
526    $cfg['Servers'][$i]['AllowDeny']['rules'] array of strings
527           The general format for the rules is as such:
528                 <'allow' | 'deny'> <username> [from] <ipmask>
529           If you wish to match all users, it is possible to use a '%' as a
530           wildcard in the username field.
531           There are a few shortcuts you can use in the ipmask field as well:
532                'all' -> 0.0.0.0/0
533                'localhost' -> 127.0.0.1/8
534           Having an empty rule list is equivalent to either using 'allow % from
535           all' if your rule order is set to 'deny,allow' or 'deny % from all'
536           if your rule order is set to 'allow,deny' or 'explicit'.
537           For the IP matching system, the following work:
538           xxx.xxx.xxx.xxx (an exact IP address)
539           xxx.xxx.xxx.[yyy-zzz] (an IP address range)
540           xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP
541           addresses)
542           But the following does not work:
543           xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range)
544 
545    $cfg['ServerDefault'] integer
546           If  you  have  more  than  one  server  configured, you can set
547           $cfg['ServerDefault'] to any one of them to autoconnect to that
548           server when phpMyAdmin is started, or set it to 0 to be given a list
549           of servers without logging in.
550           If you have only one server configured, $cfg['ServerDefault'] MUST be
551           set to that server.
552 
553    $cfg['OBGzip'] string/boolean
554           Defines whether to use GZip output buffering for increased speed in
555           HTTP transfers.
556           Set  to  true/false  for enabling/disabling. When set to 'auto'
557           (string),  phpMyAdmin tries to enable output buffering and will
558           automatically disable it, if your browser has some problems with
559           buffering. IE6 with a certain patch is known to cause data corruption
560           having enabled buffering.
561 
562    $cfg['PersistentConnections'] boolean
563           Whether persistent connections should be used or not (mysql_connect
564           or mysql_pconnect).
565 
566    $cfg['ExecTimeLimit'] integer [number of seconds]
567           Set the number of seconds a script is allowed to run. If seconds is
568           set to zero, no time limit is imposed.
569           This setting is used while importing/exporting dump files but has no
570           effect when PHP is running in safe mode.
571 
572    $cfg['SkipLockedTables'] boolean
573           Mark used tables and make it possible to show databases with locked
574           tables (since 3.23.30).
575 
576    $cfg['ShowSQL'] boolean
577           Defines  whether  SQL-queries generated by phpMyAdmin should be
578           displayed or not.
579 
580    $cfg['AllowUserDropDatabase'] boolean
581           Defines whether normal users (non-administrator) are allowed to
582           delete their own database or not. If set as FALSE, the link "Drop
583           Database" will not be shown, and even a "DROP DATABASE mydatabase"
584           will be rejected. Quite practical for ISP's with many customers.
585 
586    $cfg['Confirm'] boolean
587           Whether a warning ("Are your really sure...") should be displayed
588           when you're about to lose data.
589 
590    $cfg['LoginCookieRecall'] boolean
591           Define whether the previous login should be recalled or not in cookie
592           authentication mode.
593 
594    $cfg['UseDbSearch'] boolean
595           Define whether the "search string inside database" is enabled or not.
596 
597    $cfg['IgnoreMultiSubmitErrors'] boolean
598           Define whether phpMyAdmin will continue executing a multi-query
599           statement if one of the queries fails. Default is to abort execution.
600 
601    $cfg['VerboseMultiSubmit'] boolean
602           Define whether phpMyAdmin will output the results of each query of a
603           multi-query  statement  embedded  into the SQL output as inline
604           comments. Defaults to TRUE.
605 
606    $cfg['AllowArbitraryServer'] boolean
607           If enabled allows you to login to arbitrary server using cookie auth.
608           NOTE: Please use this carefully, as this may allow to access MySQL
609           servers behind firewall where your http server is placed.
610 
611    $cfg['LeftFrameLight'] boolean
612           Defines whether to use select-based menu and display only the current
613           tables in the left frame (smaller page). Only in Non-Lightmode you
614           can   use   the   feature   to  display  nested  folders  using
615           $cfg['LeftFrameTableSeparator']
616 
617    $cfg['LeftFrameTableSeparator'] string
618           Defines a string to be used to nest table spaces. Defaults to '__'.
619           This means if you have tables like 'first__second__third' this will
620           be shown as a three-level hierarchie like: first > second > third. If
621           set to FALSE or empty, the feature is disabled. NOTE: You shall not
622           use this Separator in a table name at the beginning or end of a table
623           name, or multiple times after another without any other characters in
624           between.
625 
626    $cfg['LeftFrameTableLevel'] string
627           Defines how many sublevels should be displayed when splitting up
628           tables by the above Separator.
629 
630    $cfg['ShowTooltip'] boolean
631           Defines whether to display table comment as tool-tip in left frame or
632           not.
633 
634    $cfg['ShowTooltipAliasDB'] boolean
635           If tool-tips are enabled and a DB comment is set, this will flip the
636           comment and the real name. That means, if you have a table called
637           'user0001' and add the comment 'MyName' on it, you will see the name
638           'MyName' used consequently in the left frame and the tool-tip shows
639           the real name of the DB.
640 
641    $cfg['ShowTooltipAliasTB'] boolean/string
642           Same as $cfg['ShowTooltipAliasDB'], except this works for table
643           names. When setting this to 'nested', the Alias of the Tablename is
644           only   used   to   split/nest   the  tables  according  to  the
645           $cfg['LeftFrameTableSeparator'] directive. So only the folder is
646           called like the Alias, the tablename itself stays the real tablename.
647 
648    $cfg['LeftDisplayLogo'] boolean
649           Defines whether to display the phpMyAdmin logo at the top of the left
650           frame or not. Defaults to TRUE.
651 
652    $cfg['LeftDisplayServers'] boolean
653           Defines whether to display a server choice at the top of the left
654           frame or not. Defaults to FALSE.
655 
656    $cfg['DisplayServersList'] boolean
657           Defines whether to display this server choice as links instead of in
658           a drop-down. Defaults to FALSE (drop-down).
659 
660    $cfg['ShowStats'] boolean
661           Defines whether to display space usage and statistics about databases
662           and tables or not.
663           Note that statistics requires at least MySQL 3.23.3 and that, at this
664           date, MySQL doesn't return such information for Berkeley DB tables.
665 
666    $cfg['ShowMysqlInfo'] boolean
667           $cfg['ShowMysqlVars'] boolean
668           $cfg['ShowPhpInfo'] boolean
669           $cfg['ShowChgPassword'] boolean
670           Defines whether to display the "MySQL runtime information", "MySQL
671           system variables", "PHP information" and "Change password " links or
672           not for simple users at the starting main (right) frame. This setting
673           does not check MySQL commands entered directly.
674           Please note that to block the usage of phpinfo() in scripts, you have
675           to put this in your php.ini:
676               disable_functions = phpinfo()
677           Also note that enabling the "Change password " link has no effect
678           with "config" authentication mode: because of the hard coded password
679           value in the configuration file, end users can't be allowed to change
680           their passwords.
681 
682    $cfg['SuggestDBName'] boolean
683           Defines whether to suggest a database name on the "Create Database"
684           form or to keep the textfield empty.
685 
686    $cfg['ShowBlob'] boolean
687           Defines whether BLOB fields are shown when browsing a table's content
688           or not.
689 
690    $cfg['NavigationBarIconic'] boolean
691           Defines whether navigation bar buttons contain text or symbols only.
692 
693    $cfg['ShowAll'] boolean
694           Defines whether an user should be displayed a "show all (records)"
695           button in browse mode or not.
696 
697    $cfg['MaxRows'] integer
698           Number of rows displayed when browsing a result set. If the result
699           set contains more rows, Previous/Next links will be shown.
700 
701    $cfg['Order'] string [DESC|ASC|SMART]
702           Defines whether fields are displayed in ascending (ASC) order, in
703           descending  (DESC)  order  or in a "smart" (SMART) order - I.E.
704           descending order for fields of type TIME, DATE, DATETIME & TIMESTAMP,
705           ascending order else- by default.
706 
707    $cfg['ProtectBinary'] boolean or string
708           Defines whether BLOB or BINARY fields are protected from edition when
709           browsing a table's content or not. Valid values are:
710           - FALSE to allow edition of all fields;
711           - blob to allow edition of all fields except BLOBS;
712           - all to disallow edition of all BINARY or BLOB fields.
713 
714    $cfg['ShowFunctionFields'] boolean
715           Defines whether MySQL functions fields should be displayed or not in
716           edit/insert mode.
717 
718    $cfg['CharEditing'] string
719           Defines which type of editing controls should be used for CHAR and
720           VARCHAR fields. Possible values are:
721 
722           + input - this allows to limit size of text to size of field in
723             MySQL, but has problems with newlines in fields
724           + textarea - no problems with newlines in fields, but also no length
725             limitations
726 
727           Default is old behavior so input.
728 
729    $cfg['ZipDump'] boolean
730           $cfg['GZipDump'] boolean
731           $cfg['BZipDump'] boolean
732           Defines whether to allow the use of zip/GZip/BZip2 compression when
733           creating a dump file or not.
734 
735    $cfg['CompressOnFly'] boolean
736           Defines  whether to allow on the fly compression for GZip/BZip2
737           compressed exports. This doesn't affect smaller dumps and allows to
738           create larger dumps, that won't fit otherwise in memory due to php
739           memory limit. Produced files contain more GZip/BZip2 headers, but all
740           normal programs handle this correctly.
741 
742    $cfg['LightTabs'] string
743           If set to True, do use less graphically intense tabs on the top of
744           the mainframe.
745 
746    $cfg['PropertiesIconic'] string
747           If set to True, will display icons instead of text for db and table
748           properties links (like 'Browse', 'Select', 'Insert', ...).
749           Can be set to 'both' if you want icons AND text.
750           When set to False, will only show text.
751 
752    $cfg['PropertiesNumColumns'] integer
753           How  many columns will be utilized to display the tables on the
754           database property view? Default is 1 column. When setting this to a
755           value larger than 1, the type of the database will be omitted for
756           more display space.
757 
758    $cfg['DefaultTabServer'] string
759           Defines the tab displayed by default on server view. Possible values:
760           "main.php"     (recommended     for     multi-user     setups),
761           "server_databases.php","server_status.php","server_variables.php",
762           "server_privileges.php" or "server_processlist.php".
763 
764    $cfg['DefaultTabDatabase'] string
765           Defines the tab displayed by default on database view. Possible
766           values:    "db_details_structure.php",    "db_details.php"   or
767           "db_search.php".
768 
769    $cfg['DefaultTabTable'] string
770           Defines the tab displayed by default on table view. Possible values:
771           "tbl_properties_structure.php",           "tbl_properties.php",
772           "tbl_select.php" or "tbl_change.php".
773 
774    $cfg['MySQLManualBase'] string
775           If  set to an URL which points to the MySQL documentation (type
776           depends on $cfg['MySQLManualType']), appropriate help links are
777           generated.
778           See MySQL Documentation page for more information about MySQL manuals
779           and their types.
780 
781    $cfg['MySQLManualType'] string
782           Type of MySQL documentation:
783 
784           + old - old style used in phpMyAdmin 2.3.0 and earlier
785           + searchable - "Searchable, with user comments"
786           + chapters - "HTML, one page per chapter"
787           + big - "HTML, all on one page"
788           + none - do not show documentation links
789 
790    $cfg['DefaultLang'] string
791           Defines  the default language to use, if not browser-defined or
792           user-defined.
793           See the select_lang.inc.php script to know the valid values for this
794           setting.
795 
796    $cfg['Lang'] string
797           Force:  always  use  this  language  (must  be  defined  in the
798           select_lang.inc.php script).
799 
800    $cfg['DefaultCharset'] string
801           Default character set to use for recoding of MySQL queries. This must
802           be  enabled and it's described by $cfg['AllowAnywhereRecoding']
803           option.
804           You   can   give   here   any   character   set   which  is  in
805           $cfg['AvailableCharsets'] array and this is just default choice, user
806           can select any of them.
807 
808    $cfg['AllowAnywhereRecoding'] boolean
809           Allow character set recoding of MySQL queries. You need recode or
810           iconv support (compiled in or module) in PHP to allow MySQL queries
811           recoding and used language file must have it enabled (by default only
812           these which are in Unicode, just to avoid losing some characters).
813 
814    $cfg['RecodingEngine'] string
815           You can select here which functions will be used for character set
816           conversion. Possible values are:
817 
818           + auto - automatically use available one (first is tested iconv, then
819             recode)
820           + iconv - use iconv or libiconv functions
821           + recode - use recode_string function
822 
823           Default is auto.
824 
825    $cfg['IconvExtraParams'] string
826           Specify some parameters for iconv used in charset conversion. See
827           iconv documentation for details.
828 
829    $cfg['AvailableCharsets'] array
830           Available character sets for MySQL conversion. You can add your own
831           (any of supported by recode/iconv) or remove these which you don't
832           use. Character sets will be shown in same order as here listed, so if
833           you frequently use some of these move them to the top.
834 
835    $cfg['GD2Available'] string
836           Specifies whether GD >= 2 is available. If yes it can be used for
837           MIME transformations.
838           Possible values are:
839 
840           + auto - automatically detect, this is a bit expensive operation for
841             php < 4.3.0 so it is preferred to change this according to your
842             server real possibilities
843           + yes - GD 2 functions can be used
844           + no - GD 2 function cannot be used
845 
846           Default is auto.
847 
848    $cfg['LeftWidth'] integer
849           Left frame width in pixel. See themes/themename/layout.inc.php.
850 
851    $cfg['LeftBgColor'] string [HTML color]
852           $cfg['RightBgColor'] string [HTML color]
853           The  background  colors  (HTML)  used  for both the frames. See
854           themes/themename/layout.inc.php.
855 
856    $cfg['RightBgImage'] string
857           The URI of the background image used for the right frame. It must be
858           an absolute URI. See themes/themename/layout.inc.php.
859 
860    $cfg['LeftPointerColor'] string [HTML color]
861           The color (HTML) used for the pointer in the left frame (does not
862           work with Netscape 4). See themes/themename/layout.inc.php.
863 
864    $cfg['LeftPointerEnable'] boolean
865           A value of TRUE activates the left pointer (when LeftFrameLight is
866           FALSE).
867 
868    $cfg['Border'] integer
869           The size of a table's border. See themes/themename/layout.inc.php.
870 
871    $cfg['ThBgcolor'] string [HTML color]
872           The    color    (HTML)    used    for    table   headers.   See
873           themes/themename/layout.inc.php.
874 
875    $cfg['BgcolorOne'] string [HTML color]
876           The color (HTML) #1 for table rows. See
877           themes/themename/layout.inc.php.
878 
879    $cfg['BgcolorTwo'] string [HTML color]
880           The color (HTML) #2 for table rows. See
881           themes/themename/layout.inc.php.
882 
883    $cfg['BrowsePointerColor'] string [HTML color]
884           $cfg['BrowseMarkerColor'] string [HTML color]
885           The colors (HTML) uses for the pointer and the marker in browse mode
886           (does not work with Netscape 4).
887           The  former feature highlights the row over which your mouse is
888           passing and the latter lets you visually mark/unmark rows by clicking
889           on them.
890           See themes/themename/layout.inc.php.
891 
892    $cfg['BrowsePointerEnable'] boolean
893           Whether to activate the browse pointer or not.
894 
895    $cfg['BrowseMarkerEnable'] boolean
896           Whether to activate the browse marker or not.
897 
898    $cfg['TextareaCols'] integer
899           $cfg['TextareaRows'] integer
900           $cfg['CharTextareaCols'] integer
901           $cfg['CharTextareaRows'] integer
902           Number of columns and rows for the textareas.
903           This  value will be emphasized (*2) for SQL query textareas and
904           (*1.25) for SQL textareas inside the query window.
905           The Char* values are used for CHAR and VARCHAR editing (if configured
906           via $cfg['CharEditing']).
907 
908    $cfg['LongtextDoubleTextarea'] boolean
909           Defines whether textarea for LONGTEXT fields should have double size.
910 
911    $cfg['TextareaAutoSelect'] boolean
912           Defines if the whole textarea of the query box will be selected on
913           click.
914 
915    $cfg['CtrlArrowsMoving'] boolean
916           Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields
917           when editing?
918 
919    $cfg['LimitChars'] integer
920           Maximal number of Chars showed in any non-numeric field on browse
921           view. Can be turned off by a toggle button on the browse page.
922 
923    $cfg['ModifyDeleteAtLeft'] boolean
924           $cfg['ModifyDeleteAtRight'] boolean
925           Defines the place where modify and delete links would be put when
926           tables contents are displayed (you may have them displayed both at
927           the left and at the right). "Left" and "right" are parsed as "top"
928           and "bottom" with vertical display mode.
929 
930    $cfg['DefaultDisplay'] string
931           $cfg['HeaderFlipType'] string
932           There  are  3  display modes: horizontal, horizontalflipped and
933           vertical. Define which one is displayed by default. The first mode
934           displays  each row on a horizontal line, the second rotates the
935           headers by 90 degrees, so you can use descriptive headers even though
936           fields  only contain small values and still print them out. The
937           vertical mode sorts each row on a vertical lineup.
938           The HeaderFlipType can be set to 'css' or 'faked'. When using 'css'
939           the rotation of the header for horizontalflipped is done via CSS. If
940           set to 'faked' PHP does the transformation for you, but of course
941           this does not look as good as CSS.
942 
943    $cfg['DefaultPropDisplay'] string
944           When editing/creating new columns in a table all fields normally get
945           lined up one field a line. (default: 'horizontal'). If you set this
946           to 'vertical' you can have each field lined up vertically beneath
947           each  other.  You  can save up a lot of place on the horizontal
948           direction and no longer have to scroll.
949 
950    $cfg['ShowBrowseComments'] boolean
951           $cfg['ShowPropertyComments'] boolean
952           By setting the corresponding variable to TRUE you can enable the
953           display of column comments in Browse or Property display. In browse
954           mode, the comments are show inside the header. In property mode,
955           comments are displayed using a CSS-formatted dashed-line below the
956           name of the field. The comment is shown as a tool-tip for that field.
957 
958    $cfg['UploadDir'] string
959           The name of the directory, where SQL files have been uploaded by
960           other means than phpMyAdmin (for example, ftp). Those files are
961           available under a drop-down box when you click the database name,
962           then the SQL tab.
963           Please note that the file names must have the suffix ".sql" (or
964           ".sql.bz2"  or  ".sql.gz"  if support for compressed formats is
965           enabled).
966           This feature is useful when your file is too big to be uploaded via
967           HTTP, or when file uploads are disabled in PHP.
968           Please note that if PHP is running in safe mode, this directory must
969           be owned by the same user as the owner of the phpMyAdmin scripts.
970 
971    $cfg['docSQLDir'] string
972           The name of the directory, where docSQL files can be uploaded for
973           import into phpMyAdmin.
974           Please note that if PHP is running in safe mode, this directory must
975           be owned by the same user as the owner of the phpMyAdmin scripts.
976 
977    $cfg['SaveDir'] string
978           The name of the directory, where dumps can be saved.
979           Please note that the directory has to be writable for user running
980           webserver.
981           Please note that if PHP is running in safe mode, this directory must
982           be owned by the same user as the owner of the phpMyAdmin scripts.
983 
984    $cfg['TempDir'] string
985           The name of the directory, where temporary files can be stored.
986           This is needed for native MS Excel export, see FAQ 6.23
987 
988    $cfg['Export'] array
989           In this array are defined default parameters for export, names of
990           items are similar to texts seen on export page, so you can easily
991           identify what they mean.
992 
993    $cfg['RepeatCells'] integer
994           Repeat the headers every X cells, or 0 to deactivate.
995 
996    $cfg['QueryFrame'] boolean
997           $cfg['QueryFrameJS'] boolean
998           $cfg['QueryWindowWidth'] integer
999           $cfg['QueryWindowHeight'] integer
1000           $cfg['QueryHistoryDB'] boolean
1001           $cfg['QueryWindowDefTab'] string
1002           $cfg['QueryHistoryMax'] integer
1003           All   those  variables  affect  the  query  box  feature.  When
1004           $cfg['QueryFrame'] is set to true, a link or icon is displayed on the
1005           left panel. Clicking on it opens the query box, a direct interface to
1006           enter SQL queries.
1007           When $cfg['QueryFrameJS'] is set to true, clicking on that link opens
1008           the   query   box,   a   new   custom   sized   browser  window
1009           ($cfg['QueryWindowWidth'], $cfg['QueryWindowWidth'] - both integers
1010           for the size in pixels). Also, a click on [Edit] from the results
1011           page (in the "Showing Rows" section) opens the query box and puts the
1012           current query inside it. If set to false, clicking on the link only
1013           opens the SQL input in the main frame.
1014           The usage of the JavaScript query window is recommended if you have a
1015           JavaScript enabled browser. Basic functions are used to exchange
1016           quite a few variables, so most 4th generation browsers should be
1017           capable  to  use that feature. It currently is only tested with
1018           Internet Explorer 6 and Mozilla 1.x.
1019           If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged
1020           to   a   table,   which   has   to   be  created  by  you  (see
1021           $cfg['Servers'][$i]['history']). If set to FALSE, all your queries
1022           will be appended to the form, but only as long as your window is
1023           opened they remain saved.
1024           When using the JavaScript based query window, it will always get
1025           updated when you click on a new table/db to browse and will focus if
1026           you  click  on "Edit SQL" after using a query. You can suppress
1027           updating the query window by checking the box "Do not overwrite this
1028           query from outside the window" below the query textarea. Then you can
1029           browse tables/databases in the background without losing the contents
1030           of the textarea, so this is especially useful when composing a query
1031           with  tables  you  first have to look in. The checkbox will get
1032           automatically  checked  whenever you change the contents of the
1033           textarea. Please uncheck the button whenever you definitely want the
1034           query window to get updated even though you have made alterations.
1035           If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount
1036           of saved history items using $cfg['QueryHistoryMax'].
1037           The query window also has a custom tabbed look to group the features.
1038           Using the variable $cfg['QueryWindowDefTab'] you can specify the
1039           default tab to be used when opening the query window. It can be set
1040           to either 'sql', 'files', 'history' or 'full'.
1041 
1042    $cfg['BrowseMIME'] boolean
1043           Enable MIME-transformations.
1044 
1045    $cfg['MaxExactCount'] integer
1046           Determines for how large tables phpMyAdmin should get exact row count
1047           by SELECT COUNT. If approximate row count is smaller than this value,
1048           SELECT COUNT will be used, otherwise only value returned by SHOW
1049           TABLE STATUS. This has currently an impact only on InnoDB tables.
1050 
1051    $cfg['WYSIWYG-PDF'] boolean
1052           Utilizes a WYSIWYG editing control to easily place elements of a PDF
1053           page. By clicking on the button 'toggle scratchboard' on the page
1054           where you edit x/y coordinates of those elements you can activate a
1055           scratchboard where all your elements are placed. By clicking on an
1056           element, you can move them around in the pre-defined area and the x/y
1057           coordinates will get updated dynamically. Likewise, when entering a
1058           new position directly into the input field, the new position in the
1059           scratchboard changes after your cursor leaves the input field.
1060           You have to click on the 'OK'-button below the tables to save the new
1061           positions. If you want to place a new element, first add it to the
1062           table of elements and then you can drag the new element around.
1063           By changing the paper size and the orientation you can change the
1064           size of the scratchboard as well. You can do so by just changing the
1065           dropdown field below, and the scratchboard will resize automatically,
1066           without interfering with the current placement of the elements.
1067           If ever an element gets out of range you can either enlarge the paper
1068           size or click on the 'reset' button to place all elements below each
1069           other.
1070           NOTE: You have to use a recent browser like IE6 or Mozilla to get
1071           this control to work. The basic Drag&Drop script functionality was
1072           kindly borrowed from www.youngpup.net and is underlying so specific
1073           license.
1074 
1075    $cfg['NaturalOrder'] boolean
1076           Sorts  database and table names according to natural order (for
1077           example, t1, t2, t10). Currently implemented in the left panel (Light
1078           mode) and in Database view, for the table list.
1079 
1080    $cfg['ShowHttpHostTitle'] boolean
1081           Shows the HTTP host name in window's title bar.
1082 
1083    $cfg['SetHttpHostTitle'] string
1084           If $cfg['ShowHttpHostTitle'] is TRUE, it shows the real HTTP host
1085           name, unless an alternate name is set here.
1086 
1087    $cfg['ErrorIconic'] boolean
1088           Uses icons for warnings, errors and informations.
1089 
1090    $cfg['MainPageIconic'] boolean
1091           Uses icons on main page in lists, on right panel top menu and menu
1092           tabs.
1093 
1094    $cfg['ReplaceHelpImg'] boolean
1095           Shows a help button instead of the "Documentation" message.
1096 
1097    $cfg['ThemePath'] string
1098           If theme manager is active, use this as the path of the subdirectory
1099           containing all the themes.
1100 
1101    $cfg['ThemeManager'] boolean
1102           Enables user-selectable themes. See FAQ 2.7.
1103 
1104    $cfg['ThemeDefault'] string
1105           The default theme (a subdirectory under cfg['ThemePath']).
1106 
1107    $cfg['DefaultQueryTable'] string
1108    $cfg['DefaultQueryDatabase'] string
1109           Default queries that will be displayed in query boxes when user
1110           didn't specify any. Use %d for database name, %t for table name and
1111           %f for a comma separated list of field names. Note that %t and %f are
1112           only applicable to $cfg['DefaultQueryTable'].
1113 
1114    $cfg['SQP']['fmtType'] string [html|none]
1115           The main use of the new SQL Parser is to pretty-print SQL queries. By
1116           default we use HTML to format the query, but you can disable this by
1117           setting this variable to 'none'.
1118 
1119    $cfg['SQP']['fmtInd'] float
1120           $cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex]
1121           For the pretty-printing of SQL queries, under some cases the part of
1122           a   query   inside   a   bracket   is   indented.  By  changing
1123           $cfg['SQP']['fmtInd'] you can change the amount of this indent.
1124           Related in purpose is $cfg['SQP']['fmtIndUnit'] which specifies the
1125           units of the indent amount that you specified. This is used via
1126           stylesheets.
1127 
1128    $cfg['SQP']['fmtColor'] array of string tuples
1129           This array is used to define the colours for each type of element of
1130           the pretty-printed SQL queries. The tuple format is
1131           class => [HTML colour code | empty string]
1132           If  you specify an empty string for the color of a class, it is
1133           ignored in creating the stylesheet. You should not alter the class
1134           names, only the colour strings.
1135           Class name key:
1136 
1137           + comment Applies to all comment sub-classes
1138           + comment_mysql Comments as "#...\n"
1139           + comment_ansi Comments as "-- ...\n"
1140           + comment_c Comments as "/*...*/"
1141           + digit Applies to all digit sub-classes
1142           + digit_hex Hexadecimal numbers
1143           + digit_integer Integer numbers
1144           + digit_float Floating point numbers
1145           + punct Applies to all punctuation sub-classes
1146           + punct_bracket_open_round Opening brackets"("
1147           + punct_bracket_close_round Closing brackets ")"
1148           + punct_listsep List item Separator ","
1149           + punct_qualifier Table/Column Qualifier "."
1150           + punct_queryend End of query marker ";"
1151           + alpha Applies to all alphabetic classes
1152           + alpha_columnType Identifiers matching a column type
1153           + alpha_columnAttrib Identifiers matching a database/table/column
1154             attribute
1155           + alpha_functionName Identifiers matching a MySQL function name
1156           + alpha_reservedWord Identifiers matching any other reserved word
1157           + alpha_variable Identifiers matching a SQL variable "@foo"
1158           + alpha_identifier All other identifiers
1159           + quote Applies to all quotation mark classes
1160           + quote_double Double quotes "
1161           + quote_single Single quotes '
1162           + quote_backtick Backtick quotes `
1163 
1164    $cfg['SQLValidator']['use'] boolean
1165           phpMyAdmin now supports use of the Mimer SQL Validator service, as
1166           originally published on Slashdot.
1167           For help in setting up your system to use the service, see the FAQ
1168           #6.14.
1169 
1170    $cfg['SQLValidator']['username'] string
1171           $cfg['SQLValidator']['password'] string
1172           The SOAP service allows you to login with anonymous and any password,
1173           so we use those by default. Instead, if you have an account with
1174           them, you can put your login details here, and it will be used in
1175           place of the anonymous login.
1176 
1177    $cfg['DBG']['enable'] boolean
1178           DEVELOPERS ONLY!
1179           Enable the DBG extension for debugging phpMyAdmin. Required for
1180           profiling the code.
1181           For  help in setting up your system to this, see the Developers
1182           section.
1183 
1184    $cfg['DBG']['profile']['enable'] boolean
1185           DEVELOPERS ONLY!
1186           Enable profiling support for phpMyAdmin. This will append a chunk of
1187           data to the end of every page displayed in the main window with
1188           profiling statistics for that page.
1189           You may need to increase the maximum execution time for this to
1190           complete successfully.
1191 
1192    $cfg['DBG']['profile']['threshold'] float (units in milliseconds)
1193           DEVELOPERS ONLY!
1194           When  profiling  data  is displayed, this variable controls the
1195           threshold of display for any profiling data, based on the average
1196           time  each  time  has  taken. If it is over the threshold it is
1197           displayed, otherwise it is not displayed. This takes a value in
1198           milliseconds. In most cases you don't need to edit this.
1199 
1200    $cfg['ColumnTypes'] array
1201           All possible types of a MySQL column. In most cases you don't need to
1202           edit this.
1203 
1204    $cfg['AttributeTypes'] array
1205           Possible attributes for fields. In most cases you don't need to edit
1206           this.
1207 
1208    $cfg['Functions'] array
1209           A list of functions MySQL supports. In most cases you don't need to
1210           edit this.
1211 
1212    $cfg['RestrictColumnTypes'] array
1213           Mapping of column types to meta types used for preferring displayed
1214           functions. In most cases you don't need to edit this.
1215 
1216    $cfg['RestrictFunctions'] array
1217           Functions  preferred  for  column  meta  types  as  defined  in
1218           $cfg['RestrictColumnTypes']. In most cases you don't need to edit
1219           this.
1220 
1221    $cfg['DefaultFunctions'] array
1222           Functions selected by default when insering/changing row, Functions
1223           are defined for meta types from $cfg['RestrictColumnTypes'] and for
1224           first_timestamp, which is used for first timestamp column in table.
1225 
1226    $cfg['NumOperators'] array
1227           Operators available for search operations on numeric and date fields.
1228 
1229    $cfg['TextOperators'] array
1230           Operators available for search operations on character fields. Note
1231           that  we  put  LIKE  by default instead of LIKE %...%, to avoid
1232           unintended performance problems in case of huge tables.
1233 
1234    $cfg['EnumOperators'] array
1235           Operators available for search operations on enum fields.
1236 
1237    $cfg['NullOperators'] array
1238           Additionnal operators available for search operations when the field
1239           can be null.
1240 
1241 Transformations
1242 
1243    Introduction  -  Usage  -  File structure
1244 
1245   [1. Introduction]
1246 
1247    To enable transformations, you have to setup the column_info table and th   e proper directives. Please see the Configuration section on how to do s   o.
1248 
1249    You can apply different transformations to the contents of each field. Th   e transformation will take the content of each field and transform it wi   th certain rules defined in the selected transformation.
1250 
1251    Say you have a field 'filename' which contains a filename. Normally you w   ould see in phpMyAdmin only this filename. Using transformations you can    transform that filename into a HTML link, so you can click inside of th   e phpMyAdmin structure on the field's link and will see the file display   ed in a new browser window. Using transformation options you can also sp   ecify strings to append/prepend to a string or the format you want the o   utput stored in.
1252 
1253    For a general overview of all available transformations and their options   , you can consult your <www.your-host.com>/<your-install-dir>/libraries/   transformations/overview.php installation.
1254 
1255    For a tutorial on how to effectively use transformations, see our Link se   ction on the official phpMyAdmin-homepage.
1256 
1257   [2. Usage]
1258 
1259    Go to your tbl_properties.inc.php page (i.e. reached through clicking on   the 'properties' link for a table). There click on "Change" (or change i   con) and there you will see three new fields at the end of the line. The   y are called 'MIME-type', 'Browser transformation' and 'Transformation o   ptions'.
1260      * The field 'MIME-type' is a dropdown field. You have the options to le       ave  that  field  empty or to use 'auto' [this feature is not yet
1261        available]. Please note that transformations are inactive as long as no
1262        MIME-type is selected.
1263      * The field 'Browser transformation' is a drop-down field. You can choo       se from a hopefully growing amount of pre-defined transformations. See
1264        below for information on how to build your own transformation.
1265        There are global transformations and mimetype-bound transformations.
1266        Global transformations can be used for any mimetype. They will take the
1267        mimetype, if necessary, into regard. Mimetype-bound transformations
1268        usually only operate on a certain mimetype. There are transformations
1269        which operate on the main mimetype (like 'image'), which will most
1270        likely take the subtype into regard, and those who only operate on a
1271        specific subtype (like 'image/jpeg').
1272        You can use transformations on mimetypes for which the function was not
1273        defined for. There is no security check for you selected the right
1274        transformation, so take care of what the output will be like.
1275      * The field 'Transformation options' is a free-type textfield. You have         to  enter transform-function specific options here. Usually the
1276        transforms can operate with default options, but it is generally a good
1277        idea to look up the overview to see which options are necessary.
1278        Much like the ENUM/SET-Fields, you have to split up several options
1279        using the format 'a','b','c',...(NOTE THE MISSING BLANKS). This is
1280        because internally the options will be parsed as an array, leaving the
1281        first value the first element in the array, and so forth.
1282        If you want to specify a MIME character set you can define it in the
1283        transformation_options. You have to put that outside of the pre-defined
1284        options of the specific mime-transform, as the last value of the set.
1285        Use the format "'; charset=XXX'". If you use a transform, for which you
1286        can specify 2 options and you want to append a character set, enter
1287        "'first parameter','second parameter','charset=us-ascii'". You can,
1288        however use the defaults for the parameters: "'','','charset=us-ascii'".
1289 
1290   [3. File structure]
1291 
1292    All mimetypes and their transformations are defined through single files   in the directory 'libraries/transformations/'.
1293 
1294    They are stored in files to ease up customization and easy adding of new   transformations.
1295 
1296    Because the user cannot enter own mimetypes, it is kept sure that transfo   rmations always work. It makes no sense to apply a transformation to a m   imetype, the transform-function doesn't know to handle.
1297 
1298    One can, however, use empty mime-types and global transformations which s   hould work for many mimetypes. You can also use transforms on a differen   t mimetype they where built for, but pay attention to option usage as we   ll as what the transformation does to your field.
1299 
1300    There is a basic file called 'global.inc.php'. This function can be inclu   ded by any other transform function and provides some basic functions.
1301 
1302    There are 5 possible file names:
1303     1. A mimetype+subtype transform:
1304        [mimetype]_[subtype]__[transform].inc.php
1305        Please not that mimetype and subtype are separated via '_', which shall
1306        not be contained in their names. The transform function/filename may
1307        contain only characters which cause no problems in the file system as
1308        well as the PHP function naming convention.
1309        The transform function will the be called
1310        'PMA_transform_[mimetype]_[subtype]__[transform]()'.
1311        Example:
1312        text_html__formatted.inc.php
1313        PMA_transform_text_html__formatted()
1314     2. A mimetype (w/o subtype) transform:
1315        [mimetype]__[transform].inc.php
1316        Please note that there are no single '_' characters. The transform
1317        function/filename may contain only characters which cause no problems in
1318        the file system as well as the PHP function naming convention.
1319        The transform function will the be called
1320        'PMA_transform_[mimetype]__[transform]()'.
1321        Example:
1322        text__formatted.inc.php
1323        PMA_transform_text__formatted()
1324     3. A mimetype+subtype without specific transform function
1325        [mimetype]_[subtype].inc.php
1326        Please note that there are no '__' characters in the filename. Do not
1327        use special characters in the filename causing problems with the file
1328        system.
1329        No transformation function is defined in the file itself.
1330        Example:
1331        text_plain.inc.php
1332        (No function)
1333     4. A mimetype (w/o subtype) without specific transform function
1334        [mimetype].inc.php
1335        Please note that there are no '_' characters in the filename. Do not use
1336        special  characters in the filename causing problems with the file
1337        system.
1338        No transformation function is defined in the file itself.
1339        Example:
1340        text.inc.php
1341        (No function)
1342     5. A global transform function with no specific mimetype
1343        global__[transform].inc.php
1344        The transform function will the be called
1345        'PMA_transform_global__[transform]()'.
1346        Example:
1347        global__formatted
1348        PMA_transform_global__formatted()
1349 
1350    So generally use '_' to split up mimetype and subtype, and '__' to provid   e a transform function.
1351 
1352    All filenames containing no '__' in themselves are not shown as valid tra   nsform functions in the dropdown.
1353 
1354    Please see the libraries/transformations/TEMPLATE file for adding your ow   n transform function. See the libraries/transformations/TEMPLATE_MIMETYP   E for adding a mimetype without a transform function. Also note the intr   oduction of a function description in the language files. For each funct   ion a $strTransformation_[filename without .inc.php] has to exist.
1355 
1356    You can use the template generator to generate new functions and entries   in the language file.
1357 
1358    To create a new transform function please see libraries/transformations/t   emplate_generator.sh. To create a new, empty mimetype please see librari   es/transformations/template_generator_mimetype.sh.
1359 
1360    A transform function always gets passed three variables:
1361     1. $buffer - Contains the text inside of the column. This is the text, y       ou want to transform.
1362     2. $options - Contains any user-passed options to a transform function a       s an array.
1363     3. $meta - Contains an object with field information to your column. The        data is drawn from the output of the mysql_fetch_field() function.
1364        This means, all object properties described on the manual page are
1365        available  in  this  variable and can be used to transform a field
1366        accordingly to unsigned/zerofill/not_null/... properties.
1367        The $meta->mimetype variable contains the original MIME-type of the
1368        field (i.e. 'text/plain', 'image/jpeg' etc.)
1369 
1370 FAQ - Frequently Asked Questions
1371 
1372    Server  -  Configuration  -  Limitations  -  Multi-user  -  Browsers  -     Usage tips  -  Project  -  Security
1373 
1374    Please have a look at our Link section on the official phpMyAdmin homepag   e for in-depth coverage of phpMyAdmin's features and/or interface.
1375 
1376   [1. Server]
1377 
1378     [1.1] I'm running PHP 4+ and my server is crashing each time a specific
1379     action is required or phpMyAdmin sends a blank page or a page full of
1380     cryptic characters to my browser, what can I do?
1381 
1382    There are some known PHP bugs with output buffering and compression.
1383    Try to set the $cfg['OBGzip'] directive to FALSE in your config.inc.php f   ile and the zlib.output_compression directive to Off in your php configu   ration file.
1384    Furthermore, we know about such problems connected to the release candida   tes of PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with MS Int   ernet Explorer. Please upgrade to the release version PHP 4.2.0.
1385 
1386     [1.2] My Apache server crashes when using phpMyAdmin.
1387 
1388    You should first try the latest versions of Apache (and possibly MySQL).
1389    See also the other FAQ entry about PHP bugs with output buffering.
1390    If your server keeps crashing, please ask for help in the various Apache   support groups.
1391 
1392     [1.3] I'm running phpMyAdmin with "cookie" authentication mode under PHP
1393     4.2.0 or 4.2.1 loaded as an Apache 2+ module but can't enter the script:
1394     I'm always displayed the login screen.
1395 
1396    This is a known PHP bug (see this bug report) from the official PHP bug d   atabase. It means there is and won't be any phpMyAdmin fix against it be   cause there is no way to code a fix.
1397 
1398     [1.4] Using phpMyAdmin on IIS, I'm displayed the error message: "The
1399     specified CGI application misbehaved by not returning a complete set of
1400     HTTP headers...".
1401 
1402    You just forgot to read the install.txt file from the php distribution. H   ave a look at the last message in this bug report from the official PHP   bug database.
1403 
1404     [1.5] Using phpMyAdmin on IIS, I'm facing crashes and/or many error
1405     messages with the HTTP or advanced authentication mode.
1406 
1407    This is a known problem with the PHP ISAPI filter: it's not so stable. Fo   r some more information and complete testings see the messages posted by    André B. aka "djdeluxe76" in this thread from the phpWizard forum.
1408    Please use instead the cookie authentication mode.
1409 
1410     [1.6] I can't use phpMyAdmin on PWS: nothing is displayed!
1411 
1412    This seems to be a PWS bug. Filippo Simoncini found a workaround (at this    time there is no better fix): remove or comment the DOCTYPE declaration   s (2 lines) from the scripts header.inc.php, header_printview.inc.php, i   ndex.php, left.php and libraries/common.lib.php.
1413 
1414     [1.7] How can I GZip or Bzip a dump or a CSV export. It does not seem to
1415     work.
1416 
1417    These features are based on the gzencode() and bzcompress() PHP functions    to be more independent of the platform (Unix/Windows, Safe Mode or not,    and so on). So, you must have PHP4 >= 4.0.4 and Zlib/Bzip2 support (--w   ith-zlib and --with-bz2).
1418    We faced PHP crashes when trying to download a dump with MS Internet Expl   orer when phpMyAdmin is run with a release candidate of PHP 4.2.0. In th   is case you should switch to the release version of PHP 4.2.0.
1419 
1420     [1.8] I cannot insert a text file in a table, and I get an error about safe
1421     mode being in effect.
1422 
1423    Your uploaded file is saved by PHP in the "upload dir", as defined in php   .ini by the variable upload_tmp_dir (usually the system default is /tmp)   .
1424    We recommend the following setup for Apache servers running in safe mode,    to enable uploads of files while being reasonably secure:
1425      * create a separate directory for uploads: mkdir /tmp/php
1426      * give ownership to the Apache server's user.group: chown apache.apache        /tmp/php
1427      * give proper permission: chmod 600 /tmp/php
1428      * put upload_tmp_dir = /tmp/php in php.ini
1429      * restart Apache
1430 
1431     [1.9] I'm having troubles when uploading files. In general file uploads
1432     don't work on my system and uploaded files have a Content-Type: header in
1433     the first line.
1434 
1435    It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0   and you updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't you?
1436    So the problem is that this package has a serious bug that was corrected   ages ago in PHP (2001-01-28: see PHP's bug tracking system for more deta   ils). The problem is that the bugged package is still available though i   t was corrected (see RedHat's BugZilla for more details).
1437    So please download the fixed package (4.0.4pl1-9) and the problem should   go away.
1438    And that fixes the \r\n problem with file uploads!
1439 
1440     [1.10] I'm having troubles when uploading files with phpMyAdmin running on
1441     a secure server. My browser is Internet Explorer and I'm using the Apache
1442     server.
1443 
1444    As suggested by "Rob M" in the phpWizard forum, add this line to your htt   pd.conf:
1445        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
1446    It seems to clear up many problems between Internet Explorer and SSL.
1447 
1448     [1.11] I get an 'open_basedir restriction' while uploading a file from the
1449     query box.
1450 
1451    Since version 2.2.4, phpMyAdmin supports servers with open_basedir restri   ctions. Assuming that the restriction allows you to open files in the cu   rrent directory ('.'), all you have to do is create a 'tmp' directory un   der the phpMyAdmin install directory, with permissions 777 and the same   owner as the owner of your phpMyAdmin directory. The uploaded files will    be moved there, and after execution of your SQL commands, removed.
1452 
1453     [1.12] I have lost my MySQL root password, what can I do?
1454 
1455    The MySQL manual explains how to reset the permissions.
1456 
1457     [1.13] I get an error 'No SQL query' when trying to execute a bookmark.
1458 
1459    If PHP does not have read/write access to its upload_tmp_dir, it cannot a   ccess the uploaded query.
1460 
1461     [1.14] I get an error 'No SQL query' when trying to submit a query from the
1462     convenient text area.
1463 
1464    Check the post_max_size directive from your PHP configuration file and tr   y to increase it.
1465 
1466     [1.15] I have problems with mysql.user field names.
1467 
1468    In older MySQL versions, the User and Password fields were named user and    password. Please modify your field names to align with current standard   s.
1469 
1470     [1.16] I cannot upload big dump files (memory, http or timeout problems).
1471 
1472    The first things to check (or ask your host provider to check) are the va   lues of upload_max_filesize, memory_limit and post_max_size in the php.i   ni configuration file.
1473    All of these three settings limit the maximum size of data that can be su   bmitted and handled by PHP. One user also said that post_max_size and me   mory_limit need to be larger than upload_max_filesize.
1474    If you get a timeout problem, look at the $cfg['UploadDir'] feature.
1475 
1476     [1.17] Which MySQL versions does phpMyAdmin support?
1477 
1478    All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are    fully supported. Please note that the older your MySQL version is, the   more limitations you will have to face.
1479    phpMyAdmin may connect to your MySQL server using php's classic MySQL ext   ension as well as the improved MySQL extension (MySQLi) that is availabl   e in php 5.0.
1480    Either way, the developers of both extensions recommend to use the classi   c extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.
1481    When compiling php, we strongly recommend that you manually link the MySQ   L extension of your choice to a MySQL client library of at least the sam   e minor version since the one that is bundled with some php distribution   s is rather old and might cause problems (see also FAQ 1.17a).
1482    MySQL 5.1 is not yet supported.
1483 
1484     [1.17a] I cannot connect to the MySQL server. It always returns the error
1485     message, "Client does not support authentication protocol requested by
1486     server; consider upgrading MySQL client"
1487 
1488    You tried to access MySQL with an old MySQL client library. The version o   f your MySQL client library can be checked in your phpinfo() output.
1489    In general, it should have at least the same minor version as your server    - as mentioned in FAQ 1.17.
1490    The only way to fix this problem is manually compiling php and its MySQL   extension against a current MySQL client library.
1491    If you still face this problem, please compile your MySQL client library   against the same or a newer MySQL release.
1492 
1493     [1.18] I'm running MySQL <= 4.0.1 having lower_case_table_names set to 1.
1494     If I create a new table with a capital letter in its name it is changed to
1495     lowercase as it should. But if I try to DROP this table MySQL is unable to
1496     find the corresponding file.
1497 
1498    This is a bug of MySQL <= 4.0.1. Please upgrade to at least MySQL 4.0.2 o   r turn off your lower_case_table_names directive.
1499 
1500     [1.19] I can't run the "display relations" feature because the script seems
1501     not to know the font face I'm using!
1502 
1503    The "FPDF" library we're using for this feature requires some special fil   es to use font faces.
1504    Please refers to the FPDF manual to build these files.
1505 
1506     [1.20] I receive the error "cannot load MySQL extension, please check PHP
1507     Configuration".
1508 
1509    To connect to a MySQL server, PHP needs a set of MySQL functions called "   MySQL extension". This extension may be part of the PHP distribution (co   mpiled-in), otherwise it needs to be loaded dynamically. Its name is pro   bably mysql.so or php_mysql.dll. phpMyAdmin tried to load the extension   but failed.
1510    Usually, the problem is solved by installing a software package called "P   HP-MySQL" or something similar.
1511 
1512     [1.21] I am running the CGI version of PHP under Unix, and I cannot login
1513     using cookie auth.
1514 
1515    In php.ini, set mysql.max_links higher than 1.
1516 
1517     [1.22] I don't see the "Location of text file" field, so I cannot upload.
1518 
1519    This is most likely because in php.ini, your file_uploads parameter is no   t set to "on".
1520 
1521     [1.23] I'm running MySQL on a Win32 machine. Each time I create a new table
1522     the table and field names are changed to lowercase!
1523 
1524    This happens because the MySQL directive lower_case_table_names defaults   to 1 (ON) in the Win32 version of MySQL. You can change this behavior by    simply changing the directive to 0 (OFF):
1525    Just edit your my.ini file that should be located in your Windows directo   ry and add the following line to the group [mysqld]:
1526    set-variable = lower_case_table_names=0
1527    Next, save the file and restart the MySQL service. You can always check t   he value of this directive using the query
1528    SHOW VARIABLES LIKE 'lower_case_table_names';
1529 
1530     [1.24] Some characters are being truncated in my queries, or I get
1531     characters randomly added. I am running PHP 4.2.3.
1532 
1533    This is a PHP 4.2.3 bug.
1534 
1535     [1.25] I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get
1536     problems, such as undefined variables when I run a SQL query.
1537 
1538    A tip from Jose Fandos: put a comment on the following two lines in httpd   .conf, like this:
1539    # mod_gzip_item_include file \.php$
1540    # mod_gzip_item_include mime "application/x-httpd-php.*"
1541    as this version of mod_gzip on Apache (Windows) has problems handling PHP    scripts. Of course you have to restart Apache.
1542 
1543     [1.26] I just installed phpMyAdmin in my document root of IIS but I get the
1544     error "No input file specified" when trying to run phpMyAdmin.
1545 
1546    This is a permission problem. Right-click on the phpmyadmin folder and ch   oose properties. Under the tab Security, click on "Add" and select the u   ser "IUSR_machine" from the list. Now set his permissions and it should   work.
1547 
1548     [1.27] I get empty page when I want to view huge page (eg.
1549     db_details_structure.php with plenty of tables).
1550 
1551    This is a PHP bug that occur when GZIP output buffering is enabled. If yo   u turn off it (by $cfg['OBGzip'] = FALSE in config.inc.php), it should w   ork. This bug will be fixed in PHP 5.0.0.
1552 
1553     [1.28] My MySQL server sometimes refuses queries and returns the message
1554     'Errorcode: 13'. What does this mean?
1555 
1556    This can happen due to a MySQL bug when having database / table names wit   h upper case characters although lower_case_table_names is set to 1. To   fix this, turn off this directive, convert all database and table names   to lower case and turn it on again. Alternatively, there's a bug-fix ava   ilable starting with MySQL 3.23.56 / 4.0.11-gamma.
1557 
1558     [1.29] When I create a table or modify a field, I get an error and the
1559     fields are duplicated.
1560 
1561    It is possible to configure Apache in such a way that PHP has problems in   terpreting .php files.
1562    The problems occur when two different (and conflicting) set of directives    are used:
1563    SetOutputFilter PHP
1564    SetInputFilter PHP
1565    &
1566    AddType application/x-httpd-php .php
1567    In the case we saw, one set of directives was in /etc/httpd/conf/httpd.co   nf, while the other set was in /etc/httpd/conf/addon-modules/php.conf.
1568    The recommended way is with AddType, so just comment out the first set of    lines and restart Apache:
1569    #SetOutputFilter PHP
1570    #SetInputFilter PHP
1571    
1572     [1.30] I get the error "left.php: Missing hash".
1573 
1574    This problem is known to happen when the server is running Turck MMCache   but upgrading MMCache to version 2.3.21 solves the problem.
1575 
1576     [1.31] Does phpMyAdmin support php5?
1577 
1578    Yes.
1579    However, phpMyAdmin needs to be backwards compatible to php4. This is why    you won't be able to run phpMyAdmin having enabled E_STRICT in your err   or_reporting settings.
1580 
1581     [1.32] Can I use HTTP authentication with IIS?
1582 
1583    Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI   mode under IIS 5.1.
1584     1. In your php.ini file, set cgi.rfc2616_headers = 0
1585     2. In Web Site Properties -> File/Directory Security -> Anonymous Access        dialog box, check the Anonymous access checkbox and uncheck any other
1586        checkboxes  (i.e. uncheck Basic authentication, Integrated Windows
1587        authentication, and Digest if it's enabled.) Click OK.
1588     3. In Custom Errors, select the range of 401;1 through 401;5 and click t       he Set to Default button.
1589 
1590   [2. Configuration]
1591 
1592     [2.1] The error message "Warning: Cannot add header information - headers
1593     already sent by ..." is displayed, what's the problem?
1594 
1595    Edit your config.inc.php or .php file and ensure there is nothing (I.E. n   o blank lines, no spaces, no characters...) neither before the <?php tag    at the beginning, neither after the ?> tag at the end.
1596 
1597     [2.2] phpMyAdmin can't connect to MySQL. What's wrong?
1598 
1599    Either there is an error with your PHP setup or your username/password is    wrong. Try to make a small script which uses mysql_connect and see if i   t works. If it doesn't, it may be you haven't even compiled MySQL suppor   t into PHP.
1600 
1601     [2.3] The error message "Warning: MySQL Connection Failed: Can't connect to
1602     local MySQL server through socket '/tmp/mysql.sock' (111)..." is displayed.
1603     What can I do?
1604 
1605    For RedHat users, Harald Legner suggests this on the mailing list:
1606    On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In you   r php.ini you will find a line
1607        mysql.default_socket = /tmp/mysql.sock
1608    change it to
1609        mysql.default_socket = /var/lib/mysql/mysql.sock
1610    Then restart apache and it will work.
1611    Here is a fix suggested by Brad Ummer in the phpwizard forum:
1612      * First, you need to determine what socket is being used by MySQL.
1613        To do this, telnet to your server and go to the MySQL bin directory. In
1614        this  directory  there  should  be  a  file named mysqladmin. Type
1615        ./mysqladmin variables, and this should give you a bunch of info about
1616        your MySQL server, including the socket (/tmp/mysql.sock, for example).
1617      * Then, you need to tell PHP to use this socket.
1618        Assuming you are using PHP 3.0.10 or better, you can specify the socket
1619        to use when you open the connection. To do this in phpMyAdmin, you need
1620        to complete the socket information in the config.inc.php.
1621        For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
1622        Please also make sure that the permissions of this file allow to be
1623        readable by your webserver (i.e. '0755').
1624 
1625    Have also a look at the corresponding section of the MySQL documentation.   
1626     [2.4] Nothing is displayed by my browser when I try to run phpMyAdmin, what
1627     can I do?
1628 
1629    Try to set the $cfg['OBGZip'] directive to FALSE in the phpMyAdmin config   uration file. It helps sometime.
1630    Also have a look at your PHP version number: if it contains "4.0b..." it   means you're running a beta version of PHP. That's not a so good idea, p   lease upgrade to a plain revision.
1631 
1632     [2.5] Each time I want to insert or change a record or drop a database or a
1633     table, an error 404 (page not found) is displayed or, with HTTP or cookie
1634     authentication, I'm asked to login again. What's wrong?
1635 
1636    Check the value you set for the $cfg['PmaAbsoluteUri'] directive in the p   hpMyAdmin configuration file.
1637 
1638     [2.6] I get an "Access denied for user: 'root@localhost' (Using password:
1639     YES)"-error when trying to access a MySQL-Server on a host which is
1640     port-forwarded for my localhost.
1641 
1642    When you are using a port on your localhost, which you redirect via port-   forwarding to another host, MySQL is not resolving the localhost as expe   cted.
1643    Erik Wasser explains: The solution is: if your host is "localhost" MySQL   (the commandline tool 'mysql' as well) always tries to use the socket co   nnection for speeding up things. And that doesn't work in this configura   tion with port forwarding.
1644    If you enter "127.0.0.1" as hostname, everything is right and MySQL uses   the TCP connection.
1645 
1646     [2.7] Using and creating themes
1647 
1648    Themes are configured with $cfg['ThemePath'], $cfg['ThemeManager'] and $c   fg['ThemeDefault'].
1649    Under $cfg['ThemePath'], you should not delete the directory "original" o   r its underlying structure, because this is the system theme used by php   MyAdmin. "original" contains all images and styles, for backwards compat   ibility and for all themes that would not include images or css-files.
1650    If $cfg['ThemeManager'] is enabled, you can select your favorite theme on    the main page. Your selected theme will be stored in a cookie.
1651 
1652    To create a theme:
1653      * make a new subdirectory (for example "your_theme_name") under $cfg['T       hemePath'] (by default themes)
1654      * copy the files and directories from "original" to "your_theme_name"
1655      * edit the css-files in "your_theme_name/css"
1656      * put your new images in "your_theme_name/img"
1657      * edit layout.inc.php in "your_theme_name"
1658      * edit info.inc.php in "your_theme_name" to contain your chosen theme n       ame, that will be visible in user interface
1659      * make a new screenshot of your theme and save it under "your_theme_nam       e/screen.png"
1660 
1661    In theme directory there is file info.inc.php which contains theme verbos   e name, theme generation and theme version. These versions and generatio   ns are enumerated from 1 and do not have any direct dependance on phpMyA   dmin version. Themes within same generation should be backwards compatib   le - theme with version 2 should work in phpMyAdmin requiring version 1.    Themes with different generation are incompatible.
1662 
1663    If you do not want to use your own symbols and buttons, remove the direct   ory "img" in "your_theme_name". phpMyAdmin will use the default icons an   d buttons (from the system-theme "original").
1664 
1665   [3. Known limitations]
1666 
1667     [3.1] When using HTTP authentication, an user who logged out can not
1668     relogin in with the same nick.
1669 
1670    This is related to the authentication mechanism (protocol) used by phpMyA   dmin. To bypass this problem: just close all the opened browser windows   and then go back to phpMyAdmin. You should be able to log in again.
1671 
1672     [3.2] When dumping a large table in compressed mode, I get a memory limit
1673     error or a time limit error.
1674 
1675    Compressed dumps are built in memory and because of this are limited to p   hp's memory limit. For GZip/BZip2 exports this can be overcome since 2.5   .4 using $cfg['CompressOnFly'] (enabled by default). Zip exports can not    be handled this way, so if you need Zip files for larger dump, you have    to use another way.
1676 
1677     [3.3] With InnoDB tables, I lose foreign key relationships when I rename or
1678     alter a table.
1679 
1680    This seems to be a InnoDB bug (fixed in MySQL 3.23.50?).
1681 
1682     [3.4] I am unable to import dumps I created with the mysqldump tool bundled
1683     with the MySQL server distribution.
1684 
1685    The problem is that mysqldump creates invalid comments like this:
1686 -- MySQL dump 8.22
1687 --
1688 -- Host: localhost Database: database
1689 ---------------------------------------------------------
1690 -- Server version 3.23.54
1691 
1692    The invalid part of the code is the horizontal line made of dashes that a   ppears once in every dump created with mysqldump. If you want to run you   r dump you have to turn it into valid MySQL. This means, you have to add    a whitespace after the first two dashes of the line or add a # before i   t:
1693    -- -------------------------------------------------------
1694    or
1695    #---------------------------------------------------------
1696 
1697     [3.5] When using nested folders ($cfg['LeftFrameTableSeparator']) there are
1698     some multiple hierarchies displayed in a wrong manner?!
1699 
1700    Please note that you should not use the separating string multiple times   without any characters between them, or at the beginning/end of your tab   le name. If you have to, think about using another TableSeparator or dis   abling that feature
1701 
1702     [3.6] What is currently not supported in phpMyAdmin about InnoDB?
1703 
1704    In Relation view, being able to choose a table in another database, or ha   ving more than one index field in the foreign key.
1705    In Query-by-example (Query), automatic generation of the query LEFT JOIN   from the foreign table.
1706    In PDF schema editing, automatic layout.
1707 
1708     [3.7] I have table with many (100+) fields and when I try to browse table I
1709     get series of errors like "Warning: unable to parse url". How can this be
1710     fixed?
1711 
1712    Your table neither have a primary key nor an unique one, so we must use a    long expression to identify this row. This causes problems to parse_url    function. The workaround is to create a primary or unique key.
1713 
1714     [3.8] I cannot use (clickable) HTML-forms in fields where I put a
1715     MIME-Transformation onto!
1716 
1717    Due to a surrounding form-container (for multi-row delete checkboxes), no    nested forms can be put inside the table where phpMyAdmin displays the   results. You can, however, use any form inside of a table if keep the pa   rent form-container with the target to tbl_row_delete.php and just put y   our own input-elements inside. If you use a custom submit input field, t   he form will submit itself to the displaying page again, where you can v   alidate the $HTTP_POST_VARS in a transformation. For a tutorial on how t   o effectively use transformations, see our Link section on the official   phpMyAdmin-homepage.
1718 
1719     [3.9] I get error messages when using "--sql_mode=ANSI" for the MySQL
1720     server
1721 
1722    When MySQL is running in ANSI-compatibility mode, there are some major di   fferences in how SQL is structured (see http://dev.mysql.com/doc/mysql/e   n/ANSI_mode.html). Most important of all, the quote-character (") is int   erpreted as an identifier quote character and not as a string quote char   acter, which makes many internal phpMyAdmin operations into invalid SQL   statements. There is no workaround to this behaviour. News to this item   will be posted in Bug report #816858
1723 
1724     [3.10] Homonyms and no primary key: When the results of a SELECT display
1725     more that one column with the same value (for example SELECT lastname from
1726     employees where firstname like 'A%' and two "Smith" values are displayed),
1727     if I click Edit I cannot be sure that I am editing the intended row.
1728 
1729    Please make sure that your table has a primary key, so that phpMyAdmin ca   n use it for the Edit and Delete links.
1730 
1731     [3.11] The number of records for InnoDB tables is not correct.
1732 
1733    phpMyAdmin uses a quick method to get the row count, and this method only    returns an approximate count in the case of InnoDB tables. See $cfg['Ma   xExactCount'] for a way to modify those results, but this could have a s   erious impact on performance.
1734 
1735   [4. ISPs, multi-user installations ]
1736 
1737     [4.1] I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need
1738     to install it for each customer.
1739 
1740    Since version 2.0.3, you can setup a central copy of phpMyAdmin for all y   our users. The development of this feature was kindly sponsored by NetCo   logne GmbH. This requires a properly setup MySQL user management and php   MyAdmin HTTP or cookie authentication. See the install section on "Using    HTTP authentication".
1741 
1742     [4.2] What's the preferred way of making phpMyAdmin secure against evil
1743     access.
1744 
1745    This depends on your system.
1746    If you're running a server which cannot be accessed by other people, it's    sufficient to use the directory protection bundled with your webserver   (with Apache you can use .htaccess files, for example).
1747    If other people have telnet access to your server, you should use phpMyAd   min's HTTP authentication feature.
1748    Suggestions:
1749      * Your config.inc.php file should be chmod 660.
1750      * All your phpMyAdmin files should be chown -R phpmy.apache, where phpm       y is a user whose password is only known to you, and apache is the
1751        group under which Apache runs.
1752      * You should use PHP safe mode, to protect from other users that try to        include your config.inc.php in their scripts.
1753 
1754     [4.3] I get errors about not being able to include a file in /lang or in
1755     /libraries.
1756 
1757    Check php.ini, or ask your sysadmin to check it. The include_path must co   ntain "." somewhere in it, and open_basedir, if used, must contain "." a   nd "./lang" to allow normal operation of phpMyAdmin.
1758 
1759     [4.4] phpMyAdmin always gives "Access denied" when using HTTP
1760     authentication.
1761 
1762    This could happen for several reasons:
1763      * $cfg['Servers'][$i]['controluser'] and/or $cfg['Servers'][$i]['contro       lpass'] are wrong.
1764      * The username/password you specify in the login-dialog are invalid.
1765      * You have already setup a security mechanism for the phpMyAdmin-direct       ory, eg. a .htaccess file. This would interfere with phpMyAdmin's
1766        authentication, so remove it.
1767 
1768     [4.5] Is it possible to let users create their own databases?
1769 
1770    Starting with 2.2.5, in the user management page, you can enter a wildcar   d database name for a user (for example "joe%"), and put the privileges   you want. For example, adding SELECT, INSERT, UPDATE, DELETE, CREATE, DR   OP, INDEX, ALTER would let a user create/manage his/her database(s).
1771 
1772     [4.6] How can I use the Host-based authentication additions?
1773 
1774    If you have existing rules from an old .htaccess file, you can take them   and add a username between the 'deny'/'allow' and 'from' strings. Using   the username wildcard of '%' would be a major benefit here if your insta   llation is suited to using it. Then you can just add those updated lines    into the $cfg['Servers'][$i]['AllowDeny']['rules'] array.
1775    If you want a pre-made sample, you can try this fragment. It stops the 'r   oot' user from logging in from any networks other than the private netwo   rk IP blocks.
1776        //block root from logging in except from the private networks
1777        $cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
1778        $cfg['Servers'][$i]['AllowDeny']['rules'] = array(
1779            'deny root from all',
1780            'allow root from localhost',
1781            'allow root from 10.0.0.0/8',
1782            'allow root from 192.168.0.0/16',
1783            'allow root from 172.16.0.0/12',
1784            );
1785 
1786     [4.7] Authentication window is displayed more than once, why?
1787 
1788    This happens if you are using a URL to start phpMyAdmin which is differen   t than the one set in your $cfg['PmaAbsoluteUri']. For example, a missin   g "www", or entering with an IP address while a domain name is defined i   n the config file.
1789 
1790   [5. Browsers or client OS]
1791 
1792     [5.1] I get an out of memory error, and my controls are non-functional,
1793     when trying to create a table with more than 14 fields.
1794 
1795    We could reproduce this problem only under Win98/98SE. Testing under WinN   T4 or Win2K, we could easily create more than 60 fields.
1796    A workaround is to create a smaller number of fields, then come back to y   our table properties and add the other fields.
1797 
1798     [5.2] With Xitami 2.5b4, phpMyAdmin won't process form fields.
1799 
1800    This is not a phpMyAdmin problem but a Xitami known bug: you'll face it w   ith each script/website that use forms.
1801    Upgrade or downgrade your Xitami server.
1802 
1803     [5.3] I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).
1804 
1805    With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except tha   t the proposed file name for the dump is always 'tbl_dump.php'. Bzip2 du   mps don't seem to work.
1806    With Konqueror 2.2.1: plain dumps work; zip dumps are placed into the use   r's temporary directory, so they must be moved before closing Konqueror,    or else they disappear. GZip dumps give an error message.
1807    Testing needs to be done for Konqueror 2.2.2.
1808 
1809     [5.4] I can't use the cookie authentication mode because Internet Explorer
1810     never stores the cookies.
1811 
1812    MS Internet Explorer seems to be really buggy about cookies, at least til   l version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1   bug in this area!
1813    Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may   work!
1814 
1815     [5.5] In Internet Explorer 5.0, I get JavaScript errors when browsing my
1816     rows.
1817 
1818    Upgrade to at least Internet Explorer 5.5 SP2.
1819 
1820     [5.6] In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not
1821     found") when trying to modify a row in a table with many fields, or with a
1822     text field
1823 
1824    Your table neither have a primary key nor an unique one, so we must use a    long URL to identify this row. There is a limit on the length of the UR   L in those browsers, and this not happen in Netscape, for example. The w   orkaround is to create a primary or unique key, or use another browser.
1825 
1826     [5.7] I refresh (reload) my browser, and come back to the welcome page.
1827 
1828    Some browsers support right-clicking into the frame you want to refresh,   just do this in the right frame.
1829 
1830     [5.8] With Mozilla 0.9.7 I have problems sending a query modified in the
1831     query box.
1832 
1833    Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future Moz   illa versions.
1834 
1835     [5.9] With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a
1836     whitespace in the SQL-Query edit area: the page scrolls down.
1837 
1838    This is a Mozilla bug (see bug #26882 at BugZilla).
1839 
1840     [5.10] With Netscape 4.75 I get empty rows between each row of data in a
1841     CSV exported file.
1842 
1843    This is a known Netscape 4.75 bug: it adds some line feeds when exporting    data in octet-stream mode. Since we can't detect the specific Netscape   version, we cannot workaround this bug.
1844 
1845     [5.11] Extended-ASCII characters like German umlauts are displayed wrong.
1846 
1847    Please ensure that you have set your browser's character set to the one o   f the language file you have selected on phpMyAdmin's start page. Altern   atively, you can try the auto detection mode that is supported by the re   cent versions of the most browsers.
1848 
1849     [5.12] Apple OS X: Safari browser changes special characters to "?".
1850 
1851    This issue has been reported by a OS X user, who adds that Chimera, Netsc   ape and Mozilla do not have this problem.
1852 
1853     [5.13] With Internet Explorer 5.5 or 6, and HTTP authentication type, I
1854     cannot manage two servers: I login to the first one, then the other one,
1855     but if I switch back to the first, I have to login on each operation.
1856 
1857    This is a bug in Internet Explorer, other browsers do not behave this way   .
1858 
1859     [5.14] Using Opera6, I can manage to get to the authentication, but nothing
1860     happens after that, only a blank screen.
1861 
1862    Having $cfg['QueryFrameJS'] set to TRUE, this leads to a bug in Opera6, b   ecause it is not able to interpret frameset definitiions written by Java   Script. Please upgrade to Opera7 at least.
1863 
1864     [5.15] I have display problems with Safari.
1865 
1866    Please upgrade to at least version 1.2.3.
1867 
1868     [5.16] With Internet Explorer, I get "Access is denied" Javascript errors.
1869     Or I cannot make phpMyAdmin work under Windows.
1870 
1871    Please check the following points:
1872      * Maybe you have defined your PmaAbsoluteUri setting in config.inc.php       to an IP address and you are starting phpMyAdmin with a URL containing
1873        a domain name, or the reverse situation.
1874      * Security settings in IE and/or Microsoft Security Center are too high       , thus blocking scripts execution.
1875      * The Windows Firewall is blocking Apache and MySQL. You must allow htt       p ports (80 or 443) and MySQL port (usually 3306) in the "in" and "out"
1876        directions.
1877 
1878   [6. Using phpMyAdmin]
1879 
1880     [6.1] I can't insert new rows into a table / I can't create a table - MySQL
1881     brings up a SQL-error.
1882 
1883    Examine the SQL error with care. Often the problem is caused by specifyin   g a wrong field-type.
1884    Common errors include:
1885      * Using VARCHAR without a size argument
1886      * Using TEXT or BLOB with a size argument
1887 
1888    Also, look at the syntax chapter in the MySQL manual to confirm that your    syntax is correct.
1889 
1890     [6.2] When I create a table, I click the Index checkbox for 2 fields and
1891     phpMyAdmin generates only one index with those 2 fields.
1892 
1893    In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields i   ndex. If you want two indexes, create the first one when creating the ta   ble, save, then display the table properties and click the Index link to    create the other index.
1894 
1895     [6.3] How can I insert a null value into my table?
1896 
1897    Since version 2.2.3, you have a checkbox for each field that can be null.    Before 2.2.3, you had to enter "null", without the quotes, as the field   's value. Since version 2.5.5, you have to use the checkbox to get a rea   l NULL value, so if you enter "NULL" this means you want a literal NULL   in the field, and not a NULL value (this works in PHP4).
1898 
1899     [6.4] How can I backup my database or table?
1900 
1901    Click on a database or table name in the left frame, the properties will   be displayed. Then on the menu, click "Export", you can dump the structu   re, the data, or both. This will generate standard SQL statements that c   an be used to recreate your database/table.
1902    You will need to choose "Save as file", so that phpMyAdmin can transmit t   he resulting dump to your station. Depending on your PHP configuration,   you will see options to compress the dump. See also the $cfg['ExecTimeLi   mit'] configuration variable.
1903    For additional help on this subject, look for the word "dump" in this doc   ument.
1904 
1905     [6.5] How can I restore (upload) my database or table using a dump? How can
1906     I run a ".sql" file.
1907 
1908    Click on a database name in the left frame, the properties will be local   displayed. Then in the "Run SQL query" section, type in your dump filena   me, or use the Browse button. Then click Go.
1909    For additional help on this subject, look for the word "upload" in this d   ocument.
1910 
1911     [6.6] How can I use the relation table in Query-by-example?
1912 
1913    Here is an example with the tables persons, towns and countries, all loca   ted in the database mydb. If you don't have a pma_relation table, create    it as explained in the configuration section. Then create the example t   ables:
1914         CREATE TABLE REL_countries (
1915           country_code char(1) NOT NULL default '',
1916           description varchar(10) NOT NULL default '',
1917           PRIMARY KEY (country_code)
1918         ) TYPE=MyISAM;
1919         INSERT INTO REL_countries VALUES ('C', 'Canada');
1920         CREATE TABLE REL_persons (
1921           id tinyint(4) NOT NULL auto_increment,
1922           person_name varchar(32) NOT NULL default '',
1923           town_code varchar(5) default '0',
1924           country_code char(1) NOT NULL default '',
1925           PRIMARY KEY (id)
1926         ) TYPE=MyISAM;
1927         INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
1928         INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
1929         CREATE TABLE REL_towns (
1930           town_code varchar(5) NOT NULL default '0',
1931           description varchar(30) NOT NULL default '',
1932           PRIMARY KEY (town_code)
1933         ) TYPE=MyISAM;
1934         INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
1935         INSERT INTO REL_towns VALUES ('M', 'Montréal');
1936    To setup appropriate links and display information:
1937      * on table "REL_persons" click Structure, then Relation view
1938      * in Links, for "town_code" choose "REL_towns->code"
1939      * in Links, for "country_code" choose "REL_countries->country_code"
1940      * on table "REL_towns" click Structure, then Relation view
1941      * in "Choose field to display", choose "description"
1942      * repeat the two previous steps for table "REL_countries"
1943 
1944    Then test like this:
1945      * Click on your db name in the left frame
1946      * Choose "Query"
1947      * Use tables: persons, towns, countries
1948      * Click "Update query"
1949      * In the fields row, choose persons.person_name and click the "Show" ti       ckbox
1950      * Do the same for towns.description and countries.descriptions in the o       ther 2 columns
1951      * Click "Update query" and you will see in the query box that the corre       ct joins have been generated
1952      * Click "Submit query"
1953 
1954     [6.7] How can I use the "display field" feature?
1955 
1956    Starting from the previous example, create the pma_table_info as explaine   d in the configuration section, then browse your persons table, and move    the mouse over a town code or country code.
1957    See also FAQ 6.21 for an additionnal feature that "display field" enables   : drop-down list of possible values.
1958 
1959     [6.8] How can I produce a PDF schema of my database?
1960 
1961    First the configuration variables "relation", "table_coords" and "pdf_pag   es" have to be filled in.
1962    Then you need to think about your schema layout. Which tables will go on   which pages?
1963      * Select your database in the left frame.
1964      * Choose "Operations" in the navigation bar at the top.
1965      * Choose "Edit PDF Pages" near the bottom of the page.
1966      * Enter a name for the first PDF page and click Go. If you like, you ca       n use the "automatic layout," which will put all your linked tables
1967        onto the new page.
1968      * Select the name of the new page (the action choice being set to Edit)        and click Go.
1969      * Select a table from the list, enter its coordinates and click Go.
1970        Coordinates are relative; your diagram will be automatically scaled to
1971        fit the page. When initially placing tables on the page, just pick any
1972        coordinates -- say, 50x50. After clicking Go, you can then use the
1973        graphical editor to position the element correctly.
1974      * When you'd like to look at your PDF, first be sure to click the Go bu       tton beneath the list of tables and coordinates, to save any changes
1975        you made there. Then scroll all the way down, select the PDF options you
1976        want, and click Go.
1977      * Internet Explorer for Windows may suggest an incorrect filename when       you try to save a generated PDF. When saving a generated PDF, be sure
1978        that the filename ends in ".pdf", for example "schema.pdf". Browsers on
1979        other operating systems, and other browsers on Windows, do not have this
1980        problem.
1981 
1982     [6.9] phpMyAdmin is changing the type of one of my columns!
1983 
1984    No, it's MySQL that is doing silent column type changing.
1985 
1986     [6.10] When creating a privilege, what happens with underscores in the
1987     database name?
1988 
1989    If you do not put a backslash before the underscore, this is a wildcard g   rant, and the underscore means "any character". So, if the database name    is "john_db", the user would get rights to john1db, john2db...
1990    If you put a backslash before the underscore, it means that the database   name will have a real underscore.
1991 
1992     [6.11] What is the curious symbol ø in the statistics pages?
1993 
1994    It means "average".
1995 
1996     [6.12] I want to understand some Export options.
1997 
1998    Structure:
1999      * "Add DROP TABLE" will add a line telling MySQL to drop the table, if       it already exists during the import. It does NOT drop the table after
2000        your export, it only affects the import file.
2001      * "If Not Exists" will only create the table if it doesn't exist. Other       wise, you may get an error if the table name exists but has a different
2002        structure.
2003      * "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any)        will be included in backup.
2004      * "Enclose table and field names with backquotes" ensures that field an       d table names formed with special characters are protected.
2005      * "Add into comments" includes column comments, relations, and MIME typ       es set in the pmadb in the dump as SQL comments (/* xxx */).
2006 
2007    Data:
2008      * "Complete inserts" adds the column names on every INSERT command, for        better documentation (but resulting file is bigger).
2009      * "Extended inserts" provides a shorter dump file by using only once th       e INSERT verb and the table name.
2010      * "Delayed inserts" are best explained in the MySQL manual.
2011      * "Ignore inserts" treats errors as a warning instead. Again, more info        is provided in the MySQL manual, but basically with this selected,
2012        invalid values are adjusted and inserted rather than causing the entire
2013        statement to fail.
2014 
2015     [6.13] I would like to create a database with a dot in its name.
2016 
2017    This is a bad idea, because in MySQL the syntax "database.table" is the n   ormal way to reference a database and table name. Worse, MySQL will usua   lly let you create a database with a dot, but then you cannot work with   it, nor delete it.
2018 
2019     [6.14] How do I set up the SQL Validator?
2020 
2021    To use it, you need a very recent version of PHP, 4.3.0 recommended, with    XML, PCRE and PEAR support. On your system command line, run "pear inst   all Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP" to get the   necessary PEAR modules for usage.
2022    On a more recent pear version, I had problems with the state of Net_DIME   being beta, so this single command "pear -d preferred_state=beta install    -a SOAP" installed all the needed modules.
2023    If you use the Validator, you should be aware that any SQL statement you   submit will be stored anonymously (database/table/column names, strings,    numbers replaced with generic values). The Mimer SQL Validator itself,   is © 2001 Upright Database Technology. We utilize it as free SOAP servic   e.
2024 
2025     [6.15] I want to add a BLOB field and put an index on it, but MySQL says
2026     "BLOB column '...' used in key specification without a key length".
2027 
2028    The right way to do this, is to create the field without any indexes, the   n display the table structure and use the "Create an index" dialog. On t   his page, you will be able to choose your BLOB field, and set a size to   the index, which is the condition to create an index on a BLOB field.
2029 
2030     [6.16] How can I simply move in page with plenty editing fields?
2031 
2032    You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most page   s with many editing fields (table structure changes, row editing, etc.)   (must be enabled in configuration - see. $cfg['CtrlArrowsMoving']). You   can also have a look at the directive $cfg['DefaultPropDisplay'] ('verti   cal') and see if this eases up editing for you.
2033 
2034     [6.17] Transformations: I can't enter my own mimetype! WTF is this feature
2035     then useful for?
2036 
2037    Slow down :). Defining mimetypes is of no use, if you can't put transform   ations on them. Otherwise you could just put a comment on the field. Bec   ause entering your own mimetype will cause serious syntax checking issue   s and validation, this introduces a high-risk false-user-input situation   . Instead you have to initialize mimetypes using functions or empty mime   type definitions.
2038    Plus, you have a whole overview of available mimetypes. Who knows all tho   se mimetypes by heart so he/she can enter it at will?
2039 
2040     [6.18] Bookmarks: Where can I store bookmarks? Why can't I see any
2041     bookmarks below the query box? What is this variable for?
2042 
2043    Any query you have executed can be stored as a bookmark on the page where    the results are displayed. You will find a button labeled 'Bookmark thi   s query' just at the end of the page.
2044    As soon as you have stored a bookmark, it is related to the database you   run the query on. You can now access a bookmark dropdown on each page, t   he query box appears on for that database.
2045    Since phpMyAdmin 2.5.0 you are also able to store variables for the bookm   arks. Just use the string /*[VARIABLE]*/ anywhere in your query. Everyth   ing which is put into the value input box on the query box page will rep   lace the string "/*[VARIABLE]*/" in your stored query. Just be aware of   that you HAVE to create a valid query, otherwise your query won't be eve   n able to be stored in the database.
2046    Also remember, that everything else inside the /*[VARIABLE]*/ string for   your query will remain the way it is, but will be stripped of the /**/ c   hars. So you can use:
2047    /*, [VARIABLE] AS myname */
2048    which will be expanded to
2049    , VARIABLE as myname
2050    in your query, where VARIABLE is the string you entered in the input box.    If an empty string is provided, no replacements are made.
2051    A more complex example. Say you have stored this query:
2052    SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]   %' */
2053    Say, you now enter "phpMyAdmin" as the variable for the stored query, the    full query will be:
2054    SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'
2055    You can use multiple occurences of /*[VARIABLE]*/ in a single query.
2056    NOTE THE ABSENCE OF SPACES inside the "/**/" construct. Any spaces insert   ed there will be later also inserted as spaces in your query and may lea   d to unexpected results especially when using the variable expansion ins   ide of a "LIKE ''" expression.
2057    Your initial query which is going to be stored as a bookmark has to yield    at least one result row so you can store the bookmark. You may have tha   t to work around using well positioned "/**/" comments.
2058 
2059     [6.19] How can I create simple LaTeX document to include exported table?
2060 
2061    You can simply include table in your LaTeX documents, minimal sample docu   ment should look like following one (assuming you have table exported in    file table.tex):
2062 \documentclass{article} % or any class you want
2063 \usepackage{longtable}  % for displaying table
2064 \begin{document}        % start of document
2065 \include{table}         % including exported table
2066 \end{document}          % end of document
2067 
2068     [6.20] In MySQL 4, I see a lot of databases which are not mine, and cannot
2069     access them.
2070 
2071    Upgrading to MySQL 4 usually gives users those global privileges: CREATE   TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also ena   bles users to see all the database names, until you upgrade the grant ta   bles as described in the MySQL manual. See this bug report.
2072    So if your users do not need those privileges, you can remove them and th   eir databases list will shorten.
2073 
2074     [6.21] In edit/insert mode, how can I see a list of possible values for a
2075     field, based on some foreign table?
2076 
2077    You have to setup appropriate links between the tables, and also setup th   e "display field" in the foreign table. See FAQ 6.6 for an example. Then   , if there are 200 values or less in the foreign table, a drop-down list    of values will be available. You will see two lists of values, the firs   t list containing the key and the display field, the second list contain   ing the display field and the key. The reason for this is to be able to   type the first letter of either the key or the display field.
2078    For 200 values or more, a distinct window will appear, to browse foreign   key values and choose one.
2079 
2080     [6.22] Bookmarks: Can I execute a default bookmark automatically when
2081     entering Browse mode for a table?
2082 
2083    Yes. If a bookmark has the same label as a table name, it will be execute   d.
2084 
2085     [6.23] Export: I heard phpMyAdmin can export MS Excel files, how can I
2086     enable that?
2087 
2088    You can either export as CSV suitable for MS Excel, which works out of th   e box or you can try native experimental MS Excel exporter. This export   has several problems, most important are limitation of cell content to 2   55 chars and no support for charsets, so think carefully whether you wan   t to enable this.. For enabling this you need to set $cfg['TempDir'] to   place where web server user can write (for example './tmp') and install   PEAR module Spreadsheet_Excel_Writer into php include path. The installa   tion can be done by following command:
2089     pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer
2090 
2091    First part of switches set we want to install beta version of that module    (no stable version available yet) and then we tell pear we want to sati   sfy dependencies.
2092 
2093    If you are running in PHP safe mode, you will have to set in php.ini the   safe_mode_include_dir to the directory where your PEAR modules are locat   ed, for example:
2094     safe_mode_include_dir = /usr/local/lib/php
2095 
2096    To create the temporary directory on a UNIX-based system, you can do:
2097     cd phpMyAdmin
2098     mkdir tmp
2099     chmod o+rwx tmp
2100 
2101   [7. phpMyAdmin project]
2102 
2103     [7.1] I have found a bug. How do I inform developers?
2104 
2105    Our Bug Tracker is located at http://sourceforge.net/projects/phpmyadmin/    under the Bugs section.
2106    But please first discuss your bug with other users:
2107    http://sourceforge.net/projects/phpmyadmin/ (and choose Forums)
2108 
2109     [7.2] I want to translate the messages to a new language or upgrade an
2110     existing language, where do I start?
2111 
2112    Always use the current CVS version of your language file. For a new langu   age, start from english-iso-8859-1.inc.php. If you don't know how to get    the CVS version, please ask one of the developers.
2113    Please note that we try not to use HTML entities like &eacute; in the tra   nslations, since we define the right character set in the file. With HTM   L entities, the text on JavaScript messages would not display correctly.    However there are some entities that need to be there, for quotes ,non-   breakable spaces, ampersands, less than, greater than.
2114    You can then put your translations, as a zip file to avoid losing special    characters, on the sourceforge.net translation tracker.
2115    It would be a good idea to subscribe to the phpmyadmin-translators mailin   g list, because this is where we ask for translations of new messages.
2116 
2117     [7.3] I would like to help out with the development of phpMyAdmin. How
2118     should I proceed?
2119 
2120    The following method is preferred for new developers:
2121     1. fetch the current CVS tree over anonymous CVS:
2122        cvs
2123        -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin
2124        login
2125        [Password: simply press the Enter key]
2126        cvs -z3
2127        -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin
2128        checkout phpMyAdmin
2129        [This will create a new sub-directory named phpMyAdmin]
2130     2. add your stuff
2131     3. put the modified files (tar'ed and gzip'ed) inside the patch tracker       of the phpMyAdmin SourceForge account.
2132 
2133    Write access to the CVS tree is granted only to experienced developers wh   o have already contributed something useful to phpMyAdmin.
2134    Also, have a look at the Developers section.
2135 
2136   [8. Security ]
2137 
2138     [8.1] Security alert, dated 2003-06-18.
2139 
2140    Last update of this FAQ: 2003-07-22.
2141    The phpMyAdmin development team received notice of this security alert: h   ttp://www.securityfocus.com/archive/1/325641.
2142    The team regrets that the author did not communicate with us before sendi   ng this alert. However, here is our current reply to the points mentionn   ed:
2143      * "Directory transversal attack"
2144        This problem had been fixed in version 2.5.0, even if the author reports
2145        the  2.5.2  development  version as vulnerable, which we could not
2146        reproduce.
2147      * "Remote local file retrieving"
2148        This is a misleading title, as the author tells in his text: "Note that
2149        you can't request files ( only dirs )".
2150      * "Remote internal directory listing"
2151        It was possible to retrieve the list of phpMyAdmin's directory (which we
2152        doubt can cause any damage), but we fixed this in the 2.5.2 version.
2153      * "XSS and Path disclosures"
2154        Most of the XSS problems have been fixed in version 2.5.0. The rest have
2155        been fixed in the 2.5.2 version.
2156        We believe that the Path disclosures problems have also been fixed in
2157        version 2.5.2.
2158      * "Information encoding weakness"
2159        We believe that an exploit for this weakness would be difficult to
2160        achieve.  However version 2.5.2 now encrypts the password with the
2161        well-known blowfish algorithm.
2162 
2163     [8.2] Security alert, dated 2004-06-29.
2164 
2165    Last update of this FAQ: 2004-06-30.
2166    The phpMyAdmin development team received notice of this security alert: h   ttp://securityfocus.com/archive/1/367486/2004-06-26/2004-07-02/0
2167    We would like to put emphasis on the disappointment we feel when a bugrep   orter does not contact the authors of a software first, before posting a   ny exploits. The common way to report this, is to give the developers a   reasonable amount of time to respond to an exploit before it is made pub   lic.
2168    We acknowledge that phpMyAdmin versions 2.5.1 to 2.5.7 are vulnerable to   this problem, if each of the following conditions are met:
2169      * The Web server hosting phpMyAdmin is not running in safe mode.
2170      * In config.inc.php, $cfg['LeftFrameLight'] is set to FALSE (the defaul       t value of this parameter is TRUE).
2171      * There is no firewall blocking requests from the Web server to the att       acking host.
2172 
2173    Version 2.5.7-pl1 was released with a fix for this vulnerability.
2174 
2175 Developers Information
2176 
2177    phpMyAdmin is Open Source, so you're invited to contribute to it. Many gr   eat features have been written by other people and you too can help to m   ake phpMyAdmin a useful tool.
2178 
2179    If you're planning to contribute source, please read the following inform   ation:
2180      * All files include header.inc.php (layout), libraries/common.lib.php (       common functions) and config.inc.php.
2181        Only configuration data should go in config.inc.php. Please keep it free
2182        from other code.
2183        Commonly used functions should be added to libraries/common.lib.php and
2184        more  specific  ones may be added within a library stored into the
2185        libraries sub-directory.
2186      * Obviously, you're free to use whatever coding style you want. But ple       ase try to keep your code as simple as possible: beginners are using
2187        phpMyAdmin as an example application.
2188        As  far  as  possible, we want the scripts to be XHTML1.0 and CSS2
2189        compliant on one hand, they fit the PEAR coding standards on the other
2190        hand. Please pay attention to this.
2191      * Please try to keep up the file-naming conventions. Table-related stuf       f goes to tbl_*.php, db-related code to db_*.php, server-related tools
2192        to server_*.php and so on.
2193      * Please don't use verbose strings in your code, instead add the string        (at least) to english-iso-8859-1.inc.php and print() it out.
2194      * If you want to be really helpful, write an entry for the ChangeLog.
2195      * The DBG extension (PHP Debugger DBG) is now supported by phpMyAdmin f       or developers to better debug and profile their code.
2196        Please see the $cfg['DBG']* configuration options for more information.
2197        This is in memoriam of the Space Shuttle Columbia (STS-107) which was
2198        lost during its re-entry into Earth's atmosphere and in memory of the
2199        brave men and women who gave their lives for the people of Earth.
2200 
2201 Credits
2202 
2203 
2204 phpMyAdmin - Credits
2205 ====================
2206 
2207 CREDITS, in chronological order
2208 -------------------------------
2209 
2210 - Tobias Ratschiller <tobias_at_ratschiller.com>
2211     * creator of the phpmyadmin project
2212     * maintainer from 1998 to summer 2000
2213 
2214 - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca>
2215     * multi-language version
2216     * various fixes and improvements
2217     * SQL analyser (most of it)
2218     * current project maintainer
2219 
2220 - Olivier Müller <om_at_omnis.ch>
2221     * started SourceForge phpMyAdmin project in March 2001
2222     * sync'ed different existing CVS trees with new features and bugfixes
2223     * multi-language improvements, dynamic language selection
2224     * current project maintainer
2225     * many bugfixes and improvements
2226 
2227 - Loïc Chapeaux <lolo_at_phpheaven.net>
2228     * rewrote and optimized javascript, DHTML and DOM stuff
2229     * rewrote the scripts so they fit the PEAR coding standards and
2230       generate XHTML1.0 and CSS2 compliant codes
2231     * improved the language detection system
2232     * many bugfixes and improvements
2233 
2234 - Robin Johnson <robbat2_at_users.sourceforge.net>
2235     * database maintenance controls
2236     * table type code
2237     * Host authentication IP Allow/Deny
2238     * DB-based configuration (Not completed)
2239     * SQL parser and pretty-printer
2240     * SQL validator
2241     * many bugfixes and improvements
2242 
2243 - Armel Fauveau <armel.fauveau_at_globalis-ms.com>
2244     * bookmarks feature
2245     * multiple dump feature
2246     * gzip dump feature
2247     * zip dump feature
2248 
2249 - Geert Lund <glund_at_silversoft.dk>
2250     * various fixes
2251     * moderator of the phpMyAdmin users forum at phpwizard.net
2252 
2253 - Korakot Chaovavanich <korakot_at_iname.com>
2254     * "insert as new row" feature
2255 
2256 - Pete Kelly <webmaster_at_trafficg.com>
2257     * rewrote and fix dump code
2258     * bugfixes
2259 
2260 - Steve Alberty <alberty_at_neptunlabs.de>
2261     * rewrote dump code for PHP4
2262     * mySQL table statistics
2263     * bugfixes
2264 
2265 - Benjamin Gandon <gandon_at_isia.cma.fr>
2266     * main author of the version 2.1.0.1
2267     * bugfixes
2268 
2269 - Alexander M. Turek <me_at_derrabus.de>
2270     * MySQL 4.0 / 4.1 / 5.0 compatibility
2271     * abstract database interface (PMA_DBI) with MySQLi support
2272     * privileges administration
2273     * XML exports
2274     * various features and fixes
2275     * German language file updates
2276 
2277 - Mike Beck <mike.beck_at_web.de>
2278     * automatic joins in QBE
2279     * links column in printview
2280     * Relation view
2281 
2282 - Michal ÄŒihaÅ™ <michal_at_cihar.com>
2283     * enhanced index creation/display feature
2284     * feature to use a different charset for HTML than for MySQL
2285     * improvements of export feature
2286     * various features and fixes
2287     * Czech language file updates
2288 
2289 - Christophe Gesché from the "MySQL Form Generator for PHPMyAdmin"
2290   (http://sourceforge.net/projects/phpmysqlformgen/)
2291     * suggested the patch for multiple table printviews
2292 
2293 - Garvin Hicking <me_at_supergarv.de>
2294     * built the patch for vertical display of table rows
2295     * built the Javascript based Query window + SQL history
2296     * Improvement of column/db comments
2297     * (MIME)-Transformations for columns
2298     * Use custom alias names for Databases in left frame
2299     * hierarchical/nested table display
2300     * PDF-scratchboard for WYSIWYG-distribution of PDF relations
2301     * new icon sets
2302     * vertical display of column properties page
2303     * some bugfixes, features, support, German language additions
2304 
2305 - Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
2306     * japanese kanji encoding conversion feature
2307 
2308 - Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson
2309     * the Cookie authentication mode
2310 
2311 - Axel Sander <n8falke_at_users.sourceforge.net>
2312     * table relation-links feature
2313 
2314 - Maxime Delorme <delorme.maxime_at_free.fr>
2315     * PDF schema output, thanks also to Olivier Plathey for the
2316       "FPDF" library (see http://www.fpdf.org/) and Steven Wittens
2317       for the "UFPDF" library (see http://www.acko.net/node/56).
2318 
2319 - Olof Edlund <olof.edlund_at_upright.se>
2320     * SQL validator server
2321 
2322 - Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
2323     * phpMyAdmin logo (until June 2004)
2324 
2325 - Mike Cochrane <mike_at_graftonhall.co.nz>
2326     * blowfish library from the Horde project
2327 
2328 - Marcel Tschopp <ne0x_at_users.sourceforge.net>
2329     * mysqli support
2330     * many bugfixes and improvements
2331 
2332 - Michael Keck <mkkeck_at_users.sourceforge.net>
2333     * redesign for 2.6.0
2334     * phpMyAdmin sailboat logo (June 2004)
2335 
2336 - Mathias Landhäußer
2337     * Representation at conferences
2338 
2339 And also to the following people who have contributed minor changes,
2340 enhancements, bugfixes or support for a new language since version 2.1.0:
2341 
2342 Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
2343 Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
2344 Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger,
2345 Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
2346 Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna,
2347 www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec,
2348 Michael Tacelosky, Rachim Tamsjadi, Kositer Uros,
2349 Luís V., Martijn W. van der Lee,
2350 Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
2351 Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai".
2352 
2353 
2354 Original Credits of Version 2.1.0
2355 ---------------------------------
2356 
2357     This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
2358     to create a web-based interface to MySQL using PHP3. Although I have not
2359     used any of his source-code, there are some concepts I've borrowed from
2360     him. phpMyAdmin was created because Peter told me he wasn't going to
2361     further develop his (great) tool.
2362     Thanks go to
2363     - Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the
2364       code for the check when dropping a table or database. He also suggested
2365       that you should be able to specify the primary key on tbl_create.php3. To
2366       version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
2367       well as a bug-report. Plus many smaller improvements.
2368     - Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that
2369       were introduced in 1.3.0 (including quite significant ones like the
2370       authentication). For 1.4.1 he enhanced the table-dump feature. Plus
2371       bug-fixes and help.
2372     - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin
2373       language-independent by outsourcing the strings to a separate file. He
2374       also contributed the French translation.
2375     - Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed
2376       tbl_select.php3, a feature to display only some fields from a table.
2377     - Chris Jackson <chrisj_at_ctel.net> added support for MySQL
2378       functions in tbl_change.php3. He also added the
2379       "Query by Example" feature in 2.0.
2380     - Dave Walton <walton_at_nordicdms.com> added support for multiple
2381       servers and is a regular contributor for bug-fixes.
2382     - Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access
2383       features for 2.0.6.
2384     The following people have contributed minor changes, enhancements, bugfixes
2385     or support for a new language:
2386     Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
2387     Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
2388     Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
2389     G. Wieggers.
2390 
2391     And thanks to everyone else who sent me email with suggestions, bug-reports
2392     and or just some feedback.
2393 
2394                                         Valid XHTML 1.0!      Valid CSS! 
2395    ______________________________________________________________________
2396 
2397    Top  -  Requirements  -  Introduction  -  Installation  -  Configuration
2398    Transformations  -  FAQ  -  Developers  -  Credits  -  Translators
2399    ______________________________________________________________________
2400 
2401                       phpMyAdmin 2.6.1-pl3 Documentation
2402 
2403      * SourceForge phpMyAdmin project page   [ http://www.phpmyadmin.net/ ] 
2404      * Local documents:
2405           + Version history: ChangeLog
2406           + General notes: README
2407           + License: LICENSE
2408      * Documentation version: $Id: Documentation.html,v 2.103.2.5 2005/03/03        20:54:24 rabus Exp $
2409 
2410 Requirements
2411 
2412      * PHP
2413           + You need PHP 4.1.0 or newer (*)
2414           + If you want to display inline thumbnails of JPEGs with the original
2415             aspect ratio, you also need GD2 support in PHP
2416           + Starting with phpMyAdmin 2.6.1, MIME-based transformations that use
2417             an external program need PHP 4.3.0 or newer
2418      * MySQL 3.23.32 or newer (details);
2419      * Not really a requirement but a strong suggestion: if you are using th       e "cookie" authentication method, having the mcrypt PHP extension on
2420        your web server accelerates not only the login phase but every other
2421        action that you do in phpMyAdmin.
2422      * a web-browser (doh!).
2423 
2424 Introduction
2425 
2426    phpMyAdmin can manage a whole MySQL server (needs a super-user) as well a   s a single database. To accomplish the latter you'll need a properly set    up MySQL user who can read/write only the desired database. It's up to   you to look up the appropriate part in the MySQL manual.
2427    Currently phpMyAdmin can:
2428      * create and drop databases
2429      * create, copy, drop, rename and alter tables
2430      * do table maintenance
2431      * delete, edit and add fields
2432      * execute any SQL-statement, even batch-queries
2433      * manage keys on fields
2434      * load text files into tables
2435      * create (*) and read dumps of tables
2436      * export (*) data to CSV, XML and Latex formats
2437      * administer multiple servers
2438      * manage MySQL users and privileges
2439      * check referential integrity in MyISAM tables
2440      * using Query-by-example (QBE), create complex queries automatically co       nnecting required tables
2441      * create PDF graphics of your Database layout
2442      * search globally in a database or a subset of it
2443      * transform stored data into any format using a set of predefined funct       ions, like displaying BLOB-data as image or download-link or ...
2444      * support InnoDB tables and foreign keys (see FAQ 3.6)
2445      * support mysqli, the improved MySQL extension (see FAQ 1.17)
2446      * communicate in 47 different languages
2447 
2448    (*)  phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dump   s and CSV exports if you use PHP4 >= 4.0.4 with Zlib support (--with-zli   b) and/or Bzip2 support (--with-bz2).
2449 
2450 Installation
2451 
2452    NOTE: phpMyAdmin does not apply any special security methods to the MySQL    database server. It is still the system administrator's job to grant pe   rmissions on the MySQL databases properly. phpMyAdmin's "Privileges" pag   e can be used for this.
2453 
2454    Warning for Mac users:if you are on a MacOS version before OS X, StuffIt   unstuffs with Mac formats.
2455    So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin script   s before uploading them to your server, as PHP seems not to like Mac-sty   le end of lines character ("\r").
2456 
2457   Quick Install
2458 
2459     1. Untar or unzip the distribution (be sure to unzip the subdirectories)       : tar -xzvf phpMyAdmin_x.x.x.tar.gz in your webserver's document root.
2460        If you don't have direct access to your document root, put the files in
2461        a directory on your local machine, and, after step 3, transfer the
2462        directory on your web server using, for example, ftp.
2463     2. Ensure that all the scripts have the appropriate owner (if PHP is run       ning in safe mode, having some scripts with an owner different from the
2464        owner of other scripts will be a problem). See FAQ 4.2 for suggestions.
2465     3. Open the file config.inc.php in your favorite editor and change the v       alues for host, user, password and authentication mode to fit your
2466        environment.  Here, "host" means the MySQL server. Also insert the
2467        correct value for $cfg['PmaAbsoluteUri']. Have a look at Configuration
2468        section  for  an  explanation  of all values. Please also read the
2469        remaining  of  this  Installation  section  for  information about
2470        authentication modes and the linked-tables infrastructure.
2471     4. It is recommended that you protect the directory in which you install       ed phpMyAdmin (unless it's on a closed intranet, or you wish to use
2472        HTTP  or  cookie authentication), for example with HTTP-AUTH (in a
2473        .htaccess  file).  See  the  multi-user sub-section of the FAQ for
2474        additional information, especially FAQ 4.4.
2475     5. Open the file <www.your-host.com>/<your-install-dir>/index.php in you       r browser. phpMyAdmin should now display a welcome screen and your
2476        databases, or a login dialog if using HTTP or cookie authentication
2477        mode.
2478 
2479   Linked-tables infrastructure
2480 
2481    For a whole set of new features (bookmarks, comments, SQL-history, PDF-ge   neration, field contents transformation, etc.) you need to create a set   of special tables. Those tables can be located in your own database, or   in a central database for a multi-user installation (this database would    then be accessed by the controluser, so no other user should have right   s to it).
2482    Please look at your scripts/ directory, where you should find a file call   ed create_tables.sql. (If you are using a Windows server, pay special at   tention to FAQ 1.23).
2483    If your MySQL server's version is 4.1.2 or later, please use create_table   s_mysql_4_1_2+.sql instead, for a new installation.
2484    If you already had this infrastructure and upgraded to MySQL 4.1.2 or lat   er, please use upgrade_tables_mysql_4_1_2+.sql.
2485    You can use your phpMyAdmin to create the tables for you. Please be aware    that you may need special (administrator) privileges to create the data   base and tables, and that the script may need some tuning, depending on   the database name.
2486    After having imported the create_tables.sql file, you should specify the   table names in your config.inc.php file. The directives used for that ca   n be found in the Configuration section. You will also need to have a co   ntroluser with the proper rights to those tables (see section Using auth   entication modes below).
2487 
2488   Upgrading from an older version
2489 
2490      * You can safely copy your older config.inc.php over a new one, if you       can live with default values for possible new parameters (you can check
2491        release notes to see what new features were added). This compatibility
2492        will stay for long time, current version supports importing config files
2493        from 2.2 and maybe even older (nobody has tried that).
2494 
2495   Using authentication modes
2496 
2497      * HTTP and cookie authentication modes are recommended in a multi-user       environment where you want to give users access to their own database
2498        and don't want them to play around with others.
2499        Nevertheless be aware that MS Internet Explorer seems to be really buggy
2500        about cookies, at least till version 6. And PHP 4.1.1 is also a bit
2501        buggy in this area!
2502        Even in a single-user environment, you might prefer to use HTTP or
2503        cookie mode so that your user/password pair are not in clear in the
2504        configuration file.
2505      * HTTP and cookie authentication modes are more secure: the MySQL login        information does not need to be set in the phpMyAdmin configuration
2506        file (except possibly for the controluser).
2507        However, keep in mind that the password travels in plain text, unless
2508        you are using the HTTPS protocol.
2509        In cookie mode, the password is stored, encrypted with the blowfish
2510        algorithm, in a temporary cookie.
2511      * Note: starting with phpMyAdmin 2.6.1, configuring the controluser to       enable HTTP and cookie authentication applies only to MySQL servers
2512        older than 4.1.2.
2513        For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has
2514        only  the  SELECT  privilege on the mysql.user (all columns except
2515        "Password"),  mysql.db (all columns), mysql.host (all columns) and
2516        mysql.tables_priv (all columns except "Grantor" & "Timestamp") tables.
2517        You must specify the details for the controluser in the config.inc.php
2518        file       under      the      $cfg['Servers'][$i]['controluser']&
2519        $cfg['Servers'][$i]['controlpass'] settings.
2520        The following example assumes you want to use pma as the controluser and
2521        pmapass as the controlpass, but this is only an example: use something
2522        else in your file!
2523        Of course you have to replace localhost by the webserver's host if it's
2524        not the same as the MySQL server's one.
2525 
2526 GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
2527 GRANT SELECT (
2528     Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
2529     Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
2530     File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
2531     Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
2532     Execute_priv, Repl_slave_priv, Repl_client_priv
2533     ) ON mysql.user TO 'pma'@'localhost';
2534 GRANT SELECT ON mysql.db TO 'pma'@'localhost';
2535 GRANT SELECT ON mysql.host TO 'pma'@'localhost';
2536 GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
2537     ON mysql.tables_priv TO 'pma'@'localhost';
2538 
2539        If you are using an old MySQL version (below 4.0.2), please replace the
2540        first GRANT SELECT query by this one:
2541 
2542 GRANT SELECT (
2543     Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
2544     Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
2545     File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
2546     ) ON mysql.user TO 'pma'@'localhost';
2547 
2548        ... and if you want to use the many new relation and bookmark features:
2549 
2550 GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
2551 
2552        (this of course requires you to have a special DB for phpMyAdmin, the
2553        contents will be explained later)
2554        Of course, the above queries only work if your MySQL version supports
2555        the GRANT command. This is the case since 3.22.11.
2556      * Then each of the true users should be granted a set of privileges on       a set of particular databases. Normally you shouldn't give global
2557        privileges to an ordinary user, unless you understand the impact of
2558        those privileges (for example, you are creating a superuser).
2559        For example, to grant the user real_user with all privileges on the
2560        database user_base:
2561           GRANT  ALL  PRIVILEGES  ON user_base.* TO 'real_user'@localhost
2562        IDENTIFIED BY 'real_password';
2563        What  the user may now do is controlled entirely by the MySQL user
2564        management system.
2565        With HTTP or cookie authentication mode, you don't need to fill the
2566        user/password fields inside the $cfg['Servers'] array.
2567 
2568     'http' authentication mode
2569 
2570      * Was called 'advanced' in versions before 2.2.3.
2571      * Introduced in 1.3.0, it uses Basic HTTP authentication method and all       ows you to login as any valid MySQL user.
2572      * Is supported with PHP running as an Apache module. For IIS (ISAPI) su       pport using CGI PHP, see FAQ 1.32.
2573      * See also FAQ 4.4 about not using the .htaccess mechanism along with '       http' authentication mode.
2574 
2575     'cookie' authentication mode
2576 
2577      * You can use this method as a replacement for the HTTP authentication       (for example, if you're running IIS).
2578      * Obviously, the user must enable cookies in the browser.
2579      * With this mode, the user can truly logout of phpMyAdmin and login bac       k with the same username.
2580      * If you want to login to arbitrary server see $cfg['AllowArbitraryServ       er'] directive.
2581      * See also the requirements section for a way to improve the interface       speed while using this mode.
2582 
2583     'config' authentication mode
2584 
2585      * This mode is the less secure one because it requires you to fill the        $cfg['Servers'][$i]['user'] and $cfg['Servers'][$i]['password'] fields.
2586        But  you  don't  need  to  setup  a  "controluser" here: using the
2587        $cfg['Servers'][$i]['only_db'] might be enough.
2588      * In the ISP FAQ section, there is an entry explaining how to protect y       our configuration file.
2589      * For additional security in this mode, you may wish to consider the Ho       st  authentication  $cfg['Servers'][$i]['AllowDeny']['order'] and
2590        $cfg['Servers'][$i]['AllowDeny']['rules'] configuration directives.
2591 
2592 Configuration
2593 
2594    Warning for Mac users: PHP seems not to like Mac end of lines character (   "\r"). So ensure you choose the option that allows to use the *nix end o   f line character ("\n") in your text editor before registering a script   you have modified.
2595 
2596    Configuration note: Almost all configurable data is placed in config.inc.   php. The parameters which relate to design (like colors) are placed in t   hemes/themename/layout.inc.php. You might also want to modify config.foo   ter.inc.php and config.header.inc.php files to add your site specific co   de to be included on start and end of each page.
2597 
2598    $cfg['PmaAbsoluteUri'] string
2599           Sets  here the complete URL (with full path) to your phpMyAdmin
2600           version. E.g.
2601           http://www.your_web.net/path_to_your_phpMyAdmin_directory/.
2602           phpMyAdmin needs this setting, because of requirements of the HTTP
2603           protocol, explained in RFC2616, section 14.30.
2604           Don't forget the slash at the end of your URL. The URL must contain
2605           characters that are valid for a URL, and on some servers, the path is
2606           case-sensitive.
2607           Starting with version 2.3.0, you can try to leave this parameter
2608           empty, because the program tries to auto-detect its proper value.
2609           Additional details are in the configuration file.
2610 
2611    $cfg['PmaAbsoluteUri_DisableWarning'] boolean
2612           By default, when you leave $cfg['PmaAbsoluteUri'] empty, and the
2613           system detects your absolute URI automatically, we display a warning
2614           to remind you. If you have tested the automatic detection, and it
2615           works perfectly for your setup, then you can set this variable to
2616           squelch the warning.
2617 
2618    $cfg['PmaNoRelation_DisableWarning'] boolean
2619           Starting with version 2.3.0 phpMyAdmin offers a lot of features to
2620           work with master / foreign - tables (see
2621           $cfg['Servers'][$i]['pmadb']).
2622           If you tried to set this up and it does not work for you, have a look
2623           on the "Structure" page of one database where you would like to use
2624           it. You will find a link that will analyze why those features have
2625           been disabled.
2626           If you do not want to use those features set this variable to TRUE to
2627           stop this message from appearing.
2628 
2629    $cfg['blowfish_secret'] string
2630           Starting with version 2.5.2, the 'cookie' auth_type uses blowfish
2631           algorithm to encrypt the password.
2632           If  you  are  using the 'cookie' auth_type, enter here a random
2633           passphrase of your choice. It will be used internally by the blowfish
2634           algorithm: you won't be prompted for this passphrase. The maximum
2635           number of characters for this parameter seems to be 46.
2636 
2637    $cfg['Servers'] array
2638           Since  version 1.4.2, phpMyAdmin supports the administration of
2639           multiple MySQL servers. Therefore, a $cfg['Servers']-array has been
2640           added which contains the login information for the different servers.
2641           The first $cfg['Servers'][$i]['host'] contains the hostname of the
2642           first server, the second $cfg['Servers'][$i]['host'] the hostname of
2643           the second server, etc. If you have only one server to administer,
2644           simply leave free the hostname of the other $cfg['Server']-entries.
2645 
2646    $cfg['Servers'][$i]['host'] string
2647           The  hostname  or  IP  address of your $i-th MySQL-server. E.g.
2648           localhost.
2649 
2650    $cfg['Servers'][$i]['port'] string
2651           The port-number of your $i-th MySQL-server. Default is 3306 (leave
2652           blank). If you use "localhost" as the hostname, MySQL ignores this
2653           port number and connects with the socket, so if you want to connect
2654           to a port different from the default port, use "127.0.0.1" or the
2655           real hostname in $cfg['Servers'][$i]['host'].
2656 
2657    $cfg['Servers'][$i]['socket'] string
2658           The path to the socket to use. Leave blank for default.
2659           To use the socket feature you must run PHP 3.0.10 or more.
2660 
2661    $cfg['Servers'][$i]['connect_type'] string
2662           What type connection to use with the MySQL server. Your options are
2663           'socket' & 'tcp'. It defaults to 'tcp' as that is nearly guaranteed
2664           to be available on all MySQL servers, while sockets are not supported
2665           on some platforms.
2666           To use the socket mode, your MySQL server must be on the same machine
2667           as the Web server.
2668 
2669    $cfg['Servers'][$i]['extension'] string
2670           What php MySQL extension to use for the connection. Valid options
2671           are:
2672           mysql :  The classic MySQL extension. This is the recommended and
2673           default method at this time.
2674           mysqli :   The  improved MySQL extension. This extension became
2675           available with php 5.0.0 and is the recommended way to connect to a
2676           server running MySQL 4.1.x.
2677           Note: phpMyAdmin's MySQL 4.1 support is experimental!
2678 
2679    $cfg['Servers'][$i]['compress'] boolean
2680           Whether to use a compressed protocol for the MySQL server connection
2681           or not (experimental).
2682           This feature requires PHP >= 4.3.0.
2683 
2684    $cfg['Servers'][$i]['controluser'] string
2685           $cfg['Servers'][$i]['controlpass'] string
2686           Note: starting with phpMyAdmin 2.6.1, configuring the controluser to
2687           enable HTTP and cookie authentication applies only to MySQL servers
2688           older than 4.1.2.
2689           This  special  account is used for 2 distinct purposes: to make
2690           possible all relational features (see $cfg['Servers'][$i]['pmadb'])
2691           and, for a MySQL server older than 4.1.2, to enable a multi-user
2692           installation (http or cookie authentication mode).
2693           When  using  HTTP  or  cookie authentication modes (or 'config'
2694           authentication mode since phpMyAdmin 2.2.1), you need to supply the
2695           details  of  a  MySQL  account that has SELECT privilege on the
2696           mysql.user (all columns except "Password"), mysql.db (all columns) &
2697           mysql.tables_priv  (all columns except "Grantor" & "Timestamp")
2698           tables. This account is used to check what databases the user will
2699           see at login.
2700           Please see the install section on "Using authentication modes" for
2701           more information.
2702           Note that if you try login to phpMyAdmin with this "controluser", you
2703           could get some errors, depending the exact privileges you gave to the
2704           "controluser". phpMyAdmin does not support a direct login with the
2705           "controluser".
2706           In   phpMyAdmin   versions  before  2.2.5,  those  were  called
2707           "stduser/stdpass".
2708 
2709    $cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']
2710           Whether config or cookie or http authentication should be used for
2711           this server.
2712 
2713           + 'config' authentication ($auth_type = 'config') is the plain old
2714             way: username and password are stored in config.inc.php.
2715           + 'cookie' authentication mode ($auth_type = 'cookie') as introduced
2716             in 2.2.3 allows you to log in as any valid MySQL user with the help
2717             of cookies. Log name and password are stored in cookies during the
2718             session and password is deleted when it ends. This can also allow
2719             you to login in arbitrary server if $cfg['AllowArbitraryServer']
2720             enabled.
2721           + 'http' authentication (was called 'advanced' in older versions)
2722             ($auth_type = 'http') as introduced in 1.3.0 allows you to log in
2723             as any valid MySQL user via HTTP-Auth.
2724 
2725           Please see the install section on "Using authentication modes" for
2726           more information.
2727 
2728    $cfg['Servers'][$i]['user'] string
2729           $cfg['Servers'][$i]['password'] string
2730           The user/password-pair which phpMyAdmin will use to connect to this
2731           MySQL-server. This user/password pair is not needed when HTTP or
2732           cookie authentication is used, and should be empty.
2733 
2734    $cfg['Servers'][$i]['only_db'] string or array
2735           If  set  to a (an array of) database name(s), only this (these)
2736           database(s)  will be shown to the user. Since phpMyAdmin 2.2.1,
2737           this/these database(s) name(s) may contain MySQL wildcards characters
2738           ("_"  and  "%"):  if you want to use literal instances of these
2739           characters, escape them (I.E. use 'my\_db' and not 'my_db').
2740           This setting is an efficient way to lower the server load since the
2741           latter does not need to send MySQL requests to build the available
2742           database list. But it does not replace the privileges rules of the
2743           MySQL database server. If set, it just means only these databases
2744           will be displayed but not that all other databases can't be used.
2745           An    example    of    using    more    that    one   database:
2746           $cfg['Servers'][$i]['only_db'] = array('db1', 'db2');
2747           As of phpMyAdmin 2.5.5 the order inside the array is used for sorting
2748           the databases in the left frame, so that you can individually arrange
2749           your databases.
2750           If you want to have certain databases at the top, but don't care
2751           about the others, you do not need to specify all other databases.
2752           Use: $cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*');
2753           instead to tell phpMyAdmin that it should display db3 and db4 on top,
2754           and the rest in alphabetic order.
2755 
2756    $cfg['Servers'][$i]['verbose'] string
2757           Only useful when using phpMyAdmin with multiple server entries. If
2758           set, this string will be displayed instead of the hostname in the
2759           pull-down menu on the main page. This can be useful if you want to
2760           show only certain databases on your system, for example.
2761 
2762    $cfg['Servers'][$i]['pmadb'] string
2763           The name of the database containing the linked-tables infrastructure.
2764           See the Linked-tables infrastructure section in this document to see
2765           the benefits of this infrastructure, and for a quick way of creating
2766           this database and the needed tables.
2767           If you are the only user of this phpMyAdmin installation, you can use
2768           your current database to store those special tables; in this case,
2769           just put your current database name in $cfg['Servers'][$i]['pmadb'].
2770           For a multi-user installation, set this parameter to the name of your
2771           central database containing the linked-tables infrastructure.
2772 
2773    $cfg['Servers'][$i]['bookmarktable'] string
2774           Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can
2775           be useful for queries you often run.
2776           To allow the usage of this functionality:
2777 
2778           + set up pmadb and the linked-tables infrastructure
2779           + enter the table name in $cfg['Servers'][$i]['bookmarktable']
2780 
2781    $cfg['Servers'][$i]['relation'] string
2782           Since release 2.2.4 you can describe, in a special 'relation' table,
2783           which field is a key in another table (a foreign key). phpMyAdmin
2784           currently uses this to
2785 
2786           + make clickable, when you browse the master table, the data values
2787             that point to the foreign table;
2788           + display in an optional tool-tip the "display field" when browsing
2789             the master table, if you move the mouse to a column containing a
2790             foreign key (use also the 'table_info' table);
2791             (see FAQ 6.7)
2792           + in edit/insert mode, display a drop-down list of possible foreign
2793             keys (key value and "display field" are shown)
2794             (see FAQ 6.21)
2795           + display links on the table properties page, to check referential
2796             integrity (display missing foreign keys) for each described key;
2797           + in query-by-example, create automatic joins (see FAQ 6.6)
2798           + enable you to get a PDF schema of your database (also uses the
2799             table_coords table).
2800 
2801           The keys can be numeric or character.
2802           To allow the usage of this functionality:
2803 
2804           + set up pmadb and the linked-tables infrastructure
2805           + put the relation table name in $cfg['Servers'][$i]['relation']
2806           + now as normal user open phpMyAdmin and for each one of your tables
2807             where you want to use this feature, click "Structure/Relation
2808             view/" and choose foreign fields.
2809 
2810           Please note that in the current version, master_db must be the same
2811           as foreign_db. Those fields have been put in future development of
2812           the cross-db relations.
2813 
2814    $cfg['Servers'][$i]['table_info'] string
2815           Since release 2.3.0 you can describe, in a special 'table_info'
2816           table, which field is to be displayed as a tool-tip when moving the
2817           cursor over the corresponding key.
2818           This configuration variable will hold the name of this special table.
2819           To allow the usage of this functionality:
2820 
2821           + set up pmadb and the linked-tables infrastructure
2822           + put the table name in $cfg['Servers'][$i]['table_info']
2823           + then for each table where you want to use this feature, click
2824             "Structure/Relation view/Choose field to display" to choose the
2825             field.
2826 
2827           Usage tip: Display field.
2828 
2829    $cfg['Servers'][$i]['table_coords'] string
2830           $cfg['Servers'][$i]['pdf_pages'] string
2831           Since release 2.3.0 you can have phpMyAdmin create PDF pages showing
2832           the relations between your tables. To do this it needs two tables
2833           "pdf_pages" (storing information about the available PDF pages) and
2834           "table_coords" (storing coordinates where each table will be placed
2835           on a PDF schema output).
2836           You must be using the "relation" feature.
2837           To allow the usage of this functionality:
2838 
2839           + set up pmadb and the linked-tables infrastructure
2840           + put the correct table names in $cfg['Servers'][$i]['table_coords']
2841             and $cfg['Servers'][$i]['pdf_pages']
2842 
2843           Usage tips: PDF output.
2844 
2845    $cfg['Servers'][$i]['column_info'] string
2846           Since release 2.3.0 you can store comments to describe each column
2847           for each table. These will then be shown on the "printview".
2848           Starting with release 2.5.0, comments are consequently used on the
2849           table property pages and table browse view, showing up as tool-tips
2850           above the column name (properties page) or embedded within the header
2851           of table in browse view. They can also be shown in a table dump.
2852           Please see the relevant configuration directives later on.
2853           Also new in release 2.5.0 is a MIME-transformation system which is
2854           also based on the following table structure. See Transformations for
2855           further information. To use the MIME-transformation system, your
2856           column_info  table has to have the three new fields 'mimetype',
2857           'transformation', 'transformation_options'.
2858           To allow the usage of this functionality:
2859 
2860           + set up pmadb and the linked-tables infrastructure
2861           + put the table name in $cfg['Servers'][$i]['column_info']
2862           + to update your PRE-2.5.0 Column_comments Table use this:
2863                  ALTER TABLE `pma_column_comments`
2864                    ADD `mimetype` VARCHAR( 255 ) NOT NULL ,
2865                    ADD `transformation` VARCHAR( 255 ) NOT NULL ,
2866                    ADD `transformation_options` VARCHAR( 255 ) NOT NULL ;
2867             and remember that the Variable in config.inc.php has been renamed
2868             from
2869             $cfg['Servers'][$i]['column_comments']                     to
2870             $cfg['Servers'][$i]['column_info']
2871 
2872    $cfg['Servers'][$i]['history'] string
2873           Since release 2.5.0 you can store your SQL history, which means all
2874           queries you entered manually into the phpMyAdmin interface. If you
2875           don't  want  to  use  a  table-  based history, you can use the
2876           JavaScript-based history. Using that, all your history items are
2877           deleted when closing the window.
2878           Using $cfg['QueryHistoryMax'] you can specify an amount of history
2879           items you want to have on hold. On every login, this list gets cut to
2880           the maximum amount.
2881           The query history is only available if you use the JavaScript-based
2882           query window, see $cfg['QueryFrame'].
2883           To allow the usage of this functionality:
2884 
2885           + set up pmadb and the linked-tables infrastructure
2886           + put the table name in $cfg['Servers'][$i]['history']
2887 
2888    $cfg['Servers'][$i]['verbose_check'] boolean
2889           Because release 2.5.0 introduced the new MIME-transformation support,
2890           the column_info table got enhanced with three new fields. If the
2891           above variable is set to TRUE (default) phpMyAdmin will check if you
2892           have the latest table structure available. If not, it will emit a
2893           warning to the superuser.
2894           You can disable this checking behavior by setting the variable to
2895           false, which should offer a performance increase.
2896           Recommended to set to FALSE, when you are sure, your table structure
2897           is up to date.
2898 
2899    $cfg['Servers'][$i]['AllowRoot'] boolean
2900           Whether to allow root access, This is just simplification of rules
2901           below.
2902 
2903    $cfg['Servers'][$i]['AllowDeny']['order'] string
2904           If your rule order is empty, then IP authentication is disabled.
2905           If your rule order is set to 'deny,allow' then the system applies all
2906           deny rules followed by allow rules. Access is allowed by default. Any
2907           client which does not match a Deny command or does match an Allow
2908           command will be allowed access to the server.
2909           If your rule order is set to 'allow,deny' then the system applies all
2910           allow rules followed by deny rules. Access is denied by default. Any
2911           client which does not match an Allow directive or does match a Deny
2912           directive will be denied access to the server.
2913           If  your rule order is set to 'explicit', the authentication is
2914           performed in a similar fashion to rule order 'deny,allow', with the
2915           added restriction that your host/username combination must be listed
2916           in the allow rules, and not listed in the deny rules. This is the
2917           most secure means of using Allow/Deny rules, and was available in
2918           Apache by specifying allow and deny rules without setting any order.
2919 
2920    $cfg['Servers'][$i]['AllowDeny']['rules'] array of strings
2921           The general format for the rules is as such:
2922                 <'allow' | 'deny'> <username> [from] <ipmask>
2923           If you wish to match all users, it is possible to use a '%' as a
2924           wildcard in the username field.
2925           There are a few shortcuts you can use in the ipmask field as well:
2926                'all' -> 0.0.0.0/0
2927                'localhost' -> 127.0.0.1/8
2928           Having an empty rule list is equivalent to either using 'allow % from
2929           all' if your rule order is set to 'deny,allow' or 'deny % from all'
2930           if your rule order is set to 'allow,deny' or 'explicit'.
2931           For the IP matching system, the following work:
2932           xxx.xxx.xxx.xxx (an exact IP address)
2933           xxx.xxx.xxx.[yyy-zzz] (an IP address range)
2934           xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP
2935           addresses)
2936           But the following does not work:
2937           xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range)
2938 
2939    $cfg['ServerDefault'] integer
2940           If  you  have  more  than  one  server  configured, you can set
2941           $cfg['ServerDefault'] to any one of them to autoconnect to that
2942           server when phpMyAdmin is started, or set it to 0 to be given a list
2943           of servers without logging in.
2944           If you have only one server configured, $cfg['ServerDefault'] MUST be
2945           set to that server.
2946 
2947    $cfg['OBGzip'] string/boolean
2948           Defines whether to use GZip output buffering for increased speed in
2949           HTTP transfers.
2950           Set  to  true/false  for enabling/disabling. When set to 'auto'
2951           (string),  phpMyAdmin tries to enable output buffering and will
2952           automatically disable it, if your browser has some problems with
2953           buffering. IE6 with a certain patch is known to cause data corruption
2954           having enabled buffering.
2955 
2956    $cfg['PersistentConnections'] boolean
2957           Whether persistent connections should be used or not (mysql_connect
2958           or mysql_pconnect).
2959 
2960    $cfg['ExecTimeLimit'] integer [number of seconds]
2961           Set the number of seconds a script is allowed to run. If seconds is
2962           set to zero, no time limit is imposed.
2963           This setting is used while importing/exporting dump files but has no
2964           effect when PHP is running in safe mode.
2965 
2966    $cfg['SkipLockedTables'] boolean
2967           Mark used tables and make it possible to show databases with locked
2968           tables (since 3.23.30).
2969 
2970    $cfg['ShowSQL'] boolean
2971           Defines  whether  SQL-queries generated by phpMyAdmin should be
2972           displayed or not.
2973 
2974    $cfg['AllowUserDropDatabase'] boolean
2975           Defines whether normal users (non-administrator) are allowed to
2976           delete their own database or not. If set as FALSE, the link "Drop
2977           Database" will not be shown, and even a "DROP DATABASE mydatabase"
2978           will be rejected. Quite practical for ISP's with many customers.
2979 
2980    $cfg['Confirm'] boolean
2981           Whether a warning ("Are your really sure...") should be displayed
2982           when you're about to lose data.
2983 
2984    $cfg['LoginCookieRecall'] boolean
2985           Define whether the previous login should be recalled or not in cookie
2986           authentication mode.
2987 
2988    $cfg['UseDbSearch'] boolean
2989           Define whether the "search string inside database" is enabled or not.
2990 
2991    $cfg['IgnoreMultiSubmitErrors'] boolean
2992           Define whether phpMyAdmin will continue executing a multi-query
2993           statement if one of the queries fails. Default is to abort execution.
2994 
2995    $cfg['VerboseMultiSubmit'] boolean
2996           Define whether phpMyAdmin will output the results of each query of a
2997           multi-query  statement  embedded  into the SQL output as inline
2998           comments. Defaults to TRUE.
2999 
3000    $cfg['AllowArbitraryServer'] boolean
3001           If enabled allows you to login to arbitrary server using cookie auth.
3002           NOTE: Please use this carefully, as this may allow to access MySQL
3003           servers behind firewall where your http server is placed.
3004 
3005    $cfg['LeftFrameLight'] boolean
3006           Defines whether to use select-based menu and display only the current
3007           tables in the left frame (smaller page). Only in Non-Lightmode you
3008           can   use   the   feature   to  display  nested  folders  using
3009           $cfg['LeftFrameTableSeparator']
3010 
3011    $cfg['LeftFrameTableSeparator'] string
3012           Defines a string to be used to nest table spaces. Defaults to '__'.
3013           This means if you have tables like 'first__second__third' this will
3014           be shown as a three-level hierarchie like: first > second > third. If
3015           set to FALSE or empty, the feature is disabled. NOTE: You shall not
3016           use this Separator in a table name at the beginning or end of a table
3017           name, or multiple times after another without any other characters in
3018           between.
3019 
3020    $cfg['LeftFrameTableLevel'] string
3021           Defines how many sublevels should be displayed when splitting up
3022           tables by the above Separator.
3023 
3024    $cfg['ShowTooltip'] boolean
3025           Defines whether to display table comment as tool-tip in left frame or
3026           not.
3027 
3028    $cfg['ShowTooltipAliasDB'] boolean
3029           If tool-tips are enabled and a DB comment is set, this will flip the
3030           comment and the real name. That means, if you have a table called
3031           'user0001' and add the comment 'MyName' on it, you will see the name
3032           'MyName' used consequently in the left frame and the tool-tip shows
3033           the real name of the DB.
3034 
3035    $cfg['ShowTooltipAliasTB'] boolean/string
3036           Same as $cfg['ShowTooltipAliasDB'], except this works for table
3037           names. When setting this to 'nested', the Alias of the Tablename is
3038           only   used   to   split/nest   the  tables  according  to  the
3039           $cfg['LeftFrameTableSeparator'] directive. So only the folder is
3040           called like the Alias, the tablename itself stays the real tablename.
3041 
3042    $cfg['LeftDisplayLogo'] boolean
3043           Defines whether to display the phpMyAdmin logo at the top of the left
3044           frame or not. Defaults to TRUE.
3045 
3046    $cfg['LeftDisplayServers'] boolean
3047           Defines whether to display a server choice at the top of the left
3048           frame or not. Defaults to FALSE.
3049 
3050    $cfg['DisplayServersList'] boolean
3051           Defines whether to display this server choice as links instead of in
3052           a drop-down. Defaults to FALSE (drop-down).
3053 
3054    $cfg['ShowStats'] boolean
3055           Defines whether to display space usage and statistics about databases
3056           and tables or not.
3057           Note that statistics requires at least MySQL 3.23.3 and that, at this
3058           date, MySQL doesn't return such information for Berkeley DB tables.
3059 
3060    $cfg['ShowMysqlInfo'] boolean
3061           $cfg['ShowMysqlVars'] boolean
3062           $cfg['ShowPhpInfo'] boolean
3063           $cfg['ShowChgPassword'] boolean
3064           Defines whether to display the "MySQL runtime information", "MySQL
3065           system variables", "PHP information" and "Change password " links or
3066           not for simple users at the starting main (right) frame. This setting
3067           does not check MySQL commands entered directly.
3068           Please note that to block the usage of phpinfo() in scripts, you have
3069           to put this in your php.ini:
3070               disable_functions = phpinfo()
3071           Also note that enabling the "Change password " link has no effect
3072           with "config" authentication mode: because of the hard coded password
3073           value in the configuration file, end users can't be allowed to change
3074           their passwords.
3075 
3076    $cfg['SuggestDBName'] boolean
3077           Defines whether to suggest a database name on the "Create Database"
3078           form or to keep the textfield empty.
3079 
3080    $cfg['ShowBlob'] boolean
3081           Defines whether BLOB fields are shown when browsing a table's content
3082           or not.
3083 
3084    $cfg['NavigationBarIconic'] boolean
3085           Defines whether navigation bar buttons contain text or symbols only.
3086 
3087    $cfg['ShowAll'] boolean
3088           Defines whether an user should be displayed a "show all (records)"
3089           button in browse mode or not.
3090 
3091    $cfg['MaxRows'] integer
3092           Number of rows displayed when browsing a result set. If the result
3093           set contains more rows, Previous/Next links will be shown.
3094 
3095    $cfg['Order'] string [DESC|ASC|SMART]
3096           Defines whether fields are displayed in ascending (ASC) order, in
3097           descending  (DESC)  order  or in a "smart" (SMART) order - I.E.
3098           descending order for fields of type TIME, DATE, DATETIME & TIMESTAMP,
3099           ascending order else- by default.
3100 
3101    $cfg['ProtectBinary'] boolean or string
3102           Defines whether BLOB or BINARY fields are protected from edition when
3103           browsing a table's content or not. Valid values are:
3104           - FALSE to allow edition of all fields;
3105           - blob to allow edition of all fields except BLOBS;
3106           - all to disallow edition of all BINARY or BLOB fields.
3107 
3108    $cfg['ShowFunctionFields'] boolean
3109           Defines whether MySQL functions fields should be displayed or not in
3110           edit/insert mode.
3111 
3112    $cfg['CharEditing'] string
3113           Defines which type of editing controls should be used for CHAR and
3114           VARCHAR fields. Possible values are:
3115 
3116           + input - this allows to limit size of text to size of field in
3117             MySQL, but has problems with newlines in fields
3118           + textarea - no problems with newlines in fields, but also no length
3119             limitations
3120 
3121           Default is old behavior so input.
3122 
3123    $cfg['ZipDump'] boolean
3124           $cfg['GZipDump'] boolean
3125           $cfg['BZipDump'] boolean
3126           Defines whether to allow the use of zip/GZip/BZip2 compression when
3127           creating a dump file or not.
3128 
3129    $cfg['CompressOnFly'] boolean
3130           Defines  whether to allow on the fly compression for GZip/BZip2
3131           compressed exports. This doesn't affect smaller dumps and allows to
3132           create larger dumps, that won't fit otherwise in memory due to php
3133           memory limit. Produced files contain more GZip/BZip2 headers, but all
3134           normal programs handle this correctly.
3135 
3136    $cfg['LightTabs'] string
3137           If set to True, do use less graphically intense tabs on the top of
3138           the mainframe.
3139 
3140    $cfg['PropertiesIconic'] string
3141           If set to True, will display icons instead of text for db and table
3142           properties links (like 'Browse', 'Select', 'Insert', ...).
3143           Can be set to 'both' if you want icons AND text.
3144           When set to False, will only show text.
3145 
3146    $cfg['PropertiesNumColumns'] integer
3147           How  many columns will be utilized to display the tables on the
3148           database property view? Default is 1 column. When setting this to a
3149           value larger than 1, the type of the database will be omitted for
3150           more display space.
3151 
3152    $cfg['DefaultTabServer'] string
3153           Defines the tab displayed by default on server view. Possible values:
3154           "main.php"     (recommended     for     multi-user     setups),
3155           "server_databases.php","server_status.php","server_variables.php",
3156           "server_privileges.php" or "server_processlist.php".
3157 
3158    $cfg['DefaultTabDatabase'] string
3159           Defines the tab displayed by default on database view. Possible
3160           values:    "db_details_structure.php",    "db_details.php"   or
3161           "db_search.php".
3162 
3163    $cfg['DefaultTabTable'] string
3164           Defines the tab displayed by default on table view. Possible values:
3165           "tbl_properties_structure.php",           "tbl_properties.php",
3166           "tbl_select.php" or "tbl_change.php".
3167 
3168    $cfg['MySQLManualBase'] string
3169           If  set to an URL which points to the MySQL documentation (type
3170           depends on $cfg['MySQLManualType']), appropriate help links are
3171           generated.
3172           See MySQL Documentation page for more information about MySQL manuals
3173           and their types.
3174 
3175    $cfg['MySQLManualType'] string
3176           Type of MySQL documentation:
3177 
3178           + old - old style used in phpMyAdmin 2.3.0 and earlier
3179           + searchable - "Searchable, with user comments"
3180           + chapters - "HTML, one page per chapter"
3181           + big - "HTML, all on one page"
3182           + none - do not show documentation links
3183 
3184    $cfg['DefaultLang'] string
3185           Defines  the default language to use, if not browser-defined or
3186           user-defined.
3187           See the select_lang.inc.php script to know the valid values for this
3188           setting.
3189 
3190    $cfg['Lang'] string
3191           Force:  always  use  this  language  (must  be  defined  in the
3192           select_lang.inc.php script).
3193