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