29.06.2016 Views

phpmyadmin-chinese-china

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

phpMyAdmin Documentation<br />

Release 4.5.0-dev<br />

The phpMyAdmin devel team<br />

August 26, 2015


Contents<br />

1 Introduction 3<br />

1.1 Supported features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.2 A word about users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

2 Requirements 5<br />

2.1 Web server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.2 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.3 Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.4 Web browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

3 Installation 7<br />

3.1 Linux distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

3.2 Installing on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

3.3 Quick Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

3.4 Verifying phpMyAdmin releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

3.5 phpMyAdmin configuration storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

3.6 Upgrading from an older version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

3.7 Using authentication modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3.8 Securing your phpMyAdmin installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

4 Configuration 17<br />

4.1 Basic settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

4.2 Server connection settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

4.3 Generic settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

4.4 Cookie authentication options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

4.5 Navigation panel setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

4.6 Main panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

4.7 Database structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

4.8 Browse mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

4.9 Editing mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

4.10 Export and import settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

4.11 Tabs display settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

4.12 PDF Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

4.13 Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

4.14 Web server settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

4.15 Theme settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

4.16 Design customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

4.17 Text fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />

i


4.18 SQL query box settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

4.19 Web server upload/save/import directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

4.20 Various display setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

4.21 Page titles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />

4.22 Theme manager settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

4.23 Default queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

4.24 MySQL settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />

4.25 Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />

5 User Guide 61<br />

5.1 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

5.2 User management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

5.3 Other sources of information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

5.4 Import and export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

6 FAQ - Frequently Asked Questions 65<br />

6.1 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />

6.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

6.3 Known limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

6.4 ISPs, multi-user installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />

6.5 Browsers or client OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

6.6 Using phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />

6.7 phpMyAdmin project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />

6.8 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />

6.9 Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />

7 Developers Information 95<br />

8 Distributing and packaging phpMyAdmin 97<br />

8.1 External libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />

9 Copyright 99<br />

9.1 Third party licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />

10 Credits 101<br />

10.1 Credits, in chronological order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />

10.2 Translators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

10.3 Documentation translators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />

10.4 Original Credits of Version 2.1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

11 Glossary 111<br />

12 Indices and tables 119<br />

ii


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Contents:<br />

Contents 1


phpMyAdmin Documentation, Release 4.5.0-dev<br />

2 Contents


CHAPTER 1<br />

Introduction<br />

phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as a single database. To accomplish<br />

the latter you’ll need a properly set up MySQL user who can read/write only the desired database. It’s up to you to<br />

look up the appropriate part in the MySQL manual.<br />

1.1 Supported features<br />

Currently phpMyAdmin can:<br />

• browse and drop databases, tables, views, columns and indexes<br />

• display multiple results sets through stored procedures or queries<br />

• create, copy, drop, rename and alter databases, tables, columns and indexes<br />

• maintenance server, databases and tables, with proposals on server configuration<br />

• execute, edit and bookmark any SQL-statement, even batch-queries<br />

• load text files into tables<br />

• create 1 and read dumps of tables<br />

• export 1 data to various formats: CSV, XML, PDF, ISO/IEC 26300 - OpenDocument Text and Spreadsheet,<br />

Microsoft Word 2000, and LATEX formats<br />

• import data and MySQL structures from OpenDocument spreadsheets, as well as XML, CSV, and SQL files<br />

• administer multiple servers<br />

• manage MySQL users and privileges<br />

• check referential integrity in MyISAM tables<br />

• using Query-by-example (QBE), create complex queries automatically connecting required tables<br />

• create PDF graphics of your database layout<br />

• search globally in a database or a subset of it<br />

• transform stored data into any format using a set of predefined functions, like displaying BLOB-data as image<br />

or download-link<br />

• track changes on databases, tables and views<br />

1 phpMyAdmin can compress (Zip, GZip or RFC 1952 formats) dumps and CSV exports if you use PHP with Zlib support (--with-zlib).<br />

Proper support may also need changes in php.ini.<br />

3


phpMyAdmin Documentation, Release 4.5.0-dev<br />

• support InnoDB tables and foreign keys<br />

• support mysqli, the improved MySQL extension see 1.17 Which Database versions does phpMyAdmin support?<br />

• create, edit, call, export and drop stored procedures and functions<br />

• create, edit, export and drop events and triggers<br />

• communicate in 80 different languages<br />

1.2 A word about users<br />

Many people have difficulty understanding the concept of user management with regards to phpMyAdmin. When<br />

a user logs in to phpMyAdmin, that username and password are passed directly to MySQL. phpMyAdmin does no<br />

account management on its own (other than allowing one to manipulate the MySQL user account information); all<br />

users must be valid MySQL users.<br />

4 Chapter 1. Introduction


CHAPTER 2<br />

Requirements<br />

2.1 Web server<br />

Since phpMyAdmin’s interface is based entirely in your browser, you’ll need a web server (such as Apache, nginx,<br />

IIS) to install phpMyAdmin’s files into.<br />

2.2 PHP<br />

• You need PHP 5.5.0 or newer, with session support, the Standard PHP Library (SPL) extension, JSON<br />

support, and the mbstring extension.<br />

• To support uploading of ZIP files, you need the PHP zip extension.<br />

• You need GD2 support in PHP to display inline thumbnails of JPEGs (“image/jpeg: inline”) with their original<br />

aspect ratio.<br />

• When using the cookie authentication (the default), the mcrypt extension is strongly suggested.<br />

• To support upload progress bars, see 2.9 Seeing an upload progress bar.<br />

• To support XML and Open Document Spreadsheet importing, you need the libxml extension.<br />

• To support reCAPTCHA on the login page, you need the openssl extension.<br />

• Performance suggestion: install the ctype extension.<br />

See also:<br />

1.31 Does phpMyAdmin support PHP 5?, Using authentication modes<br />

2.3 Database<br />

phpMyAdmin supports MySQL-compatible databases.<br />

• MySQL 5.5 or newer<br />

• MariaDB 5.5 or newer<br />

• Drizzle<br />

See also:<br />

1.17 Which Database versions does phpMyAdmin support?<br />

5


phpMyAdmin Documentation, Release 4.5.0-dev<br />

2.4 Web browser<br />

To access phpMyAdmin you need a web browser with cookies and JavaScript enabled.<br />

6 Chapter 2. Requirements


CHAPTER 3<br />

Installation<br />

phpMyAdmin does not apply any special security methods to the MySQL database server. It is still the system<br />

administrator’s job to grant permissions on the MySQL databases properly. phpMyAdmin’s Users page can be used<br />

for this.<br />

Warning: Mac users should note that if you are on a version before Mac OS X, StuffIt unstuffs with Mac formats.<br />

So you’ll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts before uploading them to your<br />

server, as PHP seems not to like Mac-style end of lines character (“\r”).<br />

3.1 Linux distributions<br />

phpMyAdmin is included in most Linux distributions. It is recommended to use distribution packages when possible<br />

- they usually provide integration to your distribution and you will automatically get security updates from your<br />

distribution.<br />

3.1.1 Debian<br />

Debian’s package repositories include a phpMyAdmin package, but be aware that the configuration file is maintained<br />

in /etc/<strong>phpmyadmin</strong> and may differ in some ways from the official phpMyAdmin documentation.<br />

3.1.2 OpenSUSE<br />

OpenSUSE already comes with phpMyAdmin package, just install packages from the openSUSE Build Service.<br />

3.1.3 Ubuntu<br />

Ubuntu ships phpMyAdmin package, however if you want to use recent version, you can use packages from PPA for<br />

Michal Čihař.<br />

3.1.4 Gentoo<br />

Gentoo ships the phpMyAdmin package, both in a near stock configuration as well as in a webapp-config configuration.<br />

Use emerge dev-db/<strong>phpmyadmin</strong> to install.<br />

7


phpMyAdmin Documentation, Release 4.5.0-dev<br />

3.1.5 Mandriva<br />

Mandriva ships the phpMyAdmin package in their contrib branch and can be installed via the usual Control Center.<br />

3.1.6 Fedora<br />

Fedora ships the phpMyAdmin package, but be aware that the configuration file is maintained in<br />

/etc/phpMyAdmin/ and may differ in some ways from the official phpMyAdmin documentation.<br />

3.1.7 Red Hat Enterprise Linux<br />

Red Hat Enterprise Linux itself and thus derivatives like CentOS don’t ship phpMyAdmin, but the Fedora-driven<br />

repository Extra Packages for Enterprise Linux (EPEL) is doing so, if it’s enabled. But be aware that the configuration<br />

file is maintained in /etc/phpMyAdmin/ and may differ in some ways from the official phpMyAdmin<br />

documentation.<br />

3.2 Installing on Windows<br />

The easiest way to get phpMyAdmin on Windows is using third party products which include phpMyAdmin together<br />

with a database and web server such as XAMPP.<br />

You can find more of such options at Wikipedia.<br />

3.3 Quick Install<br />

1. Choose an appropriate distribution kit from the <strong>phpmyadmin</strong>.net Downloads page. Some kits contain only<br />

the English messages, others contain all languages. We’ll assume you chose a kit whose name looks like<br />

phpMyAdmin-x.x.x -all-languages.tar.gz.<br />

2. Ensure you have downloaded a genuine archive, see Verifying phpMyAdmin releases.<br />

3. Untar or unzip the distribution (be sure to unzip the subdirectories): tar -xzvf<br />

phpMyAdmin_x.x.x-all-languages.tar.gz in your webserver’s document root. If you don’t<br />

have direct access to your document root, put the files in a directory on your local machine, and, after step 4,<br />

transfer the directory on your web server using, for example, ftp.<br />

4. Ensure that all the scripts have the appropriate owner (if PHP is running in safe mode, having some scripts with<br />

an owner different from the owner of other scripts will be a problem). See 4.2 What’s the preferred way of<br />

making phpMyAdmin secure against evil access? and 1.26 I just installed phpMyAdmin in my document root of<br />

IIS but I get the error “No input file specified” when trying to run phpMyAdmin. for suggestions.<br />

5. Now you must configure your installation. There are two methods that can be used. Traditionally, users have<br />

hand-edited a copy of config.inc.php, but now a wizard-style setup script is provided for those who prefer<br />

a graphical installation. Creating a config.inc.php is still a quick way to get started and needed for some<br />

advanced features.<br />

3.3.1 Manually creating the file<br />

To manually create the file, simply use your text editor to create the file config.inc.php (you can copy<br />

config.sample.inc.php to get a minimal configuration file) in the main (top-level) phpMyAdmin directory<br />

8 Chapter 3. Installation


phpMyAdmin Documentation, Release 4.5.0-dev<br />

(the one that contains index.php). phpMyAdmin first loads libraries/config.default.php and then<br />

overrides those values with anything found in config.inc.php. If the default value is okay for a particular setting,<br />

there is no need to include it in config.inc.php. You’ll probably need only a few directives to get going; a simple<br />

configuration may look like this:<br />

<br />

= 'cookie';<br />

Or, if you prefer to not be prompted every time you log in:<br />

<br />

= 'root';<br />

= 'cbb74bc'; // use here your password<br />

= 'config';<br />

For a full explanation of possible configuration values, see the Configuration of this document.<br />

3.3.2 Using Setup script<br />

Instead of manually editing config.inc.php, you can use phpMyAdmin’s setup feature. First you must manually<br />

create a folder config in the phpMyAdmin directory. This is a security measure. On a Linux/Unix system you can<br />

use the following commands:<br />

cd phpMyAdmin<br />

mkdir config<br />

chmod o+rw config<br />

# create directory for saving<br />

# give it world writable permissions<br />

And to edit an existing configuration, copy it over first:<br />

cp config.inc.php config/<br />

chmod o+w config/config.inc.php<br />

# copy current configuration for editing<br />

# give it world writable permissions<br />

Note: Debian and Ubuntu have simplified this setup and all you need to do is to execute<br />

/usr/sbin/pma-configure.<br />

On other platforms, simply create the folder and ensure that your web server has read and write access to it. 1.26 I<br />

just installed phpMyAdmin in my document root of IIS but I get the error “No input file specified” when trying to run<br />

phpMyAdmin. can help with this.<br />

Next, open your browser and visit the location where you installed phpMyAdmin, with the /setup suffix. If you<br />

have an existing configuration, use the Load button to bring its content inside the setup panel. Note that changes<br />

are not saved to disk until you explicitly choose ‘‘Save‘‘ from the Configuration area of the screen. Normally the<br />

script saves the new config.inc.php to the config/ directory, but if the webserver does not have the proper<br />

permissions you may see the error “Cannot load or save configuration.” Ensure that the config/ directory exists and<br />

has the proper permissions - or use the Download link to save the config file locally and upload it (via FTP or some<br />

similar means) to the proper location.<br />

Once the file has been saved, it must be moved out of the config/ directory and the permissions must be reset, again<br />

as a security measure:<br />

3.3. Quick Install 9


phpMyAdmin Documentation, Release 4.5.0-dev<br />

mv config/config.inc.php .<br />

chmod o-rw config.inc.php<br />

rm -rf config<br />

# move file to current directory<br />

# remove world read and write permissions<br />

# remove not needed directory<br />

Note: Debian and Ubuntu have simplified this setup and all you need to do is to execute<br />

/usr/sbin/pma-secure.<br />

Now the file is ready to be used. You can choose to review or edit the file with your favorite editor, if you prefer to set<br />

some advanced options which the setup script does not provide.<br />

1. If you are using the auth_type “config”, it is suggested that you protect the phpMyAdmin installation directory<br />

because using config does not require a user to enter a password to access the phpMyAdmin installation.<br />

Use of an alternate authentication method is recommended, for example with HTTP–AUTH in a .htaccess file<br />

or switch to using auth_type cookie or http. See the ISPs, multi-user installations for additional information,<br />

especially 4.4 phpMyAdmin always gives “Access denied” when using HTTP authentication..<br />

2. Open the main phpMyAdmin directory in your browser. phpMyAdmin should now display a welcome screen<br />

and your databases, or a login dialog if using HTTP or cookie authentication mode.<br />

3. You should deny access to the ./libraries and ./setup/lib subfolders in your webserver configuration.<br />

Such configuration prevents from possible path exposure and cross side scripting vulnerabilities that might<br />

happen to be found in that code. For the Apache webserver, this is often accomplished with a .htaccess file in<br />

those directories.<br />

4. It is generally a good idea to protect a public phpMyAdmin installation against access by robots as they usually<br />

can not do anything good there. You can do this using robots.txt file in root of your webserver or limit<br />

access by web server configuration, see 1.42 How can I prevent robots from accessing phpMyAdmin?.<br />

3.4 Verifying phpMyAdmin releases<br />

Since July 2015 all phpMyAdmin releases are cryptographically signed by the releasing developer, who is currently<br />

Marc Delisle. His key id is 0x81AF644A, his PGP fingerprint is:<br />

436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644A<br />

and you can get more identification information from https://keybase.io/lem9. You should verify that the signature<br />

matches the archive you have downloaded. This way you can be sure that you are using the same code that was<br />

released.<br />

Each archive is accompanied with .asc files which contains the PGP signature for it. Once you have both of them in<br />

the same folder, you can verify the signature:<br />

$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc<br />

gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A<br />

gpg: Can't check signature: No public key<br />

As you can see gpg complains that it does not know the public key. At this point you should do one of the following<br />

steps:<br />

• Download the keyring from our download server, then import it with:<br />

$ gpg --import <strong>phpmyadmin</strong>.keyring<br />

• Download and import the key from one of the key servers:<br />

10 Chapter 3. Installation


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 81AF644A<br />

gpg: requesting key 81AF644A from hkp server pgp.mit.edu<br />

gpg: key 81AF644A: public key "Marc Delisle " imported<br />

gpg: no ultimately trusted keys found<br />

gpg: Total number processed: 1<br />

gpg: imported: 1 (RSA: 1)<br />

This will improve the situation a bit - at this point you can verify that the signature from the given key is correct but<br />

you still can not trust the name used in the key:<br />

$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc<br />

gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A<br />

gpg: Good signature from "Marc Delisle " [unknown]<br />

gpg: WARNING: This key is not certified with a trusted signature!<br />

gpg:<br />

There is no indication that the signature belongs to the owner.<br />

Primary key fingerprint: 436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644A<br />

The problem here is that anybody could issue the key with this name. You need to ensure that the key is actually<br />

owned by the mentioned person. The GNU Privacy Handbook covers this topic in the chapter Validating other keys<br />

on your public keyring. The most reliable method is to meet the developer in person and exchange key fingerprints,<br />

however you can also rely on the web of trust. This way you can trust the key transitively though signatures of others,<br />

who have met the developer in person. For example you can see how Marc’s key links to Linus’s key.<br />

Once the key is trusted, the warning will not occur:<br />

$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc<br />

gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A<br />

gpg: Good signature from "Marc Delisle " [full]<br />

Should the signature be invalid (the archive has been changed), you would get a clear error regardless of the fact that<br />

the key is trusted or not:<br />

$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc<br />

gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A<br />

gpg: BAD signature from "Marc Delisle " [unknown]<br />

3.5 phpMyAdmin configuration storage<br />

For a whole set of additional features (bookmarks, comments, SQL-history, tracking mechanism, PDF-generation,<br />

column contents transformation, etc.) you need to create a set of special tables. Those tables can be located in<br />

your own database, or in a central database for a multi-user installation (this database would then be accessed by the<br />

controluser, so no other user should have rights to it).<br />

3.5.1 Zero configuration<br />

In many cases, this database structure can be automatically created and configured. This is called “Zero Configuration”<br />

mode and can be particularly useful in shared hosting situations. “Zeroconf” mode is on by default, to disable set<br />

$cfg[’ZeroConf’] to false.<br />

The following three scenarios are covered by the Zero Configuration mode:<br />

• When entering a database where the configuration storage tables are not present, phpMyAdmin offers to create<br />

them from the Operations tab.<br />

• When entering a database where the tables do already exist, the software automatically detects this and begins<br />

using them. This is the most common situation; after the tables are initially created automatically they are<br />

3.5. phpMyAdmin configuration storage 11


phpMyAdmin Documentation, Release 4.5.0-dev<br />

continually used without disturbing the user; this is also most useful on shared hosting where the user is not able<br />

to edit config.inc.php and usually the user only has access to one database.<br />

• When having access to multiple databases, if the user first enters the database containing the configuration storage<br />

tables then switches to another database, phpMyAdmin continues to use the tables from the first database;<br />

the user is not prompted to create more tables in the new database.<br />

3.5.2 Manual configuration<br />

Please look at your ./sql/ directory, where you should find a file called create_tables.sql. (If you are using a<br />

Windows server, pay special attention to 1.23 I’m running MySQL on a Win32 machine. Each time I create a new<br />

table the table and column names are changed to lowercase!).<br />

If you already had this infrastructure and:<br />

• upgraded to MySQL 4.1.2 or newer, please use sql/upgrade_tables_mysql_4_1_2+.sql.<br />

• upgraded to phpMyAdmin 4.3.0 or newer from 2.5.0 or newer (


phpMyAdmin Documentation, Release 4.5.0-dev<br />

3.7 Using authentication modes<br />

HTTP and cookie authentication modes are recommended in a multi-user environment where you want to give users<br />

access to their own database and don’t want them to play around with others. Nevertheless be aware that MS Internet<br />

Explorer seems to be really buggy about cookies, at least till version 6. Even in a single-user environment, you might<br />

prefer to use HTTP or cookie mode so that your user/password pair are not in clear in the configuration file.<br />

HTTP and cookie authentication modes are more secure: the MySQL login information does not need to be set<br />

in the phpMyAdmin configuration file (except possibly for the $cfg[’Servers’][$i][’controluser’]).<br />

However, keep in mind that the password travels in plain text, unless you are using the HTTPS protocol. In cookie<br />

mode, the password is stored, encrypted with the AES algorithm, in a temporary cookie.<br />

Then each of the true users should be granted a set of privileges on a set of particular databases. Normally you<br />

shouldn’t give global privileges to an ordinary user, unless you understand the impact of those privileges (for example,<br />

you are creating a superuser). For example, to grant the user real_user with all privileges on the database user_base:<br />

GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';<br />

What the user may now do is controlled entirely by the MySQL user management system. With HTTP or cookie<br />

authentication mode, you don’t need to fill the user/password fields inside the $cfg[’Servers’].<br />

3.7.1 HTTP authentication mode<br />

• Uses HTTP Basic authentication method and allows you to log in as any valid MySQL user.<br />

• Is supported with most PHP configurations. For IIS (ISAPI) support using CGI PHP see 1.32 Can I use HTTP<br />

authentication with IIS?, for using with Apache CGI see 1.35 Can I use HTTP authentication with Apache<br />

CGI?.<br />

• See also 4.4 phpMyAdmin always gives “Access denied” when using HTTP authentication. about not using the<br />

.htaccess mechanism along with ‘HTTP‘ authentication mode.<br />

3.7.2 Cookie authentication mode<br />

• Username and password are stored in cookies during the session and password is deleted when it ends.<br />

• With this mode, the user can truly log out of phpMyAdmin and log back in with the same username.<br />

• If you want to allow users to enter any hostname to connect (rather than only servers that are configured in<br />

config.inc.php), see the $cfg[’AllowArbitraryServer’] directive.<br />

• As mentioned in the Requirements section, having the mcrypt extension will speed up access considerably, but<br />

is not required.<br />

3.7.3 Signon authentication mode<br />

• This mode is a convenient way of using credentials from another application to authenticate to phpMyAdmin to<br />

implement single signon solution.<br />

• The other application has to store login information into session data (see<br />

$cfg[’Servers’][$i][’SignonSession’]) or you need to implement script to return the credentials<br />

(see $cfg[’Servers’][$i][’SignonScript’]).<br />

• When no credentials are available, the user is being redirected to<br />

$cfg[’Servers’][$i][’SignonURL’], where you should handle the login process.<br />

3.7. Using authentication modes 13


phpMyAdmin Documentation, Release 4.5.0-dev<br />

The very basic example of saving credentials in a session is available as examples/signon.php:<br />

Alternatively you can also use this way to integrate with OpenID as shown in examples/openid.php:<br />

If you intend to pass the credentials using some other means than, you have to implement wrapper in PHP to<br />

get that data and set it to $cfg[’Servers’][$i][’SignonScript’]. There is very minimal example in<br />

examples/signon-script.php:<br />

See also:<br />

$cfg[’Servers’][$i][’auth_type’],<br />

$cfg[’Servers’][$i][’SignonSession’],<br />

$cfg[’Servers’][$i][’SignonScript’], $cfg[’Servers’][$i][’SignonURL’]<br />

3.7.4 Config authentication mode<br />

• This mode is sometimes the less secure one because it requires you to fill the<br />

$cfg[’Servers’][$i][’user’] and $cfg[’Servers’][$i][’password’] fields (and as<br />

a result, anyone who can read your config.inc.php can discover your username and password).<br />

• In the ISPs, multi-user installations section, there is an entry explaining how to protect your configuration file.<br />

• For additional security in this mode, you may wish to consider the<br />

Host authentication $cfg[’Servers’][$i][’AllowDeny’][’order’] and<br />

$cfg[’Servers’][$i][’AllowDeny’][’rules’] configuration directives.<br />

• Unlike cookie and http, does not require a user to log in when first loading the phpMyAdmin site. This is<br />

by design but could allow any user to access your installation. Use of some restriction method is suggested,<br />

perhaps a .htaccess file with the HTTP-AUTH directive or disallowing incoming HTTP requests at one’s router<br />

or firewall will suffice (both of which are beyond the scope of this manual but easily searchable with Google).<br />

3.7.5 Swekey authentication mode<br />

The Swekey is a low cost authentication USB key that can be used in web applications. When Swekey authentication is<br />

activated, phpMyAdmin requires the users’s Swekey to be plugged before entering the login page (currently supported<br />

for cookie authentication mode only). Swekey Authentication is disabled by default. To enable it, add the following<br />

line to config.inc.php:<br />

$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey.conf';<br />

You then have to create the swekey.conf file that will associate each user with their Swekey Id. It is important to<br />

place this file outside of your web server’s document root (in the example, it is located in /etc). Feel free to use it with<br />

your own users’ information. If you want to purchase a Swekey please visit https://www.<strong>phpmyadmin</strong>.net/auth_key/<br />

since this link provides funding for phpMyAdmin.<br />

A self documented sample file is provided in the file examples/swekey.sample.conf:<br />

See also:<br />

$cfg[’Servers’][$i][’auth_swekey_config’]<br />

3.8 Securing your phpMyAdmin installation<br />

The phpMyAdmin team tries hard to make the application secure, however there are always ways to make your<br />

installation more secure:<br />

• Remove the setup directory from phpMyAdmin, you will probably not use it after the initial setup.<br />

14 Chapter 3. Installation


phpMyAdmin Documentation, Release 4.5.0-dev<br />

• Properly choose an authentication method - Cookie authentication mode is probably the best choice for shared<br />

hosting.<br />

• In case you don’t want all MySQL users to be able to access phpMyAdmin, you can use<br />

$cfg[’Servers’][$i][’AllowDeny’][’rules’] to limit them.<br />

• Consider hiding phpMyAdmin behind an authentication proxy, so that users need to authenticate prior to providing<br />

MySQL credentials to phpMyAdmin. You can achieve this by confiuring your web server to request HTTP<br />

authentication. For exaple in Apache this can be done by:<br />

AuthType Basic<br />

AuthName "Restricted Access"<br />

AuthUserFile /usr/share/<strong>phpmyadmin</strong>/passwd<br />

Require valid-user<br />

Once you have changed configuration, you need to create list of users which can authenticate. This can be done<br />

using htpasswd utility:<br />

htpasswd -c /usr/share/<strong>phpmyadmin</strong>/passwd username<br />

• If you are afraid of automated attacks, enabling Captcha by $cfg[’CaptchaLoginPublicKey’] and<br />

$cfg[’CaptchaLoginPrivateKey’] might be an option.<br />

3.8. Securing your phpMyAdmin installation 15


phpMyAdmin Documentation, Release 4.5.0-dev<br />

16 Chapter 3. Installation


CHAPTER 4<br />

Configuration<br />

Almost all configurable data is placed in config.inc.php. If this file does not exist, please refer to the Installation<br />

section to create one. This file only needs to contain the parameters you want to change from their corresponding<br />

default value in libraries/config.default.php.<br />

If a directive is missing from your file, you can just add another line with the file. This file is for over-writing the<br />

defaults; if you wish to use the default value there’s no need to add a line here.<br />

The parameters which relate to design (like colors) are placed in themes/themename/layout.inc.php. You<br />

might also want to create config.footer.inc.php and config.header.inc.php files to add your site<br />

specific code to be included on start and end of each page.<br />

Note: Some distributions (eg. Debian or Ubuntu) store config.inc.php in /etc/<strong>phpmyadmin</strong> instead of<br />

within phpMyAdmin sources.<br />

Warning: Mac users should note that if you are on a version before Mac OS X, PHP does not seem to like Mac<br />

end of lines character (\r). So ensure you choose the option that allows to use the *nix end of line character (\n)<br />

in your text editor before saving a script you have modified.<br />

4.1 Basic settings<br />

$cfg[’PmaAbsoluteUri’]<br />

Type string<br />

Default value ’’<br />

Sets here the complete URL (with full path) to your phpMyAdmin installation’s directory. E.g.<br />

http://www.example.net/path_to_your_phpMyAdmin_directory/. Note also that the URL<br />

on most of web servers are case–sensitive. Don’t forget the trailing slash at the end.<br />

Starting with version 2.3.0, it is advisable to try leaving this blank. In most cases phpMyAdmin automatically<br />

detects the proper setting. Users of port forwarding will need to set $cfg[’PmaAbsoluteUri’] (more<br />

info).<br />

A good test is to browse a table, edit a row and save it. There should be an error message if phpMyAdmin is<br />

having trouble auto–detecting the correct value. If you get an error that this must be set or if the autodetect code<br />

fails to detect your path, please post a bug report on our bug tracker so we can improve the code.<br />

See also:<br />

1.40 When accessing phpMyAdmin via an Apache reverse proxy, cookie login does not work.<br />

17


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’PmaNoRelation_DisableWarning’]<br />

Type boolean<br />

Default value false<br />

Starting with version 2.3.0 phpMyAdmin offers a lot of features to work with master / foreign – tables (see<br />

$cfg[’Servers’][$i][’pmadb’]).<br />

If you tried to set this up and it does not work for you, have a look on the Structure page of one database where<br />

you would like to use it. You will find a link that will analyze why those features have been disabled.<br />

If you do not want to use those features set this variable to true to stop this message from appearing.<br />

$cfg[’SuhosinDisableWarning’]<br />

Type boolean<br />

Default value false<br />

A warning is displayed on the main page if Suhosin is detected.<br />

You can set this parameter to true to stop this message from appearing.<br />

$cfg[’LoginCookieValidityDisableWarning’]<br />

Type boolean<br />

Default value false<br />

A warning is displayed on the main page if the PHP parameter session.gc_maxlifetime is lower than cookie<br />

validity configured in phpMyAdmin.<br />

You can set this parameter to true to stop this message from appearing.<br />

$cfg[’ServerLibraryDifference_DisableWarning’]<br />

Type boolean<br />

Default value false<br />

A warning is displayed on the main page if there is a difference between the MySQL library and server version.<br />

You can set this parameter to true to stop this message from appearing.<br />

$cfg[’ReservedWordDisableWarning’]<br />

Type boolean<br />

Default value false<br />

This warning is displayed on the Structure page of a table if one or more column names match with words which<br />

are MySQL reserved.<br />

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

$cfg[’TranslationWarningThreshold’]<br />

Type integer<br />

Default value 80<br />

Show warning about incomplete translations on certain threshold.<br />

$cfg[’SendErrorReports’]<br />

Type string<br />

Default value ’ask’<br />

18 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Sets the default behavior for JavaScript error reporting.<br />

Whenever an error is detected in the JavaScript execution, an error report may be sent to the phpMyAdmin team<br />

if the user agrees.<br />

The default setting of ’ask’ will ask the user everytime there is a new error report. However you can set this<br />

parameter to ’always’ to send error reports without asking for confirmation or you can set it to ’never’ to<br />

never send error reports.<br />

This directive is available both in the configuration file and in users preferences. If the person in charge of<br />

a multi-user installation prefers to disable this feature for all users, a value of ’never’ should be set, and<br />

the $cfg[’UserprefsDisallow’] directive should contain ’SendErrorReports’ in one of its array<br />

values.<br />

$cfg[’ConsoleEnterExecutes’]<br />

Type boolean<br />

Default value false<br />

Setting this to true allows the user to execute queries by pressing Enter instead of Ctrl+Enter. A new line can<br />

be inserted by pressing Shift + Enter.<br />

The behaviour of the console can be temporarily changed using console’s settings interface.<br />

$cfg[’AllowThirdPartyFraming’]<br />

Type boolean<br />

Default value false<br />

Setting this to true allows phpMyAdmin to be included inside a frame, and is a potential security hole allowing<br />

cross-frame scripting attacks or clickjacking.<br />

4.2 Server connection settings<br />

$cfg[’Servers’]<br />

Type array<br />

Default value one server array with settings listed below<br />

Since version 1.4.2, phpMyAdmin supports the administration of multiple MySQL servers. Therefore,<br />

a $cfg[’Servers’]-array has been added which contains the login information for the different<br />

