+ +
+

Configuration

+

All configurable data is placed in config.inc.php in phpMyAdmin’s +toplevel directory. If this file does not exist, please refer to the +Installation 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 (this file is not inteded for changes).

+
+

See also

+

Examples for examples of configurations

+
+

If a directive is missing from your file, you can just add another line with +the file. This file is for over-writing the defaults; if you wish to use the +default value there’s no need to add a line here.

+

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.

+
+

Note

+

Some distributions (eg. Debian or Ubuntu) store config.inc.php in +/etc/phpmyadmin instead of within phpMyAdmin sources.

+
+
+

Warning

+

Mac users should note that if you are on a version before +Mac OS X, 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.

+
+
+

Basic settings

+
+
+$cfg['PmaAbsoluteUri']
+
+++ + + + + + +
Type:string
Default value:''
+
+

Changed in version 4.6.5: This setting was not available in phpMyAdmin 4.6.0 - 4.6.4.

+
+

Sets here the complete URL (with full path) to your phpMyAdmin +installation’s directory. E.g. +https://www.example.net/path_to_your_phpMyAdmin_directory/. Note also +that the URL on most of web servers are case sensitive (even on +Windows). 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 or complex reverse proxy setup might need to set this.

+

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']
+
+++ + + + + + +
Type:boolean
Default value:false
+

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['AuthLog']
+
+++ + + + + + +
Type:string
Default value:'auto'
+
+

New in version 4.8.0: This is supported since phpMyAdmin 4.8.0.

+
+

Configure authentication logging destination. Failed (or all, depending on +$cfg['AuthLogSuccess']) authentication attempts will be +logged according to this directive:

+
+
auto
+
Let phpMyAdmin automatically choose between syslog and php.
+
syslog
+
Log using syslog, using AUTH facility, on most systems this ends up +in /var/log/auth.log.
+
php
+
Log into PHP error log.
+
sapi
+
Log into PHP SAPI logging.
+
/path/to/file
+
Any other value is treated as a filename and log entries are written there.
+
+
+

Note

+

When logging to a file, make sure its permissions are correctly set +for a web server user, the setup should closely match instructions +described in $cfg['TempDir']:

+
+
+ +
+
+$cfg['AuthLogSuccess']
+
+++ + + + + + +
Type:boolean
Default value:false
+
+

New in version 4.8.0: This is supported since phpMyAdmin 4.8.0.

+
+

Whether to log successful authentication attempts into +$cfg['AuthLog'].

+
+ +
+
+$cfg['SuhosinDisableWarning']
+
+++ + + + + + +
Type:boolean
Default value:false
+

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['LoginCookieValidityDisableWarning']
+
+++ + + + + + +
Type:boolean
Default value:false
+

A warning is displayed on the main page if the PHP parameter +session.gc_maxlifetime is lower than cookie validity configured in phpMyAdmin.

+

You can set this parameter to true to stop this message from appearing.

+
+ +
+
+$cfg['ServerLibraryDifference_DisableWarning']
+
+++ + + + + + +
Type:boolean
Default value:false
+
+

Deprecated since version 4.7.0: This setting was removed as the warning has been removed as well.

+
+

A warning is displayed on the main page if there is a difference +between the MySQL library and server version.

+

You can set this parameter to true to stop this message from appearing.

+
+ +
+
+$cfg['ReservedWordDisableWarning']
+
+++ + + + + + +
Type:boolean
Default value:false
+

This warning is displayed on the Structure page of a table if one or more +column names match with words which are MySQL reserved.

+

If you want to turn off this warning, you can set it to true and +warning will no longer be displayed.

+
+ +
+
+$cfg['TranslationWarningThreshold']
+
+++ + + + + + +
Type:integer
Default value:80
+

Show warning about incomplete translations on certain threshold.

+
+ +
+
+$cfg['SendErrorReports']
+
+++ + + + + + +
Type:string
Default value:'ask'
+

Sets the default behavior for JavaScript error reporting.

+

Whenever an error is detected in the JavaScript execution, an error report +may be sent to the phpMyAdmin team if the user agrees.

+

The default setting of 'ask' will ask the user everytime there is a new +error report. However you can set this parameter to 'always' to send error +reports without asking for confirmation or you can set it to 'never' to +never send error reports.

+

This directive is available both in the configuration file and in users +preferences. If the person in charge of a multi-user installation prefers +to disable this feature for all users, a value of 'never' should be +set, and the $cfg['UserprefsDisallow'] directive should +contain 'SendErrorReports' in one of its array values.

+
+ +
+
+$cfg['ConsoleEnterExecutes']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Setting this to true allows the user to execute queries by pressing Enter +instead of Ctrl+Enter. A new line can be inserted by pressing Shift + Enter.

+

The behaviour of the console can be temporarily changed using console’s +settings interface.

+
+ +
+
+$cfg['AllowThirdPartyFraming']
+
+++ + + + + + +
Type:boolean|string
Default value:false
+

Setting this to true allows phpMyAdmin to be included inside a frame, +and is a potential security hole allowing cross-frame scripting attacks or +clickjacking. Setting this to ‘sameorigin’ prevents phpMyAdmin to be +included from another document in a frame, unless that document belongs +to the same domain.

+
+ +
+
+

Server connection settings

+
+
+$cfg['Servers']
+
+++ + + + + + +
Type:array
Default value:one server array with settings listed below
+

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

+
+

Note

+

The $cfg['Servers'] array starts with +$cfg[‘Servers’][1]. Do not use $cfg[‘Servers’][0]. If you want more +than one server, just copy following section (including $i +incrementation) serveral times. There is no need to define full server +array, just define values you need to change.

+
+
+ +
+
+$cfg['Servers'][$i]['host']
+
+++ + + + + + +
Type:string
Default value:'localhost'
+

The hostname or IP address of your $i-th MySQL-server. E.g. +localhost.

+

Possible values are:

+
    +
  • hostname, e.g., 'localhost' or 'mydb.example.org'
  • +
  • IP address, e.g., '127.0.0.1' or '192.168.10.1'
  • +
  • IPv6 address, e.g. 2001:cdba:0000:0000:0000:0000:3257:9652
  • +
  • dot - '.', i.e., use named pipes on windows systems
  • +
  • empty - '', disables this server
  • +
+
+

Note

+

The hostname localhost is handled specially by MySQL and it uses +the socket based connection protocol. To use TCP/IP networking, use an +IP address or hostname such as 127.0.0.1 or db.example.com. You +can configure the path to the socket with +$cfg['Servers'][$i]['socket'].

+
+ +
+ +
+
+$cfg['Servers'][$i]['port']
+
+++ + + + + + +
Type:string
Default value:''
+

The port-number of your $i-th MySQL-server. Default is 3306 (leave +blank).

+
+

Note

+

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']
+
+++ + + + + + +
Type:string
Default value:''
+

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.

+
+

Note

+

This takes effect only if $cfg['Servers'][$i]['host'] is set +to localhost.

+
+ +
+ +
+
+$cfg['Servers'][$i]['ssl']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Whether to enable SSL for the connection between phpMyAdmin and the MySQL +server to secure the connection.

+

When using the 'mysql' extension, +none of the remaining 'ssl...' configuration options apply.

+

We strongly recommend the 'mysqli' extension when using this option.

+ +
+ +
+
+$cfg['Servers'][$i]['ssl_key']
+
+++ + + + + + +
Type:string
Default value:NULL
+

Path to the client key file when using SSL for connecting to the MySQL +server. This is used to authenticate the client to the server.

+

For example:

+
$cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/server-key.pem';
+
+
+ +
+ +
+
+$cfg['Servers'][$i]['ssl_cert']
+
+++ + + + + + +
Type:string
Default value:NULL
+

Path to the client certificate file when using SSL for connecting to the +MySQL server. This is used to authenticate the client to the server.

+ +
+ +
+
+$cfg['Servers'][$i]['ssl_ca']
+
+++ + + + + + +
Type:string
Default value:NULL
+

Path to the CA file when using SSL for connecting to the MySQL server.

+ +
+ +
+
+$cfg['Servers'][$i]['ssl_ca_path']
+
+++ + + + + + +
Type:string
Default value:NULL
+

Directory containing trusted SSL CA certificates in PEM format.

+ +
+ +
+
+$cfg['Servers'][$i]['ssl_ciphers']
+
+++ + + + + + +
Type:string
Default value:NULL
+

List of allowable ciphers for SSL connections to the MySQL server.

+ +
+ +
+
+$cfg['Servers'][$i]['ssl_verify']
+
+++ + + + + + +
Type:boolean
Default value:true
+
+

New in version 4.6.0: This is supported since phpMyAdmin 4.6.0.

+
+

If your PHP install uses the MySQL Native Driver (mysqlnd), your +MySQL server is 5.6 or later, and your SSL certificate is self-signed, +there is a chance your SSL connection will fail due to validation. +Setting this to false will disable the validation check.

+

