diff --git a/htdocs/sql/Documentation.html b/htdocs/sql/Documentation.html new file mode 100755 --- /dev/null +++ b/htdocs/sql/Documentation.html @@ -0,0 +1,4423 @@ + + + + + + + + + + phpMyAdmin 2.11.9.5 - Documentation + + + + + + + + +

phpMyAdmin 2.11.9.5 Documentation

+ + + + +

Requirements

+ + + + +

Introduction

+ +

phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as + 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. +

+ +

Currently phpMyAdmin can:

+ + + +

A word about users:

+

Many people have difficulty + understanding the concept of user management with regards to phpMyAdmin. When + a user logs in to phpMyAdmin, that username and password are passed directly + to MySQL. phpMyAdmin does no account management on its own (other than + allowing one to manipulate the MySQL user account information); all users + must be valid MySQL users.

+ +

+ 1) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) + dumps and CSV exports if you use + PHP with Zlib support (--with-zlib) and/or Bzip2 support + (--with-bz2). Proper support may also need changes in + php.ini.

+ + +

Installation

+ +
  1. Quick Install
  2. +
  3. Setup script usage
  4. +
  5. Linked-tables infrastructure
  6. +
  7. Upgrading from an older version
  8. +
  9. Using authentication modes
  10. +
+ +

+ phpMyAdmin does not apply any special security methods to the MySQL database + server. It is still the system administrator's job to grant permissions on + the MySQL databases properly. phpMyAdmin's "Privileges" page can + be used for this. +

+ +

+ Warning for Mac users:
+ if you are on a Mac + OS version before + OS X, StuffIt unstuffs with + Mac formats.
+ So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts + before uploading them to your server, as PHP seems not to like + Mac-style end of lines character + ("\r").

+ +

Quick Install

+
  1. Choose an appropriate distribution kit from the phpmyadmin.net + Downloads page. Some kits contain only the English messages, + others contain all languages in UTF-8 format (this should be fine + in most situations), others contain all + languages and all character sets. We'll assume you chose a kit whose + name looks like phpMyAdmin-x.x.x-all-languages.tar.gz. +
  2. +
  3. Untar or unzip the distribution (be sure to unzip the subdirectories): + tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz in your webserver's + document root. If you don't have direct access to your document root, + put the files in a directory on your local machine, and, after step 4, + transfer the directory on your web server using, for example, ftp.
  4. +
  5. Ensure that all the scripts have the appropriate owner (if PHP is + running in safe mode, having some scripts with an owner different + from the owner of other scripts will be a + problem). See + FAQ 4.2 and + FAQ + 1.26 for suggestions.
  6. +
  7. Now you must configure your installation. There are two methods that + can be used. Traditionally, users have hand-edited a copy of + config.inc.php, but now a wizard-style setup script is + provided for those who prefer a graphical installation. Creating a + config.inc.php file is + still a quick way to get started and needed for some advanced features. +
  8. +
  9. If you are using the + auth_type "config", it is suggested that you + protect the phpMyAdmin installation directory because using + config does not require a user to + enter a password to access the phpMyAdmin installation. Use of an alternate + authentication method is recommended, for example with + HTTP–AUTH in a .htaccess file or switch to using + auth_type cookie or http. See the + multi–user sub–section of this + FAQ for additional + information, especially + FAQ 4.4.
  10. +
  11. Open the main phpMyAdmin directory + in your browser. phpMyAdmin should now display a welcome screen + and your databases, or a login dialog if using + HTTP or cookie + authentication mode.
  12. +
  13. You should deny access to the ./libraries subfolder in your + webserver configuration. For Apache you can use supplied .htaccess file + in that folder, for other webservers, you should configure this yourself. + Such configuration prevents from possible path exposure and cross side + scripting vulnerabilities that might happen to be found in that code.
  14. +
+ +

Linked-tables infrastructure

+ +

For a whole set of new features (bookmarks, comments, + SQL-history, + PDF-generation, 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 rights to it).

+ +

Please look at your ./scripts/ directory, where you should find a + file called create_tables.sql. (If you are using a Windows server, pay + special attention to + FAQ 1.23).

+ +

If your MySQL server's version is 4.1.2 or later, please use + ./scripts/create_tables_mysql_4_1_2+.sql instead, for a new + installation.

+ +

If you already had this infrastructure and upgraded to MySQL 4.1.2 + or later, please use ./scripts/upgrade_tables_mysql_4_1_2+.sql.

+ +

You can use your phpMyAdmin to create the tables for you. Please be aware + that you may need special (administrator) privileges to create the database + and tables, and that the script may need some tuning, depending on the + database name.

+ +

After having imported the ./scripts/create_tables.sql file, you + should specify the table names in your ./config.inc.php file. The + directives used for that can be found in the Configuration + section. You will also need to have a controluser with the proper rights + to those tables (see section Using + authentication modes below).

+ +

Upgrading from an older version

+ +

Simply copy ./config.inc.php from your previous installation into the newly + unpacked one. Configuration files from very old versions (2.3.0 or before) may + require some tweaking as some options have been changed or removed. + For compatibility with PHP 6, remove a set_magic_quotes_runtime(0); + statement that you might find near the end of your configuration file.

+ +

You should not copy libraries/config.default.php + over config.inc.php because the default configuration file + is version-specific.

+ +

If you have upgraded your MySQL server from a version previous to 4.1.2 to + version 4.1.2 or newer and if you use the pmadb/linked table infrastructure, + you should run the SQL script found in + scripts/upgrade_tables_mysql_4_1_2+.sql.

+ +

Using authentication modes

+ + + +

'HTTP' authentication mode

+ + + +

'cookie' authentication mode

+ + + +

'signon' authentication mode

+ + +

'config' authentication mode

+ + + + +

Configuration

+ +

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

+ +

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

+ +

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

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