servers. The first $cfg[’Servers’][$i][’host’] contains the hostname of the first<br />

server, the second $cfg[’Servers’][$i][’host’] the hostname of the second server, etc. In<br />

libraries/config.default.php, there is only one section for server definition, however you can put<br />

as many as you need in config.inc.php, copy that block or needed parts (you don’t have to define all<br />

settings, just those you need to change).<br />

Note: The $cfg[’Servers’] array starts with $cfg[’Servers’][1]. Do not use $cfg[’Servers’][0]. If you<br />

want more than one server, just copy following section (including $i incrementation) serveral times. There is no<br />

need to define full server array, just define values you need to change.<br />

$cfg[’Servers’][$i][’host’]<br />

Type string<br />

Default value ’localhost’<br />

4.2. Server connection settings 19


phpMyAdmin Documentation, Release 4.5.0-dev<br />

The hostname or IP address of your $i-th MySQL-server. E.g. localhost.<br />

Possible values are:<br />

Note:<br />

•hostname, e.g., ’localhost’ or ’mydb.example.org’<br />

•IP address, e.g., ’127.0.0.1’ or ’192.168.10.1’<br />

•dot - ’.’, i.e., use named pipes on windows systems<br />

•empty - ’’, disables this server<br />

phpMyAdmin supports connecting to MySQL servers reachable via IPv6 only. To connect to an IPv6<br />

MySQL server, enter its IPv6 address in this field.<br />

$cfg[’Servers’][$i][’port’]<br />

Type string<br />

Default value ’’<br />

The port-number of your $i-th MySQL-server. Default is 3306 (leave blank).<br />

Note: If you use localhost as the hostname, MySQL ignores this port number and connects with the<br />

socket, so if you want to connect to a port different from the default port, use 127.0.0.1 or the real hostname<br />

in $cfg[’Servers’][$i][’host’].<br />

$cfg[’Servers’][$i][’socket’]<br />

Type string<br />

Default value ’’<br />

The path to the socket to use. Leave blank for default. To determine the correct socket, check your MySQL<br />

configuration or, using the mysql command–line client, issue the status command. Among the resulting<br />

information displayed will be the socket used.<br />

$cfg[’Servers’][$i][’ssl’]<br />

Type boolean<br />

Default value false<br />

Whether to enable SSL for the connection between phpMyAdmin and the MySQL server.<br />

When using the ’mysql’ extension, none of the remaining ’ssl...’ configuration options apply.<br />

We strongly recommend the ’mysqli’ extension when using this option.<br />

$cfg[’Servers’][$i][’ssl_key’]<br />

Type string<br />

Default value NULL<br />

Path to the key file when using SSL for connecting to the MySQL server.<br />

For example:<br />

$cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/server-key.pem';<br />

$cfg[’Servers’][$i][’ssl_cert’]<br />

Type string<br />

20 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Default value NULL<br />

Path to the cert file when using SSL for connecting to the MySQL server.<br />

$cfg[’Servers’][$i][’ssl_ca’]<br />

Type string<br />

Default value NULL<br />

Path to the CA file when using SSL for connecting to the MySQL server.<br />

$cfg[’Servers’][$i][’ssl_ca_path’]<br />

Type string<br />

Default value NULL<br />

Directory containing trusted SSL CA certificates in PEM format.<br />

$cfg[’Servers’][$i][’ssl_ciphers’]<br />

Type string<br />

Default value NULL<br />

List of allowable ciphers for SSL connections to the MySQL server.<br />

$cfg[’Servers’][$i][’connect_type’]<br />

Type string<br />

Default value ’tcp’<br />

What type connection to use with the MySQL server. Your options are ’socket’ and ’tcp’. It defaults to<br />

tcp as that is nearly guaranteed to be available on all MySQL servers, while sockets are not supported on some<br />

platforms. To use the socket mode, your MySQL server must be on the same machine as the Web server.<br />

$cfg[’Servers’][$i][’compress’]<br />

Type boolean<br />

Default value false<br />

Whether to use a compressed protocol for the MySQL server connection or not (experimental).<br />

$cfg[’Servers’][$i][’controlhost’]<br />

Type string<br />

Default value ’’<br />

Permits to use an alternate host to hold the configuration storage data.<br />

$cfg[’Servers’][$i][’controlport’]<br />

Type string<br />

Default value ’’<br />

Permits to use an alternate port to connect to the host that holds the configuration storage.<br />

$cfg[’Servers’][$i][’controluser’]<br />

Type string<br />

Default value ’’<br />

$cfg[’Servers’][$i][’controlpass’]<br />

Type string<br />

4.2. Server connection settings 21


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Default value ’’<br />

This special account is used for 2 distinct purposes:<br />

$cfg[’Servers’][$i][’pmadb’]).<br />

Changed in version 2.2.5: those were called stduser and stdpass<br />

See also:<br />

Installation, Using authentication modes, phpMyAdmin configuration storage<br />

$cfg[’Servers’][$i][’auth_type’]<br />

Type string<br />

Default value ’cookie’<br />

to make possible all relational features (see<br />

Whether config or cookie or HTTP or signon authentication should be used for this server.<br />

See also:<br />

•‘config’ authentication ($auth_type = ’config’) is the plain old way: username and password are<br />

stored in config.inc.php.<br />

•‘cookie’ authentication mode ($auth_type = ’cookie’) allows you to log in as any valid MySQL<br />

user with the help of cookies.<br />

•‘http’ authentication allows you to log in as any valid MySQL user via HTTP-Auth.<br />

•‘signon’ authentication mode ($auth_type = ’signon’) allows you to log in from prepared PHP<br />

session data or using supplied PHP script.<br />

Using authentication modes<br />

$cfg[’Servers’][$i][’auth_http_realm’]<br />

Type string<br />

Default value ’’<br />

When using auth_type = http, this field allows to define a custom HTTP Basic Auth Realm which will be<br />

displayed to the user. If not explicitly specified in your configuration, a string combined of “phpMyAdmin ” and<br />

either $cfg[’Servers’][$i][’verbose’] or $cfg[’Servers’][$i][’host’] will be used.<br />

$cfg[’Servers’][$i][’auth_swekey_config’]<br />

Type string<br />

Default value ’’<br />

The name of the file containing Swekey authentication mode ids and login names for hardware authentication.<br />

Leave empty to deactivate this feature.<br />

$cfg[’Servers’][$i][’user’]<br />

Type string<br />

Default value ’root’<br />

$cfg[’Servers’][$i][’password’]<br />

Type string<br />

Default value ’’<br />

When using $cfg[’Servers’][$i][’auth_type’] set to ‘config’, this is the user/password-pair which<br />

phpMyAdmin will use to connect to the MySQL server. This user/password pair is not needed when HTTP or<br />

cookie authentication is used and should be empty.<br />

22 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’Servers’][$i][’nopassword’]<br />

Type boolean<br />

Default value false<br />

Allow attempt to log in without password when a login with password fails. This can be used together with http<br />

authentication, when authentication is done some other way and phpMyAdmin gets user name from auth and<br />

uses empty password for connecting to MySQL. Password login is still tried first, but as fallback, no password<br />

method is tried.<br />

$cfg[’Servers’][$i][’only_db’]<br />

Type string or array<br />

Default value ’’<br />

If set to a (an array of) database name(s), only this (these) database(s) will be shown to the user. Since phpMyAdmin<br />

2.2.1, this/these database(s) name(s) may contain MySQL wildcards characters (“_” and “%”): if<br />

you want to use literal instances of these characters, escape them (I.E. use ’my\_db’ and not ’my_db’).<br />

This setting is an efficient way to lower the server load since the latter does not need to send MySQL requests to<br />

build the available database list. But it does not replace the privileges rules of the MySQL database server.<br />

If set, it just means only these databases will be displayed but not that all other databases can’t be used.<br />

An example of using more that one database:<br />

$cfg['Servers'][$i]['only_db'] = array('db1', 'db2');<br />

Changed in version 4.0.0: Previous versions permitted to specify the display order of the database names via<br />

this directive.<br />

$cfg[’Servers’][$i][’hide_db’]<br />

Type string<br />

Default value ’’<br />

Regular expression for hiding some databases from unprivileged users. This only hides them from listing, but<br />

a user is still able to access them (using, for example, the SQL query area). To limit access, use the MySQL<br />

privilege system. For example, to hide all databases starting with the letter “a”, use<br />

$cfg['Servers'][$i]['hide_db'] = '^a';<br />

and to hide both “db1” and “db2” use<br />

$cfg['Servers'][$i]['hide_db'] = '^(db1|db2)$';<br />

More information on regular expressions can be found in the PCRE pattern syntax portion of the PHP reference<br />

manual.<br />

$cfg[’Servers’][$i][’verbose’]<br />

Type string<br />

Default value ’’<br />

Only useful when using phpMyAdmin with multiple server entries. If set, this string will be displayed instead<br />

of the hostname in the pull-down menu on the main page. This can be useful if you want to show only certain<br />

databases on your system, for example. For HTTP auth, all non-US-ASCII characters will be stripped.<br />

$cfg[’Servers’][$i][’pmadb’]<br />

Type string<br />

Default value ’’<br />

4.2. Server connection settings 23


phpMyAdmin Documentation, Release 4.5.0-dev<br />

The name of the database containing the phpMyAdmin configuration storage.<br />

See the phpMyAdmin configuration storage section in this document to see the benefits of this feature, and for a<br />

quick way of creating this database and the needed tables.<br />

If you are the only user of this phpMyAdmin installation, you can use your current database to store those special<br />

tables; in this case, just put your current database name in $cfg[’Servers’][$i][’pmadb’]. For a<br />

multi-user installation, set this parameter to the name of your central database containing the phpMyAdmin<br />

configuration storage.<br />

$cfg[’Servers’][$i][’bookmarktable’]<br />

Type string<br />

Default value ’’<br />

Since release 2.2.0 phpMyAdmin allows users to bookmark queries. This can be useful for queries you often<br />

run. To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•enter the table name in $cfg[’Servers’][$i][’bookmarktable’]<br />

$cfg[’Servers’][$i][’relation’]<br />

Type string<br />

Default value ’’<br />

Since release 2.2.4 you can describe, in a special ‘relation’ table, which column is a key in another table (a<br />

foreign key). phpMyAdmin currently uses this to:<br />

•make clickable, when you browse the master table, the data values that point to the foreign table;<br />

•display in an optional tool-tip the “display column” when browsing the master table, if you move the<br />

mouse to a column containing a foreign key (use also the ‘table_info’ table); (see 6.7 How can I use the<br />

“display column” feature?)<br />

•in edit/insert mode, display a drop-down list of possible foreign keys (key value and “display column” are<br />

shown) (see 6.21 In edit/insert mode, how can I see a list of possible values for a column, based on some<br />

foreign table?)<br />

•display links on the table properties page, to check referential integrity (display missing foreign keys) for<br />

each described key;<br />

•in query-by-example, create automatic joins (see 6.6 How can I use the relation table in Query-byexample?)<br />

•enable you to get a PDF schema of your database (also uses the table_coords table).<br />

The keys can be numeric or character.<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the relation table name in $cfg[’Servers’][$i][’relation’]<br />

•now as normal user open phpMyAdmin and for each one of your tables where you want to use this feature,<br />

click Structure/Relation view/ and choose foreign columns.<br />

Note: In the current version, master_db must be the same as foreign_db. Those columns have been put<br />

in future development of the cross-db relations.<br />

$cfg[’Servers’][$i][’table_info’]<br />

24 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Type string<br />

Default value ’’<br />

Since release 2.3.0 you can describe, in a special ‘table_info’ table, which column is to be displayed as a tool-tip<br />

when moving the cursor over the corresponding key. This configuration variable will hold the name of this<br />

special table. To allow the usage of this functionality:<br />

See also:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’table_info’] (e.g. pma__table_info)<br />

•then for each table where you want to use this feature, click “Structure/Relation view/Choose column to<br />

display” to choose the column.<br />

6.7 How can I use the “display column” feature?<br />

$cfg[’Servers’][$i][’table_coords’]<br />

Type string<br />

Default value ’’<br />

$cfg[’Servers’][$i][’pdf_pages’]<br />

Type string<br />

Default value ’’<br />

Since release 2.3.0 you can have phpMyAdmin create PDF pages showing the relations between your tables.<br />

Further, the designer interface permits visually managing the relations. To do this it needs two tables<br />

“pdf_pages” (storing information about the available PDF pages) and “table_coords” (storing coordinates where<br />

each table will be placed on a PDF schema output). You must be using the “relation” feature.<br />

To allow the usage of this functionality:<br />

See also:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the correct table names in $cfg[’Servers’][$i][’table_coords’] and<br />

$cfg[’Servers’][$i][’pdf_pages’]<br />

6.8 How can I produce a PDF schema of my database?.<br />

$cfg[’Servers’][$i][’column_info’]<br />

Type string<br />

Default value ’’<br />

This part requires a content update! Since release 2.3.0 you can store comments to describe each column for<br />

each table. These will then be shown on the “printview”.<br />

Starting with release 2.5.0, comments are consequently used on the table property pages and table browse view,<br />

showing up as tool-tips above the column name (properties page) or embedded within the header of table in<br />

browse view. They can also be shown in a table dump. Please see the relevant configuration directives later on.<br />

Also new in release 2.5.0 is a MIME- transformation system which is also based on the following table structure.<br />

See Transformations for further information. To use the MIME- transformation system, your column_info table<br />

has to have the three new columns ‘mimetype’, ‘transformation’, ‘transformation_options’.<br />

Starting with release 4.3.0, a new input-oriented transformation system has been introduced. Also, backward<br />

compatibility code used in the old transformations system was removed. As a result, an update to column_info<br />

table is necessary for previous transformations and the new input-oriented transformation system to<br />

4.2. Server connection settings 25


phpMyAdmin Documentation, Release 4.5.0-dev<br />

work. phpMyAdmin will upgrade it automatically for you by analyzing your current column_info table structure.<br />

However, if something goes wrong with the auto-upgrade then you can use the SQL script found in<br />

./sql/upgrade_column_info_4_3_0+.sql to upgrade it manually.<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’column_info’] (e.g. pma__column_info)<br />

•to update your PRE-2.5.0 Column_comments table use this: and remember that the Variable in<br />

config.inc.php has been renamed from $cfg[’Servers’][$i][’column_comments’] to<br />

$cfg[’Servers’][$i][’column_info’]<br />

ALTER TABLE `pma__column_comments`<br />

ADD `mimetype` VARCHAR( 255 ) NOT NULL,<br />

ADD `transformation` VARCHAR( 255 ) NOT NULL,<br />

ADD `transformation_options` VARCHAR( 255 ) NOT NULL;<br />

•to update your PRE-4.3.0 Column_info table manually use this<br />

./sql/upgrade_column_info_4_3_0+.sql SQL script.<br />

Note: For auto-upgrade functionality to work, your $cfg[’Servers’][$i][’controluser’] must<br />

have ALTER privilege on <strong>phpmyadmin</strong> database. See the MySQL documentation for GRANT on how to<br />

GRANT privileges to a user.<br />

$cfg[’Servers’][$i][’history’]<br />

Type string<br />

Default value ’’<br />

Since release 2.5.0 you can store your SQL history, which means all queries you entered manually into the<br />

phpMyAdmin interface. If you don’t want to use a table-based history, you can use the JavaScript-based history.<br />

Using that, all your history items are deleted when closing the window. Using $cfg[’QueryHistoryMax’]<br />

you can specify an amount of history items you want to have on hold. On every login, this list gets cut to the<br />

maximum amount.<br />

The query history is only available if JavaScript is enabled in your browser.<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’history’] (e.g. pma__history)<br />

$cfg[’Servers’][$i][’recent’]<br />

Type string<br />

Default value ’’<br />

Since release 3.5.0 you can show recently used tables in the navigation panel. It helps you<br />

to jump across table directly, without the need to select the database, and then select the table.<br />

Using $cfg[’NumRecentTables’] you can configure the maximum number of recent tables<br />

shown. When you select a table from the list, it will jump to the page specified in<br />

$cfg[’NavigationTreeDefaultTabTable’].<br />

Without configuring the storage, you can still access the recently used tables, but it will disappear after you<br />

logout.<br />

To allow the usage of this functionality persistently:<br />

26 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’recent’] (e.g. pma__recent)<br />

$cfg[’Servers’][$i][’table_uiprefs’]<br />

Type string<br />

Default value ’’<br />

Since release 3.5.0 phpMyAdmin can be configured to remember several things (sorted column<br />

$cfg[’RememberSorting’], column order, and column visibility from a database table) for browsing<br />

tables. Without configuring the storage, these features still can be used, but the values will disappear after you<br />

logout.<br />

To allow the usage of these functionality persistently:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’table_uiprefs’] (e.g.<br />

pma__table_uiprefs)<br />

$cfg[’Servers’][$i][’users’]<br />

Type string<br />

Default value ’’<br />

$cfg[’Servers’][$i][’usergroups’]<br />

Type string<br />

Default value ’’<br />

Since release 4.1.0 you can create different user groups with menu items attached to them. Users can be assigned<br />

to these groups and the logged in user would only see menu items configured to the usergroup he is assigned<br />

to. To do this it needs two tables “usergroups” (storing allowed menu items for each user group) and “users”<br />

(storing users and their assignments to user groups).<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the correct table names in $cfg[’Servers’][$i][’users’] (e.g.<br />

$cfg[’Servers’][$i][’usergroups’] (e.g. pma__usergroups)<br />

$cfg[’Servers’][$i][’navigationhiding’]<br />

Type string<br />

Default value ’’<br />

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

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

pma__users) and<br />

•put the table name in $cfg[’Servers’][$i][’navigationhiding’] (e.g.<br />

pma__navigationhiding)<br />

$cfg[’Servers’][$i][’central_columns’]<br />

Type string<br />

Default value ’’<br />

4.2. Server connection settings 27


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Since release 4.3.0 you can have a central list of columns per database. You can add/remove columns to the<br />

list as per your requirement. These columns in the central list will be available to use while you create a new<br />

column for a table or create a table itself. You can select a column from central list while creating a new column,<br />

it will save you from writing the same column definition over again or from writing different names for similar<br />

column.<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’central_columns’] (e.g.<br />

pma__central_columns)<br />

$cfg[’Servers’][$i][’designer_settings’]<br />

Type string<br />

Default value ’’<br />

Since release 4.5.0 your designer settings can be remembered. Your choice regarding ‘Angular/Direct Links’,<br />

‘Snap to Grid’, ‘Toggle Relation Lines’, ‘Small/Big All’, ‘Move Menu’ and ‘Pin Text’ can be remembered<br />

persistently.<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’designer_settings’] (e.g.<br />

pma__designer_settings)<br />

$cfg[’Servers’][$i][’savedsearches’]<br />

Type string<br />

Default value ’’<br />

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

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’savedsearches’] (e.g.<br />

pma__savedsearches)<br />

$cfg[’Servers’][$i][’export_templates’]<br />

Type string<br />

Default value ’’<br />

Since release 4.5.0 you can save and load export templates.<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’export_templates’] (e.g.<br />

pma__export_templates)<br />

$cfg[’Servers’][$i][’tracking’]<br />

Type string<br />

Default value ’’<br />

28 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Since release 3.3.x a tracking mechanism is available. It helps you to track every SQL command which is executed<br />

by phpMyAdmin. The mechanism supports logging of data manipulation and data definition statements.<br />

After enabling it you can create versions of tables.<br />

The creation of a version has two effects:<br />

•phpMyAdmin saves a snapshot of the table, including structure and indexes.<br />

•phpMyAdmin logs all commands which change the structure and/or data of the table and links these<br />

commands with the version number.<br />

Of course you can view the tracked changes. On the Tracking page a complete report is available for every<br />

version. For the report you can use filters, for example you can get a list of statements within a date range.<br />

When you want to filter usernames you can enter * for all names or you enter a list of names separated by ‘,’. In<br />

addition you can export the (filtered) report to a file or to a temporary database.<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’tracking’] (e.g. pma__tracking)<br />

$cfg[’Servers’][$i][’tracking_version_auto_create’]<br />

Type boolean<br />

Default value false<br />

Whether the tracking mechanism creates versions for tables and views automatically.<br />

If this is set to true and you create a table or view with<br />

•CREATE TABLE ...<br />

•CREATE VIEW ...<br />

and no version exists for it, the mechanism will create a version for you automatically.<br />

$cfg[’Servers’][$i][’tracking_default_statements’]<br />

Type string<br />

Default value ’CREATE TABLE,ALTER TABLE,DROP TABLE,RENAME TABLE,CREATE<br />

INDEX,DROP INDEX,INSERT,UPDATE,DELETE,TRUNCATE,REPLACE,CREATE<br />

VIEW,ALTER VIEW,DROP VIEW,CREATE DATABASE,ALTER DATABASE,DROP<br />

DATABASE’<br />

Defines the list of statements the auto-creation uses for new versions.<br />

$cfg[’Servers’][$i][’tracking_add_drop_view’]<br />

Type boolean<br />

Default value true<br />

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

$cfg[’Servers’][$i][’tracking_add_drop_table’]<br />

Type boolean<br />

Default value true<br />

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

$cfg[’Servers’][$i][’tracking_add_drop_database’]<br />

Type boolean<br />

4.2. Server connection settings 29


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Default value true<br />

Whether a DROP DATABASE IF EXISTS statement will be added as first line to the log when creating a<br />

database.<br />

$cfg[’Servers’][$i][’userconfig’]<br />

Type string<br />

Default value ’’<br />

Since release 3.4.x phpMyAdmin allows users to set most preferences by themselves and store them in the<br />

database.<br />

If you don’t allow for storing preferences in $cfg[’Servers’][$i][’pmadb’], users can still personalize<br />

phpMyAdmin, but settings will be saved in browser’s local storage, or, it is is unavailable, until the end of<br />

session.<br />

To allow the usage of this functionality:<br />

•set up $cfg[’Servers’][$i][’pmadb’] and the phpMyAdmin configuration storage<br />

•put the table name in $cfg[’Servers’][$i][’userconfig’]<br />

$cfg[’Servers’][$i][’MaxTableUiprefs’]<br />

Type integer<br />

Default value 100<br />

Maximum number of rows saved in $cfg[’Servers’][$i][’table_uiprefs’] table.<br />

When tables are dropped or renamed, $cfg[’Servers’][$i][’table_uiprefs’] may contain invalid<br />

data (referring to tables which no longer exist). We only keep this number of newest rows in<br />

$cfg[’Servers’][$i][’table_uiprefs’] and automatically delete older rows.<br />

$cfg[’Servers’][$i][’SessionTimeZone’]<br />

Type string<br />

Default value ’’<br />

Sets the time zone used by phpMyAdmin. Leave blank to use the time zone of your database server. Possible<br />

values are explained at http://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html<br />

This is useful when your database server uses a time zone which is different from the time zone you want to use<br />

in phpMyAdmin.<br />

$cfg[’Servers’][$i][’AllowRoot’]<br />

Type boolean<br />

Default value true<br />

Whether to allow root access. This is just a shortcut for the<br />

$cfg[’Servers’][$i][’AllowDeny’][’rules’] below.<br />

$cfg[’Servers’][$i][’AllowNoPassword’]<br />

Type boolean<br />

Default value false<br />

Whether to allow logins without a password. The default value of false for this parameter prevents unintended<br />

access to a MySQL server with was left with an empty password for root or on which an anonymous (blank)<br />

user is defined.<br />

$cfg[’Servers’][$i][’AllowDeny’][’order’]<br />

30 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Type string<br />

Default value ’’<br />

If your rule order is empty, then IP authorization is disabled.<br />

If your rule order is set to ’deny,allow’ then the system applies all deny rules followed by allow rules.<br />

Access is allowed by default. Any client which does not match a Deny command or does match an Allow<br />

command will be allowed access to the server.<br />

If your rule order is set to ’allow,deny’ then the system applies all allow rules followed by deny rules.<br />

Access is denied by default. Any client which does not match an Allow directive or does match a Deny directive<br />

will be denied access to the server.<br />

If your rule order is set to ’explicit’, authorization is performed in a similar fashion to rule order<br />

‘deny,allow’, with the added restriction that your host/username combination must be listed in the allow rules,<br />

and not listed in the deny rules. This is the most secure means of using Allow/Deny rules, and was available in<br />

Apache by specifying allow and deny rules without setting any order.<br />

Please also see $cfg[’TrustedProxies’] for detecting IP address behind proxies.<br />

$cfg[’Servers’][$i][’AllowDeny’][’rules’]<br />

Type array of strings<br />

Default value array()<br />

The general format for the rules is as such:<br />

[from] <br />

If you wish to match all users, it is possible to use a ’%’ as a wildcard in the username field.<br />

There are a few shortcuts you can use in the ipmask field as well (please note that those containing<br />

SERVER_ADDRESS might not be available on all webservers):<br />

'all' -> 0.0.0.0/0<br />

'localhost' -> 127.0.0.1/8<br />

'localnetA' -> SERVER_ADDRESS/8<br />

'localnetB' -> SERVER_ADDRESS/16<br />

'localnetC' -> SERVER_ADDRESS/24<br />

Having an empty rule list is equivalent to either using ’allow % from all’ if your rule order is set to<br />

’deny,allow’ or ’deny % from all’ if your rule order is set to ’allow,deny’ or ’explicit’.<br />

For the IP address matching system, the following work:<br />

•xxx.xxx.xxx.xxx (an exact IP address)<br />

•xxx.xxx.xxx.[yyy-zzz] (an IP address range)<br />

•xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP addresses)<br />

But the following does not work:<br />

•xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range)<br />

For IPv6 addresses, the following work:<br />

•xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx (an exact IPv6 address)<br />

•xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:[yyyy-zzzz] (an IPv6 address range)<br />

•xxxx:xxxx:xxxx:xxxx/nn (CIDR, Classless Inter-Domain Routing type IPv6 addresses)<br />

But the following does not work:<br />

4.2. Server connection settings 31


phpMyAdmin Documentation, Release 4.5.0-dev<br />

•xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xx[yyy-zzz] (partial IPv6 address range)<br />

$cfg[’Servers’][$i][’DisableIS’]<br />

Type boolean<br />

Default value false<br />

Disable using INFORMATION_SCHEMA to retrieve information (use SHOW commands instead), because of<br />

speed issues when many databases are present. Currently used in some parts of the code, more to come.<br />

$cfg[’Servers’][$i][’SignonScript’]<br />

Type string<br />

Default value ’’<br />

Name of PHP script to be sourced and executed to obtain login credentials. This is alternative approach to<br />

session based single signon. The script has to provide a function called get_login_credentials which<br />

returns list of username and password, accepting single parameter of existing username (can be empty). See<br />

examples/signon-script.php for an example:<br />

See also:<br />

Signon authentication mode<br />

$cfg[’Servers’][$i][’SignonSession’]<br />

Type string<br />

Default value ’’<br />

Name of session which will be used for signon authentication method. You should use something different<br />

than phpMyAdmin, because this is session which phpMyAdmin uses internally. Takes effect only if<br />

$cfg[’Servers’][$i][’SignonScript’] is not configured.<br />

See also:<br />

Signon authentication mode<br />

$cfg[’Servers’][$i][’SignonURL’]<br />

Type string<br />

Default value ’’<br />

URL where user will be redirected to log in for signon authentication method. Should be absolute including<br />

protocol.<br />

See also:<br />

Signon authentication mode<br />

$cfg[’Servers’][$i][’LogoutURL’]<br />

Type string<br />

Default value ’’<br />

URL where user will be redirected after logout (doesn’t affect config authentication method). Should be absolute<br />

including protocol.<br />

4.3 Generic settings<br />

$cfg[’ServerDefault’]<br />

32 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Type integer<br />

Default value 1<br />

If you have more than one server configured, you can set $cfg[’ServerDefault’] to any one of them<br />

to autoconnect to that server when phpMyAdmin is started, or set it to 0 to be given a list of servers without<br />

logging in.<br />

If you have only one server configured, $cfg[’ServerDefault’] MUST be set to that server.<br />

$cfg[’VersionCheck’]<br />

Type boolean<br />

Default value true<br />

Enables check for latest versions using JavaScript on the main phpMyAdmin page or by directly accessing<br />

version_check.php.<br />

Note: This setting can be adjusted by your vendor.<br />

$cfg[’ProxyUrl’]<br />

Type string<br />

Default value<br />

“”<br />

The url of the proxy to be used when <strong>phpmyadmin</strong> needs to access the outside internet such as when retrieving<br />

the latest version info or submitting error reports. You need this if the server where phpMyAdmin is installed<br />

does not have direct access to the internet. The format is: “hostname:portnumber”<br />

$cfg[’ProxyUser’]<br />

Type string<br />

Default value<br />

“”<br />

The username for authenticating with the proxy. By default, no authentication is performed. If a username is<br />

supplied, Basic Authentication will be performed. No other types of authentication are currently supported.<br />

$cfg[’ProxyPass’]<br />

Type string<br />

Default value<br />

“”<br />

The password for authenticating with the proxy.<br />

$cfg[’MaxDbList’]<br />

Type integer<br />

Default value 100<br />

The maximum number of database names to be displayed in the main panel’s database list.<br />

$cfg[’MaxTableList’]<br />

Type integer<br />

Default value 250<br />

4.3. Generic settings 33


phpMyAdmin Documentation, Release 4.5.0-dev<br />

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

$cfg[’ShowHint’]<br />

Type boolean<br />

Default value true<br />

Whether or not to show hints (for example, hints when hovering over table headers).<br />

$cfg[’MaxCharactersInDisplayedSQL’]<br />

Type integer<br />

Default value 1000<br />

The maximum number of characters when a SQL query is displayed. The default limit of 1000 should be correct<br />

to avoid the display of tons of hexadecimal codes that represent BLOBs, but some users have real SQL queries<br />

that are longer than 1000 characters. Also, if a query’s length exceeds this limit, this query is not saved in the<br />

history.<br />

$cfg[’PersistentConnections’]<br />

Type boolean<br />

Default value false<br />

Whether persistent connections should be used or not. Works with following extensions:<br />

•mysql (mysql_pconnect),<br />

•mysqli (requires PHP 5.3.0 or newer, more information).<br />

$cfg[’ForceSSL’]<br />

Type boolean<br />

Default value false<br />

Whether to force using https while accessing phpMyAdmin. In a reverse proxy setup, setting this to true is<br />

not supported.<br />

Note: In some setups (like separate SSL proxy or load balancer) you might have to set<br />

$cfg[’PmaAbsoluteUri’] for correct redirection.<br />

$cfg[’ExecTimeLimit’]<br />

Type integer [number of seconds]<br />

Default value 300<br />

Set the number of seconds a script is allowed to run. If seconds is set to zero, no time limit is imposed. This<br />

setting is used while importing/exporting dump files but has no effect when PHP is running in safe mode.<br />

$cfg[’SessionSavePath’]<br />

Type string<br />

Default value ’’<br />

Path for storing session data (session_save_path PHP parameter).<br />

$cfg[’MemoryLimit’]<br />

Type string [number of bytes]<br />

Default value ’-1’<br />

34 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Set the number of bytes a script is allowed to allocate. If set to ’-1’, no limit is imposed.<br />

This setting is used while importing/exporting dump files and at some other places in phpMyAdmin so you<br />

definitely don’t want to put here a too low value. It has no effect when PHP is running in safe mode.<br />

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

$cfg[’SkipLockedTables’]<br />

Type boolean<br />

Default value false<br />

Mark used tables and make it possible to show databases with locked tables (since MySQL 3.23.30).<br />