Since PHP 5.6.0 it also verifies whether server name matches CN of its +certificate. There is currently no way to disable just this check without +disabling complete SSL verification.

+
+

Warning

+

Disabling the certificate verification defeats purpose of using SSL. +This will make the connection vulnerable to man in the middle attacks.

+
+
+

Note

+

This flag only works with PHP 5.6.16 or later.

+
+ +
+ +
+
+$cfg['Servers'][$i]['connect_type']
+
+++ + + + + + +
Type:string
Default value:'tcp'
+
+

Deprecated since version 4.7.0: This setting is no longer used as of 4.7.0, since MySQL decides the +connection type based on host, so it could lead to unexpected results. +Please set $cfg['Servers'][$i]['host'] accordingly +instead.

+
+

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]['compress']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Whether to use a compressed protocol for the MySQL server connection +or not (experimental).

+
+ +
+
+$cfg['Servers'][$i]['controlhost']
+
+++ + + + + + +
Type:string
Default value:''
+

Permits to use an alternate host to hold the configuration storage +data.

+ +
+ +
+
+$cfg['Servers'][$i]['controlport']
+
+++ + + + + + +
Type:string
Default value:''
+

Permits to use an alternate port to connect to the host that +holds the configuration storage.

+ +
+ +
+
+$cfg['Servers'][$i]['controluser']
+
+++ + + + + + +
Type:string
Default value:''
+
+ +
+
+$cfg['Servers'][$i]['controlpass']
+
+++ + + + + + +
Type:string
Default value:''
+

This special account is used to access phpMyAdmin configuration storage. +You don’t need it in single user case, but if phpMyAdmin is shared it +is recommended to give access to phpMyAdmin configuration storage only to this user +and configure phpMyAdmin to use it. All users will then be able to use +the features without need to have direct access to phpMyAdmin configuration storage.

+
+

Changed in version 2.2.5: those were called stduser and stdpass

+
+ +
+ +
+
+$cfg['Servers'][$i]['control_*']
+
+++ + + + +
Type:mixed
+
+

New in version 4.7.0.

+
+

You can change any MySQL connection setting for control link (used to +access phpMyAdmin configuration storage) using configuration prefixed with control_.

+

This can be used to change any aspect of the control connection, which by +default uses same parameters as the user one.

+

For example you can configure SSL for the control connection:

+
// Enable SSL
+$cfg['Servers'][$i]['control_ssl'] = true;
+// Client secret key
+$cfg['Servers'][$i]['control_ssl_key'] = '../client-key.pem';
+// Client certificate
+$cfg['Servers'][$i]['control_ssl_cert'] = '../client-cert.pem';
+// Server certification authority
+$cfg['Servers'][$i]['control_ssl_ca'] = '../server-ca.pem';
+
+
+ +
+ +
+
+$cfg['Servers'][$i]['auth_type']
+
+++ + + + + + +
Type:string
Default value:'cookie'
+

Whether config or cookie or HTTP or signon authentication should be +used for this server.

+
    +
  • ‘config’ authentication ($auth_type = 'config') is the plain old +way: username and password are stored in config.inc.php.
  • +
  • ‘cookie’ authentication mode ($auth_type = 'cookie') allows you to +log in as any valid MySQL user with the help of cookies.
  • +
  • ‘http’ authentication allows you to log in as any +valid MySQL user via HTTP-Auth.
  • +
  • ‘signon’ authentication mode ($auth_type = 'signon') allows you to +log in from prepared PHP session data or using supplied PHP script.
  • +
+ +
+ +
+
+$cfg['Servers'][$i]['auth_http_realm']
+
+++ + + + + + +
Type:string
Default value:''
+

When using auth_type = http, this field allows to define a custom +HTTP Basic Auth Realm which will be displayed to the user. If not +explicitly specified in your configuration, a string combined of +“phpMyAdmin ” and either $cfg['Servers'][$i]['verbose'] or +$cfg['Servers'][$i]['host'] will be used.

+
+ +
+
+$cfg['Servers'][$i]['user']
+
+++ + + + + + +
Type:string
Default value:'root'
+
+ +
+
+$cfg['Servers'][$i]['password']
+
+++ + + + + + +
Type:string
Default value:''
+

When using $cfg['Servers'][$i]['auth_type'] set to +‘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']
+
+++ + + + + + +
Type:boolean
Default value:false
+
+

Deprecated since version 4.7.0: This setting was removed as it can produce unexpected results.

+
+

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']
+
+++ + + + + + +
Type:string or array
Default value:''
+

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');
+
+
+
+

Changed in version 4.0.0: Previous versions permitted to specify the display order of +the database names via this directive.

+
+
+ +
+
+$cfg['Servers'][$i]['hide_db']
+
+++ + + + + + +
Type:string
Default value:''
+

Regular expression for hiding some databases from unprivileged users. +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']
+
+++ + + + + + +
Type:string
Default value:''
+

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]['extension']
+
+++ + + + + + +
Type:string
Default value:'mysqli'
+
+

Deprecated since version 4.2.0: This setting was removed. The mysql extension will only be used when +the mysqli extension is not available. As of 5.0.0, only the +mysqli extension can be used.

+
+

The PHP MySQL extension to use (mysql or mysqli).

+

It is recommended to use mysqli in all installations.

+
+ +
+
+$cfg['Servers'][$i]['pmadb']
+
+++ + + + + + +
Type:string
Default value:''
+

The name of the database containing the phpMyAdmin configuration +storage.

+

See the phpMyAdmin configuration storage section in this document to see the benefits of +this feature, 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 phpMyAdmin configuration storage.

+
+ +
+
+$cfg['Servers'][$i]['bookmarktable']
+
+++ + + + + + +
Type:string or false
Default value:''
+

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:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['relation']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 2.2.4 you can describe, in a special ‘relation’ table, +which column 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:

+
    +
  • set up $cfg['Servers'][$i]['pmadb'] and the phpMyAdmin configuration storage
  • +
  • put the relation table name in $cfg['Servers'][$i]['relation']
  • +
  • now as normal user open phpMyAdmin and for each one of your tables +where you want to use this feature, click Structure/Relation view/ +and choose foreign columns.
  • +
+

This feature can be disabled by setting the configuration to false.

+
+

Note

+

In the current version, master_db must be the same as foreign_db. +Those columns have been put in future development of the cross-db +relations.

+
+
+ +
+
+$cfg['Servers'][$i]['table_info']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 2.3.0 you can describe, in a special ‘table_info’ +table, which column 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:

+ +

This feature can be disabled by setting the configuration to false.

+ +
+ +
+
+$cfg['Servers'][$i]['table_coords']
+
+++ + + + + + +
Type:string or false
Default value:''
+

The designer feature can save your page layout; by pressing the “Save page” or “Save page as” +button in the expanding designer menu, you can customize the layout and have it loaded the next +time you use the designer. That layout is stored in this table. Furthermore, this table is also +required for using the PDF relation export feature, see +$cfg['Servers'][$i]['pdf_pages'] for additional details.

+
+ +
+
+$cfg['Servers'][$i]['pdf_pages']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 2.3.0 you can have phpMyAdmin create PDF pages +showing the relations between your tables. Further, the designer interface +permits visually managing the relations. 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:

+ +

This feature can be disabled by setting either of the configurations to false.

+ +
+ +
+
+$cfg['Servers'][$i]['column_info']
+
+++ + + + + + +
Type:string or false
Default value:''
+

This part requires a content update! 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 columns ‘mimetype’, +‘transformation’, ‘transformation_options’.

+

Starting with release 4.3.0, a new input-oriented transformation system +has been introduced. Also, backward compatibility code used in the old +transformations system was removed. As a result, an update to column_info +table is necessary for previous transformations and the new input-oriented +transformation system to work. phpMyAdmin will upgrade it automatically +for you by analyzing your current column_info table structure. +However, if something goes wrong with the auto-upgrade then you can +use the SQL script found in ./sql/upgrade_column_info_4_3_0+.sql +to upgrade it manually.

+

To allow the usage of this functionality:

+
    +
  • set up $cfg['Servers'][$i]['pmadb'] and the phpMyAdmin configuration storage

    +
  • +
  • put the table name in $cfg['Servers'][$i]['column_info'] (e.g. +pma__column_info)

    +
  • +
  • to update your PRE-2.5.0 Column_comments table use this: and +remember that the Variable in config.inc.php has been renamed from +$cfg['Servers'][$i]['column_comments'] to +$cfg['Servers'][$i]['column_info']

    +
    ALTER TABLE `pma__column_comments`
    +ADD `mimetype` VARCHAR( 255 ) NOT NULL,
    +ADD `transformation` VARCHAR( 255 ) NOT NULL,
    +ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
    +
    +
    +
  • +
  • to update your PRE-4.3.0 Column_info table manually use this +./sql/upgrade_column_info_4_3_0+.sql SQL script.

    +
  • +
+

This feature can be disabled by setting the configuration to false.

