123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624 |
- .. 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
- :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.
- 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'``
- 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.
- .. config:option:: $cfg['Servers'][$i]['hide_connection_errors']
- :type: boolean
- :default: false
- .. versionadded:: 4.9.8
- Whether to show or hide detailed MySQL/MariaDB connection errors on the login page.
- .. note::
- This error message can contain the target database server hostname or IP address,
- which may reveal information about your network to an attacker.
- 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['URLQueryEncryption']
- :type: boolean
- :default: false
- .. versionadded:: 4.9.8
- Define whether phpMyAdmin will encrypt sensitive data (like database name
- and table name) from the URL query string. Default is to not encrypt the URL
- query string.
- .. config:option:: $cfg['URLQueryEncryptionSecretKey']
- :type: string
- :default: ``''``
- .. versionadded:: 4.9.8
- A secret key used to encrypt/decrypt the URL query string.
- Should be 32 bytes long.
- 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%'
- 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>
|