$cfg[’ShowSQL’]<br />

Type boolean<br />

Default value true<br />

Defines whether SQL queries generated by phpMyAdmin should be displayed or not.<br />

$cfg[’RetainQueryBox’]<br />

Type boolean<br />

Default value false<br />

Defines whether the SQL query box should be kept displayed after its submission.<br />

$cfg[’CodemirrorEnable’]<br />

Type boolean<br />

Default value true<br />

Defines whether to use a Javascript code editor for SQL query boxes. CodeMirror provides syntax highlighting<br />

and line numbers. However, middle-clicking for pasting the clipboard contents in some Linux distributions<br />

(such as Ubuntu) is not supported by all browsers.<br />

$cfg[’DefaultForeignKeyChecks’]<br />

Type string<br />

Default value ’default’<br />

Default value of the checkbox for foreign key checks, to disable/enable foreign key checks for certain queries.<br />

The possible values are ’default’, ’enable’ or ’disable’. If set to ’default’, the value of the<br />

MySQL variable FOREIGN_KEY_CHECKS is used.<br />

$cfg[’AllowUserDropDatabase’]<br />

Type boolean<br />

Default value false<br />

Defines whether normal users (non-administrator) are allowed to delete their own database or not. If set as false,<br />

the link Drop Database will not be shown, and even a DROP DATABASE mydatabase will be rejected.<br />

Quite practical for ISP ‘s with many customers.<br />

Note: This limitation of SQL queries is not as strict as when using MySQL privileges. This is due to nature<br />

of SQL queries which might be quite complicated. So this choice should be viewed as help to avoid accidental<br />

dropping rather than strict privilege limitation.<br />

$cfg[’Confirm’]<br />

4.3. Generic settings 35


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Type boolean<br />

Default value true<br />

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

$cfg[’UseDbSearch’]<br />

Type boolean<br />

Default value true<br />

Define whether the “search string inside database” is enabled or not.<br />

$cfg[’IgnoreMultiSubmitErrors’]<br />

Type boolean<br />

Default value false<br />

Define whether phpMyAdmin will continue executing a multi-query statement if one of the queries fails. Default<br />

is to abort execution.<br />

4.4 Cookie authentication options<br />

$cfg[’blowfish_secret’]<br />

Type string<br />

Default value ’’<br />

The “cookie” auth_type uses AES algorithm to encrypt the password. If you are using the “cookie” auth_type,<br />

enter here a random passphrase of your choice. It will be used internally by the AES algorithm: you won’t be<br />

prompted for this passphrase. There is no maximum length for this secret.<br />

Note: The configuration is called blowfish_secret for historical reasons as Blowfish algorithm was originally<br />

used to do the encryption.<br />

Changed in version 3.1.0: Since version 3.1.0 phpMyAdmin can generate this on the fly, but it makes a bit<br />

weaker security as this generated secret is stored in session and furthermore it makes impossible to recall user<br />

name from cookie.<br />

$cfg[’LoginCookieRecall’]<br />

Type boolean<br />

Default value true<br />

Define whether the previous login should be recalled or not in cookie authentication mode.<br />

This is automatically disabled if you do not have configured $cfg[’blowfish_secret’].<br />

$cfg[’LoginCookieValidity’]<br />

Type integer [number of seconds]<br />

Default value 1440<br />

Define how long a login cookie is valid. Please note that php configuration option session.gc_maxlifetime might<br />

limit session validity and if the session is lost, the login cookie is also invalidated. So it is a good idea to set<br />

session.gc_maxlifetime at least to the same value of $cfg[’LoginCookieValidity’].<br />

$cfg[’LoginCookieStore’]<br />

36 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Type integer [number of seconds]<br />

Default value 0<br />

Define how long login cookie should be stored in browser. Default 0 means that it will be kept for existing<br />

session. This is recommended for not trusted environments.<br />

$cfg[’LoginCookieDeleteAll’]<br />

Type boolean<br />

Default value true<br />

If enabled (default), logout deletes cookies for all servers, otherwise only for current one. Setting this to false<br />

makes it easy to forget to log out from other server, when you are using more of them.<br />

$cfg[’AllowArbitraryServer’]<br />

Type boolean<br />

Default value false<br />

If enabled, allows you to log in to arbitrary servers using cookie authentication.<br />

Note: Please use this carefully, as this may allow users access to MySQL servers behind the firewall where<br />

your HTTP server is placed. See also $cfg[’ArbitraryServerRegexp’].<br />

$cfg[’ArbitraryServerRegexp’]<br />

Type string<br />

Default value ’’<br />

Restricts the MySQL servers to which the user can log in when $cfg[’AllowArbitraryServer’] is<br />

enabled by matching the IP or the hostname of the MySQL server to the given regular expression. The regular<br />

expression must be enclosed with a delimiter character.<br />

$cfg[’CaptchaLoginPublicKey’]<br />

Type string<br />

Default value ’’<br />

The public key for the reCaptcha service that can be obtained from http://www.google.com/recaptcha.<br />

reCaptcha will be then used in Cookie authentication mode.<br />

$cfg[’CaptchaLoginPrivateKey’]<br />

Type string<br />

Default value ’’<br />

The private key for the reCaptcha service that can be obtain from http://www.google.com/recaptcha.<br />

reCaptcha will be then used in Cookie authentication mode.<br />

4.5 Navigation panel setup<br />

$cfg[’ShowDatabasesNavigationAsTree’]<br />

Type boolean<br />

Default value true<br />

4.5. Navigation panel setup 37


phpMyAdmin Documentation, Release 4.5.0-dev<br />

In the navigation panel, replaces the database tree with a selector<br />

$cfg[’FirstLevelNavigationItems’]<br />

Type integer<br />

Default value 100<br />

The number of first level databases that can be displayed on each page of navigation tree.<br />

$cfg[’MaxNavigationItems’]<br />

Type integer<br />

Default value 50<br />

The number of items (tables, columns, indexes) that can be displayed on each page of the navigation tree.<br />

$cfg[’NavigationTreeEnableGrouping’]<br />

Type boolean<br />

Default value true<br />

Defines whether to group the databases based on a common prefix in their name<br />

$cfg[’NavigationTreeDbSeparator’].<br />

$cfg[’NavigationTreeDbSeparator’]<br />

Type string or array<br />

Default value ’_’<br />

The string used to separate the parts of the database name when showing them in a tree. Alternatively you can<br />

specify more strings in an array and all of them will be used as a separator.<br />

$cfg[’NavigationTreeTableSeparator’]<br />

Type string or array<br />

Default value ’__’<br />

Defines a string to be used to nest table spaces. This means if you have tables like first__second__third<br />

this will be shown as a three-level hierarchy like: first > second > third. If set to false or empty, the feature is<br />

disabled. NOTE: You should not use this separator at the beginning or end of a table name or multiple times<br />

after another without any other characters in between.<br />

$cfg[’NavigationTreeTableLevel’]<br />

Type integer<br />

Default value 1<br />

Defines how many sublevels should be displayed when splitting up tables by the above separator.<br />

$cfg[’NumRecentTables’]<br />

Type integer<br />

Default value 10<br />

The maximum number of recently used tables shown in the navigation panel. Set this to 0 (zero) to disable the<br />

listing of recent tables.<br />

$cfg[’ZeroConf’]<br />

Type boolean<br />

Default value true<br />

38 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Enables Zero Configuration mode in which the user will be offered a choice to create phpMyAdmin configuration<br />

storage in the current database or use the existing one, if already present.<br />

This setting has no effect if the phpMyAdmin configuration storage database is properly created and the related<br />

configuration directives (such as $cfg[’Servers’][$i][’pmadb’] and so on) are configured.<br />

$cfg[’NavigationLinkWithMainPanel’]<br />

Type boolean<br />

Default value true<br />

Defines whether or not to link with main panel by highlighting the current database or table.<br />

$cfg[’NavigationDisplayLogo’]<br />

Type boolean<br />

Default value true<br />

Defines whether or not to display the phpMyAdmin logo at the top of the navigation panel.<br />

$cfg[’NavigationLogoLink’]<br />

Type string<br />

Default value ’index.php’<br />

Enter URL where logo in the navigation panel will point to. For use especially with self made theme which<br />

changes this. For external URLs, you should include URL scheme as well.<br />

$cfg[’NavigationLogoLinkWindow’]<br />

Type string<br />

Default value ’main’<br />

Whether to open the linked page in the main window (main) or in a new one (new). Note: use new if you are<br />

linking to <strong>phpmyadmin</strong>.net.<br />

$cfg[’NavigationTreeDisplayItemFilterMinimum’]<br />

Type integer<br />

Default value 30<br />

Defines the minimum number of items (tables, views, routines and events) to display a JavaScript filter box<br />

above the list of items in the navigation tree.<br />

To disable the filter completely some high number can be used (e.g. 9999)<br />

$cfg[’NavigationTreeDisplayDbFilterMinimum’]<br />

Type integer<br />

Default value 30<br />

Defines the minimum number of databases to display a JavaScript filter box above the list of databases in the<br />

navigation tree.<br />

To disable the filter completely some high number can be used (e.g. 9999)<br />

$cfg[’NavigationDisplayServers’]<br />

Type boolean<br />

Default value true<br />

Defines whether or not to display a server choice at the top of the navigation panel.<br />

4.5. Navigation panel setup 39


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’DisplayServersList’]<br />

Type boolean<br />

Default value false<br />

Defines whether to display this server choice as links instead of in a drop-down.<br />

$cfg[’NavigationTreeDefaultTabTable’]<br />

Type string<br />

Default value ’structure’<br />

Defines the tab displayed by default when clicking the small icon next to each table name in the navigation<br />

panel. Possible values:<br />

•structure<br />

•sql<br />

•search<br />

•insert<br />

•browse<br />

$cfg[’NavigationTreeDefaultTabTable2’]<br />

Type string<br />

Default value null<br />

Defines the tab displayed by default when clicking the second small icon next to each table name in the navigation<br />

panel. Possible values:<br />

•(empty)<br />

•structure<br />

•sql<br />

•search<br />

•insert<br />

•browse<br />

$cfg[’NavigationTreeEnableExpansion’]<br />

Type boolean<br />

Default value false<br />

Whether to offer the possibility of tree expansion in the navigation panel.<br />

$cfg[’NavigationTreeShowTables’]<br />

Type boolean<br />

Default value true<br />

Whether to show tables under database in the navigation panel.<br />

$cfg[’NavigationTreeShowViews’]<br />

Type boolean<br />

Default value true<br />

Whether to show views under database in the navigation panel.<br />

40 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’NavigationTreeShowFunctions’]<br />

Type boolean<br />

Default value true<br />

Whether to show functions under database in the navigation panel.<br />

$cfg[’NavigationTreeShowProcedures’]<br />

Type boolean<br />

Default value true<br />

Whether to show procedures under database in the navigation panel.<br />

$cfg[’NavigationTreeShowEvents’]<br />

Type boolean<br />

Default value true<br />

Whether to show events under database in the navigation panel.<br />

4.6 Main panel<br />

$cfg[’ShowStats’]<br />

Type boolean<br />

Default value true<br />

Defines whether or not to display space usage and statistics about databases and tables. Note that statistics<br />

requires at least MySQL 3.23.3 and that, at this date, MySQL doesn’t return such information for Berkeley DB<br />

tables.<br />

$cfg[’ShowServerInfo’]<br />

Type boolean<br />

Default value true<br />

Defines whether to display detailed server information on main page. You can additionally hide more information<br />

by using $cfg[’Servers’][$i][’verbose’].<br />

$cfg[’ShowPhpInfo’]<br />

Type boolean<br />

Default value false<br />

$cfg[’ShowChgPassword’]<br />

Type boolean<br />

Default value true<br />

$cfg[’ShowCreateDb’]<br />

Type boolean<br />

Default value true<br />

4.6. Main panel 41


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Defines whether to display the PHP information and Change password links and form for creating database or<br />

not at the starting main (right) frame. This setting does not check MySQL commands entered directly.<br />

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

disable_functions = phpinfo()<br />

Also note that enabling the Change password link has no effect with config authentication mode: because of the<br />

hard coded password value in the configuration file, end users can’t be allowed to change their passwords.<br />

$cfg[’ShowGitRevision’]<br />

Type boolean<br />

Default value true<br />

Defines whether to display informations about the current Git revision (if applicable) on the main panel.<br />

$cfg[’MysqlMinVersion’]<br />

Type array<br />

Defines the minimum supported MySQL version. The default is chosen by the phpMyAdmin team; however<br />

this directive was asked by a developer of the Plesk control panel to ease integration with older MySQL servers<br />

(where most of the phpMyAdmin features work).<br />

4.7 Database structure<br />

$cfg[’ShowDbStructureCreation’]<br />

Type boolean<br />

Default value false<br />

Defines whether the database structure page (tables list) has a “Creation” column that displays when each table<br />

was created.<br />

$cfg[’ShowDbStructureLastUpdate’]<br />

Type boolean<br />

Default value false<br />

Defines whether the database structure page (tables list) has a “Last update” column that displays when each<br />

table was last updated.<br />

$cfg[’ShowDbStructureLastCheck’]<br />

Type boolean<br />

Default value false<br />

Defines whether the database structure page (tables list) has a “Last check” column that displays when each<br />

table was last checked.<br />

$cfg[’HideStructureActions’]<br />

Type boolean<br />

Default value true<br />

Defines whether the table structure actions are hidden under a “More” drop-down.<br />

42 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

4.8 Browse mode<br />

$cfg[’TableNavigationLinksMode’]<br />

Type string<br />

Default value ’icons’<br />

Defines whether the table navigation links contain ’icons’, ’text’ or ’both’.<br />

$cfg[’ActionLinksMode’]<br />

Type string<br />

Default value ’both’<br />

If set to icons, will display icons instead of text for db and table properties links (like Browse, Select, Insert,<br />

...). Can be set to ’both’ if you want icons AND text. When set to text, will only show text.<br />

$cfg[’RowActionType’]<br />

Type string<br />

Default value ’both’<br />

Whether to display icons or text or both icons and text in table row action segment. Value can be either of<br />

’icons’, ’text’ or ’both’.<br />

$cfg[’ShowAll’]<br />

Type boolean<br />

Default value false<br />

Defines whether a user should be displayed a “Show all” button in browse mode or not in all cases. By default<br />

it is shown only on small tables (less than 500 rows) to avoid performance issues while getting too many rows.<br />

$cfg[’MaxRows’]<br />

Type integer<br />

Default value 25<br />

Number of rows displayed when browsing a result set and no LIMIT clause is used. If the result set contains<br />

more rows, “Previous” and “Next” links will be shown. Possible values: 25,50,100,250,500.<br />

$cfg[’Order’]<br />

Type string<br />

Default value ’SMART’<br />

Defines whether columns are displayed in ascending (ASC) order, in descending (DESC) order or in a “smart”<br />

(SMART) order - I.E. descending order for columns of type TIME, DATE, DATETIME and TIMESTAMP,<br />

ascending order else- by default.<br />

$cfg[’GridEditing’]<br />

Type string<br />

Default value ’double-click’<br />

Defines which action (double-click or click) triggers grid editing.<br />

disabled value.<br />

$cfg[’RelationalDisplay’]<br />

Type string<br />

Can be deactivated with the<br />

4.8. Browse mode 43


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Default value ’K’<br />

Defines the initial behavior for Options > Relational. K, which is the default, displays the key while D shows the<br />

display column.<br />

$cfg[’SaveCellsAtOnce’]<br />

Type boolean<br />

Default value false<br />

Defines whether or not to save all edited cells at once for grid editing.<br />

4.9 Editing mode<br />

$cfg[’ProtectBinary’]<br />

Type boolean or string<br />

Default value ’blob’<br />

Defines whether BLOB or BINARY columns are protected from editing when browsing a table’s content. Valid<br />

values are:<br />

•false to allow editing of all columns;<br />

•’blob’ to allow editing of all columns except BLOBS;<br />

•’noblob’ to disallow editing of all columns except BLOBS (the opposite of ’blob’);<br />

•’all’ to disallow editing of all BINARY or BLOB columns.<br />

$cfg[’ShowFunctionFields’]<br />

Type boolean<br />

Default value true<br />

Defines whether or not MySQL functions fields should be initially displayed in edit/insert mode. Since version<br />

2.10, the user can toggle this setting from the interface.<br />

$cfg[’ShowFieldTypesInDataEditView’]<br />

Type boolean<br />

Default value true<br />

Defines whether or not type fields should be initially displayed in edit/insert mode. The user can toggle this<br />

setting from the interface.<br />

$cfg[’InsertRows’]<br />

Type integer<br />

Default value 2<br />

Defines the maximum number of concurrent entries for the Insert page.<br />

$cfg[’ForeignKeyMaxLimit’]<br />

Type integer<br />

Default value 100<br />

If there are fewer items than this in the set of foreign keys, then a drop-down box of foreign keys is presented,<br />

in the style described by the $cfg[’ForeignKeyDropdownOrder’] setting.<br />

44 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’ForeignKeyDropdownOrder’]<br />

Type array<br />

Default value array(‘content-id’, ‘id-content’)<br />

For the foreign key drop-down fields, there are several methods of display, offering both the key and value data.<br />

The contents of the array should be one or both of the following strings: content-id, id-content.<br />

4.10 Export and import settings<br />

$cfg[’ZipDump’]<br />

Type boolean<br />

Default value true<br />

$cfg[’GZipDump’]<br />

Type boolean<br />

Default value true<br />

$cfg[’BZipDump’]<br />

Type boolean<br />

Default value true<br />

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

$cfg[’CompressOnFly’]<br />

Type boolean<br />

Default value true<br />

Defines whether to allow on the fly compression for GZip/BZip2 compressed exports. This doesn’t affect smaller<br />

dumps and allows users to create larger dumps that won’t otherwise fit in memory due to php memory limit.<br />

Produced files contain more GZip/BZip2 headers, but all normal programs handle this correctly.<br />

$cfg[’Export’]<br />

Type array<br />

Default value array(...)<br />

In this array are defined default parameters for export, names of items are similar to texts seen on export page,<br />

so you can easily identify what they mean.<br />

$cfg[’Export’][’method’]<br />

Type string<br />

Default value ’quick’<br />

Defines how the export form is displayed when it loads. Valid values are:<br />

$cfg[’Import’]<br />

•quick to display the minimum number of options to configure<br />

•custom to display every available option to configure<br />

•custom-no-form same as custom but does not display the option of using quick export<br />

Type array<br />

4.10. Export and import settings 45


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Default value array(...)<br />

In this array are defined default parameters for import, names of items are similar to texts seen on import page,<br />

so you can easily identify what they mean.<br />

4.11 Tabs display settings<br />

$cfg[’TabsMode’]<br />

Type string<br />

Default value ’both’<br />

Defines whether the menu tabs contain ’icons’, ’text’ or ’both’.<br />

$cfg[’PropertiesNumColumns’]<br />

Type integer<br />

Default value 1<br />

How many columns will be utilized to display the tables on the database property view? When setting this to a<br />

value larger than 1, the type of the database will be omitted for more display space.<br />

$cfg[’DefaultTabServer’]<br />

Type string<br />

Default value ’welcome’<br />

Defines the tab displayed by default on server view. Possible values:<br />

•welcome (recommended for multi-user setups)<br />

•databases,<br />

•status<br />

•variables<br />

•privileges<br />

$cfg[’DefaultTabDatabase’]<br />

Type string<br />

Default value ’structure’<br />

Defines the tab displayed by default on database view. Possible values:<br />

•structure<br />

•sql<br />

•search<br />

•operations<br />

$cfg[’DefaultTabTable’]<br />

Type string<br />

Default value ’browse’<br />

Defines the tab displayed by default on table view. Possible values:<br />

•structure<br />

46 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

•sql<br />

•search<br />

•insert<br />

•browse<br />

4.12 PDF Options<br />

$cfg[’PDFPageSizes’]<br />

Type array<br />

Default value array(’A3’, ’A4’, ’A5’, ’letter’, ’legal’)<br />

Array of possible paper sizes for creating PDF pages.<br />

You should never need to change this.<br />

$cfg[’PDFDefaultPageSize’]<br />

Type string<br />

Default value ’A4’<br />

Default page size to use when creating PDF pages. Valid values are any listed in $cfg[’PDFPageSizes’].<br />

4.13 Languages<br />

$cfg[’DefaultLang’]<br />

Type string<br />

Default value ’en’<br />

Defines the default language to use, if not browser-defined or user- defined. The corresponding language file<br />

needs to be in locale/code/LC_MESSAGES/<strong>phpmyadmin</strong>.mo.<br />

$cfg[’DefaultConnectionCollation’]<br />

Type string<br />

Default value ’utf8_general_ci’<br />

Defines the default connection collation to use, if not user-defined. See the MySQL documentation for charsets<br />

for list of possible values. This setting is ignored when connected to Drizzle server.<br />

$cfg[’Lang’]<br />

Type string<br />

Default value not set<br />

Force language to use. The corresponding language file needs to be in locale/code/LC_MESSAGES/<strong>phpmyadmin</strong>.mo.<br />

$cfg[’FilterLanguages’]<br />

Type string<br />

Default value ’’<br />

4.12. PDF Options 47


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Limit list of available languages to those matching the given regular expression. For example if you want only<br />

Czech and English, you should set filter to ’^(cs|en)’.<br />

$cfg[’RecodingEngine’]<br />

Type string<br />

Default value ’auto’<br />

You can select here which functions will be used for character set conversion. Possible values are:<br />

•auto - automatically use available one (first is tested iconv, then recode)<br />

•iconv - use iconv or libiconv functions<br />

•recode - use recode_string function<br />

•mb - use mbstring extension<br />

•none - disable encoding conversion<br />

Enabled charset conversion activates a pull-down menu in the Export and Import pages, to choose the character<br />

set when exporting a file. The default value in this menu comes from $cfg[’Export’][’charset’] and<br />

$cfg[’Import’][’charset’].<br />

$cfg[’IconvExtraParams’]<br />

Type string<br />

Default value ’//TRANSLIT’<br />

Specify some parameters for iconv used in charset conversion. See iconv documentation for details. By default<br />

//TRANSLIT is used, so that invalid characters will be transliterated.<br />

$cfg[’AvailableCharsets’]<br />

Type array<br />

Default value array(...)<br />

Available character sets for MySQL conversion. You can add your own (any of supported by recode/iconv) or<br />

remove these which you don’t use. Character sets will be shown in same order as here listed, so if you frequently<br />

use some of these move them to the top.<br />

4.14 Web server settings<br />

$cfg[’OBGzip’]<br />

Type string/boolean<br />

Default value ’auto’<br />

Defines whether to use GZip output buffering for increased speed in HTTP transfers. Set to true/false for<br />

enabling/disabling. When set to ‘auto’ (string), phpMyAdmin tries to enable output buffering and will automatically<br />

disable it if your browser has some problems with buffering. IE6 with a certain patch is known to cause<br />

data corruption when having enabled buffering.<br />

$cfg[’TrustedProxies’]<br />

Type array<br />

Default value array()<br />

48 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Lists proxies and HTTP headers which are trusted for $cfg[’Servers’][$i][’AllowDeny’][’order’].<br />

This list is by default empty, you need to fill in some trusted proxy servers if you want to use rules for IP<br />

addresses behind proxy.<br />

The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X<br />

-Forwarded-For) header coming from the proxy 1.2.3.4:<br />

$cfg['TrustedProxies'] = array('1.2.3.4' => 'HTTP_X_FORWARDED_FOR');<br />

The $cfg[’Servers’][$i][’AllowDeny’][’rules’] directive uses the client’s IP address as usual.<br />

$cfg[’GD2Available’]<br />

Type string<br />

Default value ’auto’<br />

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

•auto - automatically detect<br />

•yes - GD 2 functions can be used<br />

•no - GD 2 function cannot be used<br />

$cfg[’CheckConfigurationPermissions’]<br />

Type boolean<br />

Default value true<br />

We normally check the permissions on the configuration file to ensure it’s not world writable. However, phpMyAdmin<br />

could be installed on a NTFS filesystem mounted on a non-Windows server, in which case the<br />

permissions seems wrong but in fact cannot be detected. In this case a sysadmin would set this parameter to<br />

false.<br />

$cfg[’LinkLengthLimit’]<br />

Type integer<br />

Default value 1000<br />

Limit for length of URL in links. When length would be above this limit, it is replaced by form with button.<br />

This is required as some web servers (IIS) have problems with long URL .<br />

$cfg[’CSPAllow’]<br />

Type string<br />

Default value ’’<br />

Additional string to include in allowed script and image sources in Content Security Policy header.<br />

This can be useful when you want to include some external JavaScript files in config.footer.inc.php<br />

or config.header.inc.php, which would be normally not allowed by Content Security Policy.<br />

To allow some sites, just list them within the string:<br />

$cfg['CSPAllow'] = 'example.com example.net';<br />

New in version 4.0.4.<br />

$cfg[’DisableMultiTableMaintenance’]<br />

Type boolean<br />

Default value false<br />

4.14. Web server settings 49


phpMyAdmin Documentation, Release 4.5.0-dev<br />

In the database Structure page, it’s possible to mark some tables then choose an operation like optimizing<br />

for many tables. This can slow down a server; therefore, setting this to true prevents this kind of multiple<br />

maintenance operation.<br />

4.15 Theme settings<br />

$cfg[’NaviWidth’]<br />

Type integer<br />

Default value<br />

Navigation panel width in pixels. See themes/themename/layout.inc.php.<br />

$cfg[’NaviBackground’]<br />

Type string [CSS color for background]<br />

Default value<br />

$cfg[’MainBackground’]<br />

Type string [CSS color for background]<br />

Default value<br />

The background styles used for both the frames. See themes/themename/layout.inc.php.<br />

$cfg[’NaviPointerBackground’]<br />

Type string [CSS color for background]<br />

Default value<br />

$cfg[’NaviPointerColor’]<br />

Type string [CSS color]<br />

Default value<br />

The style used for the pointer in the navigation panel. See themes/themename/layout.inc.php.<br />

$cfg[’Border’]<br />

Type integer<br />

Default value<br />

The size of a table’s border. See themes/themename/layout.inc.php.<br />

$cfg[’ThBackground’]<br />

Type string [CSS color for background]<br />

Default value<br />

$cfg[’ThColor’]<br />

Type string [CSS color]<br />

Default value<br />

The style used for table headers. See themes/themename/layout.inc.php.<br />

$cfg[’BgOne’]<br />

Type string [CSS color]<br />

50 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Default value<br />

The color (HTML) #1 for table rows. See themes/themename/layout.inc.php.<br />

$cfg[’BgTwo’]<br />

Type string [CSS color]<br />

Default value<br />

The color (HTML) #2 for table rows. See themes/themename/layout.inc.php.<br />

$cfg[’BrowsePointerBackground’]<br />

Type string [CSS color]<br />

Default value<br />

The background color used when hovering over a row in the Browse panel. See<br />

themes/themename/layout.inc.php.<br />

$cfg[’BrowsePointerColor’]<br />

Type string [CSS color]<br />

Default value<br />

The text color used when hovering over a row in the Browse panel. Used when<br />

$cfg[’BrowsePointerEnable’] is true. See themes/themename/layout.inc.php.<br />

$cfg[’BrowseMarkerBackground’]<br />

Type string [CSS color]<br />

Default value<br />

The background color used to highlight a row selected by checkbox in the Browse panel or<br />

when a column is selected. Used when $cfg[’BrowsePointerEnable’] is true. See<br />

themes/themename/layout.inc.php.<br />

$cfg[’BrowseMarkerColor’]<br />

Type string [CSS color]<br />

Default value<br />

The color used when you visually mark a row or column in the Browse panel. Rows can be marked by clicking<br />

the checkbox to the left of the row and columns can be marked by clicking the column’s header (outside of the<br />

header text). See themes/themename/layout.inc.php.<br />

$cfg[’FontFamily’]<br />

Type string<br />

Default value<br />

You put here a valid CSS font family value, for example arial, sans- serif. See<br />

themes/themename/layout.inc.php.<br />

$cfg[’FontFamilyFixed’]<br />

Type string<br />

Default value<br />

You put here a valid CSS font family value, for example monospace. This one is used in textarea. See<br />

themes/themename/layout.inc.php.<br />

4.15. Theme settings 51


phpMyAdmin Documentation, Release 4.5.0-dev<br />

4.16 Design customization<br />

$cfg[’NavigationTreePointerEnable’]<br />

Type boolean<br />

Default value true<br />

When set to true, hovering over an item in the navigation panel causes that item to be marked (the background<br />

is highlighted).<br />

$cfg[’BrowsePointerEnable’]<br />

Type boolean<br />

Default value true<br />

When set to true, hovering over a row in the Browse page causes that row to be marked (the background is<br />

highlighted).<br />

$cfg[’BrowseMarkerEnable’]<br />

Type boolean<br />

Default value true<br />

When set to true, a data row is marked (the background is highlighted) when the row is selected with the<br />

checkbox.<br />

$cfg[’LimitChars’]<br />

Type integer<br />

Default value 50<br />

Maximum number of characters shown in any non-numeric field on browse view. Can be turned off by a toggle<br />

button on the browse page.<br />

$cfg[’RowActionLinks’]<br />

Type string<br />

Default value ’left’<br />

Defines the place where table row links (Edit, Copy, Delete) would be put when tables contents are displayed<br />

(you may have them displayed at the left side, right side, both sides or nowhere).<br />

$cfg[’RowActionLinksWithoutUnique’]<br />

Type boolean<br />

Default value false<br />

Defines whether to show row links (Edit, Copy, Delete) and checkboxes for multiple row operations even when<br />

the selection does not have a unique key. Using row actions in the absence of a unique key may result in<br />

different/more rows being affected since there is no guaranteed way to select the exact row(s).<br />

$cfg[’RememberSorting’]<br />

Type boolean<br />

Default value true<br />

If enabled, remember the sorting of each table when browsing them.<br />

$cfg[’TablePrimaryKeyOrder’]<br />

Type string<br />

52 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Default value ’NONE’<br />

This defines the default sort order for the tables, having a primary key, when there is no sort order defines<br />

externally. Acceptable values : [’NONE’, ‘ASC’, ‘DESC’]<br />

$cfg[’ShowBrowseComments’]<br />

Type boolean<br />

Default value true<br />

$cfg[’ShowPropertyComments’]<br />

Type boolean<br />

Default value true<br />

By setting the corresponding variable to true you can enable the display of column comments in Browse or<br />

Property display. In browse mode, the comments are shown inside the header. In property mode, comments<br />

are displayed using a CSS-formatted dashed-line below the name of the column. The comment is shown as a<br />

tool-tip for that column.<br />

4.17 Text fields<br />

$cfg[’CharEditing’]<br />

Type string<br />

Default value ’input’<br />

Defines which type of editing controls should be used for CHAR and VARCHAR columns. Applies to data<br />

editing and also to the default values in structure editing. Possible values are:<br />

•input - this allows to limit size of text to size of columns in MySQL, but has problems with newlines in<br />

columns<br />

•textarea - no problems with newlines in columns, but also no length limitations<br />

$cfg[’MinSizeForInputField’]<br />

Type integer<br />

Default value 4<br />

Defines the minimum size for input fields generated for CHAR and VARCHAR columns.<br />

$cfg[’MaxSizeForInputField’]<br />

Type integer<br />

Default value 60<br />

Defines the maximum size for input fields generated for CHAR and VARCHAR columns.<br />

$cfg[’TextareaCols’]<br />

