diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/doc/html/_sources/config.txt | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_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.txt | 3609 |
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> |