+ + Starting with version 2.3.0, it is advisable to try leaving this + blank. In most cases phpMyAdmin automatically detects the proper + setting. Users of port forwarding will need to set PmaAbsoluteUri (more info). + A good test is to browse a table, edit a row and save it. There should + be an error message if phpMyAdmin is having trouble auto–detecting + the correct value. If you get an error that this must be set or if + the autodetect code fails to detect your path, please post a bug + report on our bug tracker so we can improve the code.
+ +
$cfg['PmaNoRelation_DisableWarning'] boolean
+
Starting with version 2.3.0 phpMyAdmin offers a lot of features to work + with master / foreign – tables (see + $cfg['Servers'][$i]['pmadb']). +
+ If you tried to set this up and it does not work for you, have a look on + the "Structure" page of one database where you would like to + use it. You will find a link that will analyze why those features have + been disabled.
+ If you do not want to use those features set this variable to + TRUE to stop this message from appearing.
+ +
$cfg['SuhosinDisableWarning'] boolean
+
A warning is displayed on the main page if Suhosin is detected. + You can set this parameter to TRUE to stop this message + from appearing.
+ +
$cfg['AllowThirdPartyFraming'] boolean
+
Setting this to true allows a page located on a different + domain to call phpMyAdmin inside a frame, and is a potential security + hole allowing cross-frame scripting attacks.
+ +
$cfg['blowfish_secret'] string
+
The "cookie" auth_type uses blowfish + algorithm to encrypt the password.
+ If you are using the "cookie" auth_type, enter here a random + passphrase of your choice. It will be used internally by the blowfish + algorithm: you won’t be prompted for this passphrase. The maximum + number of characters for this parameter seems to be 46.
+ +
$cfg['Servers'] array
+
Since version 1.4.2, phpMyAdmin supports the administration of multiple + MySQL servers. Therefore, a + $cfg['Servers']-array has + been added which contains the login information for the different servers. + The first + $cfg['Servers'][$i]['host'] + contains the hostname of the first server, the second + $cfg['Servers'][$i]['host'] + the hostname of the second server, etc. In + ./libraries/config.default.php, there is only one section for + server definition, however you can put as many as you need in + ./config.inc.php, copy that block or needed parts (you don't + have to define all settings, just those you need to change).
+ +
$cfg['Servers'][$i]['host'] string
+
The hostname or IP address of your + $i-th MySQL-server. E.g. localhost.
+ +
$cfg['Servers'][$i]['port'] string
+
The port-number of your $i-th MySQL-server. Default is 3306 (leave + blank). If you use "localhost" as the hostname, MySQL + ignores this port number and connects with the socket, so if you want + to connect to a port different from the default port, use + "127.0.0.1" or the real hostname in + $cfg['Servers'][$i]['host']. +
+ +
$cfg['Servers'][$i]['socket'] string
+
The path to the socket to use. Leave blank for default.
+ To determine the correct socket, check your MySQL configuration or, using the + mysql command–line client, issue the status command. + Among the resulting information displayed will be the socket used.
+ +
$cfg['Servers'][$i]['ssl'] boolean
+
Whether to enable SSL for connection to MySQL server. +
+ +
$cfg['Servers'][$i]['connect_type'] string
+
What type connection to use with the MySQL server. Your options are + 'socket' and 'tcp'. It defaults to 'tcp' as that + is nearly guaranteed to be available on all MySQL servers, while + sockets are not supported on some platforms.

+ + To use the socket mode, your MySQL server must be on the same machine + as the Web server.
+ +
$cfg['Servers'][$i]['extension'] string
+
What php MySQL extension to use for the connection. Valid options are: +

+ + mysql : + The classic MySQL extension. This is the recommended and default + method at this time.

+ + mysqli : + The improved MySQL extension. This extension became available + with php 5.0.0 and is the recommended way to connect to a server + running MySQL 4.1.x.
+ +
$cfg['Servers'][$i]['compress'] boolean
+
Whether to use a compressed protocol for the MySQL server connection + or not (experimental).
+ This feature requires PHP >= 4.3.0.
+ +
+ $cfg['Servers'][$i]['controluser'] string
+ $cfg['Servers'][$i]['controlpass'] string +
+
This special account is used for 2 distinct purposes: to make possible + all relational features (see + $cfg['Servers'][$i]['pmadb']) + and, for a MySQL server previous to 4.1.2 or running with + --skip-show-database, to enable a multi-user installation + (HTTP or cookie + authentication mode).

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

+ + In phpMyAdmin versions before 2.2.5, those were called + "stduser/stdpass".
+ +
$cfg['Servers'][$i]['auth_type'] string + ['HTTP'|'http'|'cookie'|'config'|'signon']
+
Whether config or cookie or + HTTP or signon authentication + should be used for this server. + + + Please see the install section on "Using authentication modes" + for more information. +
+
+ $cfg['Servers'][$i]['user'] string
+ $cfg['Servers'][$i]['password'] string +
+
+ When using auth_type = 'config', this is the user/password-pair + which phpMyAdmin will use to connect to the + MySQL server. This user/password pair is not needed when HTTP or + cookie authentication is used and should be empty.
+
+ $cfg['Servers'][$i]['nopassword'] boolean +
+
+ Allow attempt to log in without password when a login with password + fails. This can be used together with http authentication, when + authentication is done some other way and phpMyAdmin gets user name + from auth and uses empty password for connecting to MySQL. Password + login is still tried first, but as fallback, no password method is + tried.
+
+ $cfg['Servers'][$i]['only_db'] string or array +
+
+ If set to a (an array of) database name(s), only this (these) database(s) + will be shown to the user. Since phpMyAdmin 2.2.1, this/these + database(s) name(s) may contain MySQL wildcards characters + ("_" and "%"): if you want to use literal instances + of these characters, escape them (I.E. use 'my\_db' and not + 'my_db').
+ This setting is an efficient way to lower the server load since the + latter does not need to send MySQL requests to build the available + database list. But it does not replace the + privileges rules of the MySQL database server. If set, it just + means only these databases will be displayed but + not that all other databases can't be used. +

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

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

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

+ + See the Linked-tables infrastructure + section in this document to see the benefits of this infrastructure, + and for a quick way of creating this database and the needed tables. +

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

+ + To allow the usage of this functionality: + +
+ +
+ $cfg['Servers'][$i]['relation'] string +
+
Since release 2.2.4 you can describe, in a special 'relation' table, + which field is a key in another table (a foreign key). phpMyAdmin + currently uses this to + + + The keys can be numeric or character.

+ + To allow the usage of this functionality: + + + + Please note that in the current version, master_db + must be the same as foreign_db. Those fields have been put in + future development of the cross-db relations. +
+ +
+ $cfg['Servers'][$i]['table_info'] string +
+
+ Since release 2.3.0 you can describe, in a special 'table_info' + table, which field is to be displayed as a tool-tip when moving the + cursor over the corresponding key.
+ This configuration variable will hold the name of this special + table. To allow the usage of this functionality: + + Usage tip: Display field. +
+
+ $cfg['Servers'][$i]['table_coords'] string
+ $cfg['Servers'][$i]['pdf_pages'] string +
+
Since release 2.3.0 you can have phpMyAdmin create + PDF pages showing + the relations between your tables. To do this it needs two tables + "pdf_pages" (storing information about the available + PDF + pages) and "table_coords" (storing coordinates where each + table will be placed on a PDF + schema output).

+ + You must be using the "relation" feature.

+ + To allow the usage of this functionality: + + + + Usage tips: PDF output. +
+ +
+ $cfg['Servers'][$i]['column_info'] string +
+
+ Since release 2.3.0 you can store comments to describe each column for + each table. These will then be shown on the "printview". +

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

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

+ + To allow the usage of this functionality: + +
+ +
+ $cfg['Servers'][$i]['history'] string +
+
Since release 2.5.0 you can store your + SQL history, which means + all queries you entered manually into the phpMyAdmin interface. If you + don't want to use a table-based history, you can use the JavaScript-based + history. Using that, all your history items are deleted when closing the + window.

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

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

+ + To allow the usage of this functionality: + + +
+ +
+ $cfg['Servers'][$i]['designer_coords'] string +
+
Since release 2.10.0 a Designer interface is available; it permits + to visually manage the relations. +

+ + To allow the usage of this functionality: + + +
+ +
$cfg['Servers'][$i]['verbose_check'] boolean +
+
Because release 2.5.0 introduced the new MIME-transformation support, the + column_info table got enhanced with three new fields. If the above variable + is set to TRUE (default) phpMyAdmin will check if you have the + latest table structure available. If not, it will emit a warning to the + superuser.

+ + You can disable this checking behavior by setting the variable to false, + which should offer a performance increase.

+ + Recommended to set to FALSE, when you are sure, your table structure is + up to date.
+
$cfg['Servers'][$i]['AllowRoot'] + boolean
+
Whether to allow root access. This is just simplification of rules below. +
+
+ $cfg['Servers'][$i]['AllowDeny']['order'] string +
+
If your rule order is empty, then IP + authentication is disabled.

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

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

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

+ + Please also see $cfg['TrustedProxies'] for detecting IP + address behind proxies. +
+
+ $cfg['Servers'][$i]['AllowDeny']['rules'] array of strings +
+
The general format for the rules is as such: + +
+<'allow' | 'deny'> <username> [from] <ipmask>
+
+ + If you wish to match all users, it is possible to use a '%' as + a wildcard in the username field.
+ There are a few shortcuts you can use in the ipmask field as + well (please note that those containing SERVER_ADDRESS might not be + available on all webservers): +
+'all' -> 0.0.0.0/0
+'localhost' -> 127.0.0.1/8
+'localnetA' -> SERVER_ADDRESS/8
+'localnetB' -> SERVER_ADDRESS/16
+'localnetC' -> SERVER_ADDRESS/24
+
+ + Having an empty rule list is equivalent to either using + 'allow % from all' if your rule order is set to + 'deny,allow' or 'deny % from all' if your rule order + is set to 'allow,deny' or 'explicit'.

+ + For the IP matching system, the + following work:
+ xxx.xxx.xxx.xxx (an exact IP address)
+ xxx.xxx.xxx.[yyy-zzz] (an IP address range)
+ xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP addresses)
+ But the following does not work:
+ xxx.xxx.xxx.xx[yyy-zzz] (partial + IP address range) +
+
$cfg['Servers'][$i]['SignonSession'] string
+
Name of session which will be used for signon authentication method. +
+
$cfg['Servers'][$i]['SignonURL'] string
+
URL where user will be redirected to log in for signon authentication method. Should be absolute including protocol. +
+
$cfg['Servers'][$i]['LogoutURL'] string
+
URL where user will be redirected after logout (doesn't affect config authentication method). Should be absolute including protocol. +
+ +
$cfg['ServerDefault'] integer
+
If you have more than one server configured, you can set + $cfg['ServerDefault'] to any one of them to autoconnect to + that server when phpMyAdmin is started, or set it to 0 to be given a + list of servers without logging in.
+ If you have only one server configured, $cfg['ServerDefault'] + MUST be set to that server.
+ +
$cfg['MaxDbList'] integer
+
The maximum number of database names to be displayed in the + navigation frame and the database list.
+ +
$cfg['MaxTableList'] integer
+
The maximum number of table names to be displayed in the + main panel's list (except on the Export page). This limit is also enforced in the navigation panel + when in Light mode.
+ +
$cfg['MaxCharactersInDisplayedSQL'] integer
+
The maximum number of characters when a SQL query is displayed. The + default limit of 1000 should be correct to avoid the display of tons + of hexadecimal codes that represent BLOBs, but some users have real + SQL queries that are longer than 1000 characters. Also, if a query's + length exceeds this limit, this query is not saved in the history.
+ +
$cfg['OBGzip'] string/boolean
+
Defines whether to use GZip output buffering for increased + speed in HTTP transfers.
+ Set to true/false for enabling/disabling. When set to 'auto' (string), + phpMyAdmin tries to enable output buffering and will automatically disable + it if your browser has some problems with buffering. IE6 with a certain patch + is known to cause data corruption when having enabled buffering.
+ +
$cfg['PersistentConnections'] boolean
+
Whether persistent connections should be used or not (mysql_connect or + mysql_pconnect).
+ +
$cfg['ForceSSL'] boolean
+
Whether to force using https while accessing phpMyAdmin.
+ +
$cfg['ExecTimeLimit'] integer [number of seconds]
+
Set the number of seconds a script is allowed to run. If seconds is set + to zero, no time limit is imposed.
+ This setting is used while importing/exporting dump files but has no + effect when PHP is running in safe mode.
+ +
$cfg['MemoryLimit'] integer [number of bytes]
+
Set the number of bytes a script is allowed to allocate. If number set + to zero, no limit is imposed.
+ This setting is used while importing/exporting dump files but has no + effect when PHP is running in safe mode.
+ You can also use any string as in php.ini, eg. '16M'.
+ +
$cfg['SkipLockedTables'] boolean
+
Mark used tables and make it possible to show databases with locked + tables (since MySQL 3.23.30).
+ +
$cfg['ShowSQL'] boolean
+
Defines whether SQL queries + generated by phpMyAdmin should be displayed or not.
+ +
$cfg['AllowUserDropDatabase'] boolean
+
Defines whether normal users (non-administrator) are allowed to + delete their own database or not. If set as FALSE, the link "Drop + Database" will not be shown, and even a "DROP DATABASE + mydatabase" will be rejected. Quite practical for + ISP's with many + customers.
+ Please note that this limitation of SQL queries is not as strict as + when using MySQL privileges. This is due to nature of SQL queries + which might be quite complicated. So this choice should be viewed as + help to avoid accidental dropping rather than strict privilege + limitation.
+ +
$cfg['Confirm'] boolean
+
Whether a warning ("Are your really sure...") should be + displayed when you're about to lose data.
+ +
$cfg['LoginCookieRecall'] boolean
+
Define whether the previous login should be recalled or not in cookie + authentication mode.
+ +
$cfg['LoginCookieValidity'] integer [number of seconds]
+
Define how long is login cookie valid.
+ +
$cfg['LoginCookieStore'] integer [number of seconds]
+
Define how long is login cookie should be stored in browser. Default 0 + means that it will be kept for existing session. This is recommended + for not trusted environments.
+ +
$cfg['LoginCookieDeleteAll'] boolean
+
If enabled (default), logout deletes cookies for all servers, + otherwise only for current one. Setting this to false makes it easy to + forget to log out from other server, when you are using more of + them.
+ +
$cfg['UseDbSearch'] boolean
+
Define whether the "search string inside database" is enabled or not.
+ +
$cfg['IgnoreMultiSubmitErrors'] boolean
+
Define whether phpMyAdmin will continue executing a multi-query + statement if one of the queries fails. Default is to abort execution.
+ +
$cfg['VerboseMultiSubmit'] boolean
+
Define whether phpMyAdmin will output the results of each query of a + multi-query statement embedded into the + SQL output as inline + comments. Defaults to TRUE.
+
+ $cfg['AllowArbitraryServer'] boolean
+
If enabled allows you to log in to arbitrary servers using cookie auth. +

+ + NOTE: Please use this carefully, as this may allow users access to + MySQL servers behind the firewall where your + HTTP server is placed. +
+ +
$cfg['LeftFrameLight'] boolean
+
Defines whether to use a select-based menu and display only the current + tables in the left frame (smaller page). Only in Non-Lightmode you can + use the feature to display nested folders using + $cfg['LeftFrameTableSeparator'] +
+ +
$cfg['LeftFrameDBTree'] boolean
+
In light mode, defines whether to display the names of databases (in the + selector) using a tree, see also + $cfg['LeftFrameDBSeparator']. +
+ +
$cfg['LeftFrameDBSeparator'] string
+
The string used to separate the parts of the database name when showing + them in a tree.
+ +
$cfg['LeftFrameTableSeparator'] string
+
Defines a string to be used to nest table spaces. Defaults to '__'. + This means if you have tables like 'first__second__third' this will be + shown as a three-level hierarchy like: first > second > third. + If set to FALSE or empty, the feature is disabled. NOTE: You should + not use this separator at the beginning or end of a + table name or multiple times after another without any other + characters in between.
+ +
$cfg['LeftFrameTableLevel'] string
+
Defines how many sublevels should be displayed when splitting + up tables by the above separator.
+ +
$cfg['ShowTooltip'] boolean
+
Defines whether to display table comment as tool-tip in left frame or + not.
+ +
$cfg['ShowTooltipAliasDB'] boolean
+
If tool-tips are enabled and a DB comment is set, this will flip the + comment and the real name. That means that if you have a table called + 'user0001' and add the comment 'MyName' on it, you will see the name + 'MyName' used consequently in the left frame and the tool-tip shows + the real name of the DB.
+ +
$cfg['ShowTooltipAliasTB'] boolean/string
+
Same as $cfg['ShowTooltipAliasDB'], except this works for table names. + + When setting this to 'nested', the Alias of the Tablename is only used + to split/nest the tables according to the + $cfg['LeftFrameTableSeparator'] + directive. So only the folder is called like the Alias, the tablename itself + stays the real tablename.
+ + +
Defines whether or not to display the phpMyAdmin logo at the top of the left frame. + Defaults to TRUE.
+ +
Enter URL where logo in the navigation frame will point to. + For use especially with self made theme which changes this. + The default value for this is main.php.
+ +
$cfg['LeftLogoLinkWindow'] string
+
Whether to open the linked page in the main window (main) + or in a new one (new). Note: use new if you are + linking to phpmyadmin.net.
+ +
$cfg['LeftDisplayServers'] boolean
+
Defines whether or not to display a server choice at the top of the left frame. + Defaults to FALSE.
+
$cfg['DisplayServersList'] boolean
+
Defines whether to display this server choice as links instead of in a drop-down. + Defaults to FALSE (drop-down).
+
$cfg['DisplayDatabasesList'] boolean or text
+
Defines whether to display database choice in light navigation frame as links + instead of in a drop-down. Defaults to 'auto' - on main page list is + shown, when database is selected, only drop down is displayed.
+
$cfg['ShowStats'] boolean
+
Defines whether or not to display space usage and statistics about databases + and tables.
+ Note that statistics requires at least MySQL 3.23.3 and that, at this + date, MySQL doesn't return such information for Berkeley DB tables.
+ +
$cfg['ShowServerInfo'] boolean
+
Defines whether to display detailed server information on main page. + You can additionally hide more information by using + $cfg['Servers'][$i]['verbose']. +
+ +
$cfg['ShowPhpInfo'] boolean
+ $cfg['ShowChgPassword'] boolean
+ $cfg['ShowCreateDb'] boolean +
+
Defines whether to display the "PHP information" and + "Change password " links and form for creating database or + not at the starting main (right) frame. This setting + does not check MySQL commands entered directly.

+ + Please note that to block the usage of phpinfo() in scripts, you + have to put this in your php.ini: + +
disable_functions = phpinfo()
+ + Also note that enabling the "Change password " link has no + effect with "config" authentication mode: because of the + hard coded password value in the configuration file, end users can't + be allowed to change their passwords.
+ +
$cfg['SuggestDBName'] boolean
+
Defines whether to suggest a database name on the + "Create Database" form or to keep the textfield empty.
+ +
$cfg['ShowBlob'] boolean
+
Defines whether or not BLOB fields are shown when browsing a table's + content.
+ +
$cfg['NavigationBarIconic'] string
+
Defines whether navigation bar buttons and the right panel top menu + contain text or symbols only. A value of TRUE displays icons, FALSE + displays text and 'both' displays both icons and text.
+ +
$cfg['ShowAll'] boolean
+
Defines whether a user should be displayed a + "show all (records)" button in browse mode or not.
+ +
$cfg['MaxRows'] integer
+
Number of rows displayed when browsing a result set. If the result set + contains more rows, "Previous" and "Next" links will be shown.
+ +
$cfg['Order'] string [DESC|ASC|SMART]
+
Defines whether fields are displayed in ascending (ASC) order, + in descending (DESC) order or in a "smart" + (SMART) order - I.E. descending order for fields of type TIME, + DATE, DATETIME and TIMESTAMP, ascending order else- by default.
+ +
$cfg['ProtectBinary'] boolean or string
+
Defines whether BLOB or BINARY fields are protected + from editing when browsing a table's content. Valid values are: + +
+ +
$cfg['ShowFunctionFields'] boolean
+
Defines whether or not MySQL functions fields should be initially + displayed in edit/insert mode. Since version 2.10, the user can + toggle this setting from the interface. +
+ +
$cfg['CharEditing'] string
+
Defines which type of editing controls should be used for CHAR and + VARCHAR fields. Possible values are: + + Default is old behavior so input.
+ +
$cfg['InsertRows'] integer
+
Defines the maximum number of concurrent entries for the Insert page.
+ +
$cfg['ForeignKeyMaxLimit'] integer
+
If there are fewer items than this in the set of foreign keys, then a + drop-down box of foreign keys is presented, in the style described by the + $cfg['ForeignKeyDropdownOrder'] + setting.
+ +
$cfg['ForeignKeyDropdownOrder'] array
+
For the foreign key drop-down fields, there are several methods of + display, offering both the key and value data. The contents of the + array should be one or both of the following strings: + 'content-id', 'id-content'.
+ +
$cfg['ZipDump'] boolean
+ $cfg['GZipDump'] boolean
+ $cfg['BZipDump'] boolean +
+
Defines whether to allow the use of zip/GZip/BZip2 compression when + creating a dump file
+ +
$cfg['CompressOnFly'] boolean
+
+
Defines whether to allow on the fly compression for GZip/BZip2 + compressed exports. This doesn't affect smaller dumps and allows users to + create larger dumps that won't otherwise fit in memory due to php + memory limit. Produced files contain more GZip/BZip2 headers, but all + normal programs handle this correctly.
+ +
$cfg['LightTabs'] boolean
+
If set to TRUE, use less graphically intense tabs on the top of the + mainframe.
+ +
$cfg['PropertiesIconic'] string
+
If set to TRUE, will display icons instead of text for db and table + properties links (like 'Browse', 'Select', 'Insert', ...).
Can be + set to 'both' if you want icons AND text.
+ When set to FALSE, will only show text.
+ +
$cfg['PropertiesNumColumns'] integer
+
How many columns will be utilized to display the tables on the + database property view? Default is 1 column. When setting this to a + value larger than 1, the type of the database will be omitted for more + display space.
+ + +
$cfg['DefaultTabServer'] string
+
Defines the tab displayed by default on server view. Possible + values: "main.php" (recommended for multi-user setups), + "server_databases.php", "server_status.php", + "server_variables.php", "server_privileges.php" + or "server_processlist.php".
+ +
$cfg['DefaultTabDatabase'] string
+
Defines the tab displayed by default on database view. Possible + values: "db_structure.php", + "db_sql.php" or "db_search.php".
+ +
$cfg['DefaultTabTable'] string
+
Defines the tab displayed by default on table view. Possible + values: "tbl_structure.php", + "tbl_sql.php", "tbl_select.php", + "tbl_change.php" or "sql.php".
+ +
$cfg['MySQLManualBase'] string
+
If set to an URL which + points to the MySQL documentation (type depends + on $cfg['MySQLManualType']), appropriate help links are + generated.
+ See MySQL Documentation page + for more information about MySQL manuals and their types.
+ +
$cfg['MySQLManualType'] string
+
Type of MySQL documentation: + +
+ +
$cfg['DefaultLang'] string
+
Defines the default language to use, if not browser-defined or + user-defined.
+ See the select_lang.lib.php script to know the valid values for + this setting.
+ +
$cfg['DefaultConnectionCollation'] string
+
Defines the default connection collation to use, if not + user-defined.
+ See the MySQL + documentation for list of possible values.
+ +
$cfg['Lang'] string
+
Force: always use this language (must be defined in the + select_lang.lib.php script).
+ +
$cfg['FilterLanguages'] string
+
Limit list of available languages to those matching the given regular + expression. For example if you want only Czech and English, you should + set filter to '^(cs|en)'.
+ +
$cfg['DefaultCharset'] string
+
Default character set to use for recoding of MySQL queries. This must be + enabled and it's described by + $cfg['AllowAnywhereRecoding'] + option.
+ You can give here any character set which is in + $cfg['AvailableCharsets'] + array and this is just default choice, user can select any of them.
+ +
$cfg['AllowAnywhereRecoding'] boolean
+
Allow character set recoding of MySQL queries. You need recode or iconv + support (compiled in or module) in PHP to allow MySQL queries recoding + and used language file must have it enabled (by default only these + which are in Unicode, just to avoid losing some characters).

+ + Setting this to TRUE also activates a pull-down menu + in the Export page, to choose the character set when exporting a file. +
+ +
$cfg['RecodingEngine'] string
+
You can select here which functions will be used for character set + conversion. Possible values are: + + Default is auto.
+ +
$cfg['IconvExtraParams'] string
+
Specify some parameters for iconv used in charset conversion. See + iconv + documentation for details. By default //TRANSLIT is + used, so that invalid characters will be transliterated.
+ +
$cfg['AvailableCharsets'] array
+
Available character sets for MySQL conversion. You can add your own (any of + supported by recode/iconv) or remove these which you don't use. + Character sets will be shown in same order as here listed, so if you + frequently use some of these move them to the top.
+ +
$cfg['TrustedProxies'] array
+
Lists proxies and HTTP headers which are trusted for IP Allow/Deny. This list is by + default empty, you need to fill in some trusted proxy servers if you + want to use rules for IP addresses behind proxy.

+ + The following example specifies that phpMyAdmin should trust a + HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4: +
+$cfg['TrustedProxies'] =
+     array('1.2.3.4' => 'HTTP_X_FORWARDED_FOR');
+
+ The $cfg['Servers'][$i]['AllowDeny']['rules'] directive uses the + client's IP address as usual. +
+ +
$cfg['GD2Available'] string
+
Specifies whether GD >= 2 is available. If yes it can be used for + MIME transformations.
+ Possible values are: + + Default is auto. +
+ +
$cfg['NaviWidth'] integer
+
Navi frame width in pixels. See themes/themename/layout.inc.php. +
+ +
$cfg['NaviBackground'] string [valid css code for background]
+ $cfg['MainBackground'] string [valid css code for background] +
+
The background styles used for both the frames. + See themes/themename/layout.inc.php.
+ +
$cfg['NaviPointerBackground'] string [valid css code for background]
+ $cfg['NaviPointerColor'] string [valid css color]
+
The style used for the pointer in the navi frame. + See themes/themename/layout.inc.php.
+ +
$cfg['NaviDatabaseNameColor'] string [valid css code]
+
The color used for the database name in the navi frame. + See themes/themename/layout.inc.php.
+ +
$cfg['LeftPointerEnable'] boolean
+
A value of TRUE activates the navi pointer (when LeftFrameLight + is FALSE).
+ +
$cfg['Border'] integer
+
The size of a table's border. See themes/themename/layout.inc.php. +
+ +
$cfg['ThBackground'] string [valid css code for background]
+ $cfg['ThColor'] string [valid css color]
+
The style used for table headers. See + themes/themename/layout.inc.php.
+ +
$cfg['BgOne'] string [HTML color]
+
The color (HTML) #1 for table rows. See themes/themename/layout.inc.php. +
+ +
$cfg['BgTwo'] string [HTML color]
+
The color (HTML) #2 for table rows. See themes/themename/layout.inc.php. +
+ +
$cfg['BrowsePointerBackground'] string [HTML color]
+ $cfg['BrowsePointerColor'] string [HTML color]
+ $cfg['BrowseMarkerBackground'] string [HTML color]
+ $cfg['BrowseMarkerColor'] string [HTML color] +
+
The colors (HTML) uses for the pointer and the marker in browse mode.
+ The former feature highlights the row over which your mouse is passing + and the latter lets you visually mark/unmark rows by clicking on + them.
+ See themes/themename/layout.inc.php.
+ + +
$cfg['FontFamily'] string
+
You put here a valid CSS font family value, for example + arial, sans-serif.
+ See themes/themename/layout.inc.php.
+ +
$cfg['FontFamilyFixed'] string
+
You put here a valid CSS font family value, for example + monospace. This one is used in textarea.
+ See themes/themename/layout.inc.php.
+ +
$cfg['BrowsePointerEnable'] boolean
+
Whether to activate the browse pointer or not.
+ +
$cfg['BrowseMarkerEnable'] boolean
+
Whether to activate the browse marker or not.
+ +
$cfg['TextareaCols'] integer
+ $cfg['TextareaRows'] integer
+ $cfg['CharTextareaCols'] integer
+ $cfg['CharTextareaRows'] integer +
+
Number of columns and rows for the textareas.
+ This value will be emphasized (*2) for SQL query textareas and (*1.25) for + SQL textareas inside the query window.
+ The Char* values are used for CHAR and VARCHAR editing (if configured + via $cfg['CharEditing']).
+ +
$cfg['LongtextDoubleTextarea'] boolean +
+
Defines whether textarea for LONGTEXT fields should have double size.
+ +
$cfg['TextareaAutoSelect'] boolean +
+
Defines if the whole textarea of the query box will be selected on + click.
+
+ $cfg['CtrlArrowsMoving'] boolean +
+
Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when + editing.
+ +
$cfg['LimitChars'] integer
+
Maximum number of characters showen in any non-numeric field on browse view. + Can be turned off by a toggle button on the browse page.
+ +
$cfg['ModifyDeleteAtLeft'] boolean + $cfg['ModifyDeleteAtRight'] boolean +
+
Defines the place where modify and delete links would be put when + tables contents are displayed (you may have them displayed both at the + left and at the right). + "Left" and "right" are parsed as "top" + and "bottom" with vertical display mode.
+ +
$cfg['DefaultDisplay'] string + $cfg['HeaderFlipType'] string +
+
There are 3 display modes: horizontal, horizontalflipped and vertical. + Define which one is displayed by default. The first mode displays each + row on a horizontal line, the second rotates the headers by 90 + degrees, so you can use descriptive headers even though fields only + contain small values and still print them out. The vertical mode sorts + each row on a vertical lineup.

+ + The HeaderFlipType can be set to 'css' or 'fake'. When using 'css' + the rotation of the header for horizontalflipped is done via CSS. If + set to 'fake' PHP does the transformation for you, but of course this + does not look as good as CSS.
+ +
+ $cfg['DefaultPropDisplay'] + string or integer
+
When editing/creating new columns in a table all fields normally get + lined up one field a line. (default: 'horizontal'). If you set this to + 'vertical' you can have each field lined up vertically beneath each + other. You can save up a lot of place on the horizontal direction and + no longer have to scroll. If you set this to integer, editing of fewer + columns will appear in 'vertical' mode, while editing of more fields + still in 'horizontal' mode. This way you can still effectively edit + large number of fields, while having full view on few of them.
+ +
$cfg['ShowBrowseComments'] boolean
+ $cfg['ShowPropertyComments'] boolean +
+
By setting the corresponding variable to TRUE you can enable the + display of column comments in Browse or Property display. In browse + mode, the comments are shown inside the header. In property mode, + comments are displayed using a CSS-formatted dashed-line below the + name of the field. The comment is shown as a tool-tip for that field. +
+ +
$cfg['SQLQuery']['Edit'] boolean
+
Whether to display an edit link to change a query in any SQL Query box.
+ +
$cfg['SQLQuery']['Explain'] boolean
+
Whether to display a link to explain a SELECT query in any SQL Query box.
+ +
$cfg['SQLQuery']['ShowAsPHP'] boolean
+
Whether to display a link to wrap a query in PHP code in any SQL Query box.
+ +
$cfg['SQLQuery']['Validate'] boolean
+
Whether to display a link to validate a query in any SQL Query box. + See also $cfg_SQLValidator.
+ +
$cfg['SQLQuery']['Refresh'] boolean
+
Whether to display a link to refresh a query in any SQL Query box.
+ +
$cfg['UploadDir'] string
+
+ The name of the directory where + SQL files have been + uploaded by other means than phpMyAdmin (for example, ftp). Those files + are available under a drop-down box when you click the database or + table name, then the Import tab. +

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

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

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

+ + Please note that if PHP is running in safe mode, this directory must + be owned by the same user as the owner of the phpMyAdmin scripts. +

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

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

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

+ + Please note that if PHP is running in safe mode, this directory must + be owned by the same user as the owner of the phpMyAdmin scripts. +
+ +
$cfg['TempDir'] string
+
+ The name of the directory where temporary files can be stored. +

+ This is needed for native MS Excel export, see + FAQ + 6.23 +
+ +
$cfg['Export'] array
+
+ In this array are defined default parameters for export, names of + items are similar to texts seen on export page, so you can easily + identify what they mean. +
+ +
$cfg['Import'] array
+
+ In this array are defined default parameters for import, names of + items are similar to texts seen on import page, so you can easily + identify what they mean. +
+ +
$cfg['RepeatCells'] integer
+
+ Repeat the headers every X cells, or 0 to deactivate. +
+ +
$cfg['EditInWindow'] boolean
+ $cfg['QueryWindowWidth'] integer
+ $cfg['QueryWindowHeight'] integer
+ $cfg['QueryHistoryDB'] boolean
+ $cfg['QueryWindowDefTab'] string
+ $cfg['QueryHistoryMax'] integer +
+
+ All those variables affect the query window feature. A SQL link + or icon is always displayed on the left panel. If JavaScript is enabled in + your browser, a click on this opens a distinct query window, which is + a direct interface to enter SQL queries. Otherwise, the right panel + changes to display a query box.

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

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

+ The usage of the JavaScript query window is recommended if you have a + JavaScript enabled browser. Basic functions are used to exchange quite + a few variables, so most 4th generation browsers should be capable to + use that feature. It currently is only tested with Internet Explorer 6 + and Mozilla 1.x. +

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

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

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

+ The query window also has a custom tabbed look to group the features. + Using the variable $cfg['QueryWindowDefTab'] you can specify the + default tab to be used when opening the query window. It can be set to + either 'sql', 'files', 'history' or 'full'.
+ +
$cfg['BrowseMIME'] boolean
+
Enable MIME-transformations.
+ +
$cfg['MaxExactCount'] integer
+
For InnoDB tables, determines for how large tables phpMyAdmin + should get the exact row count using SELECT COUNT. + If the approximate row count as returned by + SHOW TABLE STATUS is smaller than this value, + SELECT COUNT will be used, otherwise the approximate + count will be used. +
+
$cfg['MaxExactCountViews'] integer
+
For VIEWs, since obtaining the exact count could have an + impact on performance, this value is the maximum to be displayed, using + a SELECT COUNT ... LIMIT. The default value of 0 bypasses + any row counting. +
+ +
+ $cfg['WYSIWYG-PDF'] boolean
+
Utilizes a WYSIWYG editing control to easily place elements of a + PDF + page. By clicking on the button 'toggle scratchboard' on the page + where you edit x/y coordinates of those elements you can activate a + scratchboard where all your elements are placed. By clicking on an + element, you can move them around in the pre-defined area and the x/y + coordinates will get updated dynamically. Likewise, when entering a + new position directly into the input field, the new position in the + scratchboard changes after your cursor leaves the input field.
+ You have to click on the 'OK'-button below the tables to save the new + positions. If you want to place a new element, first add it to the + table of elements and then you can drag the new element around.
+ By changing the paper size and the orientation you can change the size + of the scratchboard as well. You can do so by just changing the + dropdown field below, and the scratchboard will resize automatically, + without interfering with the current placement of the elements.
+ If ever an element gets out of range you can either enlarge the paper + size or click on the 'reset' button to place all elements below each + other.
+ NOTE: You have to use a recent browser like IE6 or Mozilla to + get this control to work. The basic Drag&Drop script functionality + was kindly borrowed from www.youngpup.net and is underlying so + specific license.
+ +
$cfg['NaturalOrder'] boolean
+
Sorts database and table names according to natural order (for example, + t1, t2, t10). Currently implemented in the left panel (Light mode) + and in Database view, for the table list.
+ +
$cfg['TitleTable'] string
+
$cfg['TitleDatabase'] string
+
$cfg['TitleServer'] string
+
$cfg['TitleDefault'] string
+
Allows you to specify window's title bar. Following magic string can + be used to get special values: +
+
@HTTP_HOST@
+
HTTP host that runs phpMyAdmin
+
@SERVER@
+
MySQL server name
+
@VERBOSE@
+
Verbose MySQL server name as defined in server configuration
+
@VSERVER@
+
Verbose MySQL server name if set, otherwise normal
+
@DATABASE@
+
Currently opened database
+
@TABLE@
+
Currently opened table
+
@PHPMYADMIN@
+
phpMyAdmin with version
+
+
+ +
$cfg['ErrorIconic'] boolean
+
Uses icons for warnings, errors and informations.
+ +
$cfg['MainPageIconic'] boolean
+
Uses icons on main page in lists and menu tabs.
+ +
$cfg['ReplaceHelpImg'] boolean
+
Shows a help button instead of the "Documentation" message. +
+ +
$cfg['ThemePath'] string
+
If theme manager is active, use this as the path of the subdirectory + containing all the themes.
+ +
$cfg['ThemeManager'] boolean
+
Enables user-selectable themes. See + FAQ 2.7.
+ +
$cfg['ThemeDefault'] string
+
The default theme (a subdirectory under cfg['ThemePath']).
+ +
$cfg['ThemePerServer'] boolean
+
Whether to allow different theme for each server.
+ +
$cfg['DefaultQueryTable'] string
+ $cfg['DefaultQueryDatabase'] string +
+
Default queries that will be displayed in query boxes when user didn't + specify any. Use %d for database name, %t for table name and %f for a + comma separated list of field names. Note that %t and %f are only + applicable to $cfg['DefaultQueryTable'].
+ +
$cfg['SQP']['fmtType'] string [html|none]
+
+ The main use of the new SQL Parser is to pretty-print SQL queries. By + default we use HTML to format the query, but you can disable this by + setting this variable to 'none'. +
+ +
$cfg['SQP']['fmtInd'] float
+ $cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex]
+
For the pretty-printing of SQL queries, under some cases the part of a + query inside a bracket is indented. By changing + $cfg['SQP']['fmtInd'] you can change the amount of this indent. +
Related in purpose is $cfg['SQP']['fmtIndUnit'] which + specifies the units of the indent amount that you specified. This is + used via stylesheets.
+ +
$cfg['SQP']['fmtColor'] array of string tuples
+
This array is used to define the colours for each type of element of + the pretty-printed SQL queries. The tuple format is
+ class => [HTML colour code | empty string]
+ If you specify an empty string for the color of a class, it is ignored + in creating the stylesheet. + You should not alter the class names, only the colour strings.
+ Class name key: + +
+ +
$cfg['SQLValidator'] boolean
+
$cfg['SQLValidator']['use'] boolean
+
phpMyAdmin now supports use of the Mimer SQL Validator service, + as originally published on + Slashdot. +
+ For help in setting up your system to use the service, see the + FAQ 6.14. +
+ +
$cfg['SQLValidator']['username'] string
+ $cfg['SQLValidator']['password'] string
+
The SOAP service allows you to log in with anonymous + and any password, so we use those by default. Instead, if + you have an account with them, you can put your login details + here, and it will be used in place of the anonymous login.
+
+
+ +
$cfg['DBG']
+
DEVELOPERS ONLY!
+ +
$cfg['DBG']['enable'] boolean
+
DEVELOPERS ONLY!
+ Enable the DBG extension for debugging phpMyAdmin. Required for profiling + the code.
+ For help in setting up your system to this, see the + Developers section.
+ +
$cfg['DBG']['profile']['enable'] boolean
+
DEVELOPERS ONLY!
+ Enable profiling support for phpMyAdmin. This will append a chunk of data + to the end of every page displayed in the main window with profiling + statistics for that page.
+ You may need to increase the maximum execution time for this to + complete successfully.Profiling was removed from the code for + version 2.9.0 due to licensing issues.
+ +
$cfg['DBG']['profile']['threshold'] float (units in milliseconds)
+
DEVELOPERS ONLY!
+ When profiling data is displayed, this variable controls the threshold of + display for any profiling data, based on the average time each time has + taken. If it is over the threshold it is displayed, otherwise it is not + displayed. This takes a value in milliseconds. In most cases you don't need + to edit this.
+ +
$cfg['ColumnTypes'] array
+
All possible types of a MySQL column. In most cases you don't need to + edit this.
+ +
$cfg['AttributeTypes'] array
+
Possible attributes for fields. In most cases you don't need to edit + this.
+ +
$cfg['Functions'] array
+
A list of functions MySQL supports. In most cases you don't need to + edit this.
+ +
$cfg['RestrictColumnTypes'] array
+
Mapping of column types to meta types used for preferring displayed + functions. In most cases you don't need to edit this.
+ +
$cfg['RestrictFunctions'] array
+
Functions preferred for column meta types as defined in + $cfg['RestrictColumnTypes']. In most cases you don't need + to edit this.
+ +
$cfg['DefaultFunctions'] array
+
Functions selected by default when inserting/changing row, Functions + are defined for meta types from + $cfg['RestrictColumnTypes'] and for + first_timestamp, which is used for first timestamp column + in table.
+ +
$cfg['NumOperators'] array
+
Operators available for search operations on numeric and date fields. +
+ +
$cfg['TextOperators'] array
+
Operators available for search operations on character fields. + Note that we put LIKE by default instead of + LIKE %...%, to avoid unintended performance problems + in case of huge tables.
+ +
$cfg['EnumOperators'] array
+
Operators available for search operations on enum fields.
+ +
$cfg['NullOperators'] array
+
Additional operators available for search operations when the + field can be null.
+ +
+ + +

