aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/doc/html/_sources/config.txt
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/doc/html/_sources/config.txt
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/doc/html/_sources/config.txt')
-rw-r--r--srcs/phpmyadmin/doc/html/_sources/config.txt3609
1 files changed, 3609 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/doc/html/_sources/config.txt b/srcs/phpmyadmin/doc/html/_sources/config.txt
new file mode 100644
index 0000000..97d7902
--- /dev/null
+++ b/srcs/phpmyadmin/doc/html/_sources/config.txt
@@ -0,0 +1,3609 @@
+.. index:: config.inc.php
+
+.. _config:
+
+Configuration
+=============
+
+All configurable data is placed in :file:`config.inc.php` in phpMyAdmin's
+toplevel directory. If this file does not exist, please refer to the
+:ref:`setup` section to create one. This file only needs to contain the
+parameters you want to change from their corresponding default value in
+:file:`libraries/config.default.php` (this file is not inteded for changes).
+
+.. seealso::
+
+ :ref:`config-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
+:file:`themes/themename/layout.inc.php`. You might also want to create
+:file:`config.footer.inc.php` and :file:`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 :file:`config.inc.php` in
+ ``/etc/phpmyadmin`` instead of within phpMyAdmin sources.
+
+.. warning::
+
+ :term:`Mac` users should note that if you are on a version before
+ :term:`Mac OS X`, PHP does not seem to
+ like :term:`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
+--------------
+
+.. config:option:: $cfg['PmaAbsoluteUri']
+
+ :type: string
+ :default: ``''``
+
+ .. versionchanged:: 4.6.5
+
+ This setting was not available in phpMyAdmin 4.6.0 - 4.6.4.
+
+ Sets here the complete :term:`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 :term:`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.
+
+ .. seealso:: :ref:`faq1_40`, :ref:`faq2_5`, :ref:`faq4_7`, :ref:`faq5_16`
+
+.. config:option:: $cfg['PmaNoRelation_DisableWarning']
+
+ :type: boolean
+ :default: false
+
+ Starting with version 2.3.0 phpMyAdmin offers a lot of features to
+ work with master / foreign – tables (see :config:option:`$cfg['Servers'][$i]['pmadb']`).
+
+ If you tried to set this
+ up and it does not work for you, have a look on the :guilabel:`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.
+
+.. config:option:: $cfg['AuthLog']
+
+ :type: string
+ :default: ``'auto'``
+
+ .. versionadded:: 4.8.0
+
+ This is supported since phpMyAdmin 4.8.0.
+
+ Configure authentication logging destination. Failed (or all, depending on
+ :config:option:`$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 :file:`/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 :config:option:`$cfg['TempDir']`:
+
+.. config:option:: $cfg['AuthLogSuccess']
+
+ :type: boolean
+ :default: false
+
+ .. versionadded:: 4.8.0
+
+ This is supported since phpMyAdmin 4.8.0.
+
+ Whether to log successful authentication attempts into
+ :config:option:`$cfg['AuthLog']`.
+
+.. config:option:: $cfg['SuhosinDisableWarning']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['LoginCookieValidityDisableWarning']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['ServerLibraryDifference_DisableWarning']
+
+ :type: boolean
+ :default: false
+
+ .. deprecated:: 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.
+
+.. config:option:: $cfg['ReservedWordDisableWarning']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['TranslationWarningThreshold']
+
+ :type: integer
+ :default: 80
+
+ Show warning about incomplete translations on certain threshold.
+
+.. config:option:: $cfg['SendErrorReports']
+
+ :type: string
+ :default: ``'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 :config:option:`$cfg['UserprefsDisallow']` directive should
+ contain ``'SendErrorReports'`` in one of its array values.
+
+.. config:option:: $cfg['ConsoleEnterExecutes']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['AllowThirdPartyFraming']
+
+ :type: boolean|string
+ :default: 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
+--------------------------
+
+.. config:option:: $cfg['Servers']
+
+ :type: array
+ :default: one server array with settings listed below
+
+ Since version 1.4.2, phpMyAdmin supports the administration of multiple
+ MySQL servers. Therefore, a :config:option:`$cfg['Servers']`-array has been
+ added which contains the login information for the different servers. The
+ first :config:option:`$cfg['Servers'][$i]['host']` contains the hostname of
+ the first server, the second :config:option:`$cfg['Servers'][$i]['host']`
+ the hostname of the second server, etc. In
+ :file:`libraries/config.default.php`, there is only one section for server
+ definition, however you can put as many as you need in
+ :file:`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 :config:option:`$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.
+
+.. config:option:: $cfg['Servers'][$i]['host']
+
+ :type: string
+ :default: ``'localhost'``
+
+ The hostname or :term:`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
+ :config:option:`$cfg['Servers'][$i]['socket']`.
+
+ .. seealso::
+
+ :config:option:`$cfg['Servers'][$i]['port']`,
+ <https://dev.mysql.com/doc/refman/5.7/en/connecting.html>
+
+.. config:option:: $cfg['Servers'][$i]['port']
+
+ :type: string
+ :default: ``''``
+
+ 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 :config:option:`$cfg['Servers'][$i]['host']`.
+
+ .. seealso::
+
+ :config:option:`$cfg['Servers'][$i]['host']`,
+ <https://dev.mysql.com/doc/refman/5.7/en/connecting.html>
+
+.. config:option:: $cfg['Servers'][$i]['socket']
+
+ :type: string
+ :default: ``''``
+
+ The path to the socket to use. Leave blank for default. To determine
+ the correct socket, check your MySQL configuration or, using the
+ :command:`mysql` command–line client, issue the ``status`` command. Among the
+ resulting information displayed will be the socket used.
+
+ .. note::
+
+ This takes effect only if :config:option:`$cfg['Servers'][$i]['host']` is set
+ to ``localhost``.
+
+ .. seealso::
+
+ :config:option:`$cfg['Servers'][$i]['host']`,
+ <https://dev.mysql.com/doc/refman/5.7/en/connecting.html>
+
+.. config:option:: $cfg['Servers'][$i]['ssl']
+
+ :type: boolean
+ :default: 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.
+
+ .. seealso::
+
+ :ref:`ssl`,
+ :ref:`example-google-ssl`,
+ :config:option:`$cfg['Servers'][$i]['ssl_key']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_cert']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca_path']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ciphers']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`
+
+.. config:option:: $cfg['Servers'][$i]['ssl_key']
+
+ :type: string
+ :default: 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:
+
+ .. code-block:: php
+
+ $cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/server-key.pem';
+
+ .. seealso::
+
+ :ref:`ssl`,
+ :ref:`example-google-ssl`,
+ :config:option:`$cfg['Servers'][$i]['ssl']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_cert']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca_path']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ciphers']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`
+
+.. config:option:: $cfg['Servers'][$i]['ssl_cert']
+
+ :type: string
+ :default: 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.
+
+ .. seealso::
+
+ :ref:`ssl`,
+ :ref:`example-google-ssl`,
+ :config:option:`$cfg['Servers'][$i]['ssl']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_key']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca_path']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ciphers']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`
+
+.. config:option:: $cfg['Servers'][$i]['ssl_ca']
+
+ :type: string
+ :default: NULL
+
+ Path to the CA file when using SSL for connecting to the MySQL server.
+
+ .. seealso::
+
+ :ref:`ssl`,
+ :ref:`example-google-ssl`,
+ :config:option:`$cfg['Servers'][$i]['ssl']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_key']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_cert']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca_path']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ciphers']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`
+
+.. config:option:: $cfg['Servers'][$i]['ssl_ca_path']
+
+ :type: string
+ :default: NULL
+
+ Directory containing trusted SSL CA certificates in PEM format.
+
+ .. seealso::
+
+ :ref:`ssl`,
+ :ref:`example-google-ssl`,
+ :config:option:`$cfg['Servers'][$i]['ssl']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_key']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_cert']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ciphers']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`
+
+.. config:option:: $cfg['Servers'][$i]['ssl_ciphers']
+
+ :type: string
+ :default: NULL
+
+ List of allowable ciphers for SSL connections to the MySQL server.
+
+ .. seealso::
+
+ :ref:`ssl`,
+ :ref:`example-google-ssl`,
+ :config:option:`$cfg['Servers'][$i]['ssl']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_key']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_cert']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca_path']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`
+
+.. config:option:: $cfg['Servers'][$i]['ssl_verify']
+
+ :type: boolean
+ :default: true
+
+ .. versionadded:: 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.
+
+ .. seealso::
+
+ :ref:`ssl`,
+ :ref:`example-google-ssl`,
+ :config:option:`$cfg['Servers'][$i]['ssl']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_key']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_cert']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca_path']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ciphers']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`
+
+.. config:option:: $cfg['Servers'][$i]['connect_type']
+
+ :type: string
+ :default: ``'tcp'``
+
+ .. deprecated:: 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 :config:option:`$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.
+
+.. config:option:: $cfg['Servers'][$i]['compress']
+
+ :type: boolean
+ :default: false
+
+ Whether to use a compressed protocol for the MySQL server connection
+ or not (experimental).
+
+.. _controlhost:
+.. config:option:: $cfg['Servers'][$i]['controlhost']
+
+ :type: string
+ :default: ``''``
+
+ Permits to use an alternate host to hold the configuration storage
+ data.
+
+ .. seealso::
+
+ :config:option:`$cfg['Servers'][$i]['control_*']`
+
+.. _controlport:
+.. config:option:: $cfg['Servers'][$i]['controlport']
+
+ :type: string
+ :default: ``''``
+
+ Permits to use an alternate port to connect to the host that
+ holds the configuration storage.
+
+ .. seealso::
+
+ :config:option:`$cfg['Servers'][$i]['control_*']`
+
+.. _controluser:
+.. config:option:: $cfg['Servers'][$i]['controluser']
+
+ :type: string
+ :default: ``''``
+
+.. config:option:: $cfg['Servers'][$i]['controlpass']
+
+ :type: string
+ :default: ``''``
+
+ This special account is used to access :ref:`linked-tables`.
+ You don't need it in single user case, but if phpMyAdmin is shared it
+ is recommended to give access to :ref:`linked-tables` 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 :ref:`linked-tables`.
+
+ .. versionchanged:: 2.2.5
+ those were called ``stduser`` and ``stdpass``
+
+ .. seealso::
+
+ :ref:`setup`,
+ :ref:`authentication_modes`,
+ :ref:`linked-tables`,
+ :config:option:`$cfg['Servers'][$i]['pmadb']`,
+ :config:option:`$cfg['Servers'][$i]['controlhost']`,
+ :config:option:`$cfg['Servers'][$i]['controlport']`,
+ :config:option:`$cfg['Servers'][$i]['control_*']`
+
+.. config:option:: $cfg['Servers'][$i]['control_*']
+
+ :type: mixed
+
+ .. versionadded:: 4.7.0
+
+ You can change any MySQL connection setting for control link (used to
+ access :ref:`linked-tables`) 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:
+
+ .. code-block:: php
+
+ // 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';
+
+ .. seealso::
+
+ :config:option:`$cfg['Servers'][$i]['ssl']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_key']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_cert']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca_path']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ciphers']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`
+
+.. config:option:: $cfg['Servers'][$i]['auth_type']
+
+ :type: string
+ :default: ``'cookie'``
+
+ Whether config or cookie or :term:`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 :file:`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.
+
+ .. seealso:: :ref:`authentication_modes`
+
+.. _servers_auth_http_realm:
+.. config:option:: $cfg['Servers'][$i]['auth_http_realm']
+
+ :type: string
+ :default: ``''``
+
+ When using auth\_type = ``http``, this field allows to define a custom
+ :term:`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 :config:option:`$cfg['Servers'][$i]['verbose']` or
+ :config:option:`$cfg['Servers'][$i]['host']` will be used.
+
+.. _servers_user:
+.. config:option:: $cfg['Servers'][$i]['user']
+
+ :type: string
+ :default: ``'root'``
+
+.. config:option:: $cfg['Servers'][$i]['password']
+
+ :type: string
+ :default: ``''``
+
+ When using :config:option:`$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
+ :term:`HTTP` or cookie authentication is used
+ and should be empty.
+
+.. _servers_nopassword:
+.. config:option:: $cfg['Servers'][$i]['nopassword']
+
+ :type: boolean
+ :default: false
+
+ .. deprecated:: 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.
+
+.. _servers_only_db:
+.. config:option:: $cfg['Servers'][$i]['only_db']
+
+ :type: string or array
+ :default: ``''``
+
+ 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:
+
+ .. code-block:: php
+
+ $cfg['Servers'][$i]['only_db'] = array('db1', 'db2');
+
+ .. versionchanged:: 4.0.0
+ Previous versions permitted to specify the display order of
+ the database names via this directive.
+
+.. config:option:: $cfg['Servers'][$i]['hide_db']
+
+ :type: string
+ :default: ``''``
+
+ 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
+
+ .. code-block:: php
+
+ $cfg['Servers'][$i]['hide_db'] = '^a';
+
+ and to hide both "db1" and "db2" use
+
+ .. code-block:: php
+
+ $cfg['Servers'][$i]['hide_db'] = '^(db1|db2)$';
+
+ More information on regular expressions can be found in the `PCRE
+ pattern syntax
+ <https://www.php.net/manual/en/reference.pcre.pattern.syntax.php>`_ portion
+ of the PHP reference manual.
+
+.. config:option:: $cfg['Servers'][$i]['verbose']
+
+ :type: string
+ :default: ``''``
+
+ 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.
+
+.. config:option:: $cfg['Servers'][$i]['extension']
+
+ :type: string
+ :default: ``'mysqli'``
+
+ .. deprecated:: 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.
+
+.. config:option:: $cfg['Servers'][$i]['pmadb']
+
+ :type: string
+ :default: ``''``
+
+ The name of the database containing the phpMyAdmin configuration
+ storage.
+
+ See the :ref:`linked-tables` 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 :config:option:`$cfg['Servers'][$i]['pmadb']`. For a
+ multi-user installation, set this parameter to the name of your central
+ database containing the phpMyAdmin configuration storage.
+
+.. _bookmark:
+.. config:option:: $cfg['Servers'][$i]['bookmarktable']
+
+ :type: string or false
+ :default: ``''``
+
+ 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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * enter the table name in :config:option:`$cfg['Servers'][$i]['bookmarktable']`
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _relation:
+.. config:option:: $cfg['Servers'][$i]['relation']
+
+ :type: string or false
+ :default: ``''``
+
+ 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:
+
+ * make clickable, when you browse the master table, the data values that
+ point to the foreign table;
+ * display in an optional tool-tip the "display column" when browsing the
+ master table, if you move the mouse to a column containing a foreign
+ key (use also the 'table\_info' table); (see :ref:`faqdisplay`)
+ * in edit/insert mode, display a drop-down list of possible foreign keys
+ (key value and "display column" are shown) (see :ref:`faq6_21`)
+ * display links on the table properties page, to check referential
+ integrity (display missing foreign keys) for each described key;
+ * in query-by-example, create automatic joins (see :ref:`faq6_6`)
+ * enable you to get a :term:`PDF` schema of
+ your database (also uses the table\_coords table).
+
+ The keys can be numeric or character.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the relation table name in :config:option:`$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 :guilabel:`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.
+
+.. _table_info:
+.. config:option:: $cfg['Servers'][$i]['table_info']
+
+ :type: string or false
+ :default: ``''``
+
+ 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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['table\_info']` (e.g.
+ ``pma__table_info``)
+ * then for each table where you want to use this feature, click
+ "Structure/Relation view/Choose column to display" to choose the
+ column.
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+ .. seealso:: :ref:`faqdisplay`
+
+.. _table_coords:
+.. config:option:: $cfg['Servers'][$i]['table_coords']
+
+ :type: string or false
+ :default: ``''``
+
+ 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
+ :config:option:`$cfg['Servers'][$i]['pdf\_pages']` for additional details.
+
+.. config:option:: $cfg['Servers'][$i]['pdf_pages']
+
+ :type: string or false
+ :default: ``''``
+
+ Since release 2.3.0 you can have phpMyAdmin create :term:`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 :term:`PDF` pages)
+ and "table\_coords" (storing coordinates where each table will be placed on
+ a :term:`PDF` schema output). You must be using the "relation" feature.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the correct table names in
+ :config:option:`$cfg['Servers'][$i]['table\_coords']` and
+ :config:option:`$cfg['Servers'][$i]['pdf\_pages']`
+
+ This feature can be disabled by setting either of the configurations to ``false``.
+
+ .. seealso:: :ref:`faqpdf`.
+
+.. _col_com:
+.. config:option:: $cfg['Servers'][$i]['column_info']
+
+ :type: string or false
+ :default: ``''``
+
+ 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 :ref:`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 :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$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 :file:`config.inc.php` has been renamed from
+ :samp:`$cfg['Servers'][$i]['column\_comments']` to
+ :config:option:`$cfg['Servers'][$i]['column\_info']`
+
+ .. code-block:: mysql
+
+ 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
+ :config:option:`$cfg['Servers'][$i]['controluser']` must have ALTER privilege on
+ ``phpmyadmin`` database. See the `MySQL documentation for GRANT
+ <https://dev.mysql.com/doc/refman/5.7/en/grant.html>`_ on how to
+ ``GRANT`` privileges to a user.
+
+.. _history:
+.. config:option:: $cfg['Servers'][$i]['history']
+
+ :type: string or false
+ :default: ``''``
+
+ Since release 2.5.0 you can store your :term:`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 :config:option:`$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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['history']` (e.g.
+ ``pma__history``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _recent:
+.. config:option:: $cfg['Servers'][$i]['recent']
+
+ :type: string or false
+ :default: ``''``
+
+ 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
+ :config:option:`$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 :config:option:`$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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['recent']` (e.g.
+ ``pma__recent``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _favorite:
+.. config:option:: $cfg['Servers'][$i]['favorite']
+
+ :type: string or false
+ :default: ``''``
+
+ 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
+ :config:option:`$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
+ :config:option:`$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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['favorite']` (e.g.
+ ``pma__favorite``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _table_uiprefs:
+.. config:option:: $cfg['Servers'][$i]['table_uiprefs']
+
+ :type: string or false
+ :default: ``''``
+
+ Since release 3.5.0 phpMyAdmin can be configured to remember several
+ things (sorted column :config:option:`$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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['table\_uiprefs']` (e.g.
+ ``pma__table_uiprefs``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. config:option:: $cfg['Servers'][$i]['users']
+
+ :type: string or false
+ :default: ``''``
+
+.. config:option:: $cfg['Servers'][$i]['usergroups']
+
+ :type: string or false
+ :default: ``''``
+
+ 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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the correct table names in
+ :config:option:`$cfg['Servers'][$i]['users']` (e.g. ``pma__users``) and
+ :config:option:`$cfg['Servers'][$i]['usergroups']` (e.g. ``pma__usergroups``)
+
+ This feature can be disabled by setting either of the configurations to ``false``.
+
+ .. seealso:: :ref:`configurablemenus`
+
+.. _navigationhiding:
+.. config:option:: $cfg['Servers'][$i]['navigationhiding']
+
+ :type: string or false
+ :default: ``''``
+
+ Since release 4.1.0 you can hide/show items in the navigation tree.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['navigationhiding']` (e.g.
+ ``pma__navigationhiding``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _central_columns:
+.. config:option:: $cfg['Servers'][$i]['central_columns']
+
+ :type: string or false
+ :default: ``''``
+
+ 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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['central_columns']` (e.g.
+ ``pma__central_columns``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _designer_settings:
+.. config:option:: $cfg['Servers'][$i]['designer_settings']
+
+ :type: string or false
+ :default: ``''``
+
+ 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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['designer_settings']` (e.g.
+ ``pma__designer_settings``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _savedsearches:
+.. config:option:: $cfg['Servers'][$i]['savedsearches']
+
+ :type: string or false
+ :default: ``''``
+
+ 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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['savedsearches']` (e.g.
+ ``pma__savedsearches``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _export_templates:
+.. config:option:: $cfg['Servers'][$i]['export_templates']
+
+ :type: string or false
+ :default: ``''``
+
+ Since release 4.5.0 you can save and load export templates.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['export_templates']` (e.g.
+ ``pma__export_templates``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _tracking:
+.. config:option:: $cfg['Servers'][$i]['tracking']
+
+ :type: string or false
+ :default: ``''``
+
+ Since release 3.3.x a tracking mechanism is available. It helps you to
+ track every :term:`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 :guilabel:`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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['tracking']` (e.g.
+ ``pma__tracking``)
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. _tracking2:
+.. config:option:: $cfg['Servers'][$i]['tracking_version_auto_create']
+
+ :type: boolean
+ :default: 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.
+
+.. _tracking3:
+.. config:option:: $cfg['Servers'][$i]['tracking_default_statements']
+
+ :type: string
+ :default: ``'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.
+
+.. _tracking4:
+.. config:option:: $cfg['Servers'][$i]['tracking_add_drop_view']
+
+ :type: boolean
+ :default: true
+
+ Whether a DROP VIEW IF EXISTS statement will be added as first line to
+ the log when creating a view.
+
+.. _tracking5:
+.. config:option:: $cfg['Servers'][$i]['tracking_add_drop_table']
+
+ :type: boolean
+ :default: true
+
+ Whether a DROP TABLE IF EXISTS statement will be added as first line
+ to the log when creating a table.
+
+.. _tracking6:
+.. config:option:: $cfg['Servers'][$i]['tracking_add_drop_database']
+
+ :type: boolean
+ :default: true
+
+ Whether a DROP DATABASE IF EXISTS statement will be added as first
+ line to the log when creating a database.
+
+.. _userconfig:
+.. config:option:: $cfg['Servers'][$i]['userconfig']
+
+ :type: string or false
+ :default: ``''``
+
+ 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
+ :config:option:`$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:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['userconfig']`
+
+ This feature can be disabled by setting the configuration to ``false``.
+
+.. config:option:: $cfg['Servers'][$i]['MaxTableUiprefs']
+
+ :type: integer
+ :default: 100
+
+ Maximum number of rows saved in
+ :config:option:`$cfg['Servers'][$i]['table_uiprefs']` table.
+
+ When tables are dropped or renamed,
+ :config:option:`$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 :config:option:`$cfg['Servers'][$i]['table_uiprefs']` and automatically
+ delete older rows.
+
+.. config:option:: $cfg['Servers'][$i]['SessionTimeZone']
+
+ :type: string
+ :default: ``''``
+
+ 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.
+
+.. config:option:: $cfg['Servers'][$i]['AllowRoot']
+
+ :type: boolean
+ :default: true
+
+ Whether to allow root access. This is just a shortcut for the
+ :config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']` below.
+
+.. config:option:: $cfg['Servers'][$i]['AllowNoPassword']
+
+ :type: boolean
+ :default: 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.
+
+.. _servers_allowdeny_order:
+.. config:option:: $cfg['Servers'][$i]['AllowDeny']['order']
+
+ :type: string
+ :default: ``''``
+
+ If your rule order is empty, then :term:`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 :config:option:`$cfg['TrustedProxies']` for
+ detecting IP address behind proxies.
+
+.. _servers_allowdeny_rules:
+.. config:option:: $cfg['Servers'][$i]['AllowDeny']['rules']
+
+ :type: array of strings
+ :default: array()
+
+ The general format for the rules is as such:
+
+ .. code-block:: none
+
+ <'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):
+
+ .. code-block:: none
+
+ '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 :term:`IP address` matching
+ system, the following work:
+
+ * ``xxx.xxx.xxx.xxx`` (an exact :term:`IP address`)
+ * ``xxx.xxx.xxx.[yyy-zzz]`` (an :term:`IP address` range)
+ * ``xxx.xxx.xxx.xxx/nn`` (CIDR, Classless Inter-Domain Routing type :term:`IP` addresses)
+
+ But the following does not work:
+
+ * ``xxx.xxx.xxx.xx[yyy-zzz]`` (partial :term:`IP` address range)
+
+ For :term:`IPv6` addresses, the following work:
+
+ * ``xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx`` (an exact :term:`IPv6` address)
+ * ``xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:[yyyy-zzzz]`` (an :term:`IPv6` address range)
+ * ``xxxx:xxxx:xxxx:xxxx/nn`` (CIDR, Classless Inter-Domain Routing type :term:`IPv6` addresses)
+
+ But the following does not work:
+
+ * ``xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xx[yyy-zzz]`` (partial :term:`IPv6` address range)
+
+ Examples:
+
+ .. code-block:: none
+
+ $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
+
+.. config:option:: $cfg['Servers'][$i]['DisableIS']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['Servers'][$i]['SignonScript']
+
+ :type: string
+ :default: ``''``
+
+ .. versionadded:: 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 :file:`examples/signon-script.php` for an example:
+
+ .. literalinclude:: ../examples/signon-script.php
+ :language: php
+
+ .. seealso:: :ref:`auth_signon`
+
+.. config:option:: $cfg['Servers'][$i]['SignonSession']
+
+ :type: string
+ :default: ``''``
+
+ 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
+ :config:option:`$cfg['Servers'][$i]['SignonScript']` is not configured.
+
+ .. seealso:: :ref:`auth_signon`
+
+.. config:option:: $cfg['Servers'][$i]['SignonCookieParams']
+
+ :type: array
+ :default: ``array()``
+
+ .. versionadded:: 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 <https://www.php.net/manual/en/
+ function.session-get-cookie-params.php>`_, they should be set to same values as the
+ other application uses. Takes effect only if
+ :config:option:`$cfg['Servers'][$i]['SignonScript']` is not configured.
+
+ .. seealso:: :ref:`auth_signon`
+
+.. config:option:: $cfg['Servers'][$i]['SignonURL']
+
+ :type: string
+ :default: ``''``
+
+ :term:`URL` where user will be redirected
+ to log in for signon authentication method. Should be absolute
+ including protocol.
+
+ .. seealso:: :ref:`auth_signon`
+
+.. config:option:: $cfg['Servers'][$i]['LogoutURL']
+
+ :type: string
+ :default: ``''``
+
+ :term:`URL` where user will be redirected
+ after logout (doesn't affect config authentication method). Should be
+ absolute including protocol.
+
+Generic settings
+----------------
+
+.. config:option:: $cfg['DisableShortcutKeys']
+
+ :type: boolean
+ :default: false
+
+ You can disable phpMyAdmin shortcut keys by setting :config:option:`$cfg['DisableShortcutKeys']` to false.
+
+.. config:option:: $cfg['ServerDefault']
+
+ :type: integer
+ :default: 1
+
+ If you have more than one server configured, you can set
+ :config:option:`$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,
+ :config:option:`$cfg['ServerDefault']` MUST be set to that server.
+
+.. config:option:: $cfg['VersionCheck']
+
+ :type: boolean
+ :default: true
+
+ Enables check for latest versions using JavaScript on the main phpMyAdmin
+ page or by directly accessing :file:`version_check.php`.
+
+ .. note::
+
+ This setting can be adjusted by your vendor.
+
+.. config:option:: $cfg['ProxyUrl']
+
+ :type: string
+ :default: ""
+
+ 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"
+
+.. config:option:: $cfg['ProxyUser']
+
+ :type: string
+ :default: ""
+
+ 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.
+
+.. config:option:: $cfg['ProxyPass']
+
+ :type: string
+ :default: ""
+
+ The password for authenticating with the proxy.
+
+.. config:option:: $cfg['MaxDbList']
+
+ :type: integer
+ :default: 100
+
+ The maximum number of database names to be displayed in the main panel's
+ database list.
+
+.. config:option:: $cfg['MaxTableList']
+
+ :type: integer
+ :default: 250
+
+ The maximum number of table names to be displayed in the main panel's
+ list (except on the Export page).
+
+.. config:option:: $cfg['ShowHint']
+
+ :type: boolean
+ :default: true
+
+ Whether or not to show hints (for example, hints when hovering over
+ table headers).
+
+.. config:option:: $cfg['MaxCharactersInDisplayedSQL']
+
+ :type: integer
+ :default: 1000
+
+ The maximum number of characters when a :term:`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
+ :term:`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.
+
+.. config:option:: $cfg['PersistentConnections']
+
+ :type: boolean
+ :default: false
+
+ Whether `persistent connections <https://www.php.net/manual/en/features
+ .persistent-connections.php>`_ should be used or not. Works with
+ following extensions:
+
+ * mysql (`mysql\_pconnect <https://www.php.net/manual/en/function.mysql-
+ pconnect.php>`_),
+ * mysqli (requires PHP 5.3.0 or newer, `more information
+ <https://www.php.net/manual/en/mysqli.persistconns.php>`_).
+
+.. config:option:: $cfg['ForceSSL']
+
+ :type: boolean
+ :default: false
+
+ .. deprecated:: 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 :config:option:`$cfg['PmaAbsoluteUri']` for correct
+ redirection.
+
+.. config:option:: $cfg['ExecTimeLimit']
+
+ :type: integer [number of seconds]
+ :default: 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.
+
+.. config:option:: $cfg['SessionSavePath']
+
+ :type: string
+ :default: ``''``
+
+ Path for storing session data (`session\_save\_path PHP parameter
+ <https://www.php.net/session_save_path>`_).
+
+ .. warning::
+
+ This folder should not be publicly accessible through the webserver,
+ otherwise you risk leaking private data from your session.
+
+.. config:option:: $cfg['MemoryLimit']
+
+ :type: string [number of bytes]
+ :default: ``'-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 :file:`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 :file:`php.ini`, eg. '16M'. Ensure you
+ don't omit the suffix (16 means 16 bytes!)
+
+.. config:option:: $cfg['SkipLockedTables']
+
+ :type: boolean
+ :default: false
+
+ Mark used tables and make it possible to show databases with locked
+ tables (since MySQL 3.23.30).
+
+.. config:option:: $cfg['ShowSQL']
+
+ :type: boolean
+ :default: true
+
+ Defines whether :term:`SQL` queries
+ generated by phpMyAdmin should be displayed or not.
+
+.. config:option:: $cfg['RetainQueryBox']
+
+ :type: boolean
+ :default: false
+
+ Defines whether the :term:`SQL` query box
+ should be kept displayed after its submission.
+
+.. config:option:: $cfg['CodemirrorEnable']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['DefaultForeignKeyChecks']
+
+ :type: string
+ :default: ``'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.
+
+.. config:option:: $cfg['AllowUserDropDatabase']
+
+ :type: boolean
+ :default: 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 :guilabel:`Drop
+ Database` will not be shown, and even a ``DROP DATABASE mydatabase`` will
+ be rejected. Quite practical for :term:`ISP` 's with many customers.
+
+ This limitation of :term:`SQL` queries is not as strict as when using MySQL
+ privileges. This is due to nature of :term:`SQL` queries which might be
+ quite complicated. So this choice should be viewed as help to avoid
+ accidental dropping rather than strict privilege limitation.
+
+.. config:option:: $cfg['Confirm']
+
+ :type: boolean
+ :default: true
+
+ Whether a warning ("Are your really sure...") should be displayed when
+ you're about to lose data.
+
+.. config:option:: $cfg['UseDbSearch']
+
+ :type: boolean
+ :default: true
+
+ Define whether the "search string inside database" is enabled or not.
+
+.. config:option:: $cfg['IgnoreMultiSubmitErrors']
+
+ :type: boolean
+ :default: false
+
+ Define whether phpMyAdmin will continue executing a multi-query
+ statement if one of the queries fails. Default is to abort execution.
+
+.. config:option:: $cfg['enable_drag_drop_import']
+
+ :type: boolean
+ :default: 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.
+
+Cookie authentication options
+-----------------------------
+
+.. config:option:: $cfg['blowfish_secret']
+
+ :type: string
+ :default: ``''``
+
+ The "cookie" auth\_type uses AES algorithm to encrypt the password. If you
+ are using the "cookie" auth\_type, enter here a random passphrase of your
+ choice. It will be used internally by the AES algorithm: you won’t be
+ prompted for this passphrase.
+
+ The secret should be 32 characters long. Using shorter will lead to weaker security
+ of encrypted cookies, using longer will cause no harm.
+
+ .. note::
+
+ The configuration is called blowfish_secret for historical reasons as
+ Blowfish algorithm was originally used to do the encryption.
+
+ .. versionchanged:: 3.1.0
+ Since version 3.1.0 phpMyAdmin can generate this on the fly, but it
+ makes a bit weaker security as this generated secret is stored in
+ session and furthermore it makes impossible to recall user name from
+ cookie.
+
+.. config:option:: $cfg['LoginCookieRecall']
+
+ :type: boolean
+ :default: true
+
+ Define whether the previous login should be recalled or not in cookie
+ authentication mode.
+
+ This is automatically disabled if you do not have
+ configured :config:option:`$cfg['blowfish_secret']`.
+
+.. config:option:: $cfg['LoginCookieValidity']
+
+ :type: integer [number of seconds]
+ :default: 1440
+
+ Define how long a login cookie is valid. Please note that php
+ configuration option `session.gc\_maxlifetime
+ <https://www.php.net/manual/en/session.configuration.php#ini.session.gc-
+ maxlifetime>`_ might limit session validity and if the session is lost,
+ the login cookie is also invalidated. So it is a good idea to set
+ ``session.gc_maxlifetime`` at least to the same value of
+ :config:option:`$cfg['LoginCookieValidity']`.
+
+.. config:option:: $cfg['LoginCookieStore']
+
+ :type: integer [number of seconds]
+ :default: 0
+
+ Define how long login cookie should be stored in browser. Default 0
+ means that it will be kept for existing session. This is recommended
+ for not trusted environments.
+
+.. config:option:: $cfg['LoginCookieDeleteAll']
+
+ :type: boolean
+ :default: true
+
+ If enabled (default), logout deletes cookies for all servers,
+ otherwise only for current one. Setting this to false makes it easy to
+ forget to log out from other server, when you are using more of them.
+
+.. _AllowArbitraryServer:
+.. config:option:: $cfg['AllowArbitraryServer']
+
+ :type: boolean
+ :default: false
+
+ If enabled, allows you to log in to arbitrary servers using cookie
+ authentication.
+
+ .. note::
+
+ Please use this carefully, as this may allow users access to MySQL servers
+ behind the firewall where your :term:`HTTP` server is placed.
+ See also :config:option:`$cfg['ArbitraryServerRegexp']`.
+
+.. config:option:: $cfg['ArbitraryServerRegexp']
+
+ :type: string
+ :default: ``''``
+
+ Restricts the MySQL servers to which the user can log in when
+ :config:option:`$cfg['AllowArbitraryServer']` is enabled by
+ matching the :term:`IP` or the hostname of the MySQL server
+ to the given regular expression. The regular expression must be enclosed
+ with a delimiter character.
+
+ It is recommended to include start and end symbols in the regullar
+ expression, so that you can avoid partial matches on the string.
+
+ **Examples:**
+
+ .. code-block:: php
+
+ // Allow connection to three listed servers:
+ $cfg['ArbitraryServerRegexp'] = '/^(server|another|yetdifferent)$/';
+
+ // Allow connection to range of IP addresses:
+ $cfg['ArbitraryServerRegexp'] = '@^192\.168\.0\.[0-9]{1,}$@';
+
+ // Allow connection to server name ending with -mysql:
+ $cfg['ArbitraryServerRegexp'] = '@^[^:]\-mysql$@';
+
+ .. note::
+
+ The whole server name is matched, it can include port as well. Due to
+ way MySQL is permissive in connection parameters, it is possible to use
+ connection strings as ```server:3306-mysql```. This can be used to
+ bypass regullar expression by the suffix, while connecting to another
+ server.
+
+.. config:option:: $cfg['CaptchaLoginPublicKey']
+
+ :type: string
+ :default: ``''``
+
+ The public key for the reCaptcha service that can be obtained from
+ https://www.google.com/recaptcha/intro/v3.html.
+
+ reCaptcha will be then used in :ref:`cookie`.
+
+.. config:option:: $cfg['CaptchaLoginPrivateKey']
+
+ :type: string
+ :default: ``''``
+
+ The private key for the reCaptcha service that can be obtain from
+ https://www.google.com/recaptcha/intro/v3.html.
+
+ reCaptcha will be then used in :ref:`cookie`.
+
+Navigation panel setup
+----------------------
+
+.. config:option:: $cfg['ShowDatabasesNavigationAsTree']
+
+ :type: boolean
+ :default: true
+
+ In the navigation panel, replaces the database tree with a selector
+
+.. config:option:: $cfg['FirstLevelNavigationItems']
+
+ :type: integer
+ :default: 100
+
+ The number of first level databases that can be displayed on each page
+ of navigation tree.
+
+.. config:option:: $cfg['MaxNavigationItems']
+
+ :type: integer
+ :default: 50
+
+ The number of items (tables, columns, indexes) that can be displayed on each
+ page of the navigation tree.
+
+.. config:option:: $cfg['NavigationTreeEnableGrouping']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to group the databases based on a common prefix
+ in their name :config:option:`$cfg['NavigationTreeDbSeparator']`.
+
+.. config:option:: $cfg['NavigationTreeDbSeparator']
+
+ :type: string
+ :default: ``'_'``
+
+ The string used to separate the parts of the database name when
+ showing them in a tree.
+
+.. config:option:: $cfg['NavigationTreeTableSeparator']
+
+ :type: string or array
+ :default: ``'__'``
+
+ Defines a string to be used to nest table spaces. This means if you have
+ tables like ``first__second__third`` this will be shown as a three-level
+ hierarchy like: first > second > third. If set to false or empty, the
+ feature is disabled. NOTE: You should not use this separator at the
+ beginning or end of a table name or multiple times after another without
+ any other characters in between.
+
+.. config:option:: $cfg['NavigationTreeTableLevel']
+
+ :type: integer
+ :default: 1
+
+ Defines how many sublevels should be displayed when splitting up
+ tables by the above separator.
+
+.. config:option:: $cfg['NumRecentTables']
+
+ :type: integer
+ :default: 10
+
+ The maximum number of recently used tables shown in the navigation
+ panel. Set this to 0 (zero) to disable the listing of recent tables.
+
+.. config:option:: $cfg['NumFavoriteTables']
+
+ :type: integer
+ :default: 10
+
+ The maximum number of favorite tables shown in the navigation
+ panel. Set this to 0 (zero) to disable the listing of favorite tables.
+
+.. config:option:: $cfg['ZeroConf']
+
+ :type: boolean
+ :default: true
+
+ Enables Zero Configuration mode in which the user will be offered a choice to
+ create phpMyAdmin configuration storage in the current database
+ or use the existing one, if already present.
+
+ This setting has no effect if the phpMyAdmin configuration storage database
+ is properly created and the related configuration directives (such as
+ :config:option:`$cfg['Servers'][$i]['pmadb']` and so on) are configured.
+
+.. config:option:: $cfg['NavigationLinkWithMainPanel']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not to link with main panel by highlighting
+ the current database or table.
+
+.. config:option:: $cfg['NavigationDisplayLogo']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not to display the phpMyAdmin logo at the top of
+ the navigation panel.
+
+.. config:option:: $cfg['NavigationLogoLink']
+
+ :type: string
+ :default: ``'index.php'``
+
+ Enter :term:`URL` where logo in the navigation panel will point to.
+ For use especially with self made theme which changes this.
+ For relative/internal URLs, you need to have leading `` ./ `` or trailing characters `` ? `` such as ``'./sql.php?'``.
+ For external URLs, you should include URL protocol schemes (``http`` or ``https``) with absolute URLs.
+
+.. config:option:: $cfg['NavigationLogoLinkWindow']
+
+ :type: string
+ :default: ``'main'``
+
+ Whether to open the linked page in the main window (``main``) or in a
+ new one (``new``). Note: use ``new`` if you are linking to
+ ``phpmyadmin.net``.
+
+.. config:option:: $cfg['NavigationTreeDisplayItemFilterMinimum']
+
+ :type: integer
+ :default: 30
+
+ Defines the minimum number of items (tables, views, routines and
+ events) to display a JavaScript filter box above the list of items in
+ the navigation tree.
+
+ To disable the filter completely some high number can be used (e.g. 9999)
+
+.. config:option:: $cfg['NavigationTreeDisplayDbFilterMinimum']
+
+ :type: integer
+ :default: 30
+
+ Defines the minimum number of databases to display a JavaScript filter
+ box above the list of databases in the navigation tree.
+
+ To disable the filter completely some high number can be used
+ (e.g. 9999)
+
+.. config:option:: $cfg['NavigationDisplayServers']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not to display a server choice at the top of the
+ navigation panel.
+
+.. config:option:: $cfg['DisplayServersList']
+
+ :type: boolean
+ :default: false
+
+ Defines whether to display this server choice as links instead of in a
+ drop-down.
+
+.. config:option:: $cfg['NavigationTreeDefaultTabTable']
+
+ :type: string
+ :default: ``'structure'``
+
+ Defines the tab displayed by default when clicking the small icon next
+ to each table name in the navigation panel. The possible values are the
+ localized equivalent of:
+
+ * ``structure``
+ * ``sql``
+ * ``search``
+ * ``insert``
+ * ``browse``
+
+.. config:option:: $cfg['NavigationTreeDefaultTabTable2']
+
+ :type: string
+ :default: null
+
+ Defines the tab displayed by default when clicking the second small icon next
+ to each table name in the navigation panel. The possible values are the
+ localized equivalent of:
+
+ * ``(empty)``
+ * ``structure``
+ * ``sql``
+ * ``search``
+ * ``insert``
+ * ``browse``
+
+.. config:option:: $cfg['NavigationTreeEnableExpansion']
+
+ :type: boolean
+ :default: true
+
+ Whether to offer the possibility of tree expansion in the navigation panel.
+
+.. config:option:: $cfg['NavigationTreeShowTables']
+
+ :type: boolean
+ :default: true
+
+ Whether to show tables under database in the navigation panel.
+
+.. config:option:: $cfg['NavigationTreeShowViews']
+
+ :type: boolean
+ :default: true
+
+ Whether to show views under database in the navigation panel.
+
+.. config:option:: $cfg['NavigationTreeShowFunctions']
+
+ :type: boolean
+ :default: true
+
+ Whether to show functions under database in the navigation panel.
+
+.. config:option:: $cfg['NavigationTreeShowProcedures']
+
+ :type: boolean
+ :default: true
+
+ Whether to show procedures under database in the navigation panel.
+
+.. config:option:: $cfg['NavigationTreeShowEvents']
+
+ :type: boolean
+ :default: true
+
+ Whether to show events under database in the navigation panel.
+
+.. config:option:: $cfg['NavigationWidth']
+
+ :type: integer
+ :default: 240
+
+ Navigation panel width, set to 0 to collapse it by default.
+
+Main panel
+----------
+
+.. config:option:: $cfg['ShowStats']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['ShowServerInfo']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to display detailed server information on main page.
+ You can additionally hide more information by using
+ :config:option:`$cfg['Servers'][$i]['verbose']`.
+
+.. config:option:: $cfg['ShowPhpInfo']
+
+ :type: boolean
+ :default: false
+
+ Defines whether to display the :guilabel:`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 :file:`php.ini`:
+
+ .. code-block:: 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.
+
+.. config:option:: $cfg['ShowChgPassword']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to display the :guilabel:`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 :guilabel:`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.
+
+.. config:option:: $cfg['ShowCreateDb']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['ShowGitRevision']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to display informations about the current Git revision (if
+ applicable) on the main panel.
+
+.. config:option:: $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
+------------------
+
+.. config:option:: $cfg['ShowDbStructureCreation']
+
+ :type: boolean
+ :default: false
+
+ Defines whether the database structure page (tables list) has a
+ "Creation" column that displays when each table was created.
+
+.. config:option:: $cfg['ShowDbStructureLastUpdate']
+
+ :type: boolean
+ :default: false
+
+ Defines whether the database structure page (tables list) has a "Last
+ update" column that displays when each table was last updated.
+
+.. config:option:: $cfg['ShowDbStructureLastCheck']
+
+ :type: boolean
+ :default: false
+
+ Defines whether the database structure page (tables list) has a "Last
+ check" column that displays when each table was last checked.
+
+.. config:option:: $cfg['HideStructureActions']
+
+ :type: boolean
+ :default: true
+
+ Defines whether the table structure actions are hidden under a "More"
+ drop-down.
+
+.. config:option:: $cfg['ShowColumnComments']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to show column comments as a column in the table structure view.
+
+Browse mode
+-----------
+
+.. config:option:: $cfg['TableNavigationLinksMode']
+
+ :type: string
+ :default: ``'icons'``
+
+ Defines whether the table navigation links contain ``'icons'``, ``'text'``
+ or ``'both'``.
+
+.. config:option:: $cfg['ActionLinksMode']
+
+ :type: string
+ :default: ``'both'``
+
+ If set to ``icons``, will display icons instead of text for db and table
+ properties links (like :guilabel:`Browse`, :guilabel:`Select`,
+ :guilabel:`Insert`, ...). Can be set to ``'both'``
+ if you want icons AND text. When set to ``text``, will only show text.
+
+.. config:option:: $cfg['RowActionType']
+
+ :type: string
+ :default: ``'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'``.
+
+.. config:option:: $cfg['ShowAll']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['MaxRows']
+
+ :type: integer
+ :default: 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.
+
+.. config:option:: $cfg['Order']
+
+ :type: string
+ :default: ``'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.
+
+ .. versionchanged:: 3.4.0
+ Since phpMyAdmin 3.4.0 the default value is ``'SMART'``.
+
+.. config:option:: $cfg['GridEditing']
+
+ :type: string
+ :default: ``'double-click'``
+
+ Defines which action (``double-click`` or ``click``) triggers grid
+ editing. Can be deactivated with the ``disabled`` value.
+
+.. config:option:: $cfg['RelationalDisplay']
+
+ :type: string
+ :default: ``'K'``
+
+ Defines the initial behavior for Options > Relational. ``K``, which
+ is the default, displays the key while ``D`` shows the display column.
+
+.. config:option:: $cfg['SaveCellsAtOnce']
+
+ :type: boolean
+ :default: false
+
+ Defines whether or not to save all edited cells at once for grid
+ editing.
+
+Editing mode
+------------
+
+.. config:option:: $cfg['ProtectBinary']
+
+ :type: boolean or string
+ :default: ``'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.
+
+.. config:option:: $cfg['ShowFunctionFields']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['ShowFieldTypesInDataEditView']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not type fields should be initially displayed in
+ edit/insert mode. The user can toggle this setting from the interface.
+
+.. config:option:: $cfg['InsertRows']
+
+ :type: integer
+ :default: 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.
+
+.. config:option:: $cfg['ForeignKeyMaxLimit']
+
+ :type: integer
+ :default: 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 :config:option:`$cfg['ForeignKeyDropdownOrder']` setting.
+
+.. config:option:: $cfg['ForeignKeyDropdownOrder']
+
+ :type: array
+ :default: 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
+--------------------------
+
+.. config:option:: $cfg['ZipDump']
+
+ :type: boolean
+ :default: true
+
+.. config:option:: $cfg['GZipDump']
+
+ :type: boolean
+ :default: true
+
+.. config:option:: $cfg['BZipDump']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to allow the use of zip/GZip/BZip2 compression when
+ creating a dump file
+
+.. config:option:: $cfg['CompressOnFly']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['Export']
+
+ :type: array
+ :default: 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.
+
+.. config:option:: $cfg['Export']['format']
+
+ :type: string
+ :default: ``'sql'``
+
+ Default export format.
+
+.. config:option:: $cfg['Export']['method']
+
+ :type: string
+ :default: ``'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
+
+.. config:option:: $cfg['Export']['charset']
+
+ :type: string
+ :default: ``''``
+
+ Defines charset for generated export. By default no charset conversion is
+ done assuming UTF-8.
+
+.. config:option:: $cfg['Export']['file_template_table']
+
+ :type: string
+ :default: ``'@TABLE@'``
+
+ Default filename template for table exports.
+
+ .. seealso:: :ref:`faq6_27`
+
+.. config:option:: $cfg['Export']['file_template_database']
+
+ :type: string
+ :default: ``'@DATABASE@'``
+
+ Default filename template for database exports.
+
+ .. seealso:: :ref:`faq6_27`
+
+.. config:option:: $cfg['Export']['file_template_server']
+
+ :type: string
+ :default: ``'@SERVER@'``
+
+ Default filename template for server exports.
+
+ .. seealso:: :ref:`faq6_27`
+
+.. config:option:: $cfg['Import']
+
+ :type: array
+ :default: 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.
+
+.. config:option:: $cfg['Import']['charset']
+
+ :type: string
+ :default: ``''``
+
+ Defines charset for import. By default no charset conversion is done
+ assuming UTF-8.
+
+Tabs display settings
+---------------------
+
+.. config:option:: $cfg['TabsMode']
+
+ :type: string
+ :default: ``'both'``
+
+ Defines whether the menu tabs contain ``'icons'``, ``'text'`` or ``'both'``.
+
+.. config:option:: $cfg['PropertiesNumColumns']
+
+ :type: integer
+ :default: 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.
+
+.. config:option:: $cfg['DefaultTabServer']
+
+ :type: string
+ :default: ``'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``
+
+.. config:option:: $cfg['DefaultTabDatabase']
+
+ :type: string
+ :default: ``'structure'``
+
+ Defines the tab displayed by default on database view. The possible values
+ are the localized equivalent of:
+
+ * ``structure``
+ * ``sql``
+ * ``search``
+ * ``operations``
+
+.. config:option:: $cfg['DefaultTabTable']
+
+ :type: string
+ :default: ``'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
+-----------
+
+.. config:option:: $cfg['PDFPageSizes']
+
+ :type: array
+ :default: ``array('A3', 'A4', 'A5', 'letter', 'legal')``
+
+ Array of possible paper sizes for creating PDF pages.
+
+ You should never need to change this.
+
+.. config:option:: $cfg['PDFDefaultPageSize']
+
+ :type: string
+ :default: ``'A4'``
+
+ Default page size to use when creating PDF pages. Valid values are any
+ listed in :config:option:`$cfg['PDFPageSizes']`.
+
+Languages
+---------
+
+.. config:option:: $cfg['DefaultLang']
+
+ :type: string
+ :default: ``'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.
+
+.. config:option:: $cfg['DefaultConnectionCollation']
+
+ :type: string
+ :default: ``'utf8mb4_general_ci'``
+
+ Defines the default connection collation to use, if not user-defined.
+ See the `MySQL documentation for charsets
+ <https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html>`_
+ for list of possible values.
+
+.. config:option:: $cfg['Lang']
+
+ :type: string
+ :default: not set
+
+ Force language to use. The corresponding language file needs to be in
+ locale/*code*/LC\_MESSAGES/phpmyadmin.mo.
+
+.. config:option:: $cfg['FilterLanguages']
+
+ :type: string
+ :default: ``''``
+
+ 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)'``.
+
+.. config:option:: $cfg['RecodingEngine']
+
+ :type: string
+ :default: ``'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 :term:`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
+ :config:option:`$cfg['Export']['charset']` and :config:option:`$cfg['Import']['charset']`.
+
+.. config:option:: $cfg['IconvExtraParams']
+
+ :type: string
+ :default: ``'//TRANSLIT'``
+
+ Specify some parameters for iconv used in charset conversion. See
+ `iconv documentation <https://www.gnu.org/savannah-checkouts/gnu/libiconv/documentati
+ on/libiconv-1.15/iconv_open.3.html>`_ for details. By default
+ ``//TRANSLIT`` is used, so that invalid characters will be
+ transliterated.
+
+.. config:option:: $cfg['AvailableCharsets']
+
+ :type: array
+ :default: 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
+-------------------
+
+.. config:option:: $cfg['OBGzip']
+
+ :type: string/boolean
+ :default: ``'auto'``
+
+ Defines whether to use GZip output buffering for increased speed in
+ :term:`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.
+
+.. config:option:: $cfg['TrustedProxies']
+
+ :type: array
+ :default: array()
+
+ Lists proxies and HTTP headers which are trusted for
+ :config:option:`$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:
+
+ .. code-block:: php
+
+ $cfg['TrustedProxies'] = array('1.2.3.4' => 'HTTP_X_FORWARDED_FOR');
+
+ The :config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']` directive uses the
+ client's IP address as usual.
+
+.. config:option:: $cfg['GD2Available']
+
+ :type: string
+ :default: ``'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
+
+.. config:option:: $cfg['CheckConfigurationPermissions']
+
+ :type: boolean
+ :default: 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``.
+
+.. config:option:: $cfg['LinkLengthLimit']
+
+ :type: integer
+ :default: 1000
+
+ Limit for length of :term:`URL` in links. When length would be above this
+ limit, it is replaced by form with button. This is required as some web
+ servers (:term:`IIS`) have problems with long :term:`URL` .
+
+.. config:option:: $cfg['CSPAllow']
+
+ :type: string
+ :default: ``''``
+
+ 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 :file:`config.footer.inc.php` or :file:`config.header.inc.php`, which
+ would be normally not allowed by Content Security Policy.
+
+ To allow some sites, just list them within the string:
+
+ .. code-block:: php
+
+ $cfg['CSPAllow'] = 'example.com example.net';
+
+ .. versionadded:: 4.0.4
+
+.. config:option:: $cfg['DisableMultiTableMaintenance']
+
+ :type: boolean
+ :default: 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 :file:`themes/themename/layout.inc.php`, although
+ your changes will be overwritten with the next update.
+
+Design customization
+--------------------
+
+.. config:option:: $cfg['NavigationTreePointerEnable']
+
+ :type: boolean
+ :default: true
+
+ When set to true, hovering over an item in the navigation panel causes that item to be marked
+ (the background is highlighted).
+
+.. config:option:: $cfg['BrowsePointerEnable']
+
+ :type: boolean
+ :default: true
+
+ When set to true, hovering over a row in the Browse page causes that row to be marked (the background
+ is highlighted).
+
+.. config:option:: $cfg['BrowseMarkerEnable']
+
+ :type: boolean
+ :default: true
+
+ When set to true, a data row is marked (the background is highlighted) when the row is selected
+ with the checkbox.
+
+.. config:option:: $cfg['LimitChars']
+
+ :type: integer
+ :default: 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.
+
+.. config:option:: $cfg['RowActionLinks']
+
+ :type: string
+ :default: ``'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).
+
+.. config:option:: $cfg['RowActionLinksWithoutUnique']
+
+ :type: boolean
+ :default: false
+
+ Defines whether to show row links (Edit, Copy, Delete) and checkboxes
+ for multiple row operations even when the selection does not have a :term:`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).
+
+.. config:option:: $cfg['RememberSorting']
+
+ :type: boolean
+ :default: true
+
+ If enabled, remember the sorting of each table when browsing them.
+
+.. config:option:: $cfg['TablePrimaryKeyOrder']
+
+ :type: string
+ :default: ``'NONE'``
+
+ This defines the default sort order for the tables, having a :term:`primary key`,
+ when there is no sort order defines externally.
+ Acceptable values : ['NONE', 'ASC', 'DESC']
+
+.. config:option:: $cfg['ShowBrowseComments']
+
+ :type: boolean
+ :default: true
+
+.. config:option:: $cfg['ShowPropertyComments']
+
+ :type: boolean
+ :default: 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
+-----------
+
+.. config:option:: $cfg['CharEditing']
+
+ :type: string
+ :default: ``'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
+
+.. config:option:: $cfg['MinSizeForInputField']
+
+ :type: integer
+ :default: 4
+
+ Defines the minimum size for input fields generated for CHAR and
+ VARCHAR columns.
+
+.. config:option:: $cfg['MaxSizeForInputField']
+
+ :type: integer
+ :default: 60
+
+ Defines the maximum size for input fields generated for CHAR and
+ VARCHAR columns.
+
+.. config:option:: $cfg['TextareaCols']
+
+ :type: integer
+ :default: 40
+
+.. config:option:: $cfg['TextareaRows']
+
+ :type: integer
+ :default: 15
+
+.. config:option:: $cfg['CharTextareaCols']
+
+ :type: integer
+ :default: 40
+
+.. config:option:: $cfg['CharTextareaRows']
+
+ :type: integer
+ :default: 2
+
+ Number of columns and rows for the textareas. This value will be
+ emphasized (\*2) for :term:`SQL` query
+ textareas and (\*1.25) for :term:`SQL`
+ textareas inside the query window.
+
+ The Char\* values are used for CHAR
+ and VARCHAR editing (if configured via :config:option:`$cfg['CharEditing']`).
+
+.. config:option:: $cfg['LongtextDoubleTextarea']
+
+ :type: boolean
+ :default: true
+
+ Defines whether textarea for LONGTEXT columns should have double size.
+
+.. config:option:: $cfg['TextareaAutoSelect']
+
+ :type: boolean
+ :default: false
+
+ Defines if the whole textarea of the query box will be selected on
+ click.
+
+.. config:option:: $cfg['EnableAutocompleteForTablesAndColumns']
+
+ :type: boolean
+ :default: true
+
+ Whether to enable autocomplete for table and column names in any
+ SQL query box.
+
+SQL query box settings
+----------------------
+
+.. config:option:: $cfg['SQLQuery']['Edit']
+
+ :type: boolean
+ :default: true
+
+ Whether to display an edit link to change a query in any SQL Query
+ box.
+
+.. config:option:: $cfg['SQLQuery']['Explain']
+
+ :type: boolean
+ :default: true
+
+ Whether to display a link to explain a SELECT query in any SQL Query
+ box.
+
+.. config:option:: $cfg['SQLQuery']['ShowAsPHP']
+
+ :type: boolean
+ :default: true
+
+ Whether to display a link to wrap a query in PHP code in any SQL Query
+ box.
+
+.. config:option:: $cfg['SQLQuery']['Refresh']
+
+ :type: boolean
+ :default: true
+
+ Whether to display a link to refresh a query in any SQL Query box.
+
+.. _web-dirs:
+
+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 :file:`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.
+
+.. config:option:: $cfg['UploadDir']
+
+ :type: string
+ :default: ``''``
+
+ The name of the directory where :term:`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 :term:`HTTP`, or when file
+ uploads are disabled in PHP.
+
+ .. warning::
+
+ Please see top of this chapter (:ref:`web-dirs`) for instructions how
+ to setup this directory and how to make its usage secure.
+
+ .. seealso::
+
+ See :ref:`faq1_16` for alternatives.
+
+.. config:option:: $cfg['SaveDir']
+
+ :type: string
+ :default: ``''``
+
+ 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 (:ref:`web-dirs`) for instructions how
+ to setup this directory and how to make its usage secure.
+
+.. config:option:: $cfg['TempDir']
+
+ :type: string
+ :default: ``'./tmp/'``
+
+ The name of the directory where temporary files can be stored. It is used
+ for several purposes, currently:
+
+ * The templates cache which speeds up page loading.
+ * ESRI Shapefiles import, see :ref:`faq6_30`.
+ * To work around limitations of ``open_basedir`` for uploaded files, see
+ :ref:`faq1_11`.
+
+ 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:
+
+ .. code-block:: sh
+
+ chown www-data:www-data tmp
+ chmod 700 tmp
+
+ If you cannot change owner of the directory, you can achieve a similar
+ setup using :term:`ACL`:
+
+ .. code-block:: sh
+
+ 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
+ :command:`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 (:ref:`web-dirs`) for instructions how
+ to setup this directory and how to make its usage secure.
+
+Various display setting
+-----------------------
+
+.. config:option:: $cfg['RepeatCells']
+
+ :type: integer
+ :default: 100
+
+ Repeat the headers every X cells, or 0 to deactivate.
+
+.. config:option:: $cfg['QueryHistoryDB']
+
+ :type: boolean
+ :default: false
+
+.. config:option:: $cfg['QueryHistoryMax']
+
+ :type: integer
+ :default: 25
+
+ If :config:option:`$cfg['QueryHistoryDB']` is set to ``true``, all your
+ Queries are logged to a table, which has to be created by you (see
+ :config:option:`$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
+ :guilabel:`Edit SQL` after using a query. You can suppress updating the
+ query window by checking the box :guilabel:`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 :config:option:`$cfg['QueryHistoryDB']` is set to ``true`` you can
+ specify the amount of saved history items using
+ :config:option:`$cfg['QueryHistoryMax']`.
+
+.. config:option:: $cfg['BrowseMIME']
+
+ :type: boolean
+ :default: true
+
+ Enable :ref:`transformations`.
+
+.. config:option:: $cfg['MaxExactCount']
+
+ :type: integer
+ :default: 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.
+
+ .. versionchanged:: 4.8.0
+
+ The default value was lowered to 50000 for performance reasons.
+
+ .. versionchanged:: 4.2.6
+
+ The default value was changed to 500000.
+
+ .. seealso:: :ref:`faq3_11`
+
+.. config:option:: $cfg['MaxExactCountViews']
+
+ :type: integer
+ :default: 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.
+
+.. config:option:: $cfg['NaturalOrder']
+
+ :type: boolean
+ :default: 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.
+
+.. config:option:: $cfg['InitialSlidersState']
+
+ :type: string
+ :default: ``'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'``.
+
+.. config:option:: $cfg['UserprefsDisallow']
+
+ :type: array
+ :default: 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 :file:`libraries/classes/Config/Forms/User/`.
+
+.. config:option:: $cfg['UserprefsDeveloperTab']
+
+ :type: boolean
+ :default: false
+
+ Activates in the user preferences a tab containing options for
+ developers of phpMyAdmin.
+
+Page titles
+-----------
+
+.. config:option:: $cfg['TitleTable']
+
+ :type: string
+ :default: ``'@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@'``
+
+.. config:option:: $cfg['TitleDatabase']
+
+ :type: string
+ :default: ``'@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@'``
+
+.. config:option:: $cfg['TitleServer']
+
+ :type: string
+ :default: ``'@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@'``
+
+.. config:option:: $cfg['TitleDefault']
+
+ :type: string
+ :default: ``'@HTTP_HOST@ | @PHPMYADMIN@'``
+
+ Allows you to specify window's title bar. You can use :ref:`faq6_27`.
+
+Theme manager settings
+----------------------
+
+.. config:option:: $cfg['ThemeManager']
+
+ :type: boolean
+ :default: true
+
+ Enables user-selectable themes. See :ref:`faqthemes`.
+
+.. config:option:: $cfg['ThemeDefault']
+
+ :type: string
+ :default: ``'pmahomme'``
+
+ The default theme (a subdirectory under :file:`./themes/`).
+
+.. config:option:: $cfg['ThemePerServer']
+
+ :type: boolean
+ :default: false
+
+ Whether to allow different theme for each server.
+
+.. config:option:: $cfg['FontSize']
+
+ :type: string
+ :default: '82%'
+
+ .. deprecated:: 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
+---------------
+
+.. config:option:: $cfg['DefaultQueryTable']
+
+ :type: string
+ :default: ``'SELECT * FROM @TABLE@ WHERE 1'``
+
+.. config:option:: $cfg['DefaultQueryDatabase']
+
+ :type: string
+ :default: ``''``
+
+ Default queries that will be displayed in query boxes when user didn't
+ specify any. You can use standard :ref:`faq6_27`.
+
+MySQL settings
+--------------
+
+.. config:option:: $cfg['DefaultFunctions']
+
+ :type: array
+ :default: 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
+-----------------------------------
+
+.. config:option:: $cfg['DefaultTransformations']
+
+ :type: array
+ :default: An array with below listed key-values
+
+.. config:option:: $cfg['DefaultTransformations']['Substring']
+
+ :type: array
+ :default: array(0, 'all', '…')
+
+.. config:option:: $cfg['DefaultTransformations']['Bool2Text']
+
+ :type: array
+ :default: array('T', 'F')
+
+.. config:option:: $cfg['DefaultTransformations']['External']
+
+ :type: array
+ :default: array(0, '-f /dev/null -i -wrap -q', 1, 1)
+
+.. config:option:: $cfg['DefaultTransformations']['PreApPend']
+
+ :type: array
+ :default: array('', '')
+
+.. config:option:: $cfg['DefaultTransformations']['Hex']
+
+ :type: array
+ :default: array('2')
+
+.. config:option:: $cfg['DefaultTransformations']['DateFormat']
+
+ :type: array
+ :default: array(0, '', 'local')
+
+.. config:option:: $cfg['DefaultTransformations']['Inline']
+
+ :type: array
+ :default: array('100', 100)
+
+.. config:option:: $cfg['DefaultTransformations']['TextImageLink']
+
+ :type: array
+ :default: array('', 100, 50)
+
+.. config:option:: $cfg['DefaultTransformations']['TextLink']
+
+ :type: array
+ :default: array('', '', '')
+
+Console settings
+----------------
+
+.. note::
+
+ These settings are mostly meant to be changed by user.
+
+.. config:option:: $cfg['Console']['StartHistory']
+
+ :type: boolean
+ :default: false
+
+ Show query history at start
+
+.. config:option:: $cfg['Console']['AlwaysExpand']
+
+ :type: boolean
+ :default: false
+
+ Always expand query messages
+
+.. config:option:: $cfg['Console']['CurrentQuery']
+
+ :type: boolean
+ :default: true
+
+ Show current browsing query
+
+.. config:option:: $cfg['Console']['EnterExecutes']
+
+ :type: boolean
+ :default: false
+
+ Execute queries on Enter and insert new line with Shift + Enter
+
+.. config:option:: $cfg['Console']['DarkTheme']
+
+ :type: boolean
+ :default: false
+
+ Switch to dark theme
+
+.. config:option:: $cfg['Console']['Mode']
+
+ :type: string
+ :default: 'info'
+
+ Console mode
+
+.. config:option:: $cfg['Console']['Height']
+
+ :type: integer
+ :default: 92
+
+ Console height
+
+Developer
+---------
+
+.. warning::
+
+ These settings might have huge effect on performance or security.
+
+.. config:option:: $cfg['DBG']
+
+ :type: array
+ :default: array(...)
+
+.. config:option:: $cfg['DBG']['sql']
+
+ :type: boolean
+ :default: false
+
+ Enable logging queries and execution times to be
+ displayed in the console's Debug SQL tab.
+
+.. config:option:: $cfg['DBG']['sqllog']
+
+ :type: boolean
+ :default: false
+
+ Enable logging of queries and execution times to the syslog.
+ Requires :config:option:`$cfg['DBG']['sql']` to be enabled.
+
+.. config:option:: $cfg['DBG']['demo']
+
+ :type: boolean
+ :default: false
+
+ Enable to let server present itself as demo server.
+ This is used for `phpMyAdmin demo server <https://www.phpmyadmin.net/try/>`_.
+
+ 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.
+
+.. config:option:: $cfg['DBG']['simple2fa']
+
+ :type: boolean
+ :default: false
+
+ Can be used for testing two-factor authentication using :ref:`simple2fa`.
+
+.. _config-examples:
+
+Examples
+--------
+
+See following configuration snippets for typical setups of phpMyAdmin.
+
+Basic example
++++++++++++++
+
+Example configuration file, which can be copied to :file:`config.inc.php` to
+get some core configuration layout; it is distributed with phpMyAdmin as
+:file:`config.sample.inc.php`. Please note that it does not contain all
+configuration options, only the most frequently used ones.
+
+.. literalinclude:: ../config.sample.inc.php
+ :language: php
+
+.. warning::
+
+ Don't use the controluser 'pma' if it does not yet exist and don't use 'pmapass'
+ as password.
+
+.. _example-signon:
+
+Example for signon authentication
++++++++++++++++++++++++++++++++++
+
+This example uses :file:`examples/signon.php` to demonstrate usage of :ref:`auth_signon`:
+
+.. code-block:: php
+
+ <?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:
+
+.. code-block:: php
+
+ 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 :config:option:`$cfg['Servers']`,
+following example shows two of them:
+
+.. code-block:: php
+
+ <?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 ...
+
+.. _example-google-ssl:
+
+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:
+
+.. code-block:: text
+
+ 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:
+
+.. code-block:: php
+
+ // 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;
+
+.. seealso::
+
+ :ref:`ssl`,
+ :config:option:`$cfg['Servers'][$i]['ssl']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_key']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_cert']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_ca']`,
+ :config:option:`$cfg['Servers'][$i]['ssl_verify']`,
+ <https://bugs.php.net/bug.php?id=72048>