+
+

Note

+

For auto-upgrade functionality to work, your +$cfg['Servers'][$i]['controluser'] must have ALTER privilege on +phpmyadmin database. See the MySQL documentation for GRANT on how to +GRANT privileges to a user.

+
+
+ +
+
+$cfg['Servers'][$i]['history']
+
+++ + + + + + +
Type:string or false
Default value:''
+

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:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['recent']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 3.5.0 you can show recently used tables in the +navigation panel. It helps you to jump across table directly, without +the need to select the database, and then select the table. Using +$cfg['NumRecentTables'] you can configure the maximum number +of recent tables shown. When you select a table from the list, it will jump to +the page specified in $cfg['NavigationTreeDefaultTabTable'].

+

Without configuring the storage, you can still access the recently used tables, +but it will disappear after you logout.

+

To allow the usage of this functionality persistently:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['favorite']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 4.2.0 you can show a list of selected tables in the +navigation panel. It helps you to jump to the table directly, without +the need to select the database, and then select the table. When you +select a table from the list, it will jump to the page specified in +$cfg['NavigationTreeDefaultTabTable'].

+

You can add tables to this list or remove tables from it in database +structure page by clicking on the star icons next to table names. Using +$cfg['NumFavoriteTables'] you can configure the maximum +number of favorite tables shown.

+

Without configuring the storage, you can still access the favorite tables, +but it will disappear after you logout.

+

To allow the usage of this functionality persistently:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['table_uiprefs']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 3.5.0 phpMyAdmin can be configured to remember several +things (sorted column $cfg['RememberSorting'], column order, +and column visibility from a database table) for browsing tables. Without +configuring the storage, these features still can be used, but the values will +disappear after you logout.

+

To allow the usage of these functionality persistently:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['users']
+
+++ + + + + + +
Type:string or false
Default value:''
+
+ +
+
+$cfg['Servers'][$i]['usergroups']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 4.1.0 you can create different user groups with menu items +attached to them. Users can be assigned to these groups and the logged in +user would only see menu items configured to the usergroup he is assigned to. +To do this it needs two tables “usergroups” (storing allowed menu items for each +user group) and “users” (storing users and their assignments to user groups).

+

To allow the usage of this functionality:

+ +

This feature can be disabled by setting either of the configurations to false.

+ +
+ +
+
+$cfg['Servers'][$i]['navigationhiding']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 4.1.0 you can hide/show items in the navigation tree.

+

To allow the usage of this functionality:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['central_columns']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 4.3.0 you can have a central list of columns per database. +You can add/remove columns to the list as per your requirement. These columns +in the central list will be available to use while you create a new column for +a table or create a table itself. You can select a column from central list +while creating a new column, it will save you from writing the same column definition +over again or from writing different names for similar column.

+

To allow the usage of this functionality:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['designer_settings']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 4.5.0 your designer settings can be remembered. +Your choice regarding ‘Angular/Direct Links’, ‘Snap to Grid’, ‘Toggle Relation Lines’, +‘Small/Big All’, ‘Move Menu’ and ‘Pin Text’ can be remembered persistently.

+

To allow the usage of this functionality:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['savedsearches']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 4.2.0 you can save and load query-by-example searches from the Database > Query panel.

+

To allow the usage of this functionality:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['export_templates']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 4.5.0 you can save and load export templates.

+

To allow the usage of this functionality:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['tracking']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 3.3.x a tracking mechanism is available. It helps you to +track every SQL command which is +executed by phpMyAdmin. The mechanism supports logging of data +manipulation and data definition statements. After enabling it you can +create versions of tables.

+

The creation of a version has two effects:

+
    +
  • phpMyAdmin saves a snapshot of the table, including structure and +indexes.
  • +
  • phpMyAdmin logs all commands which change the structure and/or data of +the table and links these commands with the version number.
  • +
+

Of course you can view the tracked changes. On the Tracking +page a complete report is available for every version. For the report you +can use filters, for example you can get a list of statements within a date +range. When you want to filter usernames you can enter * for all names or +you enter a list of names separated by ‘,’. In addition you can export the +(filtered) report to a file or to a temporary database.

+

To allow the usage of this functionality:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['tracking_version_auto_create']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Whether the tracking mechanism creates versions for tables and views +automatically.

+

If this is set to true and you create a table or view with

+
    +
  • CREATE TABLE ...
  • +
  • CREATE VIEW ...
  • +
+

and no version exists for it, the mechanism will create a version for +you automatically.

+
+ +
+
+$cfg['Servers'][$i]['tracking_default_statements']
+
+++ + + + + + +
Type:string
Default value:'CREATE TABLE,ALTER TABLE,DROP TABLE,RENAME TABLE,CREATE INDEX,DROP INDEX,INSERT,UPDATE,DELETE,TRUNCATE,REPLACE,CREATE VIEW,ALTER VIEW,DROP VIEW,CREATE DATABASE,ALTER DATABASE,DROP DATABASE'
+

Defines the list of statements the auto-creation uses for new +versions.

+
+ +
+
+$cfg['Servers'][$i]['tracking_add_drop_view']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether a DROP VIEW IF EXISTS statement will be added as first line to +the log when creating a view.

+
+ +
+
+$cfg['Servers'][$i]['tracking_add_drop_table']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether a DROP TABLE IF EXISTS statement will be added as first line +to the log when creating a table.

+
+ +
+
+$cfg['Servers'][$i]['tracking_add_drop_database']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether a DROP DATABASE IF EXISTS statement will be added as first +line to the log when creating a database.

+
+ +
+
+$cfg['Servers'][$i]['userconfig']
+
+++ + + + + + +
Type:string or false
Default value:''
+

Since release 3.4.x phpMyAdmin allows users to set most preferences by +themselves and store them in the database.

+

If you don’t allow for storing preferences in +$cfg['Servers'][$i]['pmadb'], users can still personalize +phpMyAdmin, but settings will be saved in browser’s local storage, or, it +is is unavailable, until the end of session.

+

To allow the usage of this functionality:

+ +

This feature can be disabled by setting the configuration to false.

+
+ +
+
+$cfg['Servers'][$i]['MaxTableUiprefs']
+
+++ + + + + + +
Type:integer
Default value:100
+

Maximum number of rows saved in +$cfg['Servers'][$i]['table_uiprefs'] table.

+

When tables are dropped or renamed, +$cfg['Servers'][$i]['table_uiprefs'] may contain invalid data +(referring to tables which no longer exist). We only keep this number of newest +rows in $cfg['Servers'][$i]['table_uiprefs'] and automatically +delete older rows.

+
+ +
+
+$cfg['Servers'][$i]['SessionTimeZone']
+
+++ + + + + + +
Type:string
Default value:''
+

Sets the time zone used by phpMyAdmin. Leave blank to use the time zone of your +database server. Possible values are explained at +https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html

+

This is useful when your database server uses a time zone which is different from the +time zone you want to use in phpMyAdmin.

+
+ +
+
+$cfg['Servers'][$i]['AllowRoot']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether to allow root access. This is just a shortcut for the +$cfg['Servers'][$i]['AllowDeny']['rules'] below.

+
+ +
+
+$cfg['Servers'][$i]['AllowNoPassword']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Whether to allow logins without a password. The default value of +false for this parameter prevents unintended access to a MySQL +server with was left with an empty password for root or on which an +anonymous (blank) user is defined.

+
+ +
+
+$cfg['Servers'][$i]['AllowDeny']['order']
+
+++ + + + + + +
Type:string
Default value:''
+

If your rule order is empty, then IP +authorization 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', authorization 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']
+
+++ + + + + + +
Type:array of strings
Default value:array()
+

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 address 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)
  • +
+

For IPv6 addresses, the following work:

+
    +
  • xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx (an exact IPv6 address)
  • +
  • xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:[yyyy-zzzz] (an IPv6 address range)
  • +
  • xxxx:xxxx:xxxx:xxxx/nn (CIDR, Classless Inter-Domain Routing type IPv6 addresses)
  • +
+

But the following does not work:

+
    +
  • xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xx[yyy-zzz] (partial IPv6 address range)
  • +
+

Examples:

+
$cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny';
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array('allow bob from all');
+// Allow only 'bob' to connect from any host
+
+$cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny';
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array('allow mary from 192.168.100.[50-100]');
+// Allow only 'mary' to connect from host 192.168.100.50 through 192.168.100.100
+
+$cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny';
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array('allow % from 192.168.[5-6].10');
+// Allow any user to connect from host 192.168.5.10 or 192.168.6.10
+
+$cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny';
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array('allow root from 192.168.5.50','allow % from 192.168.6.10');
+// Allow any user to connect from 192.168.6.10, and additionally allow root to connect from 192.168.5.50
+
+
+
+ +
+
+$cfg['Servers'][$i]['DisableIS']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Disable using INFORMATION_SCHEMA to retrieve information (use +SHOW commands instead), because of speed issues when many +databases are present.