Transformations

+ +
  1. Introduction
  2. +
  3. Usage
  4. +
  5. File structure
  6. +
+ +

1. Introduction

+ +

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

+ +

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

+ +

Say you have a field 'filename' which contains a filename. Normally you would + see in phpMyAdmin only this filename. Using transformations you can transform + that filename into a HTML link, so you can click inside of the phpMyAdmin + structure on the field's link and will see the file displayed in a new browser + window. Using transformation options you can also specify strings to + append/prepend to a string or the format you want the output stored in.

+ +

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

+ +

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

+ +

2. Usage

+ +

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

+ + + +

3. File structure

+ +

All mimetypes and their transformations are defined through single files in + the directory 'libraries/transformations/'.

+ +

They are stored in files to ease up customization and easy adding of new + transformations.

+ +

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

+ +

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

+ +

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

+ +

There are 5 possible file names:

+ +
  1. A mimetype+subtype transform:

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

    + + Please not that mimetype and subtype are separated via '_', which shall + not be contained in their names. The transform function/filename may + contain only characters which cause no problems in the file system as + well as the PHP function naming convention.

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

    + + Example:

    + + text_html__formatted.inc.php
    + PMA_transform_text_html__formatted()
  2. + +
  3. A mimetype (w/o subtype) transform:

    + + [mimetype]__[transform].inc.php

    + + Please note that there are no single '_' characters. + The transform function/filename may contain only characters which cause + no problems in the file system as well as the PHP function naming + convention.

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

    + + Example:

    + + text__formatted.inc.php
    + PMA_transform_text__formatted()
  4. + +
  5. A mimetype+subtype without specific transform function

    + + [mimetype]_[subtype].inc.php

    + + Please note that there are no '__' characters in the filename. Do not + use special characters in the filename causing problems with the file + system.

    + + No transformation function is defined in the file itself.

    + + Example:

    + + text_plain.inc.php
    + (No function)
  6. + +
  7. A mimetype (w/o subtype) without specific transform function

    + + [mimetype].inc.php

    + + Please note that there are no '_' characters in the filename. Do not use + special characters in the filename causing problems with the file system. +

    + + No transformation function is defined in the file itself.

    + + Example:

    + + text.inc.php
    + (No function)
  8. + +
  9. A global transform function with no specific mimetype

    + + global__[transform].inc.php

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

    + + Example:

    + + global__formatted
    + PMA_transform_global__formatted()
  10. +