Type integer<br />

Default value 40<br />

$cfg[’TextareaRows’]<br />

Type integer<br />

Default value 15<br />

4.17. Text fields 53


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’CharTextareaCols’]<br />

Type integer<br />

Default value 40<br />

$cfg[’CharTextareaRows’]<br />

Type integer<br />

Default value 2<br />

Number of columns and rows for the textareas. This value will be emphasized (*2) for SQL query textareas and<br />

(*1.25) for SQL textareas inside the query window.<br />

The Char* values are used for CHAR and VARCHAR editing (if configured via $cfg[’CharEditing’]).<br />

$cfg[’LongtextDoubleTextarea’]<br />

Type boolean<br />

Default value true<br />

Defines whether textarea for LONGTEXT columns should have double size.<br />

$cfg[’TextareaAutoSelect’]<br />

Type boolean<br />

Default value false<br />

Defines if the whole textarea of the query box will be selected on click.<br />

$cfg[’EnableAutocompleteForTablesAndColumns’]<br />

Type boolean<br />

Default value true<br />

Whether to enable autocomplete for table and column names in any SQL query box.<br />

4.18 SQL query box settings<br />

$cfg[’SQLQuery’][’Edit’]<br />

Type boolean<br />

Default value true<br />

Whether to display an edit link to change a query in any SQL Query box.<br />

$cfg[’SQLQuery’][’Explain’]<br />

Type boolean<br />

Default value true<br />

Whether to display a link to explain a SELECT query in any SQL Query box.<br />

$cfg[’SQLQuery’][’ShowAsPHP’]<br />

Type boolean<br />

Default value true<br />

Whether to display a link to wrap a query in PHP code in any SQL Query box.<br />

$cfg[’SQLQuery’][’Refresh’]<br />

54 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Type boolean<br />

Default value true<br />

Whether to display a link to refresh a query in any SQL Query box.<br />

4.19 Web server upload/save/import directories<br />

$cfg[’UploadDir’]<br />

Type string<br />

Default value ’’<br />

The name of the directory where SQL files have been uploaded by other means than phpMyAdmin (for example,<br />

ftp). Those files are available under a drop-down box when you click the database or table name, then the Import<br />

tab.<br />

If you want different directory for each user, %u will be replaced with username.<br />

Please note that the file names must have the suffix ”.sql” (or ”.sql.bz2” or ”.sql.gz” if support for compressed<br />

formats is enabled).<br />

This feature is useful when your file is too big to be uploaded via HTTP, or when file uploads are disabled in<br />

PHP.<br />

Note: If PHP is running in safe mode, this directory must be owned by the same user as the owner of the<br />

phpMyAdmin scripts. See also 1.16 I cannot upload big dump files (memory, HTTP or timeout problems). for<br />

alternatives.<br />

$cfg[’SaveDir’]<br />

Type string<br />

Default value ’’<br />

The name of the directory where dumps can be saved.<br />

If you want different directory for each user, %u will be replaced with username.<br />

Please note that the directory must exist and has to be writable for the user running webserver.<br />

Note: If PHP is running in safe mode, this directory must be owned by the same user as the owner of the<br />

phpMyAdmin scripts.<br />

$cfg[’TempDir’]<br />

Type string<br />

Default value ’’<br />

The name of the directory where temporary files can be stored.<br />

This is needed for importing ESRI Shapefiles, see 6.30 Import: How can I import ESRI Shapefiles? and to work<br />

around limitations of open_basedir for uploaded files, see 1.11 I get an ‘open_basedir restriction’ while<br />

uploading a file from the query box..<br />

If the directory where phpMyAdmin is installed is subject to an open_basedir restriction, you need to<br />

create a temporary directory in some directory accessible by the web server. However for security reasons, this<br />

directory should be outside the tree published by webserver. If you cannot avoid having this directory published<br />

by webserver, place at least an empty index.html file there, so that directory listing is not possible.<br />

4.19. Web server upload/save/import directories 55


phpMyAdmin Documentation, Release 4.5.0-dev<br />

This directory should have as strict permissions as possible as the only user required to access this directory is<br />

the one who runs the webserver. If you have root privileges, simply make this user owner of this directory and<br />

make it accessible only by it:<br />

chown www-data:www-data tmp<br />

chmod 700 tmp<br />

If you cannot change owner of the directory, you can achieve a similar setup using ACL:<br />

chmod 700 tmp<br />

setfacl -m "g:www-data:rwx" tmp<br />

setfacl -d -m "g:www-data:rwx" tmp<br />

If neither of above works for you, you can still make the directory chmod 777, but it might impose risk of<br />

other users on system reading and writing data in this directory.<br />

4.20 Various display setting<br />

$cfg[’RepeatCells’]<br />

Type integer<br />

Default value 100<br />

Repeat the headers every X cells, or 0 to deactivate.<br />

$cfg[’QueryHistoryDB’]<br />

Type boolean<br />

Default value false<br />

$cfg[’QueryHistoryMax’]<br />

Type integer<br />

Default value 25<br />

If $cfg[’QueryHistoryDB’] is set to true, all your Queries are logged to a table, which has to be created<br />

by you (see $cfg[’Servers’][$i][’history’]). If set to false, all your queries will be appended to<br />

the form, but only as long as your window is opened they remain saved.<br />

When using the JavaScript based query window, it will always get updated when you click on a new table/db to<br />

browse and will focus if you click on Edit SQL after using a query. You can suppress updating the query window<br />

by checking the box Do not overwrite this query from outside the window below the query textarea. Then you<br />

can browse tables/databases in the background without losing the contents of the textarea, so this is especially<br />

useful when composing a query with tables you first have to look in. The checkbox will get automatically<br />

checked whenever you change the contents of the textarea. Please uncheck the button whenever you definitely<br />

want the query window to get updated even though you have made alterations.<br />

If $cfg[’QueryHistoryDB’] is set to true you can specify the amount of saved history items using<br />

$cfg[’QueryHistoryMax’].<br />

$cfg[’BrowseMIME’]<br />

Type boolean<br />

Default value true<br />

Enable Transformations.<br />

$cfg[’MaxExactCount’]<br />

56 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Type integer<br />

Default value 500000<br />

For InnoDB tables, determines for how large tables phpMyAdmin should get the exact row count using SELECT<br />

COUNT. If the approximate row count as returned by SHOW TABLE STATUS is smaller than this value,<br />

SELECT COUNT will be used, otherwise the approximate count will be used.<br />

$cfg[’MaxExactCountViews’]<br />

Type integer<br />

Default value 0<br />

For VIEWs, since obtaining the exact count could have an impact on performance, this value is the maximum<br />

to be displayed, using a SELECT COUNT ... LIMIT. Setting this to 0 bypasses any row counting.<br />

$cfg[’NaturalOrder’]<br />

Type boolean<br />

Default value true<br />

Sorts database and table names according to natural order (for example, t1, t2, t10). Currently implemented in<br />

the navigation panel and in Database view, for the table list.<br />

$cfg[’InitialSlidersState’]<br />

Type string<br />

Default value ’closed’<br />

If set to ’closed’, the visual sliders are initially in a closed state. A value of ’open’ does the reverse. To<br />

completely disable all visual sliders, use ’disabled’.<br />

$cfg[’UserprefsDisallow’]<br />

Type array<br />

Default value array()<br />

Contains names of configuration options (keys in $cfg array) that users can’t set through user preferences. For<br />

possible values, refer to libraries/config/user_preferences.forms.php.<br />

$cfg[’UserprefsDeveloperTab’]<br />

Type boolean<br />

Default value false<br />

Activates in the user preferences a tab containing options for developers of phpMyAdmin.<br />

4.21 Page titles<br />

$cfg[’TitleTable’]<br />

Type string<br />

Default value ’@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ |<br />

@PHPMYADMIN@’<br />

$cfg[’TitleDatabase’]<br />

Type string<br />

Default value ’@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@’<br />

4.21. Page titles 57


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’TitleServer’]<br />

Type string<br />

Default value ’@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@’<br />

$cfg[’TitleDefault’]<br />

Type string<br />

Default value ’@HTTP_HOST@ | @PHPMYADMIN@’<br />

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

4.22 Theme manager settings<br />

$cfg[’ThemePath’]<br />

Type string<br />

Default value ’./themes’<br />

If theme manager is active, use this as the path of the subdirectory containing all the themes.<br />

$cfg[’ThemeManager’]<br />

Type boolean<br />

Default value true<br />

Enables user-selectable themes. See 2.7 Using and creating themes.<br />

$cfg[’ThemeDefault’]<br />

Type string<br />

Default value ’pmahomme’<br />

The default theme (a subdirectory under $cfg[’ThemePath’]).<br />

$cfg[’ThemePerServer’]<br />

Type boolean<br />

Default value false<br />

Whether to allow different theme for each server.<br />

4.23 Default queries<br />

$cfg[’DefaultQueryTable’]<br />

Type string<br />

Default value ’SELECT * FROM @TABLE@ WHERE 1’<br />

$cfg[’DefaultQueryDatabase’]<br />

Type string<br />

Default value ’’<br />

Default queries that will be displayed in query boxes when user didn’t specify any. You can use standard 6.27<br />

What format strings can I use?.<br />

58 Chapter 4. Configuration


phpMyAdmin Documentation, Release 4.5.0-dev<br />

4.24 MySQL settings<br />

$cfg[’DefaultFunctions’]<br />

Type array<br />

Default value array(...)<br />

Functions selected by default when inserting/changing row, Functions are defined for meta types<br />

as (FUNC_NUMBER, FUNC_DATE, FUNC_CHAR, FUNC_SPATIAL, FUNC_UUID) and for<br />

first_timestamp, which is used for first timestamp column in table.<br />

4.25 Developer<br />

Warning: These settings might have huge effect on performance or security.<br />

$cfg[’DBG’]<br />

Type array<br />

Default value array(...)<br />

$cfg[’DBG’][’sql’]<br />

Type boolean<br />

Default value false<br />

Enable logging queries and execution times to be displayed in the console’s Debug SQL tab.<br />

$cfg[’DBG’][’demo’]<br />

Type boolean<br />

Default value false<br />

Enable to let server present itself as demo server. This is used for .<br />

4.24. MySQL settings 59


phpMyAdmin Documentation, Release 4.5.0-dev<br />

60 Chapter 4. Configuration


CHAPTER 5<br />

User Guide<br />

5.1 Transformations<br />

5.1.1 Introduction<br />

To enable transformations, you have to setup the column_info table and the proper directives. Please see the<br />

Configuration on how to do so.<br />

You can apply different transformations to the contents of each column. The transformation will take the content of<br />

each column and transform it with certain rules defined in the selected transformation.<br />

Say you have a column ‘filename’ which contains a filename. Normally you would see in phpMyAdmin only this<br />

filename. Using transformations you can transform that filename into a HTML link, so you can click inside of the<br />

phpMyAdmin structure on the column’s link and will see the file displayed in a new browser window. Using transformation<br />

options you can also specify strings to append/prepend to a string or the format you want the output stored<br />

in.<br />

For a general overview of all available transformations and their options, you can consult your //transformation_overview.php installation.<br />

For a tutorial on how to effectively use transformations, see our Link section on the official phpMyAdmin homepage.<br />

5.1.2 Usage<br />

Go to your tbl_structure.php page (i.e. reached through clicking on the ‘Structure’ link for a table). There click on<br />

“Change” (or change icon) and there you will see three new fields at the end of the line. They are called ‘MIME-type’,<br />

‘Browser transformation’ and ‘Transformation options’.<br />

• The field ‘MIME-type’ is a drop-down field. Select the MIME-type that corresponds to the column’s contents.<br />

Please note that transformations are inactive as long as no MIME-type is selected.<br />

• The field ‘Browser transformation’ is a drop-down field. You can choose from a hopefully growing amount<br />

of pre-defined transformations. See below for information on how to build your own transformation. There<br />

are global transformations and mimetype-bound transformations. Global transformations can be used for any<br />

mimetype. They will take the mimetype, if necessary, into regard. Mimetype-bound transformations usually<br />

only operate on a certain mimetype. There are transformations which operate on the main mimetype (like<br />

‘image’), which will most likely take the subtype into regard, and those who only operate on a specific subtype<br />

(like ‘image/jpeg’). You can use transformations on mimetypes for which the function was not defined for.<br />

There is no security check for you selected the right transformation, so take care of what the output will be like.<br />

• The field ‘Transformation options’ is a free-type textfield. You have to enter transform-function specific options<br />

here. Usually the transforms can operate with default options, but it is generally a good idea to look up the<br />

61


phpMyAdmin Documentation, Release 4.5.0-dev<br />

overview to see which options are necessary. Much like the ENUM/SET-Fields, you have to split up several<br />

options using the format ‘a’,’b’,’c’,...(NOTE THE MISSING BLANKS). This is because internally the options<br />

will be parsed as an array, leaving the first value the first element in the array, and so forth. If you want to specify<br />

a MIME character set you can define it in the transformation_options. You have to put that outside of the predefined<br />

options of the specific mime-transform, as the last value of the set. Use the format “’; charset=XXX”’.<br />

If you use a transform, for which you can specify 2 options and you want to append a character set, enter<br />

“‘first parameter’,’second parameter’,’charset=us-ascii”’. You can, however use the defaults for the parameters:<br />

“’‘,’‘,’charset =us-ascii”’.<br />

5.1.3 File structure<br />

All specific transformations for mimetypes are defined through class files in the directory ‘libraries/plugins/transformations/’.<br />

Each of them extends a certain transformation abstract class declared in<br />

libraries/plugins/transformations/abstract.<br />

They are stored in files to ease up customization and easy adding of new transformations.<br />

Because the user cannot enter own mimetypes, it is kept sure that transformations always work. It makes no sense to<br />

apply a transformation to a mimetype the transform-function doesn’t know to handle.<br />

There is a file called ‘transformations.lib.php‘ that provides some basic functions which can be included by any other<br />

transform function.<br />

The file name convention is [Mimetype]_[Subtype]_[Transformation Name].class.php, while the<br />

abtract class that it extends has the name [Transformation Name]TransformationsPlugin. All of the<br />

methods that have to be implemented by a transformations plug-in are:<br />

1. getMIMEType() and getMIMESubtype() in the main class;<br />

2. getName(), getInfo() and applyTransformation() in the abstract class it extends.<br />

The getMIMEType(), getMIMESubtype() and getName() methods return the name of the MIME type, MIME Subtype<br />

and transformation accordingly. getInfo() returns the transformation’s description and possible options it may receive<br />

and applyTransformation() is the method that does the actual work of the transformation plug-in.<br />

Please see the libraries/plugins/transformations/TEMPLATE and libraries/plugins/transformations/TEMPLATE_ABSTRACT<br />

files for adding your own transformation plug-in. You can also generate a<br />

new transformation plug-in (with or without the abstract transformation class),<br />

by using libraries/plugins/transformations/generator_plugin.sh or<br />

libraries/plugins/transformations/generator_main_class.sh.<br />

The applyTransformation() method always gets passed three variables:<br />

1. $buffer - Contains the text inside of the column. This is the text, you want to transform.<br />

2. $options - Contains any user-passed options to a transform function as an array.<br />

3. $meta - Contains an object with information about your column. The data is drawn from the output of the<br />

mysql_fetch_field() function. This means, all object properties described on the manual page are available in<br />

this variable and can be used to transform a column accordingly to unsigned/zerofill/not_null/... properties. The<br />

$meta->mimetype variable contains the original MIME-type of the column (i.e. ‘text/plain’, ‘image/jpeg’ etc.)<br />

5.2 User management<br />

User management is the process of controlling which users are allowed to connect to the MySQL server and what permissions<br />

they have on each database. phpMyAdmin does not handle user management, rather it passes the username<br />

and password on to MySQL, which then determines whether a user is permitted to perform a particular action. Within<br />

62 Chapter 5. User Guide


phpMyAdmin Documentation, Release 4.5.0-dev<br />

phpMyAdmin, administrators have full control over creating users, viewing and editing privileges for existing users,<br />

and removing users.<br />

Within phpMyAdmin, user management is controlled via the Users link from the main page. Users can be created,<br />

edited, and removed.<br />

5.2.1 Creating a new user<br />

To create a new user, click the Add a new user link near the bottom of the Users page (you must be a “superuser”,<br />

e.g., user “root”). Use the textboxes and drop-downs to configure the user to your particular needs. You can then<br />

select whether to create a database for that user and grant specific global privileges. Once you’ve created the user (by<br />

clicking Go), you can define that user’s permissions on a specific database (don’t grant global privileges in that case).<br />

In general, users do not need any global privileges (other than USAGE), only permissions for their specific database.<br />

5.2.2 Editing an existing user<br />

To edit an existing user, simply click the pencil icon to the right of that user in the Users page. You can then edit their<br />

global- and database-specific privileges, change their password, or even copy those privileges to a new user.<br />

5.2.3 Deleting a user<br />

From the Users page, check the checkbox for the user you wish to remove, select whether or not to also remove any<br />

databases of the same name (if they exist), and click Go.<br />

5.2.4 Assigning privileges to user for a specific database<br />

Users are assigned to databases by editing the user record (from the Users link on the home page) not from within the<br />

Users link under the table. If you are creating a user specifically for a given table you will have to create the user first<br />

(with no global privileges) and then go back and edit that user to add the table and privileges for the individual table.<br />

5.3 Other sources of information<br />

5.3.1 Printed Book<br />

The definitive guide to using phpMyAdmin is the book Mastering phpMyAdmin for Effective MySQL Management<br />

by Marc Delisle. You can get information on that book and other officially endorsed books at the phpMyAdmin site.<br />

5.3.2 Tutorials<br />

Third party tutorials and articles are listed on our wiki page.<br />

5.4 Import and export<br />

In addition to the standard Import and Export tab, you can also import an SQL file directly by dragging and dropping<br />

it from your local file manager to the phpMyAdmin interface in your web browser.<br />

5.3. Other sources of information 63


phpMyAdmin Documentation, Release 4.5.0-dev<br />

5.4.1 Open Document Spreadsheet<br />

When importing an ODS speadsheet, the spreadsheet must be named in a specific way in order to make the import as<br />

simple as possible.<br />

Table name<br />

During import, phpMyAdmin uses the sheet name as the table name; you should rename the sheet in your spreadsheet<br />

program in order to match your existing table name (or the table you wish to create, though this is less of a concern<br />

since you could quickly rename the new table from the Operations tab).<br />

Column names<br />

You should also make the first row of your spreadsheet a header with the names of the columns (this can be accomplished<br />

by inserting a new row at the top of your spreadsheet). When on the Import screen, select the checkbox for<br />

“The first line of the file contains the table column names;” this way your newly imported data will go to the proper<br />

columns.<br />

64 Chapter 5. User Guide


CHAPTER 6<br />

FAQ - Frequently Asked Questions<br />

Please have a look at our Link section on the official phpMyAdmin homepage for in-depth coverage of phpMyAdmin’s<br />

features and or interface.<br />

6.1 Server<br />

6.1.1 1.1 My server is crashing each time a specific action is required or phpMyAdmin<br />

sends a blank page or a page full of cryptic characters to my browser,<br />

what can I do?<br />

Try to set the $cfg[’OBGzip’] directive to false in your config.inc.php file and the<br />

zlib.output_compression directive to Off in your php configuration file.<br />

6.1.2 1.2 My Apache server crashes when using phpMyAdmin.<br />

You should first try the latest versions of Apache (and possibly MySQL). If your server keeps crashing, please ask for<br />

help in the various Apache support groups.<br />

See also:<br />

1.1 My server is crashing each time a specific action is required or phpMyAdmin sends a blank page or a page full of<br />

cryptic characters to my browser, what can I do?<br />

6.1.3 1.3 (withdrawn).<br />

6.1.4 1.4 Using phpMyAdmin on IIS, I’m displayed the error message: “The specified<br />

CGI application misbehaved by not returning a complete set of HTTP<br />

headers ...”.<br />

You just forgot to read the install.txt file from the PHP distribution. Have a look at the last message in this PHP bug<br />

report #12061 from the official PHP bug database.<br />

65


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.1.5 1.5 Using phpMyAdmin on IIS, I’m facing crashes and/or many error messages<br />

with the HTTP.<br />

This is a known problem with the PHP ISAPI filter: it’s not so stable. Please use instead the cookie authentication<br />

mode.<br />

6.1.6 1.6 I can’t use phpMyAdmin on PWS: nothing is displayed!<br />

This seems to be a PWS bug. Filippo Simoncini found a workaround (at this time there is no better fix): remove or comment<br />

the DOCTYPE declarations (2 lines) from the scripts libraries/Header.class.php and index.php.<br />

6.1.7 1.7 How can I GZip a dump or a CSV export? It does not seem to work.<br />

This feature is based on the gzencode() PHP function to be more independent of the platform (Unix/Windows,<br />

Safe Mode or not, and so on). So, you must have Zlib support (--with-zlib).<br />

6.1.8 1.8 I cannot insert a text file in a table, and I get an error about safe mode<br />

being in effect.<br />

Your uploaded file is saved by PHP in the “upload dir”, as defined in php.ini by the variable upload_tmp_dir<br />

(usually the system default is /tmp). We recommend the following setup for Apache servers running in safe mode, to<br />

enable uploads of files while being reasonably secure:<br />

• create a separate directory for uploads: mkdir /tmp/php<br />

• give ownership to the Apache server’s user.group: chown apache.apache /tmp/php<br />

• give proper permission: chmod 600 /tmp/php<br />

• put upload_tmp_dir = /tmp/php in php.ini<br />

• restart Apache<br />

6.1.9 1.9 (withdrawn).<br />

6.1.10 1.10 I’m having troubles when uploading files with phpMyAdmin running on<br />

a secure server. My browser is Internet Explorer and I’m using the Apache<br />

server.<br />

As suggested by “Rob M” in the phpWizard forum, add this line to your httpd.conf :<br />

SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown<br />

It seems to clear up many problems between Internet Explorer and SSL.<br />

6.1.11 1.11 I get an ‘open_basedir restriction’ while uploading a file from the query<br />

box.<br />

Since version 2.2.4, phpMyAdmin supports servers with open_basedir restrictions. However you need to create temporary<br />

directory and configure it as $cfg[’TempDir’]. The uploaded files will be moved there, and after execution<br />

of your SQL commands, removed.<br />

66 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.1.12 1.12 I have lost my MySQL root password, what can I do?<br />

The MySQL manual explains how to reset the permissions.<br />

6.1.13 1.13 (withdrawn).<br />

6.1.14 1.14 (withdrawn).<br />

6.1.15 1.15 I have problems with mysql.user column names.<br />

In previous MySQL versions, the User and Password‘‘columns were named ‘‘user and password.<br />

Please modify your column names to align with current standards.<br />

6.1.16 1.16 I cannot upload big dump files (memory, HTTP or timeout problems).<br />

Starting with version 2.7.0, the import engine has been re–written and these problems should not occur. If possible,<br />

upgrade your phpMyAdmin to the latest version to take advantage of the new import features.<br />

The first things to check (or ask your host provider to check) are the values of upload_max_filesize,<br />

memory_limit and post_max_size in the php.ini configuration file. All of these three settings limit the<br />

maximum size of data that can be submitted and handled by PHP. One user also said that post_max_size and<br />

memory_limit need to be larger than upload_max_filesize. There exist several workarounds if your upload<br />

is too big or your hosting provider is unwilling to change the settings:<br />

• Look at the $cfg[’UploadDir’] feature. This allows one to upload a file to the server via scp, ftp, or your<br />

favorite file transfer method. PhpMyAdmin is then able to import the files from the temporary directory. More<br />

information is available in the Configuration of this document.<br />

• Using a utility (such as BigDump) to split the files before uploading. We cannot support this or any third party<br />

applications, but are aware of users having success with it.<br />

• If you have shell (command line) access, use MySQL to import the files directly. You can do this by issuing the<br />

“source” command from within MySQL:<br />

source filename.sql;<br />

6.1.17 1.17 Which Database versions does phpMyAdmin support?<br />

For MySQL, versions 5.5 and newer are supported. For older MySQL versions, our Downloads page offers older<br />

phpMyAdmin versions (which may have become unsupported).<br />

For MariaDB, versions 5.5 and newer are supported.<br />

For Drizzle, versions 7.1 and newer are supported.<br />

6.1.18 1.17a I cannot connect to the MySQL server. It always returns the error message,<br />

“Client does not support authentication protocol requested by server;<br />

consider upgrading MySQL client”<br />

You tried to access MySQL with an old MySQL client library. The version of your MySQL client library can be<br />

checked in your phpinfo() output. In general, it should have at least the same minor version as your server - as<br />

mentioned in 1.17 Which Database versions does phpMyAdmin support?. This problem is generally caused by using<br />

MySQL version 4.1 or newer. MySQL changed the authentication hash and your PHP is trying to use the old method.<br />

6.1. Server 67


phpMyAdmin Documentation, Release 4.5.0-dev<br />

The proper solution is to use the mysqli extension with the proper client library to match your MySQL installation.<br />

More information (and several workarounds) are located in the MySQL Documentation.<br />

6.1.19 1.18 (withdrawn).<br />

6.1.20 1.19 I can’t run the “display relations” feature because the script seems not<br />

to know the font face I’m using!<br />

The TCPDF library we’re using for this feature requires some special files to use font faces. Please refers to the<br />

TCPDF manual to build these files.<br />

6.1.21 1.20 I receive an error about missing mysqli and mysql extensions.<br />

To connect to a MySQL server, PHP needs a set of MySQL functions called “MySQL extension”. This extension<br />

may be part of the PHP distribution (compiled-in), otherwise it needs to be loaded dynamically. Its name is probably<br />

mysqli.so or php_mysqli.dll. phpMyAdmin tried to load the extension but failed. Usually, the problem is solved by<br />

installing a software package called “PHP-MySQL” or something similar.<br />

There are currently two interfaces PHP provides as MySQL extensions - mysql and mysqli. The mysqli is tried<br />

first, because it’s the best one.<br />

6.1.22 1.21 I am running the CGI version of PHP under Unix, and I cannot log in<br />

using cookie auth.<br />

In php.ini, set mysql.max_links higher than 1.<br />

6.1.23 1.22 I don’t see the “Location of text file” field, so I cannot upload.<br />

This is most likely because in php.ini, your file_uploads parameter is not set to “on”.<br />

6.1.24 1.23 I’m running MySQL on a Win32 machine. Each time I create a new table<br />

the table and column names are changed to lowercase!<br />

This happens because the MySQL directive lower_case_table_names defaults to 1 (ON) in the Win32 version<br />

of MySQL. You can change this behavior by simply changing the directive to 0 (OFF): Just edit your my.ini file that<br />

should be located in your Windows directory and add the following line to the group [mysqld]:<br />

set-variable = lower_case_table_names=0<br />

Next, save the file and restart the MySQL service. You can always check the value of this directive using the query<br />

SHOW VARIABLES LIKE 'lower_case_table_names';<br />

6.1.25 1.24 (withdrawn).<br />

6.1.26 1.25 I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get<br />

problems, such as undefined variables when I run a SQL query.<br />

A tip from Jose Fandos: put a comment on the following two lines in httpd.conf, like this:<br />

68 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

# mod_gzip_item_include file \.php$<br />

# mod_gzip_item_include mime "application/x-httpd-php.*"<br />

as this version of mod_gzip on Apache (Windows) has problems handling PHP scripts. Of course you have to restart<br />

Apache.<br />

6.1.27 1.26 I just installed phpMyAdmin in my document root of IIS but I get the<br />

error “No input file specified” when trying to run phpMyAdmin.<br />

This is a permission problem. Right-click on the <strong>phpmyadmin</strong> folder and choose properties. Under the tab Security,<br />

click on “Add” and select the user “IUSR_machine” from the list. Now set his permissions and it should work.<br />

6.1.28 1.27 I get empty page when I want to view huge page (eg. db_structure.php<br />

with plenty of tables).<br />

This was caused by a PHP bug that occur when GZIP output buffering is enabled. If you turn off it (by<br />

$cfg[’OBGzip’] in config.inc.php), it should work. This bug will has been fixed in PHP 5.0.0.<br />

6.1.29 1.28 My MySQL server sometimes refuses queries and returns the message<br />

‘Errorcode: 13’. What does this mean?<br />

This can happen due to a MySQL bug when having database / table names with upper case characters although<br />

lower_case_table_names is set to 1. To fix this, turn off this directive, convert all database and table names to<br />

lower case and turn it on again. Alternatively, there’s a bug-fix available starting with MySQL 3.23.56 / 4.0.11-gamma.<br />

6.1.30 1.29 When I create a table or modify a column, I get an error and the columns<br />

are duplicated.<br />

It is possible to configure Apache in such a way that PHP has problems interpreting .php files.<br />

The problems occur when two different (and conflicting) set of directives are used:<br />

SetOutputFilter PHP<br />

SetInputFilter PHP<br />

and<br />

AddType application/x-httpd-php .php<br />

In the case we saw, one set of directives was in /etc/httpd/conf/httpd.conf, while the other set was in<br />

/etc/httpd/conf/addon-modules/php.conf. The recommended way is with AddType, so just comment<br />

out the first set of lines and restart Apache:<br />

#SetOutputFilter PHP<br />

#SetInputFilter PHP<br />

6.1.31 1.30 I get the error “navigation.php: Missing hash”.<br />

This problem is known to happen when the server is running Turck MMCache but upgrading MMCache to version<br />

2.3.21 solves the problem.<br />

6.1. Server 69


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.1.32 1.31 Does phpMyAdmin support PHP 5?<br />

Yes.<br />

Since release 4.5, phpMyAdmin supports only PHP 5.5 and newer. Since release 4.1 phpMyAdmin supports only PHP<br />

5.3 and newer. For PHP 5.2 you can use 4.0.x releases.<br />

6.1.33 1.32 Can I use HTTP authentication with IIS?<br />

Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI mode under IIS 5.1.<br />

1. In your php.ini file, set cgi.rfc2616_headers = 0<br />

2. In Web Site Properties -> File/Directory Security -> Anonymous Access dialog<br />

box, check the Anonymous access checkbox and uncheck any other checkboxes (i.e. uncheck Basic<br />

authentication, Integrated Windows authentication, and Digest if it’s enabled.) Click<br />

OK.<br />

3. In Custom Errors, select the range of 401;1 through 401;5 and click the Set to Default button.<br />

See also:<br />

RFC 2616<br />

6.1.34 1.33 (withdrawn).<br />

6.1.35 1.34 Can I access directly to database or table pages?<br />

Yes. Out of the box, you can use URL like http://server/phpMyAdmin/index.php?server=X&db=database&table=table&target=script.<br />

For server you use the server number which refers to the order of the server paragraph in config.inc.php.<br />

Table and script parts are optional. If you want http://server/phpMyAdmin/database[/table][/script] URL, you need<br />

to do some configuration. Following lines apply only for Apache web server. First make sure, that you have enabled<br />

some features within global configuration. You need Options FollowSymLinks and AllowOverride<br />

FileInfo enabled for directory where phpMyAdmin is installed and you need mod_rewrite to be enabled. Then<br />

you just need to create following .htaccess file in root folder of phpMyAdmin installation (don’t forget to change<br />

directory name inside of it):<br />

RewriteEngine On<br />

RewriteBase /path_to_phpMyAdmin<br />

RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]<br />

RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]<br />

RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]<br />

RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]<br />

6.1.36 1.35 Can I use HTTP authentication with Apache CGI?<br />