+
+

Note

+

Enabling this option might give you a big performance boost on older +MySQL servers.

+
+
+ +
+
+$cfg['Servers'][$i]['SignonScript']
+
+++ + + + + + +
Type:string
Default value:''
+
+

New in version 3.5.0.

+
+

Name of PHP script to be sourced and executed to obtain login +credentials. This is alternative approach to session based single +signon. The script has to provide a function called +get_login_credentials which returns list of username and +password, accepting single parameter of existing username (can be +empty). See examples/signon-script.php for an example:

+
<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Single signon for phpMyAdmin
+ *
+ * This is just example how to use script based single signon with
+ * phpMyAdmin, it is not intended to be perfect code and look, only
+ * shows how you can integrate this functionality in your application.
+ *
+ * @package    PhpMyAdmin
+ * @subpackage Example
+ */
+declare(strict_types=1);
+
+/**
+ * This function returns username and password.
+ *
+ * It can optionally use configured username as parameter.
+ *
+ * @param string $user User name
+ *
+ * @return array
+ */
+function get_login_credentials($user)
+{
+    /* Optionally we can use passed username */
+    if (! empty($user)) {
+        return [
+            $user,
+            'password',
+        ];
+    }
+
+    /* Here we would retrieve the credentials */
+    return [
+        'root',
+        '',
+    ];
+}
+
+
+ +
+ +
+
+$cfg['Servers'][$i]['SignonSession']
+
+++ + + + + + +
Type:string
Default value:''
+

Name of session which will be used for signon authentication method. +You should use something different than phpMyAdmin, because this +is session which phpMyAdmin uses internally. Takes effect only if +$cfg['Servers'][$i]['SignonScript'] is not configured.

+ +
+ +
+
+$cfg['Servers'][$i]['SignonCookieParams']
+
+++ + + + + + +
Type:array
Default value:array()
+
+

New in version 4.7.0.

+
+

An associative array of session cookie parameters of other authentication system. +It is not needed if the other system doesn’t use session_set_cookie_params(). +Keys should include ‘lifetime’, ‘path’, ‘domain’, ‘secure’ or ‘httponly’. +Valid values are mentioned in session_get_cookie_params, they should be set to same values as the +other application uses. Takes effect only if +$cfg['Servers'][$i]['SignonScript'] is not configured.

+ +
+ +
+
+$cfg['Servers'][$i]['SignonURL']
+
+++ + + + + + +
Type:string
Default value:''
+

URL where user will be redirected +to log in for signon authentication method. Should be absolute +including protocol.

+ +
+ +
+
+$cfg['Servers'][$i]['LogoutURL']
+
+++ + + + + + +
Type:string
Default value:''
+

URL where user will be redirected +after logout (doesn’t affect config authentication method). Should be +absolute including protocol.

+
+ +
+
+

Generic settings

+
+
+$cfg['DisableShortcutKeys']
+
+++ + + + + + +
Type:boolean
Default value:false
+

You can disable phpMyAdmin shortcut keys by setting $cfg['DisableShortcutKeys'] to false.

+
+ +
+
+$cfg['ServerDefault']
+
+++ + + + + + +
Type:integer
Default value:1
+

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['VersionCheck']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Enables check for latest versions using JavaScript on the main phpMyAdmin +page or by directly accessing version_check.php.

+
+

Note

+

This setting can be adjusted by your vendor.

+
+
+ +
+
+$cfg['ProxyUrl']
+
+++ + + + + + +
Type:string
Default value:“”
+

The url of the proxy to be used when phpmyadmin needs to access the outside +internet such as when retrieving the latest version info or submitting error +reports. You need this if the server where phpMyAdmin is installed does not +have direct access to the internet. +The format is: “hostname:portnumber”

+
+ +
+
+$cfg['ProxyUser']
+
+++ + + + + + +
Type:string
Default value:“”
+

The username for authenticating with the proxy. By default, no +authentication is performed. If a username is supplied, Basic +Authentication will be performed. No other types of authentication +are currently supported.

+
+ +
+
+$cfg['ProxyPass']
+
+++ + + + + + +
Type:string
Default value:“”
+

The password for authenticating with the proxy.

+
+ +
+
+$cfg['MaxDbList']
+
+++ + + + + + +
Type:integer
Default value:100
+

The maximum number of database names to be displayed in the main panel’s +database list.

+
+ +
+
+$cfg['MaxTableList']
+
+++ + + + + + +
Type:integer
Default value:250
+

The maximum number of table names to be displayed in the main panel’s +list (except on the Export page).

+
+ +
+
+$cfg['ShowHint']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether or not to show hints (for example, hints when hovering over +table headers).

+
+ +
+
+$cfg['MaxCharactersInDisplayedSQL']
+
+++ + + + + + +
Type:integer
Default value:1000
+

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['PersistentConnections']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Whether persistent connections should be used or not. Works with +following extensions:

+ +
+ +
+
+$cfg['ForceSSL']
+
+++ + + + + + +
Type:boolean
Default value:false
+
+

Deprecated since version 4.6.0: This setting is no longer available since phpMyAdmin 4.6.0. Please +adjust your webserver instead.

+
+

Whether to force using https while accessing phpMyAdmin. In a reverse +proxy setup, setting this to true is not supported.

+
+

Note

+

In some setups (like separate SSL proxy or load balancer) you might +have to set $cfg['PmaAbsoluteUri'] for correct +redirection.

+
+
+ +
+
+$cfg['ExecTimeLimit']
+
+++ + + + + + +
Type:integer [number of seconds]
Default value:300
+

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['SessionSavePath']
+
+++ + + + + + +
Type:string
Default value:''
+

Path for storing session data (session_save_path PHP parameter).

+
+

Warning

+

This folder should not be publicly accessible through the webserver, +otherwise you risk leaking private data from your session.

+
+
+ +
+
+$cfg['MemoryLimit']
+
+++ + + + + + +
Type:string [number of bytes]
Default value:'-1'
+

Set the number of bytes a script is allowed to allocate. If set to +'-1', no limit is imposed. If set to '0', no change of the +memory limit is attempted and the php.ini memory_limit is +used.

+

This setting is used while importing/exporting dump files +so you definitely don’t want to put here a too low +value. It has no effect when PHP is running in safe mode.

+

You can also use any string as in php.ini, eg. ‘16M’. Ensure you +don’t omit the suffix (16 means 16 bytes!)

+
+ +
+
+$cfg['SkipLockedTables']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Mark used tables and make it possible to show databases with locked +tables (since MySQL 3.23.30).

+
+ +
+
+$cfg['ShowSQL']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether SQL queries +generated by phpMyAdmin should be displayed or not.

+
+ +
+
+$cfg['RetainQueryBox']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines whether the SQL query box +should be kept displayed after its submission.

+
+ +
+
+$cfg['CodemirrorEnable']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether to use a Javascript code editor for SQL query boxes. +CodeMirror provides syntax highlighting and line numbers. However, +middle-clicking for pasting the clipboard contents in some Linux +distributions (such as Ubuntu) is not supported by all browsers.

+
+ +
+
+$cfg['DefaultForeignKeyChecks']
+
+++ + + + + + +
Type:string
Default value:'default'
+

Default value of the checkbox for foreign key checks, to disable/enable +foreign key checks for certain queries. The possible values are 'default', +'enable' or 'disable'. If set to 'default', the value of the +MySQL variable FOREIGN_KEY_CHECKS is used.

+
+ +
+
+$cfg['AllowUserDropDatabase']
+
+++ + + + + + +
Type:boolean
Default value:false
+
+

Warning

+

This is not a security measure as there will be always ways to +circumvent this. If you want to prohibit users from dropping databases, +revoke their corresponding DROP privilege.

+
+

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.

+

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']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether a warning (“Are your really sure...”) should be displayed when +you’re about to lose data.

+
+ +
+
+$cfg['UseDbSearch']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Define whether the “search string inside database” is enabled or not.

+
+ +
+
+$cfg['IgnoreMultiSubmitErrors']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Define whether phpMyAdmin will continue executing a multi-query +statement if one of the queries fails. Default is to abort execution.

+
+ +
+
+$cfg['enable_drag_drop_import']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether or not the drag and drop import feature is enabled. +When enabled, a user can drag a file in to their browser and phpMyAdmin will +attempt to import the file.

+
+ +
+ + +
+

Main panel

+
+
+$cfg['ShowStats']
+
+++ + + + + + +
Type:boolean
Default value:true
+

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']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether to display detailed server information on main page. +You can additionally hide more information by using +$cfg['Servers'][$i]['verbose'].

+
+ +
+
+$cfg['ShowPhpInfo']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines whether to display the PHP information or not at +the starting main (right) frame.

+

Please note that to block the usage of phpinfo() in scripts, you have to +put this in your php.ini:

+
disable_functions = phpinfo()
+
+
+
+

Warning

+