+ +

So generally use '_' to split up mimetype and subtype, and '__' to provide a + transform function.

+ +

All filenames containing no '__' in themselves are not shown as valid transform + functions in the dropdown.

+ +

Please see the libraries/transformations/TEMPLATE file for adding your own transform + function. See the libraries/transformations/TEMPLATE_MIMETYPE for adding a mimetype + without a transform function. Also note the introduction of a function description in + the language files. For each function a $strTransformation_[filename without .inc.php] + has to exist.

+ +

You can use the template generator to generate new functions and entries in the + language file.

+ +

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

+ +

A transform function always gets passed three variables:

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

FAQ - Frequently Asked Questions

+ +
  1. Server
  2. +
  3. Configuration
  4. +
  5. Known limitations
  6. +
  7. ISPs, multi-user installations
  8. +
  9. Browsers or client OS
  10. +
  11. Using phpMyAdmin
  12. +
  13. phpMyAdmin project
  14. +
  15. Security
  16. +
+ +

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

+ +

Server

+ +

+ 1.1 I'm running PHP 4+ and my server is crashing each time a specific + action is required or phpMyAdmin sends a blank page or a page full of + cryptic characters to my browser, what can I do?

+ +

There are some known PHP bugs with output buffering and compression.
+ Try to set the $cfg['OBGzip'] + directive to FALSE in your config.inc.php file and the + zlib.output_compression directive to Off in your php + configuration file.
+ Furthermore, we know about such problems connected to the release + candidates of PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with + MS Internet Explorer. Please upgrade to the release version PHP 4.2.0.