Yes. However you need to pass authentication variable to CGI using following rewrite rule:<br />

RewriteEngine On<br />

RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]<br />

6.1.37 1.36 I get an error “500 Internal Server Error”.<br />

There can be many explanations to this and a look at your server’s error log file might give a clue.<br />

70 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.1.38 1.37 I run phpMyAdmin on cluster of different machines and password encryption<br />

in cookie auth doesn’t work.<br />

If your cluster consist of different architectures, PHP code used for encryption/decryption won’t work correct. This<br />

is caused by use of pack/unpack functions in code. Only solution is to use mcrypt extension which works fine in this<br />

case.<br />

6.1.39 1.38 Can I use phpMyAdmin on a server on which Suhosin is enabled?<br />

Yes but the default configuration values of Suhosin are known to cause problems with some operations, for example<br />

editing a table with many columns and no primary key or with textual primary key.<br />

Suhosin configuration might lead to malfunction in some cases and it can not be fully avoided as phpMyAdmin is kind<br />

of application which needs to transfer big amounts of columns in single HTTP request, what is something what Suhosin<br />

tries to prevent. Generally all suhosin.request.*, suhosin.post.* and suhosin.get.* directives can<br />

have negative effect on phpMyAdmin usability. You can always find in your error logs which limit did cause dropping<br />

of variable, so you can diagnose the problem and adjust matching configuration variable.<br />

The default values for most Suhosin configuration options will work in most scenarios, however you might want to<br />

adjust at least following parameters:<br />

• suhosin.request.max_vars should be increased (eg. 2048)<br />

• suhosin.post.max_vars should be increased (eg. 2048)<br />

• suhosin.request.max_array_index_length should be increased (eg. 256)<br />

• suhosin.post.max_array_index_length should be increased (eg. 256)<br />

• suhosin.request.max_totalname_length should be increased (eg. 8192)<br />

• suhosin.post.max_totalname_length should be increased (eg. 8192)<br />

• suhosin.get.max_value_length should be increased (eg. 1024)<br />

• suhosin.sql.bailout_on_error needs to be disabled (the default)<br />

• suhosin.log.* should not include SQL, otherwise you get big slowdown<br />

You can also disable the warning using the $cfg[’SuhosinDisableWarning’].<br />

6.1.40 1.39 When I try to connect via https, I can log in, but then my connection is<br />

redirected back to http. What can cause this behavior?<br />

Be sure that you have enabled SSLOptions and StdEnvVars in your Apache configuration.<br />

See also:<br />

<br />

6.1.41 1.40 When accessing phpMyAdmin via an Apache reverse proxy, cookie login<br />

does not work.<br />

To be able to use cookie auth Apache must know that it has to rewrite the set-cookie headers. Example from the<br />

Apache 2.2 documentation:<br />

6.1. Server 71


phpMyAdmin Documentation, Release 4.5.0-dev<br />

ProxyPass /mirror/foo/ http://backend.example.com/<br />

ProxyPassReverse /mirror/foo/ http://backend.example.com/<br />

ProxyPassReverseCookieDomain backend.example.com public.example.com<br />

ProxyPassReverseCookiePath / /mirror/foo/<br />

Note: if the backend url looks like http://host/~user/<strong>phpmyadmin</strong>, the tilde (~) must be url encoded as %7E in the<br />

ProxyPassReverse* lines. This is not specific to <strong>phpmyadmin</strong>, it’s just the behavior of Apache.<br />

ProxyPass /mirror/foo/ http://backend.example.com/~user/<strong>phpmyadmin</strong><br />

ProxyPassReverse /mirror/foo/ http://backend.example.com/%7Euser/<strong>phpmyadmin</strong><br />

ProxyPassReverseCookiePath /%7Euser/<strong>phpmyadmin</strong> /mirror/foo<br />

See also:<br />

<br />

6.1.42 1.41 When I view a database and ask to see its privileges, I get an error about<br />

an unknown column.<br />

The MySQL server’s privilege tables are not up to date, you need to run the mysql_upgrade command on the<br />

server.<br />

6.1.43 1.42 How can I prevent robots from accessing phpMyAdmin?<br />

You can add various rules to .htaccess to filter access based on user agent field. This is quite easy to circumvent, but<br />

could prevent at least some robots accessing your installation.<br />

RewriteEngine on<br />

# Allow only GET and POST verbs<br />

RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ [NC,OR]<br />

# Ban Typical Vulnerability Scanners and others<br />

# Kick out Script Kiddies<br />

RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]<br />

RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|wkito|pikto|scan|acunetix).* [N<br />

RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab<br />

# Ban Search Engines, Crawlers to your administrative panel<br />

# No reasons to access from bots<br />

# Ultimately Better than the useless robots.txt<br />

# Did google respect robots.txt?<br />

# Try google: intitle:phpMyAdmin intext:"Welcome to phpMyAdmin *.*.*" intext:"Log in" -wiki -forum -f<br />

RewriteCond %{HTTP_USER_AGENT} ^.*(AdsBot-Google|ia_archiver|Scooter|Ask.Jeeves|Baiduspider|Exabot|FA<br />

RewriteRule .* - [F]<br />

6.1.44 1.43 Why can’t I display the structure of my table containing hundreds of<br />

columns?<br />

Because your PHP’s memory_limit is too low; adjust it in php.ini.<br />

72 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.2 Configuration<br />

6.2.1 2.1 The error message “Warning: Cannot add header information - headers<br />

already sent by ...” is displayed, what’s the problem?<br />

Edit your config.inc.php file and ensure there is nothing (I.E. no blank lines, no spaces, no characters...) neither<br />

before the tag at the end. We also got a report from a user under IIS,<br />

that used a zipped distribution kit: the file libraries/Config.class.php contained an end-of-line character<br />

(hex 0A) at the end; removing this character cleared his errors.<br />

6.2.2 2.2 phpMyAdmin can’t connect to MySQL. What’s wrong?<br />

Either there is an error with your PHP setup or your username/password is wrong. Try to make a small script which<br />

uses mysql_connect and see if it works. If it doesn’t, it may be you haven’t even compiled MySQL support into PHP.<br />

6.2.3 2.3 The error message “Warning: MySQL Connection Failed: Can’t connect to<br />

local MySQL server through socket ‘/tmp/mysql.sock’ (111) ...” is displayed.<br />

What can I do?<br />

For RedHat users, Harald Legner suggests this on the mailing list:<br />

On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In your php.ini you will find a line<br />

mysql.default_socket = /tmp/mysql.sock<br />

change it to<br />

mysql.default_socket = /var/lib/mysql/mysql.sock<br />

Then restart apache and it will work.<br />

Here is a fix suggested by Brad Ummer:<br />

• First, you need to determine what socket is being used by MySQL. To do this, telnet to your server and go to the<br />

MySQL bin directory. In this directory there should be a file named mysqladmin. Type ./mysqladmin<br />

variables, and this should give you a bunch of info about your MySQL server, including the socket<br />

(/tmp/mysql.sock, for example).<br />

• Then, you need to tell PHP to use this socket. To do this in phpMyAdmin, you need to complete the socket<br />

information in the config.inc.php. For example: $cfg[’Servers’][$i][’socket’] Please also<br />

make sure that the permissions of this file allow to be readable by your webserver (i.e. ‘0755’).<br />

Have also a look at the corresponding section of the MySQL documentation.<br />

6.2.4 2.4 Nothing is displayed by my browser when I try to run phpMyAdmin, what<br />

can I do?<br />

Try to set the $cfg[’OBGzip’] directive to false in the phpMyAdmin configuration file. It helps sometime.<br />

Also have a look at your PHP version number: if it contains “b” or “alpha” it means you’re running a testing version<br />

of PHP. That’s not a so good idea, please upgrade to a plain revision.<br />

6.2. Configuration 73


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.2.5 2.5 Each time I want to insert or change a row or drop a database or a table, an<br />

error 404 (page not found) is displayed or, with HTTP or cookie authentication,<br />

I’m asked to log in again. What’s wrong?<br />

Check the value you set for the $cfg[’PmaAbsoluteUri’] directive in the phpMyAdmin configuration file.<br />

6.2.6 2.6 I get an “Access denied for user: ‘root@localhost‘ (Using password:<br />

YES)”-error when trying to access a MySQL-Server on a host which is portforwarded<br />

for my localhost.<br />

When you are using a port on your localhost, which you redirect via port-forwarding to another host, MySQL is not<br />

resolving the localhost as expected. Erik Wasser explains: The solution is: if your host is “localhost” MySQL (the<br />

command line tool mysql as well) always tries to use the socket connection for speeding up things. And that doesn’t<br />

work in this configuration with port forwarding. If you enter “127.0.0.1” as hostname, everything is right and MySQL<br />

uses the TCP connection.<br />

6.2.7 2.7 Using and creating themes<br />

Themes are configured with $cfg[’ThemePath’], $cfg[’ThemeManager’] and<br />

$cfg[’ThemeDefault’]. Under $cfg[’ThemePath’], you should not delete the directory pmahomme<br />

or its underlying structure, because this is the system theme used by phpMyAdmin. pmahomme contains all<br />

images and styles, for backwards compatibility and for all themes that would not include images or css-files. If<br />

$cfg[’ThemeManager’] is enabled, you can select your favorite theme on the main page. Your selected theme<br />

will be stored in a cookie.<br />

To create a theme:<br />

• make a new subdirectory (for example “your_theme_name”) under $cfg[’ThemePath’] (by default<br />

themes)<br />

• copy the files and directories from pmahomme to “your_theme_name”<br />

• edit the css-files in “your_theme_name/css”<br />

• put your new images in “your_theme_name/img”<br />

• edit layout.inc.php in “your_theme_name”<br />

• edit info.inc.php in “your_theme_name” to contain your chosen theme name, that will be visible in user<br />

interface<br />

• make a new screenshot of your theme and save it under “your_theme_name/screen.png”<br />

In theme directory there is file info.inc.php which contains theme verbose name, theme generation and theme<br />

version. These versions and generations are enumerated from 1 and do not have any direct dependence on phpMyAdmin<br />

version. Themes within same generation should be backwards compatible - theme with version 2 should work in<br />

phpMyAdmin requiring version 1. Themes with different generation are incompatible.<br />

If you do not want to use your own symbols and buttons, remove the directory “img” in “your_theme_name”. php-<br />

MyAdmin will use the default icons and buttons (from the system-theme pmahomme).<br />

6.2.8 2.8 I get “Missing parameters” errors, what can I do?<br />

Here are a few points to check:<br />

74 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

• In config.inc.php, try to leave the $cfg[’PmaAbsoluteUri’] directive empty. See also 4.7 Authentication<br />

window is displayed more than once, why?.<br />

• Maybe you have a broken PHP installation or you need to upgrade your Zend Optimizer.<br />

.<br />

• If you are using Hardened PHP with the ini directive varfilter.max_request_variables set to the<br />

default (200) or another low value, you could get this error if your table has a high number of columns. Adjust<br />

this setting accordingly. (Thanks to Klaus Dorninger for the hint).<br />

• In the php.ini directive arg_separator.input, a value of ”;” will cause this error. Replace it with<br />

“&;”.<br />

• If you are using Hardened-PHP, you might want to increase request limits.<br />

• The directory specified in the php.ini directive session.save_path does not exist or is read-only.<br />

See<br />

6.2.9 2.9 Seeing an upload progress bar<br />

To be able to see a progress bar during your uploads, your server must have the APC extension, the uploadprogress<br />

one, or you must be running PHP 5.4.0 or higher. Moreover, the JSON extension has to be enabled in your PHP.<br />

If using APC, you must set apc.rfc1867 to on in your php.ini.<br />

If using PHP 5.4.0 or higher, you must set session.upload_progress.enabled to 1 in your php.ini.<br />

However, starting from phpMyAdmin version 4.0.4, session-based upload progress has been temporarily deactivated<br />

due to its problematic behavior.<br />

See also:<br />

RFC 1867<br />

6.3 Known limitations<br />

6.3.1 3.1 When using HTTP authentication, a user who logged out can not log in<br />

again in with the same nick.<br />

This is related to the authentication mechanism (protocol) used by phpMyAdmin. To bypass this problem: just close<br />

all the opened browser windows and then go back to phpMyAdmin. You should be able to log in again.<br />

6.3.2 3.2 When dumping a large table in compressed mode, I get a memory limit<br />

error or a time limit error.<br />

Compressed dumps are built in memory and because of this are limited to php’s memory limit. For GZip/BZip2<br />

exports this can be overcome since 2.5.4 using $cfg[’CompressOnFly’] (enabled by default). Zip exports can<br />

not be handled this way, so if you need Zip files for larger dump, you have to use another way.<br />

6.3.3 3.3 With InnoDB tables, I lose foreign key relationships when I rename a table<br />

or a column.<br />

This is an InnoDB bug, see .<br />

6.3. Known limitations 75


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.3.4 3.4 I am unable to import dumps I created with the mysqldump tool bundled<br />

with the MySQL server distribution.<br />

The problem is that older versions of mysqldump created invalid comments like this:<br />

-- MySQL dump 8.22<br />

--<br />

-- Host: localhost Database: database<br />

---------------------------------------------------------<br />

-- Server version 3.23.54<br />

The invalid part of the code is the horizontal line made of dashes that appears once in every<br />

dump created with mysqldump. If you want to run your dump you have to turn it into valid<br />

MySQL. This means, you have to add a whitespace after the first two dashes of the line or<br />

add a # before it: -- ------------------------------------------------------- or<br />

#---------------------------------------------------------<br />

6.3.5 3.5 When using nested folders, multiple hierarchies are displayed in a wrong<br />

manner.<br />

Please note that you should not use the separating string multiple times without any characters between them, or at the<br />

beginning/end of your table name. If you have to, think about using another TableSeparator or disabling that feature.<br />

See also:<br />

$cfg[’NavigationTreeTableSeparator’]<br />

6.3.6 3.6 (withdrawn).<br />

6.3.7 3.7 I have table with many (100+) columns and when I try to browse table I get<br />

series of errors like “Warning: unable to parse url”. How can this be fixed?<br />

Your table neither have a primary key nor an unique one, so we must use a long expression to identify this row. This<br />

causes problems to parse_url function. The workaround is to create a primary or unique key.<br />

6.3.8 3.8 I cannot use (clickable) HTML-forms in columns where I put a MIME-<br />

Transformation onto!<br />

Due to a surrounding form-container (for multi-row delete checkboxes), no nested forms can be put inside the table<br />

where phpMyAdmin displays the results. You can, however, use any form inside of a table if keep the parent formcontainer<br />

with the target to tbl_row_delete.php and just put your own input-elements inside. If you use a custom submit<br />

input field, the form will submit itself to the displaying page again, where you can validate the $HTTP_POST_VARS<br />

in a transformation. For a tutorial on how to effectively use transformations, see our Link section on the official<br />

phpMyAdmin-homepage.<br />

6.3.9 3.9 I get error messages when using “–sql_mode=ANSI” for the MySQL<br />

server.<br />

When MySQL is running in ANSI-compatibility mode, there are some major differences in how SQL is structured (see<br />

). Most important of all, the quote-character (”) is interpreted as<br />

an identifier quote character and not as a string quote character, which makes many internal phpMyAdmin operations<br />

76 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

into invalid SQL statements. There is no workaround to this behaviour. News to this item will be posted in Bug report<br />

#1013.<br />

6.3.10 3.10 Homonyms and no primary key: When the results of a SELECT display<br />

more that one column with the same value (for example SELECT lastname<br />

from employees where firstname like ’A%’ and two “Smith” values<br />

are displayed), if I click Edit I cannot be sure that I am editing the intended<br />

row.<br />

Please make sure that your table has a primary key, so that phpMyAdmin can use it for the Edit and Delete links.<br />

6.3.11 3.11 The number of rows for InnoDB tables is not correct.<br />

phpMyAdmin uses a quick method to get the row count, and this method only returns an approximate count in the<br />

case of InnoDB tables. See $cfg[’MaxExactCount’] for a way to modify those results, but this could have<br />

a serious impact on performance. However, one can easily replace the approximate row count with exact count by<br />

simply clicking on the approximate count. This can also be done for all tables at once by clicking on the rows sum<br />

displayed at the bottom.<br />

6.3.12 3.12 (withdrawn).<br />

6.3.13 3.13 I get an error when entering USE followed by a db name containing an<br />

hyphen.<br />

The tests I have made with MySQL 5.1.49 shows that the API does not accept this syntax for the USE command.<br />

6.3.14 3.14 I am not able to browse a table when I don’t have the right to SELECT<br />

one of the columns.<br />

This has been a known limitation of phpMyAdmin since the beginning and it’s not likely to be solved in the future.<br />

6.3.15 3.15 (withdrawn).<br />

6.3.16 3.16 (withdrawn).<br />

6.3.17 3.17 (withdrawn).<br />

6.3.18 3.18 When I import a CSV file that contains multiple tables, they are lumped<br />

together into a single table.<br />

There is no reliable way to differentiate tables in CSV format. For the time being, you will have to break apart CSV<br />

files containing multiple tables.<br />

6.3. Known limitations 77


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.3.19 3.19 When I import a file and have phpMyAdmin determine the appropriate<br />

data structure it only uses int, decimal, and varchar types.<br />

Currently, the import type-detection system can only assign these MySQL types to columns. In future, more will likely<br />

be added but for the time being you will have to edit the structure to your liking post-import. Also, you should note the<br />

fact that phpMyAdmin will use the size of the largest item in any given column as the column size for the appropriate<br />

type. If you know you will be adding larger items to that column then you should manually adjust the column sizes<br />

accordingly. This is done for the sake of efficiency.<br />

6.3.20 3.20 After upgrading, some bookmarks are gone or their content cannot be<br />

shown.<br />

At some point, the character set used to store bookmark content has changed. It’s better to recreate your bookmark<br />

from the newer phpMyAdmin version.<br />

6.4 ISPs, multi-user installations<br />

6.4.1 4.1 I’m an ISP. Can I setup one central copy of phpMyAdmin or do I need to<br />

install it for each customer?<br />

Since version 2.0.3, you can setup a central copy of phpMyAdmin for all your users. The development of this feature<br />

was kindly sponsored by NetCologne GmbH. This requires a properly setup MySQL user management and phpMyAdmin<br />

HTTP or cookie authentication.<br />

See also:<br />

Using authentication modes<br />

6.4.2 4.2 What’s the preferred way of making phpMyAdmin secure against evil access?<br />

This depends on your system. If you’re running a server which cannot be accessed by other people, it’s sufficient to<br />

use the directory protection bundled with your webserver (with Apache you can use .htaccess files, for example). If<br />

other people have telnet access to your server, you should use phpMyAdmin’s HTTP or cookie authentication features.<br />

Suggestions:<br />

• Your config.inc.php file should be chmod 660.<br />

• All your phpMyAdmin files should be chown -R phpmy.apache, where phpmy is a user whose password is only<br />

known to you, and apache is the group under which Apache runs.<br />

• Follow security recommendations for PHP and your webserver.<br />

6.4.3 4.3 I get errors about not being able to include a file in /lang or in /libraries.<br />

Check php.ini, or ask your sysadmin to check it. The include_path must contain ”.” somewhere in it, and<br />

open_basedir, if used, must contain ”.” and ”./lang” to allow normal operation of phpMyAdmin.<br />

78 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.4.4 4.4 phpMyAdmin always gives “Access denied” when using HTTP authentication.<br />

This could happen for several reasons:<br />

• $cfg[’Servers’][$i][’controluser’] and/or $cfg[’Servers’][$i][’controlpass’]<br />

are wrong.<br />

• The username/password you specify in the login dialog are invalid.<br />

• You have already setup a security mechanism for the phpMyAdmin- directory, eg. a .htaccess file. This would<br />

interfere with phpMyAdmin’s authentication, so remove it.<br />

6.4.5 4.5 Is it possible to let users create their own databases?<br />

Starting with 2.2.5, in the user management page, you can enter a wildcard database name for a user (for example<br />

“joe%”), and put the privileges you want. For example, adding SELECT, INSERT, UPDATE, DELETE,<br />

CREATE, DROP, INDEX, ALTER would let a user create/manage his/her database(s).<br />

6.4.6 4.6 How can I use the Host-based authentication additions?<br />

If you have existing rules from an old .htaccess file, you can take them and add a username between the<br />

’deny’/’allow’ and ’from’ strings. Using the username wildcard of ’%’ would be a major benefit<br />

here if your installation is suited to using it. Then you can just add those updated lines into the<br />

$cfg[’Servers’][$i][’AllowDeny’][’rules’] array.<br />

If you want a pre-made sample, you can try this fragment. It stops the ‘root’ user from logging in from any networks<br />

other than the private network IP blocks.<br />

//block root from logging in except from the private networks<br />

$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';<br />

$cfg['Servers'][$i]['AllowDeny']['rules'] = array(<br />

'deny root from all',<br />

'allow root from localhost',<br />

'allow root from 10.0.0.0/8',<br />

'allow root from 192.168.0.0/16',<br />

'allow root from 172.16.0.0/12',<br />

);<br />

6.4.7 4.7 Authentication window is displayed more than once, why?<br />

This happens if you are using a URL to start phpMyAdmin which is different than the one set in your<br />

$cfg[’PmaAbsoluteUri’]. For example, a missing “www”, or entering with an IP address while a domain<br />

name is defined in the config file.<br />

6.4.8 4.8 Which parameters can I use in the URL that starts phpMyAdmin?<br />

When starting phpMyAdmin, you can use the db, pma_username, pma_password and server parameters.<br />

This last one can contain either the numeric host index (from $i of the configuration file) or one of the host names<br />

present in the configuration file. Using pma_username and pma_password has been tested along with the usage<br />

of ‘cookie’ auth_type.<br />

6.4. ISPs, multi-user installations 79


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.5 Browsers or client OS<br />

6.5.1 5.1 I get an out of memory error, and my controls are non-functional, when<br />

trying to create a table with more than 14 columns.<br />

We could reproduce this problem only under Win98/98SE. Testing under WinNT4 or Win2K, we could easily create<br />

more than 60 columns. A workaround is to create a smaller number of columns, then come back to your table properties<br />

and add the other columns.<br />

6.5.2 5.2 With Xitami 2.5b4, phpMyAdmin won’t process form fields.<br />

This is not a phpMyAdmin problem but a Xitami known bug: you’ll face it with each script/website that use forms.<br />

Upgrade or downgrade your Xitami server.<br />

6.5.3 5.3 I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).<br />

With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that the proposed file name for the dump is<br />

always ‘tbl_dump.php’. Bzip2 dumps don’t seem to work. With Konqueror 2.2.1: plain dumps work; zip dumps are<br />

placed into the user’s temporary directory, so they must be moved before closing Konqueror, or else they disappear.<br />

GZip dumps give an error message. Testing needs to be done for Konqueror 2.2.2.<br />

6.5.4 5.4 I can’t use the cookie authentication mode because Internet Explorer<br />

never stores the cookies.<br />

MS Internet Explorer seems to be really buggy about cookies, at least till version 6.<br />

6.5.5 5.5 In Internet Explorer 5.0, I get JavaScript errors when browsing my rows.<br />

Upgrade to at least Internet Explorer 5.5 SP2.<br />

6.5.6 5.6 In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like “Page not found”)<br />

when trying to modify a row in a table with many columns, or with a text<br />

column.<br />

Your table neither have a primary key nor an unique one, so we must use a long URL to identify this row. There is a<br />

limit on the length of the URL in those browsers, and this not happen in Netscape, for example. The workaround is to<br />

create a primary or unique key, or use another browser.<br />

6.5.7 5.7 I refresh (reload) my browser, and come back to the welcome page.<br />

Some browsers support right-clicking into the frame you want to refresh, just do this in the right frame.<br />

6.5.8 5.8 With Mozilla 0.9.7 I have problems sending a query modified in the query<br />

box.<br />

Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future Mozilla versions.<br />

80 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.5.9 5.9 With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can’t type a whitespace<br />

in the SQL-Query edit area: the page scrolls down.<br />

This is a Mozilla bug (see bug #26882 at BugZilla).<br />

6.5.10 5.10 With Netscape 4.75 I get empty rows between each row of data in a CSV<br />

exported file.<br />

This is a known Netscape 4.75 bug: it adds some line feeds when exporting data in octet-stream mode. Since we can’t<br />

detect the specific Netscape version, we cannot workaround this bug.<br />

6.5.11 5.11 Extended-ASCII characters like German umlauts are displayed wrong.<br />

Please ensure that you have set your browser’s character set to the one of the language file you have selected on<br />

phpMyAdmin’s start page. Alternatively, you can try the auto detection mode that is supported by the recent versions<br />

of the most browsers.<br />

6.5.12 5.12 Mac OS X Safari browser changes special characters to ”?”.<br />

This issue has been reported by a Mac OS X user, who adds that Chimera, Netscape and Mozilla do not have this<br />

problem.<br />

6.5.13 5.13 With Internet Explorer 5.5 or 6, and HTTP authentication type, I cannot<br />

manage two servers: I log in to the first one, then the other one, but if I<br />

switch back to the first, I have to log in on each operation.<br />

This is a bug in Internet Explorer, other browsers do not behave this way.<br />

6.5.14 5.14 Using Opera6, I can manage to get to the authentication, but nothing<br />

happens after that, only a blank screen.<br />

Please upgrade to Opera7 at least.<br />

6.5.15 5.15 I have display problems with Safari.<br />

Please upgrade to at least version 1.2.3.<br />

6.5.16 5.16 With Internet Explorer, I get “Access is denied” Javascript errors. Or I<br />

cannot make phpMyAdmin work under Windows.<br />

Please check the following points:<br />

• Maybe you have defined your $cfg[’PmaAbsoluteUri’] setting in config.inc.php to an IP address<br />

and you are starting phpMyAdmin with a URL containing a domain name, or the reverse situation.<br />

• Security settings in IE and/or Microsoft Security Center are too high, thus blocking scripts execution.<br />

• The Windows Firewall is blocking Apache and MySQL. You must allow HTTP ports (80 or 443) and MySQL<br />

port (usually 3306) in the “in” and “out” directions.<br />

6.5. Browsers or client OS 81


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.5.17 5.17 With Firefox, I cannot delete rows of data or drop a database.<br />

Many users have confirmed that the Tabbrowser Extensions plugin they installed in their Firefox is causing the problem.<br />

6.5.18 5.18 With Konqueror 4.2.x an invalid LIMIT clause is generated when I<br />

browse a table.<br />

This happens only when both of these conditions are met: using the http authentication mode and<br />

register_globals being set to On on the server. It seems to be a browser-specific problem; meanwhile use<br />

the cookie authentication mode.<br />

6.5.19 5.19 I get JavaScript errors in my browser.<br />

Issues have been reported with some combinations of browser extensions. To troubleshoot, disable all extensions then<br />

clear your browser cache to see if the problem goes away.<br />

6.6 Using phpMyAdmin<br />

6.6.1 6.1 I can’t insert new rows into a table / I can’t create a table - MySQL brings<br />

up a SQL error.<br />

Examine the SQL error with care. Often the problem is caused by specifying a wrong column-type. Common errors<br />

include:<br />

• Using VARCHAR without a size argument<br />

• Using TEXT or BLOB with a size argument<br />

Also, look at the syntax chapter in the MySQL manual to confirm that your syntax is correct.<br />

6.6.2 6.2 When I create a table, I set an index for two columns and phpMyAdmin<br />

generates only one index with those two columns.<br />

This is the way to create a multi-columns index. If you want two indexes, create the first one when creating the table,<br />

save, then display the table properties and click the Index link to create the other index.<br />

6.6.3 6.3 How can I insert a null value into my table?<br />

Since version 2.2.3, you have a checkbox for each column that can be null. Before 2.2.3, you had to enter “null”,<br />

without the quotes, as the column’s value. Since version 2.5.5, you have to use the checkbox to get a real NULL value,<br />

so if you enter “NULL” this means you want a literal NULL in the column, and not a NULL value (this works in<br />

PHP4).<br />

82 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.6.4 6.4 How can I backup my database or table?<br />

Click on a database or table name in the navigation panel, the properties will be displayed. Then on the menu, click<br />

“Export”, you can dump the structure, the data, or both. This will generate standard SQL statements that can be used<br />

to recreate your database/table. You will need to choose “Save as file”, so that phpMyAdmin can transmit the resulting<br />

dump to your station. Depending on your PHP configuration, you will see options to compress the dump. See also the<br />

$cfg[’ExecTimeLimit’] configuration variable. For additional help on this subject, look for the word “dump”<br />

in this document.<br />

6.6.5 6.5 How can I restore (upload) my database or table using a dump? How can<br />

I run a ”.sql” file?<br />

Click on a database name in the navigation panel, the properties will be displayed. Select “Import” from the list of<br />

tabs in the right–hand frame (or “SQL” if your phpMyAdmin version is previous to 2.7.0). In the “Location of the text<br />

file” section, type in the path to your dump filename, or use the Browse button. Then click Go. With version 2.7.0, the<br />

import engine has been re–written, if possible it is suggested that you upgrade to take advantage of the new features.<br />

For additional help on this subject, look for the word “upload” in this document.<br />

6.6.6 6.6 How can I use the relation table in Query-by-example?<br />

Here is an example with the tables persons, towns and countries, all located in the database “mydb”. If you don’t have<br />

a pma__relation table, create it as explained in the configuration section. Then create the example tables:<br />

CREATE TABLE REL_countries (<br />

country_code char(1) NOT NULL default '',<br />

description varchar(10) NOT NULL default '',<br />

PRIMARY KEY (country_code)<br />

) TYPE=MyISAM;<br />

INSERT INTO REL_countries VALUES ('C', 'Canada');<br />

CREATE TABLE REL_persons (<br />

id tinyint(4) NOT NULL auto_increment,<br />

person_name varchar(32) NOT NULL default '',<br />

town_code varchar(5) default '0',<br />

country_code char(1) NOT NULL default '',<br />

PRIMARY KEY (id)<br />

) TYPE=MyISAM;<br />

INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');<br />

INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');<br />

CREATE TABLE REL_towns (<br />

town_code varchar(5) NOT NULL default '0',<br />

description varchar(30) NOT NULL default '',<br />

PRIMARY KEY (town_code)<br />

) TYPE=MyISAM;<br />

INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');<br />

INSERT INTO REL_towns VALUES ('M', 'Montréal');<br />

To setup appropriate links and display information:<br />

• on table “REL_persons” click Structure, then Relation view<br />

6.6. Using phpMyAdmin 83


phpMyAdmin Documentation, Release 4.5.0-dev<br />

• for “town_code”, choose from dropdowns, “mydb”, “REL_towns”, “code” for foreign database, table and column<br />

respectively<br />

• for “country_code”, choose from dropdowns, “mydb”, “REL_countries”, “country_code” for foreign database,<br />

table and column respectively<br />

• on table “REL_towns” click Structure, then Relation view<br />

• in “Choose column to display”, choose “description”<br />

• repeat the two previous steps for table “REL_countries”<br />

Then test like this:<br />

• Click on your db name in the navigation panel<br />

• Choose “Query”<br />

• Use tables: persons, towns, countries<br />

• Click “Update query”<br />

• In the columns row, choose persons.person_name and click the “Show” tickbox<br />

• Do the same for towns.description and countries.descriptions in the other 2 columns<br />

• Click “Update query” and you will see in the query box that the correct joins have been generated<br />

• Click “Submit query”<br />

6.6.7 6.7 How can I use the “display column” feature?<br />

Starting from the previous example, create the pma__table_info as explained in the configuration section, then<br />

browse your persons table, and move the mouse over a town code or country code. See also 6.21 In edit/insert mode,<br />

how can I see a list of possible values for a column, based on some foreign table? for an additional feature that<br />

“display column” enables: drop-down list of possible values.<br />

6.6.8 6.8 How can I produce a PDF schema of my database?<br />

First the configuration variables “relation”, “table_coords” and “pdf_pages” have to be filled in. Then you need to<br />

think about your schema layout. Which tables will go on which pages?<br />

• Select your database in the navigation panel.<br />

• Choose “Operations” in the navigation bar at the top.<br />

• Choose “Edit PDF Pages” near the bottom of the page.<br />

• Enter a name for the first PDF page and click Go. If you like, you can use the “automatic layout,” which will<br />

put all your linked tables onto the new page.<br />

• Select the name of the new page (making sure the Edit radio button is selected) and click Go.<br />

• Select a table from the list, enter its coordinates and click Save. Coordinates are relative; your diagram will be<br />

automatically scaled to fit the page. When initially placing tables on the page, just pick any coordinates – say,<br />

50x50. After clicking Save, you can then use the 6.28 How can I easily edit relational schema for export? to<br />

position the element correctly.<br />

• When you’d like to look at your PDF, first be sure to click the Save button beneath the list of tables and<br />

coordinates, to save any changes you made there. Then scroll all the way down, select the PDF options you<br />

want, and click Go.<br />

84 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

• Internet Explorer for Windows may suggest an incorrect filename when you try to save a generated PDF. When<br />

saving a generated PDF, be sure that the filename ends in ”.pdf”, for example “schema.pdf”. Browsers on other<br />

operating systems, and other browsers on Windows, do not have this problem.<br />

6.6.9 6.9 phpMyAdmin is changing the type of one of my columns!<br />

No, it’s MySQL that is doing silent column type changing.<br />

6.6.10 6.10 When creating a privilege, what happens with underscores in the<br />

database name?<br />

If you do not put a backslash before the underscore, this is a wildcard grant, and the underscore means “any character”.<br />

So, if the database name is “john_db”, the user would get rights to john1db, john2db ... If you put a backslash before<br />

the underscore, it means that the database name will have a real underscore.<br />

6.6.11 6.11 What is the curious symbol ø in the statistics pages?<br />

It means “average”.<br />

6.6.12 6.12 I want to understand some Export options.<br />

Structure:<br />

Data:<br />

• “Add DROP TABLE” will add a line telling MySQL to drop the table, if it already exists during the import. It<br />

does NOT drop the table after your export, it only affects the import file.<br />

• “If Not Exists” will only create the table if it doesn’t exist. Otherwise, you may get an error if the table name<br />

exists but has a different structure.<br />

• “Add AUTO_INCREMENT value” ensures that AUTO_INCREMENT value (if any) will be included in backup.<br />

• “Enclose table and column names with backquotes” ensures that column and table names formed with special<br />

characters are protected.<br />

• “Add into comments” includes column comments, relations, and MIME types set in the pmadb in the dump as<br />

SQL comments (/* xxx */).<br />

• “Complete inserts” adds the column names on every INSERT command, for better documentation (but resulting<br />

file is bigger).<br />

• “Extended inserts” provides a shorter dump file by using only once the INSERT verb and the table name.<br />

• “Delayed inserts” are best explained in the MySQL manual - INSERT DELAYED Syntax.<br />

• “Ignore inserts” treats errors as a warning instead. Again, more info is provided in the MySQL manual - INSERT<br />

Syntax, but basically with this selected, invalid values are adjusted and inserted rather than causing the entire<br />

statement to fail.<br />

6.6.13 6.13 I would like to create a database with a dot in its name.<br />

This is a bad idea, because in MySQL the syntax “database.table” is the normal way to reference a database and table<br />

name. Worse, MySQL will usually let you create a database with a dot, but then you cannot work with it, nor delete it.<br />

6.6. Using phpMyAdmin 85


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.6.14 6.14 (withdrawn).<br />

6.6.15 6.15 I want to add a BLOB column and put an index on it, but MySQL says<br />

“BLOB column ‘...’ used in key specification without a key length”.<br />

The right way to do this, is to create the column without any indexes, then display the table structure and use the<br />

“Create an index” dialog. On this page, you will be able to choose your BLOB column, and set a size to the index,<br />

which is the condition to create an index on a BLOB column.<br />

6.6.16 6.16 How can I simply move in page with plenty editing fields?<br />

You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most pages with many editing fields (table<br />

structure changes, row editing, etc.).<br />

6.6.17 6.17 Transformations: I can’t enter my own mimetype! WTF is this feature<br />

then useful for?<br />

Slow down :). Defining mimetypes is of no use, if you can’t put transformations on them. Otherwise you could<br />