Enabling phpinfo page will leak quite a lot of information about server +setup. Is it not recommended to enable this on shared installations.

+

This might also make easier some remote attacks on your installations, +so enable this only when needed.

+
+
+ +
+
+$cfg['ShowChgPassword']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether to display the Change password link or not at +the starting main (right) frame. This setting does not check MySQL commands +entered directly.

+

Please 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['ShowCreateDb']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether to display the form for creating database or not at the +starting main (right) frame. This setting does not check MySQL commands +entered directly.

+
+ +
+
+$cfg['ShowGitRevision']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether to display informations about the current Git revision (if +applicable) on the main panel.

+
+ +
+
+$cfg['MysqlMinVersion']
+
+++ + + + +
Type:array
+

Defines the minimum supported MySQL version. The default is chosen +by the phpMyAdmin team; however this directive was asked by a developer +of the Plesk control panel to ease integration with older MySQL servers +(where most of the phpMyAdmin features work).

+
+ +
+
+

Database structure

+
+
+$cfg['ShowDbStructureCreation']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines whether the database structure page (tables list) has a +“Creation” column that displays when each table was created.

+
+ +
+
+$cfg['ShowDbStructureLastUpdate']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines whether the database structure page (tables list) has a “Last +update” column that displays when each table was last updated.

+
+ +
+
+$cfg['ShowDbStructureLastCheck']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines whether the database structure page (tables list) has a “Last +check” column that displays when each table was last checked.

+
+ +
+
+$cfg['HideStructureActions']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether the table structure actions are hidden under a “More” +drop-down.

+
+ +
+
+$cfg['ShowColumnComments']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether to show column comments as a column in the table structure view.

+
+ +
+
+

Browse mode

+
+
+$cfg['TableNavigationLinksMode']
+
+++ + + + + + +
Type:string
Default value:'icons'
+

Defines whether the table navigation links contain 'icons', 'text' +or 'both'.

+
+ +
+
+$cfg['ActionLinksMode']
+
+++ + + + + + +
Type:string
Default value:'both'
+

If set to icons, 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 text, will only show text.

+
+ +
+
+$cfg['RowActionType']
+
+++ + + + + + +
Type:string
Default value:'both'
+

Whether to display icons or text or both icons and text in table row action +segment. Value can be either of 'icons', 'text' or 'both'.

+
+ +
+
+$cfg['ShowAll']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines whether a user should be displayed a “Show all” button in browse +mode or not in all cases. By default it is shown only on small tables (less +than 500 rows) to avoid performance issues while getting too many rows.

+
+ +
+
+$cfg['MaxRows']
+
+++ + + + + + +
Type:integer
Default value:25
+

Number of rows displayed when browsing a result set and no LIMIT +clause is used. If the result set contains more rows, “Previous” and +“Next” links will be shown. Possible values: 25,50,100,250,500.

+
+ +
+
+$cfg['Order']
+
+++ + + + + + +
Type:string
Default value:'SMART'
+

Defines whether columns are displayed in ascending (ASC) order, in +descending (DESC) order or in a “smart” (SMART) order - I.E. +descending order for columns of type TIME, DATE, DATETIME and +TIMESTAMP, ascending order else- by default.

+
+

Changed in version 3.4.0: Since phpMyAdmin 3.4.0 the default value is 'SMART'.

+
+
+ +
+
+$cfg['GridEditing']
+
+++ + + + + + +
Type:string
Default value:'double-click'
+

Defines which action (double-click or click) triggers grid +editing. Can be deactivated with the disabled value.

+
+ +
+
+$cfg['RelationalDisplay']
+
+++ + + + + + +
Type:string
Default value:'K'
+

Defines the initial behavior for Options > Relational. K, which +is the default, displays the key while D shows the display column.

+
+ +
+
+$cfg['SaveCellsAtOnce']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines whether or not to save all edited cells at once for grid +editing.

+
+ +
+
+

Editing mode

+
+
+$cfg['ProtectBinary']
+
+++ + + + + + +
Type:boolean or string
Default value:'blob'
+

Defines whether BLOB or BINARY columns are protected from +editing when browsing a table’s content. Valid values are:

+
    +
  • false to allow editing of all columns;
  • +
  • 'blob' to allow editing of all columns except BLOBS;
  • +
  • 'noblob' to disallow editing of all columns except BLOBS (the +opposite of 'blob');
  • +
  • 'all' to disallow editing of all BINARY or BLOB columns.
  • +
+
+ +
+
+$cfg['ShowFunctionFields']
+
+++ + + + + + +
Type:boolean
Default value:true
+

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['ShowFieldTypesInDataEditView']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether or not type fields should be initially displayed in +edit/insert mode. The user can toggle this setting from the interface.

+
+ +
+
+$cfg['InsertRows']
+
+++ + + + + + +
Type:integer
Default value:2
+

Defines the default number of rows to be entered from the Insert page. +Users can manually change this from the bottom of that page to add or remove +blank rows.

+
+ +
+
+$cfg['ForeignKeyMaxLimit']
+
+++ + + + + + +
Type:integer
Default value:100
+

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']
+
+++ + + + + + +
Type:array
Default value:array(‘content-id’, ‘id-content’)
+

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.

+
+ +
+
+

Export and import settings

+
+
+$cfg['ZipDump']
+
+++ + + + + + +
Type:boolean
Default value:true
+
+ +
+
+$cfg['GZipDump']
+
+++ + + + + + +
Type:boolean
Default value:true
+
+ +
+
+$cfg['BZipDump']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether to allow the use of zip/GZip/BZip2 compression when +creating a dump file

+
+ +
+
+$cfg['CompressOnFly']
+
+++ + + + + + +
Type:boolean
Default value:true
+

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['Export']
+
+++ + + + + + +
Type:array
Default value: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['Export']['format']
+
+++ + + + + + +
Type:string
Default value:'sql'
+

Default export format.

+
+ +
+
+$cfg['Export']['method']
+
+++ + + + + + +
Type:string
Default value:'quick'
+

Defines how the export form is displayed when it loads. Valid values +are:

+
    +
  • quick to display the minimum number of options to configure
  • +
  • custom to display every available option to configure
  • +
  • custom-no-form same as custom but does not display the option +of using quick export
  • +
+
+ +
+
+$cfg['Export']['charset']
+
+++ + + + + + +
Type:string
Default value:''
+

Defines charset for generated export. By default no charset conversion is +done assuming UTF-8.

+
+ +
+
+$cfg['Export']['file_template_table']
+
+++ + + + + + +
Type:string
Default value:'@TABLE@'
+

Default filename template for table exports.

+ +
+ +
+
+$cfg['Export']['file_template_database']
+
+++ + + + + + +
Type:string
Default value:'@DATABASE@'
+

Default filename template for database exports.

+ +
+ +
+
+$cfg['Export']['file_template_server']
+
+++ + + + + + +
Type:string
Default value:'@SERVER@'
+

Default filename template for server exports.

+ +
+ +
+
+$cfg['Import']
+
+++ + + + + + +
Type:array
Default value: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['Import']['charset']
+
+++ + + + + + +
Type:string
Default value:''
+

Defines charset for import. By default no charset conversion is done +assuming UTF-8.

+
+ +
+
+

Tabs display settings

+
+
+$cfg['TabsMode']
+
+++ + + + + + +
Type:string
Default value:'both'
+

Defines whether the menu tabs contain 'icons', 'text' or 'both'.

+
+ +
+
+$cfg['PropertiesNumColumns']
+
+++ + + + + + +
Type:integer
Default value:1
+

How many columns will be utilized to display the tables on the database +property view? When setting this to a value larger than 1, the type of the +database will be omitted for more display space.

+
+ +
+
+$cfg['DefaultTabServer']
+
+++ + + + + + +
Type:string
Default value:'welcome'
+

Defines the tab displayed by default on server view. The possible values +are the localized equivalent of:

+
    +
  • welcome (recommended for multi-user setups)
  • +
  • databases,
  • +
  • status
  • +
  • variables
  • +
  • privileges
  • +
+
+ +
+
+$cfg['DefaultTabDatabase']
+
+++ + + + + + +
Type:string
Default value:'structure'
+

Defines the tab displayed by default on database view. The possible values +are the localized equivalent of:

+
    +
  • structure
  • +
  • sql
  • +
  • search
  • +
  • operations
  • +
+
+ +
+
+$cfg['DefaultTabTable']
+
+++ + + + + + +
Type:string
Default value:'browse'
+

Defines the tab displayed by default on table view. The possible values +are the localized equivalent of:

+
    +
  • structure
  • +
  • sql
  • +
  • search
  • +
  • insert
  • +
  • browse
  • +
+
+ +
+
+

PDF Options

+
+
+$cfg['PDFPageSizes']
+
+++ + + + + + +
Type:array
Default value:array('A3', 'A4', 'A5', 'letter', 'legal')
+

Array of possible paper sizes for creating PDF pages.

+