+ +

+ 1.2 My Apache server crashes when using phpMyAdmin.

+ +

You should first try the latest versions of Apache (and possibly MySQL).
+ See also the + FAQ 1.1 + entry about PHP bugs with output buffering.
+ If your server keeps crashing, please ask for help in the various Apache + support groups.

+ +

+ 1.3 I'm running phpMyAdmin with "cookie" authentication + mode under PHP 4.2.0 or 4.2.1 loaded as an Apache 2 module but can't enter the + script: I'm always displayed the login screen.

+ +

This is a known PHP bug (see this + bug report) from the + official PHP bug database. It means there is and won't be any phpMyAdmin + fix against it because there is no way to code a fix.

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

This seems to be a PWS bug. Filippo Simoncini found a workaround (at this + time there is no better fix): remove or comment the DOCTYPE + declarations (2 lines) from the scripts libraries/header.inc.php, + libraries/header_printview.inc.php, index.php, + navigation.php and libraries/common.lib.php.

+ +

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

+ +

These features are based on the gzencode() and bzcompress() + PHP functions to be more independent of the platform (Unix/Windows, Safe Mode + or not, and so on). So, you must have PHP4 >= 4.0.4 and Zlib/Bzip2 + support (--with-zlib and --with-bz2).
+ We faced PHP crashes when trying to download a dump with MS Internet + Explorer when phpMyAdmin is run with a release candidate of PHP 4.2.0. In + this case you should switch to the release version of PHP 4.2.0.