just put a comment on the column. Because entering your own mimetype will cause serious syntax checking issues<br />

and validation, this introduces a high-risk false- user-input situation. Instead you have to initialize mimetypes using<br />

functions or empty mimetype definitions.<br />

Plus, you have a whole overview of available mimetypes. Who knows all those mimetypes by heart so he/she can<br />

enter it at will?<br />

6.6.18 6.18 Bookmarks: Where can I store bookmarks? Why can’t I see any bookmarks<br />

below the query box? What are these variables for?<br />

Any query you have executed can be stored as a bookmark on the page where the results are displayed. You will find a<br />

button labeled ‘Bookmark this query’ just at the end of the page. As soon as you have stored a bookmark, it is related<br />

to the database you run the query on. You can now access a bookmark dropdown on each page, the query box appears<br />

on for that database.<br />

You can also have, inside the query, placeholders for variables. This is done by inserting into the query SQL comments<br />

between /* and */. Inside the comments, the special strings [VARIABLE{variable-number}] is used. Be<br />

aware that the whole query minus the SQL comments must be valid by itself, otherwise you won’t be able to store it<br />

as a bookmark.<br />

When you execute the bookmark, everything typed into the Variables input boxes on the query box page will replace<br />

the strings /*[VARIABLE{variable-number}]*/ in your stored query.<br />

Also remember, that everything else inside the /*[VARIABLE{variable-number}]*/ string for your query<br />

will remain the way it is, but will be stripped of the /**/ chars. So you can use:<br />

/*, [VARIABLE1] AS myname */<br />

which will be expanded to<br />

, VARIABLE1 as myname<br />

in your query, where VARIABLE1 is the string you entered in the Variable 1 input box.<br />

A more complex example. Say you have stored this query:<br />

86 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE1]%' */<br />

Say, you now enter “phpMyAdmin” as the variable for the stored query, the full query will be:<br />

SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'<br />

NOTE THE ABSENCE OF SPACES inside the /**/ construct. Any spaces inserted there will be later also inserted<br />

as spaces in your query and may lead to unexpected results especially when using the variable expansion inside of a<br />

“LIKE ‘”’ expression.<br />

6.6.19 6.19 How can I create simple LATEX document to include exported table?<br />

You can simply include table in your LATEX documents, minimal sample document should look like following one<br />

(assuming you have table exported in file table.tex):<br />

\documentclass{article} % or any class you want<br />

\usepackage{longtable} % for displaying table<br />

\begin{document} % start of document<br />

\include{table}<br />

% including exported table<br />

\end{document}<br />

% end of document<br />

6.6.20 6.20 I see a lot of databases which are not mine, and cannot access them.<br />

You have one of these global privileges: CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES.<br />

Those privileges also enable users to see all the database names. So if your users do not need those privileges, you can<br />

remove them and their databases list will shorten.<br />

See also:<br />

<br />

6.6.21 6.21 In edit/insert mode, how can I see a list of possible values for a column,<br />

based on some foreign table?<br />

You have to setup appropriate links between the tables, and also setup the “display column” in the foreign table.<br />

See 6.6 How can I use the relation table in Query-by-example? for an example. Then, if there are 100 values or<br />

less in the foreign table, a drop-down list of values will be available. You will see two lists of values, the first list<br />

containing the key and the display column, the second list containing the display column and the key. The reason<br />

for this is to be able to type the first letter of either the key or the display column. For 100 values or more, a distinct<br />

window will appear, to browse foreign key values and choose one. To change the default limit of 100, see<br />

$cfg[’ForeignKeyMaxLimit’].<br />

6.6.22 6.22 Bookmarks: Can I execute a default bookmark automatically when entering<br />

Browse mode for a table?<br />

Yes. If a bookmark has the same label as a table name and it’s not a public bookmark, it will be executed.<br />

6.6.23 6.23 Export: I heard phpMyAdmin can export Microsoft Excel files?<br />

You can use CSV for Microsoft Excel, which works out of the box.<br />

6.6. Using phpMyAdmin 87


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Changed in version 3.4.5: Since phpMyAdmin 3.4.5 support for direct export to Microsoft Excel version 97 and newer<br />

was dropped.<br />

6.6.24 6.24 Now that phpMyAdmin supports native MySQL 4.1.x column comments,<br />

what happens to my column comments stored in pmadb?<br />

Automatic migration of a table’s pmadb-style column comments to the native ones is done whenever you enter Structure<br />

page for this table.<br />

6.6.25 6.25 (withdrawn).<br />

6.6.26 6.26 How can I select a range of rows?<br />

Click the first row of the range, hold the shift key and click the last row of the range. This works everywhere you see<br />

rows, for example in Browse mode or on the Structure page.<br />

6.6.27 6.27 What format strings can I use?<br />

In all places where phpMyAdmin accepts format strings, you can use @VARIABLE@ expansion and strftime format<br />

strings. The expanded variables depend on a context (for example, if you haven’t chosen a table, you can not get the<br />

table name), but the following variables can be used:<br />

@HTTP_HOST@ HTTP host that runs phpMyAdmin<br />

@SERVER@ MySQL server name<br />

@VERBOSE@ Verbose MySQL server name as defined in $cfg[’Servers’][$i][’verbose’]<br />

@VSERVER@ Verbose MySQL server name if set, otherwise normal<br />

@DATABASE@ Currently opened database<br />

@TABLE@ Currently opened table<br />

@COLUMNS@ Columns of the currently opened table<br />

@PHPMYADMIN@ phpMyAdmin with version<br />

6.6.28 6.28 How can I easily edit relational schema for export?<br />

By clicking on the button ‘toggle scratchboard’ on the page where you edit x/y coordinates of those elements you can<br />

activate a scratchboard where all your elements are placed. By clicking on an element, you can move them around<br />

in the pre-defined area and the x/y coordinates will get updated dynamically. Likewise, when entering a new position<br />

directly into the input field, the new position in the scratchboard changes after your cursor leaves the input field.<br />

You have to click on the ‘OK’-button below the tables to save the new positions. If you want to place a new element,<br />

first add it to the table of elements and then you can drag the new element around.<br />

By changing the paper size and the orientation you can change the size of the scratchboard as well. You can do so by<br />

just changing the dropdown field below, and the scratchboard will resize automatically, without interfering with the<br />

current placement of the elements.<br />

If ever an element gets out of range you can either enlarge the paper size or click on the ‘reset’ button to place all<br />

elements below each other.<br />

88 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.6.29 6.29 Why can’t I get a chart from my query result table?<br />

Not every table can be put to the chart. Only tables with one, two or three columns can be visualised as a chart.<br />

Moreover the table must be in a special format for chart script to understand it. Currently supported formats can be<br />

found in the wiki.<br />

6.6.30 6.30 Import: How can I import ESRI Shapefiles?<br />

An ESRI Shapefile is actually a set of several files, where .shp file contains geometry data and .dbf file contains data<br />

related to those geometry data. To read data from .dbf file you need to have PHP compiled with the dBase extension<br />

(–enable-dbase). Otherwise only geometry data will be imported.<br />

To upload these set of files you can use either of the following methods:<br />

Configure upload directory with $cfg[’UploadDir’], upload both .shp and .dbf files with the same filename and<br />

chose the .shp file from the import page.<br />

Create a Zip archive with .shp and .dbf files and import it. For this to work, you need to set $cfg[’TempDir’] to<br />

a place where the web server user can write (for example ’./tmp’).<br />

To create the temporary directory on a UNIX-based system, you can do:<br />

cd phpMyAdmin<br />

mkdir tmp<br />

chmod o+rwx tmp<br />

6.6.31 6.31 How do I create a relation in designer?<br />

To select relation, click: The display column is shown in pink. To set/unset a column as the display column, click the<br />

“Choose column to display” icon, then click on the appropriate column name.<br />

6.6.32 6.32 How can I use the zoom search feature?<br />

The Zoom search feature is an alternative to table search feature. It allows you to explore a table by representing its<br />

data in a scatter plot. You can locate this feature by selecting a table and clicking the Search tab. One of the sub-tabs<br />

in the Table Search page is Zoom Search.<br />

Consider the table REL_persons in 6.6 How can I use the relation table in Query-by-example? for an example. To use<br />

zoom search, two columns need to be selected, for example, id and town_code. The id values will be represented on<br />

one axis and town_code values on the other axis. Each row will be represented as a point in a scatter plot based on its<br />

id and town_code. You can include two additional search criteria apart from the two fields to display.<br />

You can choose which field should be displayed as label for each point. If a display column has been set for the table<br />

(see 6.7 How can I use the “display column” feature?), it is taken as the label unless you specify otherwise. You can<br />

also select the maximum number of rows you want to be displayed in the plot by specifing it in the ‘Max rows to plot’<br />

field. Once you have decided over your criteria, click ‘Go’ to display the plot.<br />

After the plot is generated, you can use the mousewheel to zoom in and out of the plot. In addition, panning feature is<br />

enabled to navigate through the plot. You can zoom-in to a certain level of detail and use panning to locate your area<br />

of interest. Clicking on a point opens a dialogue box, displaying field values of the data row represented by the point.<br />

You can edit the values if required and click on submit to issue an update query. Basic instructions on how to use can<br />

be viewed by clicking the ‘How to use?’ link located just above the plot.<br />

6.6. Using phpMyAdmin 89


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.6.33 6.33 When browsing a table, how can I copy a column name?<br />

Selecting the name of the column within the browse table header cell for copying is difficult, as the columns support<br />

reordering by dragging the header cells as well as sorting by clicking on the linked column name. To copy a column<br />

name, double-click on the empty area next to the column name, when the tooltip tells you to do so. This will show<br />

you an input box with the column name. You may right-click the column name within this input box to copy it to your<br />

clipboard.<br />

6.6.34 6.34 How can I use the Favorite Tables feature?<br />

Favorite Tables feature is very much similar to Recent Tables feature. It allows you to add a shortcut for the frequently<br />

used tables of any database in the navigation panel . You can easily navigate to any table in the list by simply choosing<br />

it from the list. These tables are stored in your browser’s local storage if you have not configured your phpMyAdmin<br />

Configuration Storage. Otherwise these entries are stored in phpMyAdmin Configuration Storage.<br />

IMPORTANT: In absence of phpMyAdmin Configuration Storage, your Favorite tables may be different in different<br />

browsers based on your different selections in them.<br />

To add a table to Favorite list simply click on the Gray star in front of a table name in the list of tables of a Database<br />

and wait until it turns to Yellow. To remove a table from list, simply click on the Yellow star and wait until it turns<br />

Gray again.<br />

Using $cfg[’NumFavoriteTables’] in your config.inc.php file, you can define the maximum number<br />

of favorite tables shown in the navigation panel. Its default value is 10.<br />

6.6.35 6.35 How can I use the Range search feature?<br />

With the help of range search feature, one can specify a range of values for particular column(s) while performing<br />

search operation on a table from the Search tab.<br />

To use this feature simply click on the BETWEEN or NOT BETWEEN operators from the operator select list in front<br />

of the column name. On choosing one of the above options, a dialog box will show up asking for the Minimum<br />

and Maximum value for that column. Only the specified range of values will be included in case of BETWEEN and<br />

excluded in case of NOT BETWEEN from the final results.<br />

Note: The Range search feature will work only Numeric and Date data type columns.<br />

6.6.36 6.36 What is Central columns and How can I use this feature?<br />

As the name suggests, the Central columns feature enables to maintain a central list of columns per database to avoid<br />

similar name for the same data element and bring consistency of data type for the same data element. You can use the<br />

central list of columns to add an element to any table structure in that database which will save from writing similar<br />

column name and column definition.<br />

To add a column to central list, go to table structure page, check the columns you want to include and then simply<br />

click on “Add to central columns”. If you want to add all unique columns from more than one table from a database<br />

then go to database structure page, check the tables you want to include and then select “Add columns to central list”.<br />

To remove a column from central list, go to Table structure page, check the columns you want to remove and then<br />

simply click on “Remove from central columns”. If you want to remove all columns from more than one tables from<br />

a database then go to database structure page, check the tables you want to include and then select “Remove columns<br />

from central list”.<br />

90 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

To view and manage the central list, select the database you want to manage central columns for then from the top<br />

menu click on “Central columns”. You will be taken to a page where you will have options to edit, delete or add new<br />

columns to central list.<br />

6.6.37 6.37 How can I use Improve Table structure feature?<br />

Improve table structure feature helps to bring the table structure upto Third Normal Form. A wizard is presented<br />

to user which asks questions about the elements during the various steps for normalization and a new structure is<br />

proposed accordingly to bring the table into the First/Second/Third Normal form. On startup of the wizard, user gets<br />

to select upto what normal form they want to normalize the table structure.<br />

Here is an example table which you can use to test all of the three First, Second and Third Normal Form.<br />

CREATE TABLE `VetOffice` (<br />

`petName` varchar(64) NOT NULL,<br />

`petBreed` varchar(64) NOT NULL,<br />

`petType` varchar(64) NOT NULL,<br />

`petDOB` date NOT NULL,<br />

`ownerLastName` varchar(64) NOT NULL,<br />

`ownerFirstName` varchar(64) NOT NULL,<br />

`ownerPhone1` int(12) NOT NULL,<br />

`ownerPhone2` int(12) NOT NULL,<br />

`ownerEmail` varchar(64) NOT NULL,<br />

);<br />

The above table is not in First normal Form as no primary key exists. Primary key is supposed to be (pet-<br />

Name,‘ownerLastName‘,‘ownerFirstName‘) . If the primary key is chosen as suggested the resultant table won’t<br />

be in Second as well as Third Normal form as the following dependencies exists.<br />

(OwnerLastName, OwnerFirstName) -> OwnerEmail<br />

(OwnerLastName, OwnerFirstName) -> OwnerPhone<br />

PetBreed -> PetType<br />

Which says, OwnerEmail depends on OwnerLastName and OwnerFirstName. OwnerPhone depends on OwnerLast-<br />

Name and OwnerFirstName. PetType depends on PetBreed.<br />

6.6.38 6.38 How can I reassign auto-incremented values?<br />

Some users prefer their AUTO_INCREMENT values to be consecutive; this is not always the case after row deletion.<br />

Here are the steps to accomplish this. These are manual steps because they involve a manual verification at one point.<br />

• Ensure that you have exclusive access to the table to rearrange<br />

• On your primary key column (i.e. id), remove the AUTO_INCREMENT setting<br />

• Delete your primary key in Structure > indexes<br />

• Create a new column future_id as primary key, AUTO_INCREMENT<br />

• Browse your table and verify that the new increments correspond to what you’re expecting<br />

• Drop your old id column<br />

• Rename the future_id column to id<br />

• Move the new id column via Structure > Move columns<br />

6.6. Using phpMyAdmin 91


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.6.39 6.39 What is the “Adjust privileges” option when renaming, copying, or moving<br />

a database, table, column, or procedure?<br />

When renaming/copying/moving a database/table/column/procedure, MySQL does not adjust the original privileges<br />

relating to these objects on its own. By selecting this option, phpMyAdmin will adjust the privilege table so that users<br />

have the same privileges on the new items.<br />

For example: A user ‘bob’@’localhost‘ has a ‘SELECT’ privilege on a column named ‘id’. Now, if this column is<br />

renamed to ‘id_new’; MySQL, on its own, would not adjust the column privileges to the new column name. php-<br />

MyAdmin can make this adjustment for you automatically.<br />

Notes:<br />

• While adjusting privileges for a database, the privileges of all table-related privileges, all column-related privileges<br />

and all procedure-related privileges for the tables, columns and procedures inside that database are also<br />

adjusted to the database’s new name.<br />

• Similarly, while adjusting privileges for a table, the privileges of all column-related privileges for the columns<br />

inside the table are also adjusted to the table’s new name.<br />

• While adjusting privileges, the user performing the operation must have the following privileges:<br />

– SELECT, INSERT, UPDATE, DELETE privileges on following tables: mysql.‘db‘, mysql.‘columns_priv‘,<br />

mysql.‘tables_priv‘, mysql.‘procs_priv‘<br />

– FLUSH privilege (GLOBAL)<br />

Thus, if you want to replicate the database/table/column/procedure as it is while renaming/copying/moving these<br />

objects, make sure you have checked this option.<br />

6.6.40 6.40 I see “Bind parameters” checkbox in the “SQL” page. How do I write<br />

parameterized SQL queries?<br />

From version 4.5, phpMyAdmin allows users to execute parameterized queries in the “SQL” page. Parameters should<br />

be prefixed with a colon(:) and when the “Bind parameters” checkbox is checked these parameters will be identified<br />

and input fields for these parameters will be presented. Values entered in these field will be substituted in the query<br />

before being executed.<br />

6.7 phpMyAdmin project<br />

6.7.1 7.1 I have found a bug. How do I inform developers?<br />

Our Bug Tracker is located at under the Bugs section. But please first discuss<br />

your bug with other users: <br />

6.7.2 7.2 I want to translate the messages to a new language or upgrade an existing<br />

language, where do I start?<br />

Translations are very welcome and all you need to have are the language skills. The easiest way is to use our online<br />

translation service. You can check out all the possibilities to translate in the translate section on our website.<br />

92 Chapter 6. FAQ - Frequently Asked Questions


phpMyAdmin Documentation, Release 4.5.0-dev<br />

6.7.3 7.3 I would like to help out with the development of phpMyAdmin. How should<br />

I proceed?<br />

We welcome every contribution to the development of phpMyAdmin.<br />

contribute in the contribute section on our website.<br />

See also:<br />

Developers Information<br />

You can check out all the possibilities to<br />

6.8 Security<br />

6.8.1 8.1 Where can I get information about the security alerts issued for phpMyAdmin?<br />

Please refer to .<br />

6.8.2 8.2 How can I protect phpMyAdmin against brute force attacks?<br />

If you use Apache web server, phpMyAdmin exports information about authentication to the Apache environment and<br />

it can be used in Apache logs. Currently there are two variables available:<br />

userID User name of currently active user (he does not have to be logged in).<br />

userStatus Status of currently active user, one of ok (user is logged in), mysql-denied (MySQL denied user<br />

login), allow-denied (user denied by allow/deny rules), root-denied (root is denied in configuration),<br />

empty-denied (empty password is denied).<br />

LogFormat directive for Apache can look like following:<br />

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n"<br />

You can then use any log analyzing tools to detect possible break-in attempts.<br />

6.9 Synchronization<br />

6.9.1 9.1 (withdrawn).<br />

6.9.2 9.2 (withdrawn).<br />

6.8. Security 93


phpMyAdmin Documentation, Release 4.5.0-dev<br />

94 Chapter 6. FAQ - Frequently Asked Questions


CHAPTER 7<br />

Developers Information<br />

phpMyAdmin is Open Source, so you’re invited to contribute to it. Many great features have been written by other<br />

people and you too can help to make phpMyAdmin a useful tool.<br />

You can check out all the possibilities to contribute in the contribute section on our website.<br />

95


phpMyAdmin Documentation, Release 4.5.0-dev<br />

96 Chapter 7. Developers Information


CHAPTER 8<br />

Distributing and packaging phpMyAdmin<br />

This document is intended to give advices to people who want to redistribute phpMyAdmin inside other software<br />

package such as Linux distribution or some all in one package including web server and MySQL server.<br />

Generally you can customize some basic aspects (paths to some files and behavior) in<br />

libraries/vendor_config.php.<br />

For example if you want setup script to generate config file in var, change SETUP_CONFIG_FILE to<br />

/var/lib/<strong>phpmyadmin</strong>/config.inc.php and you will also probably want to skip directory writable check,<br />

so set SETUP_DIR_WRITABLE to false.<br />

8.1 External libraries<br />

phpMyAdmin includes several external libraries, you might want to replace them with system ones if they are available,<br />

but please note that you should test whether version you provide is compatible with the one we ship.<br />

Currently known list of external libraries:<br />

js/jquery jQuery js framework and various jQuery based libraries.<br />

libraries/php-gettext php-gettext library<br />

libraries/tcpdf tcpdf library, stripped down of not needed files<br />

libraries/phpseclib portions of phpseclib library<br />

97


phpMyAdmin Documentation, Release 4.5.0-dev<br />

98 Chapter 8. Distributing and packaging phpMyAdmin


CHAPTER 9<br />

Copyright<br />

Copyright (C) 1998-2000 Tobias Ratschiller <br />

Copyright (C) 2001-2014 Marc Delisle <br />

Olivier Müller <br />

Robin Johnson <br />

Alexander M. Turek <br />

Michal Čihař <br />

Garvin Hicking <br />

Michael Keck <br />

Sebastian Mendel <br />

[check credits for more details]<br />

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public<br />

License version 2, as published by the Free Software Foundation.<br />

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the<br />

implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General<br />

Public License for more details.<br />

You should have received a copy of the GNU General Public License along with this program.<br />

http://www.gnu.org/licenses/.<br />

If not, see<br />

9.1 Third party licenses<br />

phpMyAdmin includes several third party libraries which come under their respective licenses.<br />

jQuery’s license, which is where we got the files under js/jquery/ is (MIT|GPL), a copy of each license is available in<br />

this repository (GPL is available as LICENSE, MIT as js/jquery/MIT-LICENSE.txt).<br />

TCPDF which is located under libraries/tcpdf is released under GPL version 3 and the license is available as libraries/tcpdf/LICENSE.TXT.<br />

DejaVu fonts which are located under libraries/tcpdf/fonts/ and their license is documented in<br />

libraries/tcpdf/fonts/dejavu-fonts-ttf-2.33/LICENSE.<br />

PHP-gettext which is located under libraries/php-gettext/ is released under GPL version 2 license which is available in<br />

the LICENSE file.<br />

99


phpMyAdmin Documentation, Release 4.5.0-dev<br />

100 Chapter 9. Copyright


CHAPTER 10<br />

Credits<br />

10.1 Credits, in chronological order<br />

• Tobias Ratschiller <br />

– creator of the <strong>phpmyadmin</strong> project<br />

– maintainer from 1998 to summer 2000<br />

• Marc Delisle <br />

– multi-language version in December 1998<br />

– various fixes and improvements<br />

– SQL analyser (most of it)<br />

– current project maintainer<br />

– maintains content on our website<br />

• Olivier Müller <br />

– started SourceForge phpMyAdmin project in March 2001<br />

– sync’ed different existing CVS trees with new features and bugfixes<br />

– multi-language improvements, dynamic language selection<br />

– many bugfixes and improvements<br />

• Loïc Chapeaux <br />

– rewrote and optimized JavaScript, DHTML and DOM stuff<br />

– rewrote the scripts so they fit the PEAR coding standards and generate XHTML1.0 and CSS2 compliant<br />

codes<br />

– improved the language detection system<br />

– many bugfixes and improvements<br />

• Robin Johnson <br />

– database maintenance controls<br />

– table type code<br />

– Host authentication IP Allow/Deny<br />

– DB-based configuration (Not completed)<br />

101


phpMyAdmin Documentation, Release 4.5.0-dev<br />

– SQL parser and pretty-printer<br />

– SQL validator<br />

– many bugfixes and improvements<br />

• Armel Fauveau <br />

– bookmarks feature<br />

– multiple dump feature<br />

– gzip dump feature<br />

– zip dump feature<br />

• Geert Lund <br />

– various fixes<br />

– moderator of the phpMyAdmin former users forum at phpwizard.net<br />

• Korakot Chaovavanich <br />

– “insert as new row” feature<br />

• Pete Kelly <br />

– rewrote and fix dump code<br />

– bugfixes<br />

• Steve Alberty <br />

– rewrote dump code for PHP4<br />

– mySQL table statistics<br />

– bugfixes<br />

• Benjamin Gandon <br />

– main author of the version 2.1.0.1<br />

– bugfixes<br />

• Alexander M. Turek <br />

– MySQL 4.0 / 4.1 / 5.0 compatibility<br />

– abstract database interface (PMA_DBI) with MySQLi support<br />

– privileges administration<br />

– XML exports<br />

– various features and fixes<br />

– German language file updates<br />

• Mike Beck <br />

– automatic joins in QBE<br />

– links column in printview<br />

– Relation view<br />

• Michal Čihař <br />

– enhanced index creation/display feature<br />

102 Chapter 10. Credits


phpMyAdmin Documentation, Release 4.5.0-dev<br />

– feature to use a different charset for HTML than for MySQL<br />

– improvements of export feature<br />

– various features and fixes<br />

– Czech language file updates<br />

– created current website for phpMyAdmin<br />

• Christophe Gesché from the “MySQL Form Generator for PHPMyAdmin”<br />