You should never need to change this.

+
+ +
+
+$cfg['PDFDefaultPageSize']
+
+++ + + + + + +
Type:string
Default value:'A4'
+

Default page size to use when creating PDF pages. Valid values are any +listed in $cfg['PDFPageSizes'].

+
+ +
+
+

Languages

+
+
+$cfg['DefaultLang']
+
+++ + + + + + +
Type:string
Default value:'en'
+

Defines the default language to use, if not browser-defined or user- +defined. The corresponding language file needs to be in +locale/code/LC_MESSAGES/phpmyadmin.mo.

+
+ +
+
+$cfg['DefaultConnectionCollation']
+
+++ + + + + + +
Type:string
Default value:'utf8mb4_general_ci'
+

Defines the default connection collation to use, if not user-defined. +See the MySQL documentation for charsets +for list of possible values.

+
+ +
+
+$cfg['Lang']
+
+++ + + + + + +
Type:string
Default value:not set
+

Force language to use. The corresponding language file needs to be in +locale/code/LC_MESSAGES/phpmyadmin.mo.

+
+ +
+
+$cfg['FilterLanguages']
+
+++ + + + + + +
Type:string
Default value:''
+

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['RecodingEngine']
+
+++ + + + + + +
Type:string
Default value:'auto'
+

You can select here which functions will be used for character set +conversion. Possible values are:

+
    +
  • auto - automatically use available one (first is tested iconv, then +recode)
  • +
  • iconv - use iconv or libiconv functions
  • +
  • recode - use recode_string function
  • +
  • mb - use mbstring extension
  • +
  • none - disable encoding conversion
  • +
+

Enabled charset conversion activates a pull-down menu in the Export +and Import pages, to choose the character set when exporting a file. +The default value in this menu comes from +$cfg['Export']['charset'] and $cfg['Import']['charset'].

+
+ +
+
+$cfg['IconvExtraParams']
+
+++ + + + + + +
Type:string
Default value:'//TRANSLIT'
+

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']
+
+++ + + + + + +
Type:array
Default value: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.

+
+ +
+
+

Web server settings

+
+
+$cfg['OBGzip']
+
+++ + + + + + +
Type:string/boolean
Default value:'auto'
+

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['TrustedProxies']
+
+++ + + + + + +
Type:array
Default value:array()
+

Lists proxies and HTTP headers which are trusted for +$cfg['Servers'][$i]['AllowDeny']['order']. 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']
+
+++ + + + + + +
Type:string
Default value:'auto'
+

Specifies whether GD >= 2 is available. If yes it can be used for MIME +transformations. Possible values are:

+
    +
  • auto - automatically detect
  • +
  • yes - GD 2 functions can be used
  • +
  • no - GD 2 function cannot be used
  • +
+
+ +
+
+$cfg['CheckConfigurationPermissions']
+
+++ + + + + + +
Type:boolean
Default value:true
+

We normally check the permissions on the configuration file to ensure +it’s not world writable. However, phpMyAdmin could be installed on a +NTFS filesystem mounted on a non-Windows server, in which case the +permissions seems wrong but in fact cannot be detected. In this case a +sysadmin would set this parameter to false.

+
+ +
+
+$cfg['LinkLengthLimit']
+
+++ + + + + + +
Type:integer
Default value:1000
+

Limit for length of URL in links. When length would be above this +limit, it is replaced by form with button. This is required as some web +servers (IIS) have problems with long URL .

+
+ +
+
+$cfg['CSPAllow']
+
+++ + + + + + +
Type:string
Default value:''
+

Additional string to include in allowed script and image sources in Content +Security Policy header.

+

This can be useful when you want to include some external JavaScript files +in config.footer.inc.php or config.header.inc.php, which +would be normally not allowed by Content Security Policy.

+

To allow some sites, just list them within the string:

+
$cfg['CSPAllow'] = 'example.com example.net';
+
+
+
+

New in version 4.0.4.

+
+
+ +
+
+$cfg['DisableMultiTableMaintenance']
+
+++ + + + + + +
Type:boolean
Default value:false
+

In the database Structure page, it’s possible to mark some tables then +choose an operation like optimizing for many tables. This can slow +down a server; therefore, setting this to true prevents this kind +of multiple maintenance operation.

+
+ +
+
+

Theme settings

+
+
Please directly modify themes/themename/layout.inc.php, although +your changes will be overwritten with the next update.
+
+
+

Design customization

+
+
+$cfg['NavigationTreePointerEnable']
+
+++ + + + + + +
Type:boolean
Default value:true
+

When set to true, hovering over an item in the navigation panel causes that item to be marked +(the background is highlighted).

+
+ +
+
+$cfg['BrowsePointerEnable']
+
+++ + + + + + +
Type:boolean
Default value:true
+

When set to true, hovering over a row in the Browse page causes that row to be marked (the background +is highlighted).

+
+ +
+
+$cfg['BrowseMarkerEnable']
+
+++ + + + + + +
Type:boolean
Default value:true
+

When set to true, a data row is marked (the background is highlighted) when the row is selected +with the checkbox.

+
+ +
+
+$cfg['LimitChars']
+
+++ + + + + + +
Type:integer
Default value:50
+

Maximum number of characters shown in any non-numeric field on browse +view. Can be turned off by a toggle button on the browse page.

+
+ +
+ +
+++ + + + + + +
Type:string
Default value:'left'
+

Defines the place where table row links (Edit, Copy, Delete) would be +put when tables contents are displayed (you may have them displayed at +the left side, right side, both sides or nowhere).

+
+ +
+
+$cfg['RowActionLinksWithoutUnique']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines whether to show row links (Edit, Copy, Delete) and checkboxes +for multiple row operations even when the selection does not have a unique key. +Using row actions in the absence of a unique key may result in different/more +rows being affected since there is no guaranteed way to select the exact row(s).

+
+ +
+
+$cfg['RememberSorting']
+
+++ + + + + + +
Type:boolean
Default value:true
+

If enabled, remember the sorting of each table when browsing them.

+
+ +
+
+$cfg['TablePrimaryKeyOrder']
+
+++ + + + + + +
Type:string
Default value:'NONE'
+

This defines the default sort order for the tables, having a primary key, +when there is no sort order defines externally. +Acceptable values : [‘NONE’, ‘ASC’, ‘DESC’]

+
+ +
+
+$cfg['ShowBrowseComments']
+
+++ + + + + + +
Type:boolean
Default value:true
+
+ +
+
+$cfg['ShowPropertyComments']
+
+++ + + + + + +
Type:boolean
Default value:true
+

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 column. The comment is shown as a tool-tip for that +column.

+
+ +
+
+

Text fields

+
+
+$cfg['CharEditing']
+
+++ + + + + + +
Type:string
Default value:'input'
+

Defines which type of editing controls should be used for CHAR and +VARCHAR columns. Applies to data editing and also to the default values +in structure editing. Possible values are:

+
    +
  • input - this allows to limit size of text to size of columns in MySQL, +but has problems with newlines in columns
  • +
  • textarea - no problems with newlines in columns, but also no length +limitations
  • +
+
+ +
+
+$cfg['MinSizeForInputField']
+
+++ + + + + + +
Type:integer
Default value:4
+

Defines the minimum size for input fields generated for CHAR and +VARCHAR columns.

+
+ +
+
+$cfg['MaxSizeForInputField']
+
+++ + + + + + +
Type:integer
Default value:60
+

Defines the maximum size for input fields generated for CHAR and +VARCHAR columns.

+
+ +
+
+$cfg['TextareaCols']
+
+++ + + + + + +
Type:integer
Default value:40
+
+ +
+
+$cfg['TextareaRows']
+
+++ + + + + + +
Type:integer
Default value:15
+
+ +
+
+$cfg['CharTextareaCols']
+
+++ + + + + + +
Type:integer
Default value:40
+
+ +
+
+$cfg['CharTextareaRows']
+
+++ + + + + + +
Type:integer
Default value:2
+

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']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Defines whether textarea for LONGTEXT columns should have double size.

+
+ +
+
+$cfg['TextareaAutoSelect']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Defines if the whole textarea of the query box will be selected on +click.

+
+ +
+
+$cfg['EnableAutocompleteForTablesAndColumns']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether to enable autocomplete for table and column names in any +SQL query box.

+
+ +
+
+

SQL query box settings

+
+
+$cfg['SQLQuery']['Edit']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether to display an edit link to change a query in any SQL Query +box.

+
+ +
+
+$cfg['SQLQuery']['Explain']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether to display a link to explain a SELECT query in any SQL Query +box.

+
+ +
+
+$cfg['SQLQuery']['ShowAsPHP']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether to display a link to wrap a query in PHP code in any SQL Query +box.

+
+ +
+
+$cfg['SQLQuery']['Refresh']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Whether to display a link to refresh a query in any SQL Query box.

+
+ +
+
+

Web server upload/save/import directories

+

