/doc/config.rst
ReStructuredText | 3782 lines | 2536 code | 1246 blank | 0 comment | 0 complexity | 8dff8512fa1fe7ac79e1feafdd974cac MD5 | raw file
Possible License(s): GPL-2.0, MIT, LGPL-3.0
Large files files are truncated, but you can click here to view the full file
- .. 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 intended 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/scss/_variables.scss`. 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.
- 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
- increment) several 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'] = ['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`.
- .. _designer_coords:
- .. config:option:: $cfg['Servers'][$i]['designer_coords']
- :type: string
- :default: ``''``
- .. versionadded:: 2.10.0
- Since release 2.10.0 a Designer interface is available; it permits to
- visually manage the relations.
- .. deprecated:: 4.3.0
- This setting was removed and the Designer table positioning data is now stored into :config:option:`$cfg['Servers'][$i]['table\_coords']`.
- .. note::
- You can now delete the table `pma__designer_coords` from your phpMyAdmin configuration storage database and remove :config:option:`$cfg['Servers'][$i]['designer\_coords']` from your configuration file.
- .. _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: ``''``
- The table used by phpMyAdmin to store user name information for associating with user groups.
- See the next entry on :config:option:`$cfg['Servers'][$i]['usergroups']` for more details
- and the suggested settings.
- .. 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 they are 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 fo…
Large files files are truncated, but you can click here to view the full file