(http://sf.net/projects/phpmysqlformgen/)<br />

– suggested the patch for multiple table printviews<br />

• Garvin Hicking <br />

– built the patch for vertical display of table rows<br />

– built the Javascript based Query window + SQL history<br />

– Improvement of column/db comments<br />

– (MIME)-Transformations for columns<br />

– Use custom alias names for Databases in left frame<br />

– hierarchical/nested table display<br />

– PDF-scratchboard for WYSIWYG- distribution of PDF relations<br />

– new icon sets<br />

– vertical display of column properties page<br />

– some bugfixes, features, support, German language additions<br />

• Yukihiro Kawada <br />

– japanese kanji encoding conversion feature<br />

• Piotr Roszatycki and Dan Wilson<br />

– the Cookie authentication mode<br />

• Axel Sander <br />

– table relation-links feature<br />

• Maxime Delorme <br />

– PDF schema output, thanks also to Olivier Plathey for the “FPDF” library (see ),<br />

Steven Wittens for the “UFPDF” library (see ) and Nicola Asuni for the<br />

“TCPDF” library (see ).<br />

• Olof Edlund <br />

– SQL validator server<br />

• Ivan R. Lanin <br />

– phpMyAdmin logo (until June 2004)<br />

• Mike Cochrane <br />

– blowfish library from the Horde project (withdrawn in release 4.0)<br />

• Marcel Tschopp <br />

– mysqli support<br />

10.1. Credits, in chronological order 103


phpMyAdmin Documentation, Release 4.5.0-dev<br />

– many bugfixes and improvements<br />

• Nicola Asuni (Tecnick.com)<br />

– TCPDF library (http://www.tcpdf.org)<br />

• Michael Keck <br />

– redesign for 2.6.0<br />

– phpMyAdmin sailboat logo (June 2004)<br />

• Mathias Landhäußer<br />

– Representation at conferences<br />

• Sebastian Mendel <br />

– interface improvements<br />

– various bugfixes<br />

• Ivan A Kirillov<br />

– new relations Designer<br />

• Raj Kissu Rajandran (Google Summer of Code 2008)<br />

– BLOBstreaming support (withdrawn in release 4.0)<br />

• Piotr Przybylski (Google Summer of Code 2008, 2010 and 2011)<br />

– improved setup script<br />

– user preferences<br />

– Drizzle support<br />

• Derek Schaefer (Google Summer of Code 2009)<br />

– Improved the import system<br />

• Alexander Rutkowski (Google Summer of Code 2009)<br />

– Tracking mechanism<br />

• Zahra Naeem (Google Summer of Code 2009)<br />

– Synchronization feature (removed in release 4.0)<br />

• Tomáš Srnka (Google Summer of Code 2009)<br />

– Replication support<br />

• Muhammad Adnan (Google Summer of Code 2010)<br />

– Relation schema export to multiple formats<br />

• Lori Lee (Google Summer of Code 2010)<br />

– User interface improvements<br />

– ENUM/SET editor<br />

– Simplified interface for export/import<br />

• Ninad Pundalik (Google Summer of Code 2010)<br />

– AJAXifying the interface<br />

• Martynas Mickevičius (Google Summer of Code 2010)<br />

104 Chapter 10. Credits


phpMyAdmin Documentation, Release 4.5.0-dev<br />

– Charts<br />

• Barrie Leslie<br />

– BLOBstreaming support with PBMS PHP extension (withdrawn in release 4.0)<br />

• Ankit Gupta (Google Summer of Code 2010)<br />

– Visual query builder<br />

• Madhura Jayaratne (Google Summer of Code 2011)<br />

– OpenGIS support<br />

• Ammar Yasir (Google Summer of Code 2011)<br />

– Zoom search<br />

• Aris Feryanto (Google Summer of Code 2011)<br />

– Browse-mode improvements<br />

• Thilanka Kaushalya (Google Summer of Code 2011)<br />

– AJAXification<br />

• Tyron Madlener (Google Summer of Code 2011)<br />

– Query statistics and charts for the status page<br />

• Zarubin Stas (Google Summer of Code 2011)<br />

– Automated testing<br />

• Rouslan Placella (Google Summer of Code 2011 and 2012)<br />

– Improved support for Stored Routines, Triggers and Events<br />

– Italian translation updates<br />

– Removal of frames, new navigation<br />

• Dieter Adriaenssens<br />

– Various bugfixes<br />

– Dutch translation updates<br />

• Alex Marin (Google Summer of Code 2012)<br />

– New plugins and properties system<br />

• Thilina Buddika Abeyrathna (Google Summer of Code 2012)<br />

– Refactoring<br />

• Atul Pratap Singh (Google Summer of Code 2012)<br />

– Refactoring<br />

• Chanaka Indrajith (Google Summer of Code 2012)<br />

– Refactoring<br />

• Yasitha Pandithawatta (Google Summer of Code 2012)<br />

– Automated testing<br />

• Jim Wigginton (phpseclib.sourceforge.net)<br />

– phpseclib<br />

10.1. Credits, in chronological order 105


phpMyAdmin Documentation, Release 4.5.0-dev<br />

• Bin Zu (Google Summer of Code 2013)<br />

– Refactoring<br />

• Supun Nakandala (Google Summer of Code 2013)<br />

– Refactoring<br />

• Mohamed Ashraf (Google Summer of Code 2013)<br />

– AJAX error reporting<br />

• Adam Kang (Google Summer of Code 2013)<br />

– Automated testing<br />

• Ayush Chaudhary (Google Summer of Code 2013)<br />

– Automated testing<br />

• Kasun Chathuranga (Google Summer of Code 2013)<br />

– Interface improvements<br />

• Hugues Peccatte<br />

– Load/save query by example (database search bookmarks)<br />

• Smita Kumari (Google Summer of Code 2014)<br />

– Central list of columns<br />

– Improve table structure (normalization)<br />

• Ashutosh Dhundhara (Google Summer of Code 2014)<br />

– Interface improvements<br />

• Dhananjay Nakrani (Google Summer of Code 2014)<br />

– PHP error reporting<br />

• Edward Cheng (Google Summer of Code 2014)<br />

– SQL Query Console<br />

• Kankanamge Bimal Yashodha (Google Summer of Code 2014)<br />

– Refactoring: Designer/schema integration<br />

• Chirayu Chiripal (Google Summer of Code 2014)<br />

– Custom field handlers (Input based MIME transformations)<br />

– Export with table/column name changes<br />

• Dan Ungureanu (Google Summer of Code 2015)<br />

– New parser and analyzer<br />

• Nisarg Jhaveri (Google Summer of Code 2015)<br />

– Page-related settings<br />

– SQL debugging integration to the Console<br />

– Other UI improvements<br />

106 Chapter 10. Credits


phpMyAdmin Documentation, Release 4.5.0-dev<br />

And also to the following people who have contributed minor changes, enhancements, bugfixes or support for a new<br />

language since version 2.1.0:<br />

Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita, Péter Bakondy, Borges Botelho, Olivier Bussier,<br />

Neil Darlow, Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger, Lubos Klokner, Martin<br />

Marconcini, Girish Nair, David Nordenberg, Andreas Pauley, Bernard M. Piller, Laurent Haas, “Sakamoto”, Yuval<br />

Sarna, www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec, Michael Tacelosky, Rachim<br />

Tamsjadi, Kositer Uros, Luís V., Martijn W. van der Lee, Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-<br />

Abrams, Chee Wai, Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, “Manuzhai”.<br />

10.2 Translators<br />

Following people have contributed to translation of phpMyAdmin:<br />

• Arabic<br />

– Abdullah Al-Saedi <br />

• Bulgarian<br />

– stoyanster <br />

• Catalan<br />

– Xavier Navarro <br />

• Czech<br />

– Michal Čihař <br />

• Danish<br />

– opensource <br />

– Jørgen Thomsen <br />

• German<br />

– mrbendig <br />

– torsten.funck <br />

– Sven Strickroth <br />

– typo3 <br />

– Jo Michael <br />

• Greek<br />

– Panagiotis Papazoglou <br />

• English (United Kingdom)<br />

– Robert Readman <br />

• Spanish<br />

– Matías Bellone <br />

• French<br />

– Marc Delisle <br />

• Hindi<br />

10.2. Translators 107


phpMyAdmin Documentation, Release 4.5.0-dev<br />

– u4663530 <br />

– rsedwardian <br />

• Hungarian<br />

– gergo314 <br />

• Italian<br />

– Rouslan Placella <br />

• Japanese<br />

– Yuichiro <br />

• Lithuanian<br />

– Kęstutis <br />

• Norwegian Bokmål<br />

– Sven-Erik Andersen <br />

• Dutch<br />

– Dieter Adriaenssens <br />

– Herman van Rink <br />

• Polish<br />

– Stanisław Krukowski <br />

– Marcin Kozioł <br />

• Portuguese<br />

– JoaoTMDias <br />

• Portuguese (Brazil)<br />

– wiltave <br />

– emerson4br <br />

• Romanian<br />

– alexukf <br />

• Russian<br />

– Victor Volkov <br />

• Sinhala<br />

– Madhura Jayaratne <br />

• Slovak<br />

– Martin Lacina <br />

• Slovenian<br />

– Domen <br />

• Swedish<br />

– stefan <br />

• Tamil<br />

108 Chapter 10. Credits


phpMyAdmin Documentation, Release 4.5.0-dev<br />

– ysajeepan <br />

• Telugu<br />

– veeven <br />

• Thai<br />

– kanitchet <br />

• Turkish<br />

– Burak Yavuz <br />

• Uighur<br />

– gheni <br />

• Ukrainian<br />

– typim <br />

– oleg-ilnytskyi <br />

• Urdu<br />

– Mehbooob Khan <br />

• Simplified Chinese<br />

– shanyan baishui <br />

• Traditional Chinese<br />

– star <br />

10.3 Documentation translators<br />

Following people have contributed to translation of phpMyAdmin documentation:<br />

• Czech<br />

– Michal Čihař <br />

• Greek<br />

– Panagiotis Papazoglou <br />

• English (United Kingdom)<br />

– Robert Readman <br />

• French<br />

– Cédric Corazza <br />

• Japanese<br />

– Yuichiro Takahashi <br />

• Polish<br />

– Stanisław Krukowski <br />

• Portuguese (Brazil)<br />

– mjaning <br />

10.3. Documentation translators 109


phpMyAdmin Documentation, Release 4.5.0-dev<br />

• Slovenian<br />

– Domen <br />

10.4 Original Credits of Version 2.1.0<br />

This work is based on Peter Kuppelwieser’s MySQL-Webadmin. It was his idea to create a web-based interface to<br />

MySQL using PHP3. Although I have not used any of his source-code, there are some concepts I’ve borrowed from<br />

him. phpMyAdmin was created because Peter told me he wasn’t going to further develop his (great) tool.<br />

Thanks go to<br />

• Amalesh Kempf who contributed the code for the check when dropping a<br />

table or database. He also suggested that you should be able to specify the primary key on tbl_create.php3. To<br />

version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as well as a bug-report. Plus many smaller<br />

improvements.<br />

• Jan Legenhausen : He made many of the changes that were introduced in 1.3.0 (including<br />

quite significant ones like the authentication). For 1.4.1 he enhanced the table-dump feature. Plus bug-fixes and<br />

help.<br />

• Marc Delisle made phpMyAdmin language-independent by outsourcing<br />

the strings to a separate file. He also contributed the French translation.<br />

• Alexandr Bravo who contributed tbl_select.php3, a feature to display only some<br />

columns from a table.<br />

• Chris Jackson added support for MySQL functions in tbl_change.php3. He also added the<br />

“Query by Example” feature in 2.0.<br />

• Dave Walton added support for multiple servers and is a regular contributor for<br />

bug-fixes.<br />

• Gabriel Ash contributed the random access features for 2.0.6.<br />

The following people have contributed minor changes, enhancements, bugfixes or support for a new language:<br />

Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann, Alexander Leidinger, Kiko Albiol, Daniel<br />

C. Chao, Pavel Piankov, Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns, G. Wieggers.<br />

And thanks to everyone else who sent me email with suggestions, bug- reports and or just some feedback.<br />

110 Chapter 10. Credits


CHAPTER 11<br />

Glossary<br />

From Wikipedia, the free encyclopedia<br />

.htaccess the default name of Apache’s directory-level configuration file.<br />

See also:<br />

<br />

ACL Access Contol List<br />

Blowfish a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier.<br />

See also:<br />

<br />

Browser a software application that enables a user to display and interact with text, images, and other information<br />

typically located on a web page at a website on the World Wide Web.<br />

bzip2<br />

CGI<br />

See also:<br />

<br />

a free software/open source data compression algorithm and program developed by Julian Seward.<br />

See also:<br />

<br />

Common Gateway Interface is an important World Wide Web technology that enables a client web browser to<br />

request data from a program executed on the Web server.<br />

See also:<br />

<br />

Changelog a log or record of changes made to a project.<br />

See also:<br />

<br />

Client a computer system that accesses a (remote) service on another computer by some kind of network.<br />

See also:<br />

<br />

column a set of data values of a particular simple type, one for each row of the table.<br />

See also:<br />

111


phpMyAdmin Documentation, Release 4.5.0-dev<br />

<br />

Cookie a packet of information sent by a server to a World Wide Web browser and then sent back by the browser<br />

each time it accesses that server.<br />

See also:<br />

<br />

CSV Comma- separated values<br />

See also:<br />

<br />

DB look at database<br />

database an organized collection of data.<br />

See also:<br />

<br />

Engine look at storage engines<br />

extension a PHP module that extends PHP with additional functionality.<br />

See also:<br />

<br />

FAQ Frequently Asked Questions is a list of commonly asked question and there answers.<br />

Field<br />

See also:<br />

<br />

one part of divided data/columns.<br />

See also:<br />

<br />

foreign key a column or group of columns in a database row that point to a key column or group of columns forming<br />

a key of another database row in some (usually different) table.<br />

See also:<br />

<br />

FPDF the free PDF library<br />

GD<br />

See also:<br />

<br />

Graphics Library by Thomas Boutell and others for dynamically manipulating images.<br />

See also:<br />

<br />

GD2 look at gd<br />

gzip gzip is short for GNU zip, a GNU free software file compression program.<br />

See also:<br />

<br />

112 Chapter 11. Glossary


phpMyAdmin Documentation, Release 4.5.0-dev<br />

host any machine connected to a computer network, a node that has a hostname.<br />

See also:<br />

<br />

hostname the unique name by which a network attached device is known on a network.<br />

See also:<br />

<br />

HTTP HyperText Transfer Protocol is the primary method used to transfer or convey information on the World Wide<br />

Web.<br />

https<br />

See also:<br />

<br />

a HTTP-connection with additional security measures.<br />

See also:<br />

<br />

IEC International Electrotechnical Commission<br />

IIS Internet Information Services is a set of Internet-based services for servers using Microsoft Windows.<br />

See also:<br />

<br />

Index a feature that allows quick access to the rows in a table.<br />

IP<br />

See also:<br />

<br />

Internet Protocol is a data-oriented protocol used by source and destination hosts for communicating data across<br />

a packet-switched internetwork.<br />

See also:<br />

<br />

IP Address a unique number that devices use in order to identify and communicate with each other on a network<br />

utilizing the Internet Protocol standard.<br />

IPv6<br />

See also:<br />

<br />

IPv6 (Internet Protocol version 6) is the latest revision of the Internet Protocol (IP), designed to deal with the<br />

long-anticipated problem of its precedessor IPv4 running out of addresses.<br />

See also:<br />

<br />

ISAPI Internet Server Application Programming Interface is the API of Internet Information Services (IIS).<br />

See also:<br />

<br />

ISP Internet service provider is a business or organization that offers users access to the Internet and related services.<br />

See also:<br />

113


phpMyAdmin Documentation, Release 4.5.0-dev<br />

<br />

ISO International Standards Organisation<br />

JPEG a most commonly used standard method of lossy compression for photographic images.<br />

See also:<br />

<br />

JPG look at jpeg<br />

Key look at index<br />

LATEX<br />

Mac<br />

a document preparation system for the TEX typesetting program.<br />

See also:<br />

<br />

Apple Macintosh is line of personal computers is designed, developed, manufactured, and marketed by Apple<br />

Computer.<br />

. seealso:: <br />

Mac OS X the operating system which is included with all currently shipping Apple Macintosh computers in the<br />

consumer and professional markets.<br />

See also:<br />

<br />

MCrypt a cryptographic library.<br />

mcrypt<br />

MIME<br />

See also:<br />

<br />

the MCrypt PHP extension.<br />

See also:<br />

<br />

Multipurpose Internet Mail Extensions is an Internet Standard for the format of e-mail.<br />

See also:<br />

<br />

module some sort of extension for the Apache Webserver.<br />

See also:<br />

<br />

MySQL a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS).<br />

mysqli<br />

See also:<br />

<br />

the improved MySQL client PHP extension.<br />

See also:<br />

<br />

114 Chapter 11. Glossary


phpMyAdmin Documentation, Release 4.5.0-dev<br />

mysql the MySQL client PHP extension.<br />

See also:<br />

<br />

OpenDocument open standard for office documents.<br />

See also:<br />

<br />

OS X look at Mac OS X.<br />

PDF<br />

See also:<br />

<br />

Portable Document Format is a file format developed by Adobe Systems for representing two dimensional<br />

documents in a device independent and resolution independent format.<br />

See also:<br />

<br />

PEAR the PHP Extension and Application Repository.<br />

See also:<br />

<br />

PCRE Perl Compatible Regular Expressions is the perl-compatible regular expression functions for PHP<br />

PHP<br />

See also:<br />

<br />

short for “PHP: Hypertext Preprocessor”, is an open-source, reflective programming language used mainly for<br />

developing server-side applications and dynamic web content, and more recently, a broader range of software<br />

applications.<br />

See also:<br />

<br />

port a connection through which data is sent and received.<br />

RFC<br />

See also:<br />

<br />

Request for Comments (RFC) documents are a series of memoranda encompassing new research, innovations,<br />

and methodologies applicable to Internet technologies.<br />

See also:<br />

<br />

RFC 1952 GZIP file format specification version 4.3<br />

See also:<br />

RFC 1952<br />

Row (record, tuple) represents a single, implicitly structured data item in a table.<br />

See also:<br />

<br />

115


phpMyAdmin Documentation, Release 4.5.0-dev<br />

Server<br />

a computer system that provides services to other computing systems over a network.<br />

See also:<br />

<br />

Storage Engines handlers for different table types<br />

See also:<br />

<br />

socket a form of inter-process communication.<br />

See also:<br />

<br />

SSL Secure Sockets Layer is a cryptographic protocol which provides secure communication on the Internet.<br />

See also:<br />

<br />

Stored procedure a subroutine available to applications accessing a relational database system<br />

See also:<br />

<br />

SQL Structured Query Language<br />

See also:<br />

<br />

table a set of data elements (cells) that is organized, defined and stored as horizontal rows and vertical columns where<br />

each item can be uniquely identified by a label or key or by it?s position in relation to other items.<br />

See also:<br />

<br />

tar a type of archive file format: the Tape ARchive format.<br />

See also:<br />

<br />

TCP Transmission Control Protocol is one of the core protocols of the Internet protocol suite.<br />

See also:<br />

<br />

TCPDF Rewrite of UFPDF with various improvements.<br />

See also:<br />

<br />

trigger a procedural code that is automatically executed in response to certain events on a particular table or view in<br />

a database<br />

See also:<br />

<br />

116 Chapter 11. Glossary


phpMyAdmin Documentation, Release 4.5.0-dev<br />

UFPDF Unicode/UTF-8 extension for FPDF<br />

URL<br />

See also:<br />

<br />

Uniform Resource Locator is a sequence of characters, conforming to a standardized format, that is used for<br />

referring to resources, such as documents and images on the Internet, by their location.<br />

See also:<br />

<br />

Webserver A computer (program) that is responsible for accepting HTTP requests from clients and serving them<br />

Web pages.<br />

See also:<br />

<br />

XML Extensible Markup Language is a W3C-recommended general- purpose markup language for creating specialpurpose<br />

markup languages, capable of describing many different kinds of data.<br />

ZIP<br />

zlib<br />

See also:<br />

<br />

a popular data compression and archival format.<br />

See also:<br />

<br />

an open-source, cross- platform data compression library by Jean-loup Gailly and Mark Adler.<br />

See also:<br />

<br />

117


phpMyAdmin Documentation, Release 4.5.0-dev<br />

118 Chapter 11. Glossary


CHAPTER 12<br />

Indices and tables<br />

• genindex<br />

• search<br />

• Glossary<br />

119


phpMyAdmin Documentation, Release 4.5.0-dev<br />

120 Chapter 12. Indices and tables


Index<br />

Symbols<br />

.htaccess, 111<br />

$cfg[’ActionLinksMode’], 43<br />

$cfg[’AllowArbitraryServer’], 13, 37<br />

$cfg[’AllowThirdPartyFraming’], 19<br />

$cfg[’AllowUserDropDatabase’], 35<br />

$cfg[’ArbitraryServerRegexp’], 37<br />

$cfg[’AvailableCharsets’], 48<br />

$cfg[’BZipDump’], 45<br />

$cfg[’BgOne’], 50<br />

$cfg[’BgTwo’], 51<br />

$cfg[’Border’], 50<br />

$cfg[’BrowseMIME’], 56<br />

$cfg[’BrowseMarkerBackground’], 51<br />

$cfg[’BrowseMarkerColor’], 51<br />

$cfg[’BrowseMarkerEnable’], 52<br />

$cfg[’BrowsePointerBackground’], 51<br />

$cfg[’BrowsePointerColor’], 51<br />

$cfg[’BrowsePointerEnable’], 51, 52<br />

$cfg[’CSPAllow’], 49<br />

$cfg[’CaptchaLoginPrivateKey’], 15, 37<br />

$cfg[’CaptchaLoginPublicKey’], 15, 37<br />

$cfg[’CharEditing’], 53, 54<br />

$cfg[’CharTextareaCols’], 53<br />

$cfg[’CharTextareaRows’], 54<br />

$cfg[’CheckConfigurationPermissions’], 49<br />

$cfg[’CodemirrorEnable’], 35<br />

$cfg[’CompressOnFly’], 45, 75<br />

$cfg[’Confirm’], 35<br />

$cfg[’ConsoleEnterExecutes’], 19<br />

$cfg[’DBG’], 59<br />

$cfg[’DBG’][’demo’], 59<br />

$cfg[’DBG’][’sql’], 59<br />

$cfg[’DefaultConnectionCollation’], 47<br />

$cfg[’DefaultForeignKeyChecks’], 35<br />

$cfg[’DefaultFunctions’], 59<br />

$cfg[’DefaultLang’], 47<br />

$cfg[’DefaultQueryDatabase’], 58<br />

$cfg[’DefaultQueryTable’], 58<br />

$cfg[’DefaultTabDatabase’], 46<br />

$cfg[’DefaultTabServer’], 46<br />

$cfg[’DefaultTabTable’], 46<br />

$cfg[’DisableMultiTableMaintenance’], 49<br />

$cfg[’DisplayServersList’], 39<br />

$cfg[’EnableAutocompleteForTablesAndColumns’], 54<br />

$cfg[’ExecTimeLimit’], 34, 83<br />

$cfg[’Export’], 45<br />

$cfg[’Export’][’charset’], 48<br />

$cfg[’Export’][’method’], 45<br />

$cfg[’FilterLanguages’], 47<br />

$cfg[’FirstLevelNavigationItems’], 38<br />

$cfg[’FontFamily’], 51<br />

$cfg[’FontFamilyFixed’], 51<br />

$cfg[’ForceSSL’], 34<br />

$cfg[’ForeignKeyDropdownOrder’], 44<br />

$cfg[’ForeignKeyMaxLimit’], 44, 87<br />

$cfg[’GD2Available’], 49<br />

$cfg[’GZipDump’], 45<br />

$cfg[’GridEditing’], 43<br />

$cfg[’HideStructureActions’], 42<br />

$cfg[’IconvExtraParams’], 48<br />

$cfg[’IgnoreMultiSubmitErrors’], 36<br />

$cfg[’Import’], 45<br />

$cfg[’Import’][’charset’], 48<br />

$cfg[’InitialSlidersState’], 57<br />

$cfg[’InsertRows’], 44<br />

$cfg[’Lang’], 47<br />

$cfg[’LimitChars’], 52<br />

$cfg[’LinkLengthLimit’], 49<br />

$cfg[’LoginCookieDeleteAll’], 37<br />

$cfg[’LoginCookieRecall’], 36<br />

$cfg[’LoginCookieStore’], 36<br />

$cfg[’LoginCookieValidity’], 36<br />

$cfg[’LoginCookieValidityDisableWarning’], 18<br />

$cfg[’LongtextDoubleTextarea’], 54<br />

$cfg[’MainBackground’], 50<br />

$cfg[’MaxCharactersInDisplayedSQL’], 34<br />

$cfg[’MaxDbList’], 33<br />

$cfg[’MaxExactCount’], 56, 77<br />

$cfg[’MaxExactCountViews’], 57<br />

$cfg[’MaxNavigationItems’], 38<br />

121


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’MaxRows’], 43<br />

$cfg[’MaxSizeForInputField’], 53<br />

$cfg[’MaxTableList’], 33<br />

$cfg[’MemoryLimit’], 34<br />

$cfg[’MinSizeForInputField’], 53<br />

$cfg[’MysqlMinVersion’], 42<br />

$cfg[’NaturalOrder’], 57<br />

$cfg[’NaviBackground’], 50<br />

$cfg[’NaviPointerBackground’], 50<br />

$cfg[’NaviPointerColor’], 50<br />

$cfg[’NaviWidth’], 50<br />

$cfg[’NavigationDisplayLogo’], 39<br />

$cfg[’NavigationDisplayServers’], 39<br />

$cfg[’NavigationLinkWithMainPanel’], 39<br />

$cfg[’NavigationLogoLink’], 39<br />

$cfg[’NavigationLogoLinkWindow’], 39<br />

$cfg[’NavigationTreeDbSeparator’], 38<br />

$cfg[’NavigationTreeDefaultTabTable’], 26, 40<br />

$cfg[’NavigationTreeDefaultTabTable2’], 40<br />

$cfg[’NavigationTreeDisplayDbFilterMinimum’], 39<br />

$cfg[’NavigationTreeDisplayItemFilterMinimum’], 39<br />

$cfg[’NavigationTreeEnableExpansion’], 40<br />

$cfg[’NavigationTreeEnableGrouping’], 38<br />

$cfg[’NavigationTreePointerEnable’], 52<br />

$cfg[’NavigationTreeShowEvents’], 41<br />

$cfg[’NavigationTreeShowFunctions’], 40<br />

$cfg[’NavigationTreeShowProcedures’], 41<br />

$cfg[’NavigationTreeShowTables’], 40<br />

$cfg[’NavigationTreeShowViews’], 40<br />

$cfg[’NavigationTreeTableLevel’], 38<br />

$cfg[’NavigationTreeTableSeparator’], 38, 76<br />

$cfg[’NumFavoriteTables’], 90<br />

$cfg[’NumRecentTables’], 26, 38<br />

$cfg[’OBGzip’], 48, 65, 69, 73<br />

$cfg[’Order’], 43<br />

$cfg[’PDFDefaultPageSize’], 47<br />

$cfg[’PDFPageSizes’], 47<br />

$cfg[’PersistentConnections’], 34<br />

$cfg[’PmaAbsoluteUri’], 17, 34, 74, 75, 79, 81<br />

$cfg[’PmaNoRelation_DisableWarning’], 17<br />

$cfg[’PropertiesNumColumns’], 46<br />

$cfg[’ProtectBinary’], 44<br />

$cfg[’ProxyPass’], 33<br />

$cfg[’ProxyUrl’], 33<br />

$cfg[’ProxyUser’], 33<br />

$cfg[’QueryHistoryDB’], 56<br />

$cfg[’QueryHistoryMax’], 26, 56<br />

$cfg[’RecodingEngine’], 48<br />

$cfg[’RelationalDisplay’], 43<br />

$cfg[’RememberSorting’], 27, 52<br />

$cfg[’RepeatCells’], 56<br />

$cfg[’ReservedWordDisableWarning’], 18<br />

$cfg[’RetainQueryBox’], 35<br />

$cfg[’RowActionLinks’], 52<br />

$cfg[’RowActionLinksWithoutUnique’], 52<br />

$cfg[’RowActionType’], 43<br />

$cfg[’SQLQuery’][’Edit’], 54<br />

$cfg[’SQLQuery’][’Explain’], 54<br />

$cfg[’SQLQuery’][’Refresh’], 54<br />

$cfg[’SQLQuery’][’ShowAsPHP’], 54<br />

$cfg[’SaveCellsAtOnce’], 44<br />

$cfg[’SaveDir’], 55<br />

$cfg[’SendErrorReports’], 18<br />

$cfg[’ServerDefault’], 32, 33<br />

$cfg[’ServerLibraryDifference_DisableWarning’], 18<br />

$cfg[’Servers’], 13, 19<br />

$cfg[’Servers’][$i][’AllowDeny’][’order’], 14, 30, 49<br />

$cfg[’Servers’][$i][’AllowDeny’][’rules’], 14, 15, 30, 31,<br />

49, 79<br />

$cfg[’Servers’][$i][’AllowNoPassword’], 30<br />

$cfg[’Servers’][$i][’AllowRoot’], 30<br />

$cfg[’Servers’][$i][’DisableIS’], 32<br />

$cfg[’Servers’][$i][’LogoutURL’], 32<br />

$cfg[’Servers’][$i][’MaxTableUiprefs’], 30<br />

$cfg[’Servers’][$i][’SessionTimeZone’], 30<br />

$cfg[’Servers’][$i][’SignonScript’], 13, 14, 32<br />

$cfg[’Servers’][$i][’SignonSession’], 13, 14, 32<br />

$cfg[’Servers’][$i][’SignonURL’], 13, 14, 32<br />

$cfg[’Servers’][$i][’auth_http_realm’], 22<br />

$cfg[’Servers’][$i][’auth_swekey_config’], 14, 22<br />

$cfg[’Servers’][$i][’auth_type’], 14, 22<br />

$cfg[’Servers’][$i][’bookmarktable’], 24<br />

$cfg[’Servers’][$i][’central_columns’], 27, 28<br />

$cfg[’Servers’][$i][’column_comments’], 26<br />

$cfg[’Servers’][$i][’column_info’], 25, 26<br />

$cfg[’Servers’][$i][’compress’], 21<br />

$cfg[’Servers’][$i][’connect_type’], 21<br />

$cfg[’Servers’][$i][’controlhost’], 21<br />

$cfg[’Servers’][$i][’controlpass’], 12, 21, 79<br />

$cfg[’Servers’][$i][’controlport’], 21<br />

$cfg[’Servers’][$i][’controluser’], 12, 13, 21, 79<br />

$cfg[’Servers’][$i][’designer_settings’], 28<br />

$cfg[’Servers’][$i][’export_templates’], 28<br />

$cfg[’Servers’][$i][’hide_db’], 23<br />

$cfg[’Servers’][$i][’history’], 26, 56<br />

$cfg[’Servers’][$i][’host’], 19, 20, 22<br />

$cfg[’Servers’][$i][’navigationhiding’], 27<br />

$cfg[’Servers’][$i][’nopassword’], 22<br />

$cfg[’Servers’][$i][’only_db’], 23<br />

$cfg[’Servers’][$i][’password’], 14, 22<br />

$cfg[’Servers’][$i][’pdf_pages’], 25<br />

$cfg[’Servers’][$i][’pmadb’], 18, 22–30, 39<br />

$cfg[’Servers’][$i][’port’], 20<br />

$cfg[’Servers’][$i][’recent’], 26, 27<br />

$cfg[’Servers’][$i][’relation’], 24<br />

$cfg[’Servers’][$i][’savedsearches’], 28<br />

$cfg[’Servers’][$i][’socket’], 20, 73<br />

$cfg[’Servers’][$i][’ssl’], 20<br />

122 Index


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’Servers’][$i][’ssl_ca’], 21<br />

$cfg[’Servers’][$i][’ssl_ca_path’], 21<br />

$cfg[’Servers’][$i][’ssl_cert’], 20<br />

$cfg[’Servers’][$i][’ssl_ciphers’], 21<br />

$cfg[’Servers’][$i][’ssl_key’], 20<br />

$cfg[’Servers’][$i][’table_coords’], 25<br />

$cfg[’Servers’][$i][’table_info’], 24, 25<br />

$cfg[’Servers’][$i][’table_uiprefs’], 27, 30<br />

$cfg[’Servers’][$i][’tracking’], 28, 29<br />

$cfg[’Servers’][$i][’tracking_add_drop_database’], 29<br />

$cfg[’Servers’][$i][’tracking_add_drop_table’], 29<br />

$cfg[’Servers’][$i][’tracking_add_drop_view’], 29<br />

$cfg[’Servers’][$i][’tracking_default_statements’], 29<br />

$cfg[’Servers’][$i][’tracking_version_auto_create’], 29<br />

$cfg[’Servers’][$i][’user’], 14, 22<br />

$cfg[’Servers’][$i][’userconfig’], 30<br />

$cfg[’Servers’][$i][’usergroups’], 27<br />

$cfg[’Servers’][$i][’users’], 27<br />

$cfg[’Servers’][$i][’verbose’], 22, 23, 41, 88<br />

$cfg[’SessionSavePath’], 34<br />

$cfg[’ShowAll’], 43<br />

$cfg[’ShowBrowseComments’], 53<br />

$cfg[’ShowChgPassword’], 41<br />

$cfg[’ShowCreateDb’], 41<br />

$cfg[’ShowDatabasesNavigationAsTree’], 37<br />

$cfg[’ShowDbStructureCreation’], 42<br />