If PHP is running in safe mode, all directories must be owned by the same user +as the owner of the phpMyAdmin scripts.

+

If the directory where phpMyAdmin is installed is subject to an +open_basedir restriction, you need to create a temporary directory in some +directory accessible by the PHP interpreter.

+

For security reasons, all directories should be outside the tree published by +webserver. If you cannot avoid having this directory published by webserver, +limit access to it either by web server configuration (for example using +.htaccess or web.config files) or place at least an empty index.html +file there, so that directory listing is not possible. However as long as the +directory is accessible by web server, an attacker can guess filenames to download +the files.

+
+
+$cfg['UploadDir']
+
+++ + + + + + +
Type:string
Default value:''
+

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.

+
+

Warning

+

Please see top of this chapter (Web server upload/save/import directories) for instructions how +to setup this directory and how to make its usage secure.

+
+ +
+ +
+
+$cfg['SaveDir']
+
+++ + + + + + +
Type:string
Default value:''
+

The name of the webserver directory where exported files can be saved.

+

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

+

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

+
+

Warning

+

Please see top of this chapter (Web server upload/save/import directories) for instructions how +to setup this directory and how to make its usage secure.

+
+
+ +
+
+$cfg['TempDir']
+
+++ + + + + + +
Type:string
Default value:'./tmp/'
+

The name of the directory where temporary files can be stored. It is used +for several purposes, currently:

+ +

This directory should have as strict permissions as possible as the only +user required to access this directory is the one who runs the webserver. +If you have root privileges, simply make this user owner of this directory +and make it accessible only by it:

+
chown www-data:www-data tmp
+chmod 700 tmp
+
+
+

If you cannot change owner of the directory, you can achieve a similar +setup using ACL:

+
chmod 700 tmp
+setfacl -m "g:www-data:rwx" tmp
+setfacl -d -m "g:www-data:rwx" tmp
+
+
+

If neither of above works for you, you can still make the directory +chmod 777, but it might impose risk of other users on system +reading and writing data in this directory.

+
+

Warning

+

Please see top of this chapter (Web server upload/save/import directories) for instructions how +to setup this directory and how to make its usage secure.

+
+
+ +
+
+

Various display setting

+
+
+$cfg['RepeatCells']
+
+++ + + + + + +
Type:integer
Default value:100
+

Repeat the headers every X cells, or 0 to deactivate.

+
+ +
+
+$cfg['QueryHistoryDB']
+
+++ + + + + + +
Type:boolean
Default value:false
+
+ +
+
+$cfg['QueryHistoryMax']
+
+++ + + + + + +
Type:integer
Default value:25
+

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

+
+ +
+
+$cfg['BrowseMIME']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Enable Transformations.

+
+ +
+
+$cfg['MaxExactCount']
+
+++ + + + + + +
Type:integer
Default value:50000
+

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.

+
+

Changed in version 4.8.0: The default value was lowered to 50000 for performance reasons.

+
+
+

Changed in version 4.2.6: The default value was changed to 500000.

+
+ +
+ +
+
+$cfg['MaxExactCountViews']
+
+++ + + + + + +
Type:integer
Default value:0
+

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. Setting this to 0 bypasses any row +counting.

+
+ +
+
+$cfg['NaturalOrder']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Sorts database and table names according to natural order (for +example, t1, t2, t10). Currently implemented in the navigation panel +and in Database view, for the table list.

+
+ +
+
+$cfg['InitialSlidersState']
+
+++ + + + + + +
Type:string
Default value:'closed'
+

If set to 'closed', the visual sliders are initially in a closed +state. A value of 'open' does the reverse. To completely disable +all visual sliders, use 'disabled'.

+
+ +
+
+$cfg['UserprefsDisallow']
+
+++ + + + + + +
Type:array
Default value:array()
+

Contains names of configuration options (keys in $cfg array) that +users can’t set through user preferences. For possible values, refer +to clases under libraries/classes/Config/Forms/User/.

+
+ +
+
+$cfg['UserprefsDeveloperTab']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Activates in the user preferences a tab containing options for +developers of phpMyAdmin.

+
+ +
+
+

Page titles

+
+
+$cfg['TitleTable']
+
+++ + + + + + +
Type:string
Default value:'@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@'
+
+ +
+
+$cfg['TitleDatabase']
+
+++ + + + + + +
Type:string
Default value:'@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@'
+
+ +
+
+$cfg['TitleServer']
+
+++ + + + + + +
Type:string
Default value:'@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@'
+
+ +
+
+$cfg['TitleDefault']
+
+++ + + + + + +
Type:string
Default value:'@HTTP_HOST@ | @PHPMYADMIN@'
+

Allows you to specify window’s title bar. You can use 6.27 What format strings can I use?.

+
+ +
+
+

Theme manager settings

+
+
+$cfg['ThemeManager']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Enables user-selectable themes. See 2.7 Using and creating themes.

+
+ +
+
+$cfg['ThemeDefault']
+
+++ + + + + + +
Type:string
Default value:'pmahomme'
+

The default theme (a subdirectory under ./themes/).

+
+ +
+
+$cfg['ThemePerServer']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Whether to allow different theme for each server.

+
+ +
+
+$cfg['FontSize']
+
+++ + + + + + +
Type:string
Default value:‘82%’
+
+

Deprecated since version 5.0.0: This setting was removed as the browser is more efficient, +thus no need of this option.

+
+

Font size to use, is applied in CSS.

+
+ +
+
+

Default queries

+
+
+$cfg['DefaultQueryTable']
+
+++ + + + + + +
Type:string
Default value:'SELECT * FROM @TABLE@ WHERE 1'
+
+ +
+
+$cfg['DefaultQueryDatabase']
+
+++ + + + + + +
Type:string
Default value:''
+

Default queries that will be displayed in query boxes when user didn’t +specify any. You can use standard 6.27 What format strings can I use?.

+
+ +
+
+

MySQL settings

+
+
+$cfg['DefaultFunctions']
+
+++ + + + + + +
Type:array
Default value:array(...)
+

Functions selected by default when inserting/changing row, Functions +are defined for meta types as (FUNC_NUMBER, FUNC_DATE, FUNC_CHAR, +FUNC_SPATIAL, FUNC_UUID) and for first_timestamp, which is used +for first timestamp column in table.

+
+ +
+
+

Default options for Transformations

+
+
+$cfg['DefaultTransformations']
+
+++ + + + + + +
Type:array
Default value:An array with below listed key-values
+
+ +
+
+$cfg['DefaultTransformations']['Substring']
+
+++ + + + + + +
Type:array
Default value:array(0, ‘all’, ‘…’)
+
+ +
+
+$cfg['DefaultTransformations']['Bool2Text']
+
+++ + + + + + +
Type:array
Default value:array(‘T’, ‘F’)
+
+ +
+
+$cfg['DefaultTransformations']['External']
+
+++ + + + + + +
Type:array
Default value:array(0, ‘-f /dev/null -i -wrap -q’, 1, 1)
+
+ +
+
+$cfg['DefaultTransformations']['PreApPend']
+
+++ + + + + + +
Type:array
Default value:array(‘’, ‘’)
+
+ +
+
+$cfg['DefaultTransformations']['Hex']
+
+++ + + + + + +
Type:array
Default value:array(‘2’)
+
+ +
+
+$cfg['DefaultTransformations']['DateFormat']
+
+++ + + + + + +
Type:array
Default value:array(0, ‘’, ‘local’)
+
+ +
+
+$cfg['DefaultTransformations']['Inline']
+
+++ + + + + + +
Type:array
Default value:array(‘100’, 100)
+
+ +
+ +
+++ + + + + + +
Type:array
Default value:array(‘’, 100, 50)
+
+ +
+ +
+++ + + + + + +
Type:array
Default value:array(‘’, ‘’, ‘’)
+
+ +
+
+

Console settings

+
+

Note

+

These settings are mostly meant to be changed by user.

+
+
+
+$cfg['Console']['StartHistory']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Show query history at start

+
+ +
+
+$cfg['Console']['AlwaysExpand']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Always expand query messages

+
+ +
+
+$cfg['Console']['CurrentQuery']
+
+++ + + + + + +
Type:boolean
Default value:true
+

Show current browsing query

+
+ +
+
+$cfg['Console']['EnterExecutes']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Execute queries on Enter and insert new line with Shift + Enter

+
+ +
+
+$cfg['Console']['DarkTheme']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Switch to dark theme

+
+ +
+
+$cfg['Console']['Mode']
+
+++ + + + + + +
Type:string
Default value:‘info’
+

Console mode

+
+ +
+
+$cfg['Console']['Height']
+
+++ + + + + + +
Type:integer
Default value:92
+

Console height

+
+ +
+
+

Developer

+
+

Warning

+

These settings might have huge effect on performance or security.

+
+
+
+$cfg['DBG']
+
+++ + + + + + +
Type:array
Default value:array(...)
+
+ +
+
+$cfg['DBG']['sql']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Enable logging queries and execution times to be +displayed in the console’s Debug SQL tab.