+ +

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

+ +

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).
+ We recommend the following setup for Apache servers running in safe mode, + to enable uploads of files while being reasonably secure:

+ + + +

+ 1.9 I'm having troubles when uploading files. In + general file uploads don't work on my system and uploaded files have a + Content-Type: header in the first line.

+ +

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?
+ 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 details). The problem is that the bugged package is still + available though it was corrected (see + RedHat's BugZilla + for more details).
+ So please download + the fixed package (4.0.4pl1-9) + and the problem should go away.
+ And that fixes the \r\n problem with file uploads!

+ +

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

+ +

As suggested by "Rob M" in the phpWizard forum, add this line to + your httpd.conf:

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

It seems to clear up many problems between Internet Explorer and SSL.

+ +

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

+ +

Since version 2.2.4, phpMyAdmin supports servers with open_basedir + restrictions. Assuming that the restriction allows you to open files in the + current directory ('.'), all you have to do is create a 'tmp' directory + under 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.

+ +

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

+ +

The MySQL manual explains how to + + reset the permissions.

+ +

+ 1.13 I get an error 'No + SQL query' when trying to + execute a bookmark.

+ +

If PHP does not have read/write access to its upload_tmp_dir, it + cannot access the uploaded query.

+ +

+ 1.14 I get an error 'No + SQL query' when trying to + submit a query from the convenient text area.

+ +

Check the post_max_size directive from your PHP configuration file + and try to increase it.

+ +

+ 1.15 I have problems with mysql.user field names. +

+ +

In previous MySQL versions, the User and Password fields + were named user and password. Please modify your field + names to align with current standards.

+ +

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

+ +

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

+ +

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

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

+ + + +

+ 1.17 Which MySQL versions does phpMyAdmin + support?

+ +

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.
+ phpMyAdmin may connect to your MySQL server using php's classic + MySQL extension as well as the + improved MySQL extension (MySQLi) that + is available in php 5.0.
+ Either way, the developers of both extensions recommend to use the classic + extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.
+ When compiling php, we strongly recommend that you manually link the MySQL + extension of your choice to a MySQL client library of at least the same + minor version since the one that is bundled with some php distributions is + rather old and might cause problems + (see FAQ 1.17a). + If your webserver is running on a windows system, you might want to try + MySQL's + Connector/PHP + instead of the MySQL / MySQLi extensions that are bundled with the official + php Win32 builds. +
+ MySQL 5.1 is not yet supported.

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

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

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

+ +

+ 1.18 I'm running MySQL <= 4.0.1 having + lower_case_table_names set to 1. If I create a new table with a + capital letter in its name it is changed to lowercase as it should. But + if I try to DROP this table MySQL is unable to find the corresponding + file.

+ +

This is a bug of MySQL <= 4.0.1. Please upgrade to at least + MySQL 4.0.2 or turn off your lower_case_table_names + directive.

+ +

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

+ +

The "FPDF" library we're using for this feature requires some + special files to use font faces.
+ Please refers to the FPDF manual to build + these files.

+ +

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

+ +

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

+ + Usually, the problem is solved by installing a software package called + "PHP-MySQL" or something similar.

+ +

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

+ +

In php.ini, set mysql.max_links higher than 1.

+ +

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

+ +

This is most likely because in php.ini, your file_uploads + parameter is not set to "on".

+ +

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

+ +

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):
+ Just edit your my.ini file that should be located in your Windows + directory and add the following line to the group [mysqld]:

+ +
set-variable = lower_case_table_names=0
+ +

Next, save the file and restart the MySQL service. You can always check the + value of this directive using the query

+ +
SHOW VARIABLES LIKE 'lower_case_table_names';
+ +

+ 1.24 Some characters are being truncated in my queries, or I + get characters randomly added. I am running PHP 4.2.3.

+ +

This is a PHP 4.2.3 bug. +

+ +

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

+ +

A tip from Jose Fandos: put a comment on the following two lines + in httpd.conf, like this:

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

as this version of mod_gzip on Apache (Windows) has problems handling + PHP scripts. Of course you have to restart Apache.

+ +

+ 1.26 I just installed phpMyAdmin in my document root of + IIS but + I get the error "No input file specified" when trying to + run phpMyAdmin.

+ +

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

+ +

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

+ +

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

+ +

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

+ +

This can happen due to a MySQL bug when having database / table names with + 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 + available starting with MySQL 3.23.56 / 4.0.11-gamma.

+ +

+ 1.29 When I create a table or modify a field, I get an error + and the fields are duplicated.

+ +

It is possible to configure Apache in such a way that PHP has problems + interpreting .php files.

+ +

The problems occur when two different (and conflicting) set of directives + are used:

+ +
+SetOutputFilter PHP
+SetInputFilter PHP
+
+ +

and

+ +
AddType application/x-httpd-php .php
+ +

In the case we saw, one set of directives was in + /etc/httpd/conf/httpd.conf, while + the other set was in /etc/httpd/conf/addon-modules/php.conf.
+ The recommended way is with AddType, so just comment out + the first set of lines and restart Apache:

+ +
+#SetOutputFilter PHP
+#SetInputFilter PHP
+
+ +

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

+ +

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

+ +

+ 1.31 Does phpMyAdmin support php5?

+ +

Yes.
+ However, phpMyAdmin needs to be backwards compatible to php4. This is why + phpMyAdmin disables the E_STRICT error_level in + error_reporting settings. +

+ +

+ 1.32 Can I use HTTP authentication with IIS?

+ +

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

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

+ 1.33 Is there a problem with the mysqli extension when running + PHP 5.0.4 on 64-bit systems?

+ +

Yes. This problem affects phpMyAdmin ("Call to undefined function + pma_reloadnavigation"), so upgrade your PHP to the next version.

+ +

+ 1.34 Can I access directly to database or table pages?

+ +

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

+ +
+RewriteEngine On
+RewriteBase /path_to_phpMyAdmin
+RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
+RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
+RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
+RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
+
+ +

+ 1.35 Can I use HTTP authentication with Apache CGI?

+ +

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

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

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

+

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

+ +

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

+ +

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

+ +

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

+ +

Yes but the default configuration values of Suhosin are known to cause + problems with some operations, for example editing a table with many + columns and no primary key. Tuning information is available at + + http://www.hardened-php.net/hphp/troubleshooting.html, + although the parameter names have changed (suhosin instead + of hphp). See also the + SuhosinDisableWarning directive. +

+ +

Configuration

+ +

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

+ +

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

+ +

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

+ +

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 it + works. If it doesn't, it may be you haven't even compiled MySQL support + into PHP.

+ +

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

+ +

For RedHat users, Harald Legner suggests this on the mailing list:

+ +

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

+ +
mysql.default_socket = /tmp/mysql.sock
+ +

change it to

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

Then restart apache and it will work.

+ +

Here is a fix suggested by Brad Ummer:

+ + + +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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 expected.
+ Erik Wasser explains: The solution is: if your host is "localhost" + MySQL (the commandline tool 'mysql' as well) always tries to use the socket + connection for speeding up things. And that doesn't work in this configuration + with port forwarding.
+ If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the + TCP connection.

+ +

2.7 Using and creating themes

+ +

Themes are configured with + $cfg['ThemePath'], + $cfg['ThemeManager'] and + $cfg['ThemeDefault'].
+
+ Under $cfg['ThemePath'], you + should not delete the directory "original" or its underlying + structure, because this is the system theme used by phpMyAdmin. + "original" contains all images and styles, for backwards + compatibility and for all themes that would not include images or css-files. +

+ + If $cfg['ThemeManager'] + is enabled, you can select your favorite theme on the main page. Your + selected theme will be stored in a cookie.

+ +

To create a theme:

+ + + +

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

+ +

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

+ +

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

+ +

Here are a few points to check:

+ + + +

Known limitations

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

This seems to be a InnoDB bug (fixed in MySQL 3.23.50?).

+ +

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

+ +

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

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

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

+ +

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

+ +

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

+ +

+ 3.6 What is currently not supported in phpMyAdmin about InnoDB?

+ +

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

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

+

+ +

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

+

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

+ 3.11 The number of records for InnoDB tables is not correct.

+ +

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

+ +

+ 3.12 What are the phpMyAdmin limitations for MySQL 3?

+ +

The number of records in queries containing COUNT and GROUP BY is + not correctly calculated. Also, sorting results of a query like + "SELECT * from table GROUP BY" ... is problematic.

+ +

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

+

+ The tests I have made with current MySQL 4.1.11 API shows that the + API does not accept this syntax for the USE command. Enclosing the + db name with backquotes works. For further confusion, no backquotes + are needed with command-line mysql. +

+ +

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

+

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

+ +

ISPs, multi-user installations

+ +

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

+

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

+ +

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

+

+ This depends on your system.
+ 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).
+ If other people have telnet access to your server, you should use + phpMyAdmin's HTTP or cookie authentication features. +

+ Suggestions: +

+ + +

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

+

+ Check php.ini, or ask your sysadmin to check it. The + include_path must contain "." somewhere in it, and + open_basedir, if used, must contain "." and + "./lang" to allow normal operation of phpMyAdmin. +

+ +

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

+ +

This could happen for several reasons:

+ + + +

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

+ +

Starting with 2.2.5, in the user management page, you can enter a wildcard + database name for a user (for example "joe%"), + and put the privileges you want. For example, + adding SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER + would let a user create/manage his/her database(s).

+ +

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

+ +

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

+ +

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

+ +
+//block root from logging in except from the private networks
+$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
+    'deny root from all',
+    'allow root from localhost',
+    'allow root from 10.0.0.0/8',
+    'allow root from 192.168.0.0/16',
+    'allow root from 172.16.0.0/12',
+    );
+
+ +

+ 4.7 Authentication window is displayed more than once, why?

+ +

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

+ +

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

+ +

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

+ +

Browsers or client OS

+ +

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

+

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

+ +

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

+

+ This is not a phpMyAdmin problem but a Xitami known bug: you'll face it + with each script/website that use forms.
+ Upgrade or downgrade your Xitami server. +

+ +

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

+

+ With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that + the proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps + don't seem to work.
+ + With Konqueror 2.2.1: plain dumps work; zip dumps are placed into + the user's temporary directory, so they must be moved before closing + Konqueror, or else they disappear. GZip dumps give an error message.
+ + Testing needs to be done for Konqueror 2.2.2.
+

+ +

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

+

+ MS Internet Explorer seems to be really buggy about cookies, at least till + version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1 bug + in this area! +
+ Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may + work! +

+ +

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

+

+ Upgrade to at least Internet Explorer 5.5 SP2.
+

+ +

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

+

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

+ +

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

+

+ Some browsers support right-clicking into the frame you want to refresh, + just do this in the right frame.
+

+ +

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

+

+ Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future + Mozilla versions.
+

+ +

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

+

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

+ +

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

+

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

+ +

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

+ +

Please ensure that you have set your browser's character set to the one of the + language file you have selected on phpMyAdmin's start page. + Alternatively, you can try the auto detection mode that is supported by the + recent versions of the most browsers.

+ +

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

+ +

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

+ +

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

+ +

This is a bug in Internet Explorer, other browsers do not behave this way.

+ +

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

+ +

Having $cfg['QueryFrameJS'] set o TRUE, this leads to a + bug in Opera6, because it is not able to interpret frameset definitions + written by JavaScript. Please upgrade your phpMyAdmin installtion or to + Opera7 at least.

+ +

+ 5.15 I have display problems with Safari.

+ +

Please upgrade to at least version 1.2.3.

+ +

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

+ +

Please check the following points:

+ + +

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

+

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

+ +

Using phpMyAdmin

+ +

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

+

+ Examine the SQL error with care. Often the problem is caused by + specifying a wrong field-type.
+ Common errors include: +

+ +

+ Also, look at the syntax chapter in the MySQL manual to confirm that your + syntax is correct. +

+ +

+ 6.2 When I create a table, I click the Index checkbox for 2 fields and + phpMyAdmin generates only one index with those 2 fields. +

+

+ In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields + index. If you want two indexes, create the first one when creating the + table, save, then display the table properties and click the Index link to + create the other index. +

+ +

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

+

+ Since version 2.2.3, you have a checkbox for each 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 real 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). +

+ +

+ 6.4 How can I backup my database or table?

+ +

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

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

+ + For additional help on this subject, look for the word "dump" in + this document.

+ +

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

+ +

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

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

+ For additional help on this subject, look for the word "upload" + in this document. +

+ +

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

+ +

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

+ +
+CREATE TABLE REL_countries (
+    country_code char(1) NOT NULL default '',
+    description varchar(10) NOT NULL default '',
+    PRIMARY KEY (country_code)
+) TYPE=MyISAM;
+
+INSERT INTO REL_countries VALUES ('C', 'Canada');
+
+CREATE TABLE REL_persons (
+    id tinyint(4) NOT NULL auto_increment,
+    person_name varchar(32) NOT NULL default '',
+    town_code varchar(5) default '0',
+    country_code char(1) NOT NULL default '',
+    PRIMARY KEY (id)
+) TYPE=MyISAM;
+
+INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
+INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
+
+CREATE TABLE REL_towns (
+    town_code varchar(5) NOT NULL default '0',
+    description varchar(30) NOT NULL default '',
+    PRIMARY KEY (town_code)
+) TYPE=MyISAM;
+
+INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
+INSERT INTO REL_towns VALUES ('M', 'Montréal');
+
+ +

To setup appropriate links and display information:

+ + + +

Then test like this:

+ + + +

+ 6.7 How can I use the "display field" feature?

+

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

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

+ +

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

+

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

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

+ + +

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

+ +

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

+ +

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

+ +

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

+ + If you put a backslash before the underscore, it means that the database + name will have a real underscore.

+ +

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

+ +

It means "average".

+ +

+ 6.12 I want to understand some Export options.

+ +

Structure:

+ + + +

Data:

+ + + +

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

+ +

This is a bad idea, because in MySQL the syntax "database.table" + is the normal way to reference a database and table name. Worse, MySQL + will usually let you create a database with a dot, but then you cannot + work with it, nor delete it.

+ +

+ 6.14 How do I set up the + SQL Validator?

+ +

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 install Net_Socket Net_URL + HTTP_Request Mail_Mime Net_DIME SOAP" to get the necessary + PEAR modules + for usage.
+ 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.
+ If you use the Validator, you should be aware that any + SQL statement you + submit will be stored anonymously (database/table/column names, + strings, numbers replaced with generic values). The Mimer + SQL + Validator itself, is © 2001 Upright Database Technology. + We utilize it as free SOAP service.

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

Slow down :). Defining mimetypes is of no use, if you can't put transformations + on them. Otherwise you could just put a comment on the field. Because entering + your own mimetype will cause serious syntax checking issues and validation, + this introduces a high-risk false-user-input situation. Instead you have to + initialize mimetypes using functions or empty mimetype definitions.
+ Plus, you have a whole overview of available mimetypes. Who knows all those + mimetypes by heart so he/she can enter it at will?

+ +

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

+ +

Any query you have executed can be stored as a bookmark on the page where the + results are displayed. You will find a button labeled 'Bookmark this query' + just at the end of the page.
+ 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, the query + box appears on for that database.

+ + Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks. + Just use the string /*[VARIABLE]*/ anywhere in your query. Everything + which is put into the value input box on the query box page will + replace the string "/*[VARIABLE]*/" in your stored query. Just be + aware of that you HAVE to create a valid query, otherwise your query won't be + even able to be stored in the database.
+ Also remember, that everything else inside the /*[VARIABLE]*/ string + for your query will remain the way it is, but will be stripped of the /**/ + chars. So you can use:

+ + /*, [VARIABLE] AS myname */

+ + which will be expanded to

+ + , VARIABLE as myname

+ + in your query, where VARIABLE is the string you entered in the input box. If + an empty string is provided, no replacements are made.

+ + A more complex example. Say you have stored this query:

+ SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */ +

+ + Say, you now enter "phpMyAdmin" as the variable for the stored query, + the full query will be:

+ + SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%' +

+ + You can use multiple occurrences of /*[VARIABLE]*/ in a single query.
+ NOTE THE ABSENCE OF SPACES inside the "/**/" construct. Any + spaces inserted there + will be later also inserted as spaces in your query and may lead to unexpected + results especially when + using the variable expansion inside of a "LIKE ''" expression.
+ 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 that to work around using well + positioned "/**/" comments.

+ +

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

+ +

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