$cfg[’ShowDbStructureLastCheck’], 42<br />

$cfg[’ShowDbStructureLastUpdate’], 42<br />

$cfg[’ShowFieldTypesInDataEditView’], 44<br />

$cfg[’ShowFunctionFields’], 44<br />

$cfg[’ShowGitRevision’], 42<br />

$cfg[’ShowHint’], 34<br />

$cfg[’ShowPhpInfo’], 41<br />

$cfg[’ShowPropertyComments’], 53<br />

$cfg[’ShowSQL’], 35<br />

$cfg[’ShowServerInfo’], 41<br />

$cfg[’ShowStats’], 41<br />

$cfg[’SkipLockedTables’], 35<br />

$cfg[’SuhosinDisableWarning’], 18, 71<br />

$cfg[’TableNavigationLinksMode’], 43<br />

$cfg[’TablePrimaryKeyOrder’], 52<br />

$cfg[’TabsMode’], 46<br />

$cfg[’TempDir’], 55, 66, 89<br />

$cfg[’TextareaAutoSelect’], 54<br />

$cfg[’TextareaCols’], 53<br />

$cfg[’TextareaRows’], 53<br />

$cfg[’ThBackground’], 50<br />

$cfg[’ThColor’], 50<br />

$cfg[’ThemeDefault’], 58, 74<br />

$cfg[’ThemeManager’], 58, 74<br />

$cfg[’ThemePath’], 58, 74<br />

$cfg[’ThemePerServer’], 58<br />

$cfg[’TitleDatabase’], 57<br />

$cfg[’TitleDefault’], 58<br />

$cfg[’TitleServer’], 57<br />

$cfg[’TitleTable’], 57<br />

$cfg[’TranslationWarningThreshold’], 18<br />

$cfg[’TrustedProxies’], 31, 48<br />

$cfg[’UploadDir’], 55, 67, 89<br />

$cfg[’UseDbSearch’], 36<br />

$cfg[’UserprefsDeveloperTab’], 57<br />

$cfg[’UserprefsDisallow’], 19, 57<br />

$cfg[’VersionCheck’], 33<br />

$cfg[’ZeroConf’], 11, 38<br />

$cfg[’ZipDump’], 45<br />

$cfg[’blowfish_secret’], 36<br />

A<br />

ACL, 111<br />

ActionLinksMode, 43<br />

AllowArbitraryServer, 37<br />

AllowDeny, order, 30<br />

AllowDeny, rules, 31<br />

AllowNoPassword, 30<br />

AllowRoot, 30<br />

AllowThirdPartyFraming, 19<br />

AllowUserDropDatabase, 35<br />

ArbitraryServerRegexp, 37<br />

auth_http_realm, 22<br />

auth_swekey_config, 22<br />

auth_type, 22<br />

Authentication mode, 12<br />

Config, 14<br />

Cookie, 13<br />

HTTP, 13<br />

Signon, 13<br />

Swekey, 14<br />

AvailableCharsets, 48<br />

B<br />

BgOne, 50<br />

BgTwo, 51<br />

Blowfish, 111<br />

blowfish_secret, 36<br />

bookmarktable, 24<br />

Border, 50<br />

BrowseMarkerBackground, 51<br />

BrowseMarkerColor, 51<br />

BrowseMarkerEnable, 52<br />

BrowseMIME, 56<br />

BrowsePointerBackground, 51<br />

BrowsePointerColor, 51<br />

BrowsePointerEnable, 52<br />

Browser, 111<br />

bzip2, 111<br />

BZipDump, 45<br />

Index 123


phpMyAdmin Documentation, Release 4.5.0-dev<br />

C<br />

CaptchaLoginPrivateKey, 37<br />

CaptchaLoginPublicKey, 37<br />

central_columns, 27<br />

CGI, 111<br />

Changelog, 111<br />

CharEditing, 53<br />

CharTextareaCols, 53<br />

CharTextareaRows, 54<br />

CheckConfigurationPermissions, 49<br />

Client, 111<br />

CodemirrorEnable, 35<br />

column, 111<br />

column_info, 25<br />

compress, 21<br />

CompressOnFly, 45<br />

Config<br />

Authentication mode, 14<br />

config.inc.php, 15<br />

configuration option<br />

$cfg[’ActionLinksMode’], 43<br />

$cfg[’AllowArbitraryServer’], 13, 37<br />

$cfg[’AllowThirdPartyFraming’], 19<br />

$cfg[’AllowUserDropDatabase’], 35<br />

$cfg[’ArbitraryServerRegexp’], 37<br />

$cfg[’AvailableCharsets’], 48<br />

$cfg[’BZipDump’], 45<br />

$cfg[’BgOne’], 50<br />

$cfg[’BgTwo’], 51<br />

$cfg[’Border’], 50<br />

$cfg[’BrowseMIME’], 56<br />

$cfg[’BrowseMarkerBackground’], 51<br />

$cfg[’BrowseMarkerColor’], 51<br />

$cfg[’BrowseMarkerEnable’], 52<br />

$cfg[’BrowsePointerBackground’], 51<br />

$cfg[’BrowsePointerColor’], 51<br />

$cfg[’BrowsePointerEnable’], 51, 52<br />

$cfg[’CSPAllow’], 49<br />

$cfg[’CaptchaLoginPrivateKey’], 15, 37<br />

$cfg[’CaptchaLoginPublicKey’], 15, 37<br />

$cfg[’CharEditing’], 53, 54<br />

$cfg[’CharTextareaCols’], 53<br />

$cfg[’CharTextareaRows’], 54<br />

$cfg[’CheckConfigurationPermissions’], 49<br />

$cfg[’CodemirrorEnable’], 35<br />

$cfg[’CompressOnFly’], 45, 75<br />

$cfg[’Confirm’], 35<br />

$cfg[’ConsoleEnterExecutes’], 19<br />

$cfg[’DBG’], 59<br />

$cfg[’DBG’][’demo’], 59<br />

$cfg[’DBG’][’sql’], 59<br />

$cfg[’DefaultConnectionCollation’], 47<br />

$cfg[’DefaultForeignKeyChecks’], 35<br />

$cfg[’DefaultFunctions’], 59<br />

$cfg[’DefaultLang’], 47<br />

$cfg[’DefaultQueryDatabase’], 58<br />

$cfg[’DefaultQueryTable’], 58<br />

$cfg[’DefaultTabDatabase’], 46<br />

$cfg[’DefaultTabServer’], 46<br />

$cfg[’DefaultTabTable’], 46<br />

$cfg[’DisableMultiTableMaintenance’], 49<br />

$cfg[’DisplayServersList’], 39<br />

$cfg[’EnableAutocompleteForTablesAndColumns’],<br />

54<br />

$cfg[’ExecTimeLimit’], 34, 83<br />

$cfg[’Export’], 45<br />

$cfg[’Export’][’charset’], 48<br />

$cfg[’Export’][’method’], 45<br />

$cfg[’FilterLanguages’], 47<br />

$cfg[’FirstLevelNavigationItems’], 38<br />

$cfg[’FontFamily’], 51<br />

$cfg[’FontFamilyFixed’], 51<br />

$cfg[’ForceSSL’], 34<br />

$cfg[’ForeignKeyDropdownOrder’], 44<br />

$cfg[’ForeignKeyMaxLimit’], 44, 87<br />

$cfg[’GD2Available’], 49<br />

$cfg[’GZipDump’], 45<br />

$cfg[’GridEditing’], 43<br />

$cfg[’HideStructureActions’], 42<br />

$cfg[’IconvExtraParams’], 48<br />

$cfg[’IgnoreMultiSubmitErrors’], 36<br />

$cfg[’Import’], 45<br />

$cfg[’Import’][’charset’], 48<br />

$cfg[’InitialSlidersState’], 57<br />

$cfg[’InsertRows’], 44<br />

$cfg[’Lang’], 47<br />

$cfg[’LimitChars’], 52<br />

$cfg[’LinkLengthLimit’], 49<br />

$cfg[’LoginCookieDeleteAll’], 37<br />

$cfg[’LoginCookieRecall’], 36<br />

$cfg[’LoginCookieStore’], 36<br />

$cfg[’LoginCookieValidity’], 36<br />

$cfg[’LoginCookieValidityDisableWarning’], 18<br />

$cfg[’LongtextDoubleTextarea’], 54<br />

$cfg[’MainBackground’], 50<br />

$cfg[’MaxCharactersInDisplayedSQL’], 34<br />

$cfg[’MaxDbList’], 33<br />

$cfg[’MaxExactCount’], 56, 77<br />

$cfg[’MaxExactCountViews’], 57<br />

$cfg[’MaxNavigationItems’], 38<br />

$cfg[’MaxRows’], 43<br />

$cfg[’MaxSizeForInputField’], 53<br />

$cfg[’MaxTableList’], 33<br />

$cfg[’MemoryLimit’], 34<br />

$cfg[’MinSizeForInputField’], 53<br />

$cfg[’MysqlMinVersion’], 42<br />

$cfg[’NaturalOrder’], 57<br />

$cfg[’NaviBackground’], 50<br />

124 Index


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’NaviPointerBackground’], 50<br />

$cfg[’NaviPointerColor’], 50<br />

$cfg[’NaviWidth’], 50<br />

$cfg[’NavigationDisplayLogo’], 39<br />

$cfg[’NavigationDisplayServers’], 39<br />

$cfg[’NavigationLinkWithMainPanel’], 39<br />

$cfg[’NavigationLogoLink’], 39<br />

$cfg[’NavigationLogoLinkWindow’], 39<br />

$cfg[’NavigationTreeDbSeparator’], 38<br />

$cfg[’NavigationTreeDefaultTabTable’], 26, 40<br />

$cfg[’NavigationTreeDefaultTabTable2’], 40<br />

$cfg[’NavigationTreeDisplayDbFilterMinimum’],<br />

39<br />

$cfg[’NavigationTreeDisplayItemFilterMinimum’],<br />

39<br />

$cfg[’NavigationTreeEnableExpansion’], 40<br />

$cfg[’NavigationTreeEnableGrouping’], 38<br />

$cfg[’NavigationTreePointerEnable’], 52<br />

$cfg[’NavigationTreeShowEvents’], 41<br />

$cfg[’NavigationTreeShowFunctions’], 40<br />

$cfg[’NavigationTreeShowProcedures’], 41<br />

$cfg[’NavigationTreeShowTables’], 40<br />

$cfg[’NavigationTreeShowViews’], 40<br />

$cfg[’NavigationTreeTableLevel’], 38<br />

$cfg[’NavigationTreeTableSeparator’], 38, 76<br />

$cfg[’NumFavoriteTables’], 90<br />

$cfg[’NumRecentTables’], 26, 38<br />

$cfg[’OBGzip’], 48, 65, 69, 73<br />

$cfg[’Order’], 43<br />

$cfg[’PDFDefaultPageSize’], 47<br />

$cfg[’PDFPageSizes’], 47<br />

$cfg[’PersistentConnections’], 34<br />

$cfg[’PmaAbsoluteUri’], 17, 34, 74, 75, 79, 81<br />

$cfg[’PmaNoRelation_DisableWarning’], 17<br />

$cfg[’PropertiesNumColumns’], 46<br />

$cfg[’ProtectBinary’], 44<br />

$cfg[’ProxyPass’], 33<br />

$cfg[’ProxyUrl’], 33<br />

$cfg[’ProxyUser’], 33<br />

$cfg[’QueryHistoryDB’], 56<br />

$cfg[’QueryHistoryMax’], 26, 56<br />

$cfg[’RecodingEngine’], 48<br />

$cfg[’RelationalDisplay’], 43<br />

$cfg[’RememberSorting’], 27, 52<br />

$cfg[’RepeatCells’], 56<br />

$cfg[’ReservedWordDisableWarning’], 18<br />

$cfg[’RetainQueryBox’], 35<br />

$cfg[’RowActionLinks’], 52<br />

$cfg[’RowActionLinksWithoutUnique’], 52<br />

$cfg[’RowActionType’], 43<br />

$cfg[’SQLQuery’][’Edit’], 54<br />

$cfg[’SQLQuery’][’Explain’], 54<br />

$cfg[’SQLQuery’][’Refresh’], 54<br />

$cfg[’SQLQuery’][’ShowAsPHP’], 54<br />

$cfg[’SaveCellsAtOnce’], 44<br />

$cfg[’SaveDir’], 55<br />

$cfg[’SendErrorReports’], 18<br />

$cfg[’ServerDefault’], 32, 33<br />

$cfg[’ServerLibraryDifference_DisableWarning’],<br />

18<br />

$cfg[’Servers’], 13, 19<br />

$cfg[’Servers’][$i][’AllowDeny’][’order’], 14, 30,<br />

49<br />

$cfg[’Servers’][$i][’AllowDeny’][’rules’], 14, 15,<br />

30, 31, 49, 79<br />

$cfg[’Servers’][$i][’AllowNoPassword’], 30<br />

$cfg[’Servers’][$i][’AllowRoot’], 30<br />

$cfg[’Servers’][$i][’DisableIS’], 32<br />

$cfg[’Servers’][$i][’LogoutURL’], 32<br />

$cfg[’Servers’][$i][’MaxTableUiprefs’], 30<br />

$cfg[’Servers’][$i][’SessionTimeZone’], 30<br />

$cfg[’Servers’][$i][’SignonScript’], 13, 14, 32<br />

$cfg[’Servers’][$i][’SignonSession’], 13, 14, 32<br />

$cfg[’Servers’][$i][’SignonURL’], 13, 14, 32<br />

$cfg[’Servers’][$i][’auth_http_realm’], 22<br />

$cfg[’Servers’][$i][’auth_swekey_config’], 14, 22<br />

$cfg[’Servers’][$i][’auth_type’], 14, 22<br />

$cfg[’Servers’][$i][’bookmarktable’], 24<br />

$cfg[’Servers’][$i][’central_columns’], 27, 28<br />

$cfg[’Servers’][$i][’column_comments’], 26<br />

$cfg[’Servers’][$i][’column_info’], 25, 26<br />

$cfg[’Servers’][$i][’compress’], 21<br />

$cfg[’Servers’][$i][’connect_type’], 21<br />

$cfg[’Servers’][$i][’controlhost’], 21<br />

$cfg[’Servers’][$i][’controlpass’], 12, 21, 79<br />

$cfg[’Servers’][$i][’controlport’], 21<br />

$cfg[’Servers’][$i][’controluser’], 12, 13, 21, 79<br />

$cfg[’Servers’][$i][’designer_settings’], 28<br />

$cfg[’Servers’][$i][’export_templates’], 28<br />

$cfg[’Servers’][$i][’hide_db’], 23<br />

$cfg[’Servers’][$i][’history’], 26, 56<br />

$cfg[’Servers’][$i][’host’], 19, 20, 22<br />

$cfg[’Servers’][$i][’navigationhiding’], 27<br />

$cfg[’Servers’][$i][’nopassword’], 22<br />

$cfg[’Servers’][$i][’only_db’], 23<br />

$cfg[’Servers’][$i][’password’], 14, 22<br />

$cfg[’Servers’][$i][’pdf_pages’], 25<br />

$cfg[’Servers’][$i][’pmadb’], 18, 22–30, 39<br />

$cfg[’Servers’][$i][’port’], 20<br />

$cfg[’Servers’][$i][’recent’], 26, 27<br />

$cfg[’Servers’][$i][’relation’], 24<br />

$cfg[’Servers’][$i][’savedsearches’], 28<br />

$cfg[’Servers’][$i][’socket’], 20, 73<br />

$cfg[’Servers’][$i][’ssl’], 20<br />

$cfg[’Servers’][$i][’ssl_ca’], 21<br />

$cfg[’Servers’][$i][’ssl_ca_path’], 21<br />

$cfg[’Servers’][$i][’ssl_cert’], 20<br />

$cfg[’Servers’][$i][’ssl_ciphers’], 21<br />

Index 125


phpMyAdmin Documentation, Release 4.5.0-dev<br />

$cfg[’Servers’][$i][’ssl_key’], 20<br />

$cfg[’Servers’][$i][’table_coords’], 25<br />

$cfg[’Servers’][$i][’table_info’], 24, 25<br />

$cfg[’Servers’][$i][’table_uiprefs’], 27, 30<br />

$cfg[’Servers’][$i][’tracking’], 28, 29<br />

$cfg[’Servers’][$i][’tracking_add_drop_database’],<br />

29<br />

$cfg[’Servers’][$i][’tracking_add_drop_table’], 29<br />

$cfg[’Servers’][$i][’tracking_add_drop_view’], 29<br />

$cfg[’Servers’][$i][’tracking_default_statements’],<br />

29<br />

$cfg[’Servers’][$i][’tracking_version_auto_create’],<br />

29<br />

$cfg[’Servers’][$i][’user’], 14, 22<br />

$cfg[’Servers’][$i][’userconfig’], 30<br />

$cfg[’Servers’][$i][’usergroups’], 27<br />

$cfg[’Servers’][$i][’users’], 27<br />

$cfg[’Servers’][$i][’verbose’], 22, 23, 41, 88<br />

$cfg[’SessionSavePath’], 34<br />

$cfg[’ShowAll’], 43<br />

$cfg[’ShowBrowseComments’], 53<br />

$cfg[’ShowChgPassword’], 41<br />

$cfg[’ShowCreateDb’], 41<br />

$cfg[’ShowDatabasesNavigationAsTree’], 37<br />

$cfg[’ShowDbStructureCreation’], 42<br />

$cfg[’ShowDbStructureLastCheck’], 42<br />

$cfg[’ShowDbStructureLastUpdate’], 42<br />

$cfg[’ShowFieldTypesInDataEditView’], 44<br />

$cfg[’ShowFunctionFields’], 44<br />

$cfg[’ShowGitRevision’], 42<br />

$cfg[’ShowHint’], 34<br />

$cfg[’ShowPhpInfo’], 41<br />

$cfg[’ShowPropertyComments’], 53<br />

$cfg[’ShowSQL’], 35<br />

$cfg[’ShowServerInfo’], 41<br />

$cfg[’ShowStats’], 41<br />

$cfg[’SkipLockedTables’], 35<br />

$cfg[’SuhosinDisableWarning’], 18, 71<br />

$cfg[’TableNavigationLinksMode’], 43<br />

$cfg[’TablePrimaryKeyOrder’], 52<br />

$cfg[’TabsMode’], 46<br />

$cfg[’TempDir’], 55, 66, 89<br />

$cfg[’TextareaAutoSelect’], 54<br />

$cfg[’TextareaCols’], 53<br />

$cfg[’TextareaRows’], 53<br />

$cfg[’ThBackground’], 50<br />

$cfg[’ThColor’], 50<br />

$cfg[’ThemeDefault’], 58, 74<br />

$cfg[’ThemeManager’], 58, 74<br />

$cfg[’ThemePath’], 58, 74<br />

$cfg[’ThemePerServer’], 58<br />

$cfg[’TitleDatabase’], 57<br />

$cfg[’TitleDefault’], 58<br />

$cfg[’TitleServer’], 57<br />

$cfg[’TitleTable’], 57<br />

$cfg[’TranslationWarningThreshold’], 18<br />

$cfg[’TrustedProxies’], 31, 48<br />

$cfg[’UploadDir’], 55, 67, 89<br />

$cfg[’UseDbSearch’], 36<br />

$cfg[’UserprefsDeveloperTab’], 57<br />

$cfg[’UserprefsDisallow’], 19, 57<br />

$cfg[’VersionCheck’], 33<br />

$cfg[’ZeroConf’], 11, 38<br />

$cfg[’ZipDump’], 45<br />

$cfg[’blowfish_secret’], 36<br />

Configuration storage, 11<br />

Confirm, 35<br />

connect_type, 21<br />

ConsoleEnterExecutes, 19<br />

controlhost, 21<br />

controlpass, 21<br />

controlport, 21<br />

controluser, 21<br />

Cookie, 112<br />

Authentication mode, 13<br />

CSPAllow, 49<br />

CSV, 112<br />

D<br />

database, 112<br />

DB, 112<br />

DBG, 59<br />

DBG, demo, 59<br />

DBG, sql, 59<br />

DefaultConnectionCollation, 47<br />

DefaultForeignKeyChecks, 35<br />

DefaultFunctions, 59<br />

DefaultLang, 47<br />

DefaultQueryDatabase, 58<br />

DefaultQueryTable, 58<br />

DefaultTabDatabase, 46<br />

DefaultTabServer, 46<br />

DefaultTabTable, 46<br />

designer_settings, 28<br />

DisableIS, 32<br />

DisableMultiTableMaintenance, 49<br />

DisplayServersList, 39<br />

E<br />

EnableAutocompleteForTablesAndColumns, 54<br />

Engine, 112<br />

ExecTimeLimit, 34<br />

Export, 45<br />

Export, method, 45<br />

export_templates, 28<br />

extension, 112<br />

126 Index


phpMyAdmin Documentation, Release 4.5.0-dev<br />

F<br />

FAQ, 112<br />

Field, 112<br />

FilterLanguages, 47<br />

FirstLevelNavigationItems, 38<br />

FontFamily, 51<br />

FontFamilyFixed, 51<br />

ForceSSL, 34<br />

foreign key, 112<br />

ForeignKeyDropdownOrder, 44<br />

ForeignKeyMaxLimit, 44<br />

FPDF, 112<br />

G<br />

GD, 112<br />

GD2, 112<br />

GD2Available, 49<br />

GridEditing, 43<br />

gzip, 112<br />

GZipDump, 45<br />

H<br />

hide_db, 23<br />

HideStructureActions, 42<br />

history, 26<br />

host, 19, 113<br />

hostname, 113<br />

HTTP, 113<br />

Authentication mode, 13<br />

https, 113<br />

I<br />

IconvExtraParams, 48<br />

IEC, 113<br />

IgnoreMultiSubmitErrors, 36<br />

IIS, 113<br />

Import, 45<br />

Index, 113<br />

InitialSlidersState, 57<br />

InsertRows, 44<br />

IP, 113<br />

IP Address, 113<br />

IPv6, 113<br />

ISAPI, 113<br />

ISO, 114<br />

ISP, 113<br />

J<br />

JPEG, 114<br />

JPG, 114<br />

K<br />

Key, 114<br />

L<br />

Lang, 47<br />

LATEX, 114<br />

LimitChars, 52<br />

LinkLengthLimit, 49<br />

LoginCookieDeleteAll, 37<br />

LoginCookieRecall, 36<br />

LoginCookieStore, 36<br />

LoginCookieValidity, 36<br />

LoginCookieValidityDisableWarning, 18<br />

LogoutURL, 32<br />

LongtextDoubleTextarea, 54<br />

M<br />

Mac, 114<br />

Mac OS X, 114<br />

MainBackground, 50<br />

MaxCharactersInDisplayedSQL, 34<br />

MaxDbList, 33<br />

MaxExactCount, 56<br />

MaxExactCountViews, 57<br />

MaxNavigationItems, 38<br />

MaxRows, 43<br />

MaxSizeForInputField, 53<br />

MaxTableList, 33<br />

MaxTableUiprefs, 30<br />

MCrypt, 114<br />

mcrypt, 114<br />

MemoryLimit, 34<br />

MIME, 114<br />

MinSizeForInputField, 53<br />

module, 114<br />

MySQL, 114<br />

mysql, 115<br />

mysqli, 114<br />

MysqlMinVersion, 42<br />

N<br />

NaturalOrder, 57<br />

NaviBackground, 50<br />

NavigationDisplayLogo, 39<br />

NavigationDisplayServers, 39<br />

navigationhiding, 27<br />

NavigationLinkWithMainPanel, 39<br />

NavigationLogoLink, 39<br />

NavigationLogoLinkWindow, 39<br />

NavigationTreeDbSeparator, 38<br />

NavigationTreeDefaultTabTable, 40<br />

NavigationTreeDefaultTabTable2, 40<br />

NavigationTreeDisplayDbFilterMinimum, 39<br />

NavigationTreeDisplayItemFilterMinimum, 39<br />

NavigationTreeEnableExpansion, 40<br />

NavigationTreeEnableGrouping, 38<br />

Index 127


phpMyAdmin Documentation, Release 4.5.0-dev<br />

NavigationTreePointerEnable, 52<br />

NavigationTreeShowEvents, 41<br />

NavigationTreeShowFunctions, 40<br />

NavigationTreeShowProcedures, 41<br />

NavigationTreeShowTables, 40<br />

NavigationTreeShowViews, 40<br />

NavigationTreeTableLevel, 38<br />

NavigationTreeTableSeparator, 38<br />

NaviPointerBackground, 50<br />

NaviPointerColor, 50<br />

NaviWidth, 50<br />

nopassword, 22<br />

NumRecentTables, 38<br />

O<br />

OBGzip, 48<br />

only_db, 23<br />

OpenDocument, 115<br />

Order, 43<br />

OS X, 115<br />

P<br />

password, 22<br />

PCRE, 115<br />

PDF, 115<br />

pdf_pages, 25<br />

PDFDefaultPageSize, 47<br />

PDFPageSizes, 47<br />

PEAR, 115<br />

PersistentConnections, 34<br />

PHP, 115<br />

phpMyAdmin configuration storage, 11<br />

PmaAbsoluteUri, 17<br />

pmadb, 11, 23<br />

PmaNoRelation_DisableWarning, 17<br />

port, 20, 115<br />

PropertiesNumColumns, 46<br />

ProtectBinary, 44<br />

ProxyPass, 33<br />

ProxyUrl, 33<br />

ProxyUser, 33<br />

Q<br />

QueryHistoryDB, 56<br />

QueryHistoryMax, 56<br />

R<br />

recent, 26<br />

RecodingEngine, 48<br />

relation, 24<br />

RelationalDisplay, 43<br />

RememberSorting, 52<br />

RepeatCells, 56<br />

ReservedWordDisableWarning, 18<br />

RetainQueryBox, 35<br />

RFC, 115<br />

RFC 1867, 75<br />

RFC 1952, 115<br />

RFC 2616, 70<br />

RFC 1952, 115<br />

Row (record, tuple), 115<br />

RowActionLinks, 52<br />

RowActionLinksWithoutUnique, 52<br />

RowActionType, 43<br />

S<br />

SaveCellsAtOnce, 44<br />

SaveDir, 55<br />

savedsearches, 28<br />

SendErrorReports, 18<br />

Server, 116<br />

server configuration<br />

AllowDeny, order, 30<br />

AllowDeny, rules, 31<br />

AllowNoPassword, 30<br />

AllowRoot, 30<br />

auth_http_realm, 22<br />

auth_swekey_config, 22<br />

auth_type, 22<br />

bookmarktable, 24<br />

central_columns, 27<br />

column_info, 25<br />

compress, 21<br />

connect_type, 21<br />

controlhost, 21<br />

controlpass, 21<br />

controlport, 21<br />

controluser, 21<br />

designer_settings, 28<br />

DisableIS, 32<br />

export_templates, 28<br />

hide_db, 23<br />

history, 26<br />

host, 19<br />

LogoutURL, 32<br />

MaxTableUiprefs, 30<br />

navigationhiding, 27<br />

nopassword, 22<br />

only_db, 23<br />

password, 22<br />

pdf_pages, 25<br />

pmadb, 23<br />

port, 20<br />

recent, 26<br />

relation, 24<br />

savedsearches, 28<br />

SessionTimeZone, 30<br />

SignonScript, 32<br />

128 Index


phpMyAdmin Documentation, Release 4.5.0-dev<br />

SignonSession, 32<br />

SignonURL, 32<br />

socket, 20<br />

ssl, 20<br />

ssl_ca, 21<br />

ssl_ca_path, 21<br />

ssl_cert, 20<br />

ssl_ciphers, 21<br />

ssl_key, 20<br />

table_coords, 25<br />

table_info, 24<br />

table_uiprefs, 27<br />

tracking, 28<br />

tracking_add_drop_database, 29<br />

tracking_add_drop_table, 29<br />

tracking_add_drop_view, 29<br />

tracking_default_statements, 29<br />

tracking_version_auto_create, 29<br />

user, 22<br />

userconfig, 30<br />

usergroups, 27<br />

users, 27<br />

verbose, 23<br />

ServerDefault, 32<br />

ServerLibraryDifference_DisableWarning, 18<br />

Servers, 19<br />

SessionSavePath, 34<br />

SessionTimeZone, 30<br />

Setup script, 9<br />

ShowAll, 43<br />

ShowBrowseComments, 53<br />

ShowChgPassword, 41<br />

ShowCreateDb, 41<br />

ShowDatabasesNavigationAsTree, 37<br />

ShowDbStructureCreation, 42<br />

ShowDbStructureLastCheck, 42<br />

ShowDbStructureLastUpdate, 42<br />

ShowFieldTypesInDataEditView, 44<br />

ShowFunctionFields, 44<br />

ShowGitRevision, 42<br />

ShowHint, 34<br />

ShowPhpInfo, 41<br />

ShowPropertyComments, 53<br />

ShowServerInfo, 41<br />

ShowSQL, 35<br />

ShowStats, 41<br />

Signon<br />

Authentication mode, 13<br />

SignonScript, 32<br />

SignonSession, 32<br />

SignonURL, 32<br />

SkipLockedTables, 35<br />

socket, 20, 116<br />

SQL, 116<br />

SQLQuery, Edit, 54<br />

SQLQuery, Explain, 54<br />

SQLQuery, Refresh, 54<br />

SQLQuery, ShowAsPHP, 54<br />

SSL, 116<br />

ssl, 20<br />

ssl_ca, 21<br />

ssl_ca_path, 21<br />

ssl_cert, 20<br />

ssl_ciphers, 21<br />

ssl_key, 20<br />

Storage Engines, 116<br />

Stored procedure, 116<br />

SuhosinDisableWarning, 18<br />

Swekey<br />

Authentication mode, 14<br />

T<br />

table, 116<br />

table_coords, 25<br />

table_info, 24<br />

table_uiprefs, 27<br />

TableNavigationLinksMode, 43<br />

TablePrimaryKeyOrder, 52<br />

TabsMode, 46<br />

tar, 116<br />

TCP, 116<br />

TCPDF, 116<br />

TempDir, 55<br />

TextareaAutoSelect, 54<br />

TextareaCols, 53<br />

TextareaRows, 53<br />

ThBackground, 50<br />

ThColor, 50<br />

ThemeDefault, 58<br />

ThemeManager, 58<br />

ThemePath, 58<br />

ThemePerServer, 58<br />

TitleDatabase, 57<br />

TitleDefault, 58<br />

TitleServer, 57<br />

TitleTable, 57<br />

tracking, 28<br />

tracking_add_drop_database, 29<br />

tracking_add_drop_table, 29<br />

tracking_add_drop_view, 29<br />

tracking_default_statements, 29<br />

tracking_version_auto_create, 29<br />

TranslationWarningThreshold, 18<br />

trigger, 116<br />

TrustedProxies, 48<br />

U<br />

UFPDF, 117<br />

Index 129


phpMyAdmin Documentation, Release 4.5.0-dev<br />

UploadDir, 55<br />

URL, 117<br />

UseDbSearch, 36<br />

user, 22<br />

userconfig, 30<br />

usergroups, 27<br />

UserprefsDeveloperTab, 57<br />

UserprefsDisallow, 57<br />

users, 27<br />

V<br />

verbose, 23<br />

VersionCheck, 33<br />

W<br />

Webserver, 117<br />

X<br />

XML, 117<br />

Z<br />

ZeroConf, 38<br />

ZIP, 117<br />

ZipDump, 45<br />

zlib, 117<br />

130 Index

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!