+
+ +
+
+$cfg['DBG']['sqllog']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Enable logging of queries and execution times to the syslog. +Requires $cfg['DBG']['sql'] to be enabled.

+
+ +
+
+$cfg['DBG']['demo']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Enable to let server present itself as demo server. +This is used for phpMyAdmin demo server.

+

It currently changes following behavior:

+
    +
  • There is welcome message on the main page.
  • +
  • There is footer information about demo server and used git revision.
  • +
  • The setup script is enabled even with existing configuration.
  • +
  • The setup does not try to connect to the MySQL server.
  • +
+
+ +
+
+$cfg['DBG']['simple2fa']
+
+++ + + + + + +
Type:boolean
Default value:false
+

Can be used for testing two-factor authentication using Simple two-factor authentication.

+
+ +
+
+

Examples

+

See following configuration snippets for typical setups of phpMyAdmin.

+
+

Basic example

+

Example configuration file, which can be copied to config.inc.php to +get some core configuration layout; it is distributed with phpMyAdmin as +config.sample.inc.php. Please note that it does not contain all +configuration options, only the most frequently used ones.

+
<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * phpMyAdmin sample configuration, you can use it as base for
+ * manual configuration. For easier setup you can use setup/
+ *
+ * All directives are explained in documentation in the doc/ folder
+ * or at <https://docs.phpmyadmin.net/>.
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+/**
+ * This is needed for cookie based authentication to encrypt password in
+ * cookie. Needs to be 32 chars long.
+ */
+$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
+
+/**
+ * Servers configuration
+ */
+$i = 0;
+
+/**
+ * First server
+ */
+$i++;
+/* Authentication type */
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+/* Server parameters */
+$cfg['Servers'][$i]['host'] = 'localhost';
+$cfg['Servers'][$i]['compress'] = false;
+$cfg['Servers'][$i]['AllowNoPassword'] = false;
+
+/**
+ * phpMyAdmin configuration storage settings.
+ */
+
+/* User used to manipulate with storage */
+// $cfg['Servers'][$i]['controlhost'] = '';
+// $cfg['Servers'][$i]['controlport'] = '';
+// $cfg['Servers'][$i]['controluser'] = 'pma';
+// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
+
+/* Storage database and tables */
+// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
+// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
+// $cfg['Servers'][$i]['relation'] = 'pma__relation';
+// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
+// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
+// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
+// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
+// $cfg['Servers'][$i]['history'] = 'pma__history';
+// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
+// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
+// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
+// $cfg['Servers'][$i]['recent'] = 'pma__recent';
+// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
+// $cfg['Servers'][$i]['users'] = 'pma__users';
+// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
+// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
+// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
+// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
+// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
+// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
+
+/**
+ * End of servers configuration
+ */
+
+/**
+ * Directories for saving/loading files from server
+ */
+$cfg['UploadDir'] = '';
+$cfg['SaveDir'] = '';
+
+/**
+ * Whether to display icons or text or both icons and text in table row
+ * action segment. Value can be either of 'icons', 'text' or 'both'.
+ * default = 'both'
+ */
+//$cfg['RowActionType'] = 'icons';
+
+/**
+ * Defines whether a user should be displayed a "show all (records)"
+ * button in browse mode or not.
+ * default = false
+ */
+//$cfg['ShowAll'] = true;
+
+/**
+ * Number of rows displayed when browsing a result set. If the result
+ * set contains more rows, "Previous" and "Next".
+ * Possible values: 25, 50, 100, 250, 500
+ * default = 25
+ */
+//$cfg['MaxRows'] = 50;
+
+/**
+ * Disallow editing of binary fields
+ * valid values are:
+ *   false    allow editing
+ *   'blob'   allow editing except for BLOB fields
+ *   'noblob' disallow editing except for BLOB fields
+ *   'all'    disallow editing
+ * default = 'blob'
+ */
+//$cfg['ProtectBinary'] = false;
+
+/**
+ * Default language to use, if not browser-defined or user-defined
+ * (you find all languages in the locale folder)
+ * uncomment the desired line:
+ * default = 'en'
+ */
+//$cfg['DefaultLang'] = 'en';
+//$cfg['DefaultLang'] = 'de';
+
+/**
+ * How many columns should be used for table display of a database?
+ * (a value larger than 1 results in some information being hidden)
+ * default = 1
+ */
+//$cfg['PropertiesNumColumns'] = 2;
+
+/**
+ * Set to true if you want DB-based query history.If false, this utilizes
+ * JS-routines to display query history (lost by window close)
+ *
+ * This requires configuration storage enabled, see above.
+ * default = false
+ */
+//$cfg['QueryHistoryDB'] = true;
+
+/**
+ * When using DB-based query history, how many entries should be kept?
+ * default = 25
+ */
+//$cfg['QueryHistoryMax'] = 100;
+
+/**
+ * Whether or not to query the user before sending the error report to
+ * the phpMyAdmin team when a JavaScript error occurs
+ *
+ * Available options
+ * ('ask' | 'always' | 'never')
+ * default = 'ask'
+ */
+//$cfg['SendErrorReports'] = 'always';
+
+/**
+ * You can find more configuration options in the documentation
+ * in the doc/ folder or at <https://docs.phpmyadmin.net/>.
+ */
+
+
+
+

Warning

+

Don’t use the controluser ‘pma’ if it does not yet exist and don’t use ‘pmapass’ +as password.

+
+
+
+

Example for signon authentication

+

This example uses examples/signon.php to demonstrate usage of Signon authentication mode:

+
<?php
+$i = 0;
+$i++;
+$cfg['Servers'][$i]['extension']     = 'mysqli';
+$cfg['Servers'][$i]['auth_type']     = 'signon';
+$cfg['Servers'][$i]['SignonSession'] = 'SignonSession';
+$cfg['Servers'][$i]['SignonURL']     = 'examples/signon.php';
+
+
+
+
+

Example for IP address limited autologin

+

If you want to automatically login when accessing phpMyAdmin locally while asking +for a password when accessing remotely, you can achieve it using following snippet:

+
if ($_SERVER["REMOTE_ADDR"] == "127.0.0.1") {
+    $cfg['Servers'][$i]['auth_type'] = 'config';
+    $cfg['Servers'][$i]['user'] = 'root';
+    $cfg['Servers'][$i]['password'] = 'yourpassword';
+} else {
+    $cfg['Servers'][$i]['auth_type'] = 'cookie';
+}
+
+
+
+

Note

+

Filtering based on IP addresses isn’t reliable over the internet, use it +only for local address.

+
+
+
+

Example for using multiple MySQL servers

+

You can configure any number of servers using $cfg['Servers'], +following example shows two of them:

+
<?php
+$cfg['blowfish_secret']='multiServerExample70518';
+//any string of your choice
+$i = 0;
+
+$i++; // server 1 :
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+$cfg['Servers'][$i]['verbose']   = 'no1';
+$cfg['Servers'][$i]['host']      = 'localhost';
+$cfg['Servers'][$i]['extension'] = 'mysqli';
+// more options for #1 ...
+
+$i++; // server 2 :
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+$cfg['Servers'][$i]['verbose']   = 'no2';
+$cfg['Servers'][$i]['host']      = 'remote.host.addr';//or ip:'10.9.8.1'
+// this server must allow remote clients, e.g., host 10.9.8.%
+// not only in mysql.host but also in the startup configuration
+$cfg['Servers'][$i]['extension'] = 'mysqli';
+// more options for #2 ...
+
+// end of server sections
+$cfg['ServerDefault'] = 0; // to choose the server on startup
+
+// further general options ...
+
+
+
+
+

Google Cloud SQL with SSL

+

To connect to Google Could SQL, you currently need to disable certificate +verification. This is caused by the certficate being issued for CN matching +your instance name, but you connect to an IP address and PHP tries to match +these two. With verfication you end up with error message like:

+
Peer certificate CN=`api-project-851612429544:pmatest' did not match expected CN=`8.8.8.8'
+
+
+
+

Warning

+

With disabled verification your traffic is encrypted, but you’re open to +man in the middle attacks.

+
+

To connect phpMyAdmin to Google Cloud SQL using SSL download the client and +server certificates and tell phpMyAdmin to use them:

+
// IP address of your instance
+$cfg['Servers'][$i]['host'] = '8.8.8.8';
+// Use SSL for connection
+$cfg['Servers'][$i]['ssl'] = true;
+// Client secret key
+$cfg['Servers'][$i]['ssl_key'] = '../client-key.pem';
+// Client certificate
+$cfg['Servers'][$i]['ssl_cert'] = '../client-cert.pem';
+// Server certification authority
+$cfg['Servers'][$i]['ssl_ca'] = '../server-ca.pem';
+// Disable SSL verification (see above note)
+$cfg['Servers'][$i]['ssl_verify'] = false;
+
+
+ +
+
+
+ + +