+ +
+\documentclass{article} % or any class you want
+\usepackage{longtable}  % for displaying table
+\begin{document}        % start of document
+\include{table}         % including exported table
+\end{document}          % end of document
+
+ +

+ 6.20 In MySQL 4, I see a lot of databases which are not mine, and cannot + access them. +

+ +

Upgrading to MySQL 4 usually gives users those global privileges: CREATE + TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also + enable users to see all the database names. + See this bug report.

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

+ +

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

+ +

You have to setup appropriate links between the tables, and also + setup the "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 first list containing the key + and the display field, the second list containing 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.

+ + For 200 values or more, a distinct window will appear, to browse foreign + key values and choose one.

+ +

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

+ +

Yes. If a bookmark has the same label as a table name, it will be executed. +

+ +

+ 6.23 Export: I heard phpMyAdmin can export Microsoft + Excel files, how can I enable that?

+ +

Current version does support direct export to Microsoft Excel and Word + versions 2000 and newer. If you need export older versions, you can use + CSV suitable for Microsoft Excel, + which works out of the box or you can + try native experimental MS Excel exporter. This export has + several problems, most important are limitation of cell content to 255 + chars and no support for charsets, so think carefully whether you want 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 + installation can be done by following command:

+ +
+pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer
+
+ +

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 satisfy + dependencies.

+ +

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 located, for example:

+ +
+safe_mode_include_dir = /usr/local/lib/php
+
+ +

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

+ +
+cd phpMyAdmin
+mkdir tmp
+chmod o+rwx tmp
+
+ +

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

+ +

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

+ +

phpMyAdmin project

+ +

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

+ +

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

+ + But please first discuss your bug with other users:
+ + http://sf.net/projects/phpmyadmin/ (and choose Forums)

+ +

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

+ +

Always use the current SVN version of your language file. + For a new language, start from english-iso-8859-1.inc.php. If you + don't know how to get the SVN version, please ask one of the developers. +
+ Please note that we try not to use HTML entities like &eacute; in + the translations, since we define the right character set in the file. + With HTML entities, the text on JavaScript messages would not + display correctly. + However there are some entities that need to be there, for quotes + ,non-breakable spaces, ampersands, less than, greater than.
+ You can then put your translations, as a zip file to avoid losing special + characters, on the sourceforge.net translation tracker.
+ It would be a good idea to subscribe to the phpmyadmin-translators mailing + list, because this is where we ask for translations of new messages.

+ +

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

+ +

The following method is preferred for new developers:

+ +
  1. fetch the current SVN tree over anonymous SVN:
    + svn co https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin
    +
  2. +
  3. add your stuff
  4. +
  5. generate patch with your changes: + svn diff
    +
  6. +
  7. put the patch inside the patch + tracker of the phpMyAdmin project. +
  8. +
+ +

Write access to the SVN tree is granted only to experienced developers who + have already contributed something useful to phpMyAdmin.
+ Also, have a look at the Developers section.

+ +

Security

+ +

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

+ +

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

+ + +

Developers Information

+ +

phpMyAdmin is Open Source, so you're invited to contribute to it. Many + great features have been written by other people and you too can help to + make phpMyAdmin a useful tool.

+ +

If you're planning to contribute source, please read the following + information:

+ + + + +

Credits

+ +
+phpMyAdmin - Credits
+====================
+
+CREDITS, in chronological order
+-------------------------------
+
+- Tobias Ratschiller <tobias_at_ratschiller.com>
+    * creator of the phpmyadmin project
+    * maintainer from 1998 to summer 2000
+
+- Marc Delisle <Marc.Delisle_at_cegepsherbrooke.qc.ca>
+    * multi-language version
+    * various fixes and improvements
+    * SQL analyser (most of it)
+    * current project maintainer
+
+- Olivier Müller <om_at_omnis.ch>
+    * started SourceForge phpMyAdmin project in March 2001
+    * sync'ed different existing CVS trees with new features and bugfixes
+    * multi-language improvements, dynamic language selection
+    * current project maintainer
+    * many bugfixes and improvements
+
+- Loïc Chapeaux <lolo_at_phpheaven.net>
+    * rewrote and optimized javascript, DHTML and DOM stuff
+    * rewrote the scripts so they fit the PEAR coding standards and
+      generate XHTML1.0 and CSS2 compliant codes
+    * improved the language detection system
+    * many bugfixes and improvements
+
+- Robin Johnson <robbat2_at_users.sourceforge.net>
+    * database maintenance controls
+    * table type code
+    * Host authentication IP Allow/Deny
+    * DB-based configuration (Not completed)
+    * SQL parser and pretty-printer
+    * SQL validator
+    * many bugfixes and improvements
+
+- Armel Fauveau <armel.fauveau_at_globalis-ms.com>
+    * bookmarks feature
+    * multiple dump feature
+    * gzip dump feature
+    * zip dump feature
+
+- Geert Lund <glund_at_silversoft.dk>
+    * various fixes
+    * moderator of the phpMyAdmin former users forum at phpwizard.net
+
+- Korakot Chaovavanich <korakot_at_iname.com>
+    * "insert as new row" feature
+
+- Pete Kelly <webmaster_at_trafficg.com>
+    * rewrote and fix dump code
+    * bugfixes
+
+- Steve Alberty <alberty_at_neptunlabs.de>
+    * rewrote dump code for PHP4
+    * mySQL table statistics
+    * bugfixes
+
+- Benjamin Gandon <gandon_at_isia.cma.fr>
+    * main author of the version 2.1.0.1
+    * bugfixes
+
+- Alexander M. Turek <me_at_derrabus.de>
+    * MySQL 4.0 / 4.1 / 5.0 compatibility
+    * abstract database interface (PMA_DBI) with MySQLi support
+    * privileges administration
+    * XML exports
+    * various features and fixes
+    * German language file updates
+
+- Mike Beck <mike.beck_at_web.de>
+    * automatic joins in QBE
+    * links column in printview
+    * Relation view
+
+- Michal Čihař <michal_at_cihar.com>
+    * enhanced index creation/display feature
+    * feature to use a different charset for HTML than for MySQL
+    * improvements of export feature
+    * various features and fixes
+    * Czech language file updates
+
+- Christophe Gesché from the "MySQL Form Generator for PHPMyAdmin"
+  (http://sf.net/projects/phpmysqlformgen/)
+    * suggested the patch for multiple table printviews
+
+- Garvin Hicking <me_at_supergarv.de>
+    * built the patch for vertical display of table rows
+    * built the Javascript based Query window + SQL history
+    * Improvement of column/db comments
+    * (MIME)-Transformations for columns
+    * Use custom alias names for Databases in left frame
+    * hierarchical/nested table display
+    * PDF-scratchboard for WYSIWYG-distribution of PDF relations
+    * new icon sets
+    * vertical display of column properties page
+    * some bugfixes, features, support, German language additions
+
+- Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
+    * japanese kanji encoding conversion feature
+
+- Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson
+    * the Cookie authentication mode
+
+- Axel Sander <n8falke_at_users.sourceforge.net>
+    * table relation-links feature
+
+- Maxime Delorme <delorme.maxime_at_free.fr>
+    * PDF schema output, thanks also to Olivier Plathey for the
+      "FPDF" library (see http://www.fpdf.org/) and Steven Wittens
+      for the "UFPDF" library (see http://www.acko.net/node/56).
+
+- Olof Edlund <olof.edlund_at_upright.se>
+    * SQL validator server
+
+- Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
+    * phpMyAdmin logo (until June 2004)
+
+- Mike Cochrane <mike_at_graftonhall.co.nz>
+    * blowfish library from the Horde project
+
+- Marcel Tschopp <ne0x_at_users.sourceforge.net>
+    * mysqli support
+    * many bugfixes and improvements
+
+- Michael Keck <mkkeck_at_users.sourceforge.net>
+    * redesign for 2.6.0
+    * phpMyAdmin sailboat logo (June 2004)
+
+- Mathias Landhäußer
+    * Representation at conferences
+
+- Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
+    * interface improvements
+    * various bugfixes
+
+- Ivan A Kirillov
+    * new relations Designer
+
+And also to the following people who have contributed minor changes,
+enhancements, bugfixes or support for a new language since version 2.1.0:
+
+Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
+Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
+Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger,
+Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
+Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna,
+www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec,
+Michael Tacelosky, Rachim Tamsjadi, Kositer Uros,
+Luís V., Martijn W. van der Lee,
+Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
+Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai".
+
+
+Original Credits of Version 2.1.0
+---------------------------------
+
+    This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
+    to create a web-based interface to MySQL using PHP3. Although I have not
+    used any of his source-code, there are some concepts I've borrowed from
+    him. phpMyAdmin was created because Peter told me he wasn't going to
+    further develop his (great) tool.
+    Thanks go to
+    - Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the
+      code for the check when dropping a table or database. He also suggested
+      that you should be able to specify the primary key on tbl_create.php3. To
+      version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
+      well as a bug-report. Plus many smaller improvements.
+    - Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that
+      were introduced in 1.3.0 (including quite significant ones like the
+      authentication). For 1.4.1 he enhanced the table-dump feature. Plus
+      bug-fixes and help.
+    - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin
+      language-independent by outsourcing the strings to a separate file. He
+      also contributed the French translation.
+    - Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed
+      tbl_select.php3, a feature to display only some fields from a table.
+    - Chris Jackson <chrisj_at_ctel.net> added support for MySQL
+      functions in tbl_change.php3. He also added the
+      "Query by Example" feature in 2.0.
+    - Dave Walton <walton_at_nordicdms.com> added support for multiple
+      servers and is a regular contributor for bug-fixes.
+    - Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access
+      features for 2.0.6.
+    The following people have contributed minor changes, enhancements, bugfixes
+    or support for a new language:
+    Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
+    Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
+    Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
+    G. Wieggers.
+
+    And thanks to everyone else who sent me email with suggestions, bug-reports
+    and or just some feedback.
+
+ +

Glossary

+ +

From Wikipedia, the free encyclopedia

+ + + +

+ + Valid XHTML 1.1 + + Valid CSS!

+ + +