3277 lines
151 KiB
Plaintext
3277 lines
151 KiB
Plaintext
* Top
|
|
* Requirements
|
|
* Introduction
|
|
* Installation
|
|
* Setup script
|
|
* Configuration
|
|
* Transformations
|
|
* FAQ
|
|
* Developers
|
|
* Credits
|
|
* Translators
|
|
* Glossary
|
|
|
|
phpMyAdmin 2.10.0.2 Documentation
|
|
|
|
* phpMyAdmin homepage
|
|
* SourceForge phpMyAdmin project page
|
|
* Official phpMyAdmin wiki
|
|
* Local documents:
|
|
+ Version history: ChangeLog
|
|
+ General notes: README
|
|
+ License: LICENSE
|
|
* Documentation version: $Id: Documentation.html 10052 2007-03-02 17:35:25Z
|
|
lem9 $
|
|
|
|
Requirements
|
|
|
|
* PHP
|
|
+ You need PHP 4.1.0 or newer, with session support (see FAQ 1.31)
|
|
+ You need GD2 support in PHP to display inline thumbnails of JPEGs
|
|
("image/jpeg: inline") with their original aspect ratio
|
|
+ You need PHP 4.3.0 or newer to use the "text/plain: external"
|
|
MIME-based transformation
|
|
* MySQL 3.23.32 or newer (details);
|
|
* Not really a requirement but a strong suggestion: if you are using the
|
|
"cookie" authentication method, having the mcrypt PHP extension on your web
|
|
server accelerates not only the login phase but every other action that you
|
|
do in phpMyAdmin.
|
|
* Web browser with cookies enabled.
|
|
|
|
Introduction
|
|
|
|
phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as a
|
|
single database. To accomplish 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 look up
|
|
the appropriate part in the MySQL manual.
|
|
|
|
Currently phpMyAdmin can:
|
|
|
|
* browse and drop databases, tables, views, fields and indexes
|
|
* create, copy, drop, rename and alter databases, tables, fields and indexes
|
|
* maintenance server, databases and tables, with proposals on server
|
|
configuration
|
|
* execute, edit and bookmark any SQL-statement, even batch-queries
|
|
* load text files into tables
|
|
* create^1 and read dumps of tables
|
|
* export^1 data to various formats: CSV, XML, PDF, ISO/IEC 26300 -
|
|
OpenDocument Text and Spreadsheet, Word, Excel and L^AT[E]X formats
|
|
* administer multiple servers
|
|
* manage MySQL users and privileges
|
|
* check referential integrity in MyISAM tables
|
|
* using Query-by-example (QBE), create complex queries automatically
|
|
connecting required tables
|
|
* create PDF graphics of your Database layout
|
|
* search globally in a database or a subset of it
|
|
* transform stored data into any format using a set of predefined functions,
|
|
like displaying BLOB-data as image or download-link
|
|
* support InnoDB tables and foreign keys (see FAQ 3.6)
|
|
* support mysqli, the improved MySQL extension (see FAQ 1.17)
|
|
* communicate in 50 different languages
|
|
|
|
A word about users:
|
|
|
|
Many people have difficulty understanding the concept of user management with
|
|
regards to phpMyAdmin. When a user logs in to phpMyAdmin, that username and
|
|
password are passed directly to MySQL. phpMyAdmin does no account management on
|
|
its own (other than allowing one to manipulate the MySQL user account
|
|
information); all users must be valid MySQL users.
|
|
|
|
^1) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dumps and
|
|
CSV exports if you use PHP with Zlib support (--with-zlib) and/or Bzip2 support
|
|
(--with-bz2). Proper support may also need changes in php.ini.
|
|
|
|
Installation
|
|
|
|
1. Quick Install
|
|
2. Setup script usage
|
|
3. Linked-tables infrastructure
|
|
4. Upgrading from an older version
|
|
5. Using authentication modes
|
|
|
|
phpMyAdmin does not apply any special security methods to the MySQL database
|
|
server. It is still the system administrator's job to grant permissions on the
|
|
MySQL databases properly. phpMyAdmin's "Privileges" page can be used for this.
|
|
|
|
Warning for Mac users:
|
|
if you are on a Mac OS version before OS X, StuffIt unstuffs with Mac formats.
|
|
So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts
|
|
before uploading them to your server, as PHP seems not to like Mac-style end of
|
|
lines character ("\r").
|
|
|
|
Quick Install
|
|
|
|
1. Choose an appropriate distribution kit from the phpmyadmin.net Downloads
|
|
page. Some kits contain only the English messages, others contain all
|
|
languages in UTF-8 format (this should be fine in most situations), others
|
|
contain all languages and all character sets. We'll assume you chose a kit
|
|
whose name looks like phpMyAdmin-x.x.x-all-languages.tar.gz.
|
|
2. Untar or unzip the distribution (be sure to unzip the subdirectories): tar
|
|
-xzvf phpMyAdmin_x.x.x-all-languages.tar.gz in your webserver's document
|
|
root. If you don't have direct access to your document root, put the files
|
|
in a directory on your local machine, and, after step 4, transfer the
|
|
directory on your web server using, for example, ftp.
|
|
3. Ensure that all the scripts have the appropriate owner (if PHP is running
|
|
in safe mode, having some scripts with an owner different from the owner of
|
|
other scripts will be a problem). See FAQ 4.2 and FAQ 1.26 for suggestions.
|
|
4. Now you must configure your installation. There are two methods that can be
|
|
used. Traditionally, users have hand-edited a copy of config.inc.php, but
|
|
now a wizard-style setup script is provided for those who prefer a
|
|
graphical installation. Creating a config.inc.php is still a quick way to
|
|
get started and needed for some advanced features.
|
|
+ To manually create the file, simply use your text editor to create the
|
|
file config.inc.php (you can copy config.sample.inc.php to get minimal
|
|
configuration file) in the main (top-level) phpMyAdmin directory (the
|
|
one that contains index.php). phpMyAdmin first loads libraries/
|
|
config.default.php and then overrides those values with anything found
|
|
in config.inc.php. If the default value is okay for a particular
|
|
setting, there is no need to include it in config.inc.php. You'll need
|
|
a few directives to get going, a simple configuration may look like
|
|
this:
|
|
|
|
<?php
|
|
$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
|
|
|
|
$i=0;
|
|
$i++;
|
|
$cfg['Servers'][$i]['auth_type'] = 'cookie';
|
|
?>
|
|
|
|
Or, if you prefer to not be prompted every time you log in:
|
|
|
|
<?php
|
|
|
|
$i=0;
|
|
$i++;
|
|
$cfg['Servers'][$i]['user'] = 'root';
|
|
$cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password
|
|
?>
|
|
|
|
For a full explanation of possible configuration values, see the
|
|
Configuration Section of this document.
|
|
+ Instead of manually editing config.inc.php, you can use the Setup
|
|
Script. First you must manually create a folder config in the
|
|
phpMyAdmin directory. This is a security measure. On a Linux/Unix
|
|
system you can use the following commands:
|
|
|
|
cd phpMyAdmin
|
|
mkdir config # create directory for saving
|
|
chmod o+rw config # give it world writable permissions
|
|
|
|
And to edit an existing configuration, copy it over first:
|
|
|
|
cp config.inc.php config/ # copy current configuration for editing
|
|
chmod o+w config/config.inc.php # give it world writable permissions
|
|
|
|
On other platforms, simply create the folder and ensure that your web
|
|
server has read and write access to it. FAQ 1.26 can help with this.
|
|
|
|
Next, open scripts/setup.php in your browser. Note that changes are not
|
|
saved to disk until explicitly choose Save from the Configuration area
|
|
of the screen. Normally the script saves the new config.inc.php to the
|
|
config/ directory, but if the webserver does not have the proper
|
|
permissions you may see the error "Cannot load or save configuration."
|
|
Ensure that the config/ directory exists and has the proper permissions
|
|
- or use the Download link to save the config file locally and upload
|
|
(via FTP or some similar means) to the proper location.
|
|
|
|
Once the file has been saved, it must be moved out of the config/
|
|
directory and the permissions must be reset, again as a security
|
|
measure:
|
|
|
|
mv config/config.inc.php . # move file to current directory
|
|
chmod o-rw config.inc.php # remove world read and write permissions
|
|
|
|
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 some advanced
|
|
options which the setup script does not provide.
|
|
5. If you are using the auth_type "config", it is suggested that you protect
|
|
the phpMyAdmin installation directory because using config does not require
|
|
a user to enter a password to access the phpMyAdmin installation. Use of an
|
|
alternate authentication method is recommended, for example with HTTP?AUTH
|
|
in a .htaccess file or switch to using auth_type cookie or http. See the
|
|
multi?user sub?section of this FAQ for additional information, especially
|
|
FAQ 4.4.
|
|
6. Open the main phpMyAdmin directory in your browser. phpMyAdmin should now
|
|
display a welcome screen and your databases, or a login dialog if using
|
|
HTTP or cookie authentication mode.
|
|
7. You should deny access to the ./libraries subfolder in your webserver
|
|
configuration. For Apache you can use supplied .htaccess file in that
|
|
folder, for other webservers, you should configure this yourself. Such
|
|
configuration prevents from possible path exposure and cross side scripting
|
|
vulnerabilities that might happen to be found in that code.
|
|
|
|
Linked-tables infrastructure
|
|
|
|
For a whole set of new features (bookmarks, comments, SQL-history,
|
|
PDF-generation, field contents transformation, etc.) you need to create a set
|
|
of special tables. Those tables can be located in your own database, or in a
|
|
central database for a multi-user installation (this database would then be
|
|
accessed by the controluser, so no other user should have rights to it).
|
|
|
|
Please look at your ./scripts/ directory, where you should find a file called
|
|
create_tables.sql. (If you are using a Windows server, pay special attention to
|
|
FAQ 1.23).
|
|
|
|
If your MySQL server's version is 4.1.2 or later, please use ./scripts/
|
|
create_tables_mysql_4_1_2+.sql instead, for a new installation.
|
|
|
|
If you already had this infrastructure and upgraded to MySQL 4.1.2 or later,
|
|
please use ./scripts/upgrade_tables_mysql_4_1_2+.sql.
|
|
|
|
You can use your phpMyAdmin to create the tables for you. Please be aware that
|
|
you may need special (administrator) privileges to create the database and
|
|
tables, and that the script may need some tuning, depending on the database
|
|
name.
|
|
|
|
After having imported the ./scripts/create_tables.sql file, you should specify
|
|
the table names in your ./config.inc.php file. The directives used for that can
|
|
be found in the Configuration section. You will also need to have a controluser
|
|
with the proper rights to those tables (see section Using authentication modes
|
|
below).
|
|
|
|
Upgrading from an older version
|
|
|
|
Simply copy ./config.inc.php from your previous installation into the newly
|
|
unpacked one. Configuration files from very old versions (2.3.0 or older) may
|
|
require some tweaking as some options have been changed or removed.
|
|
|
|
You should not copy libraries/config.default.php over config.inc.php because
|
|
the default configuration file is version-specific.
|
|
|
|
If you have upgraded your MySQL server from a version older than 4.1.2 to
|
|
version 4.1.2 or newer and if you use the pmadb/linked table infrastructure,
|
|
you should run the SQL script found in scripts/upgrade_tables_mysql_4_1_2+.sql.
|
|
|
|
Using authentication modes
|
|
|
|
* HTTP and cookie authentication modes are recommended in a multi-user
|
|
environment where you want to give users access to their own database and
|
|
don't want them to play around with others.
|
|
Nevertheless be aware that MS Internet Explorer seems to be really buggy
|
|
about cookies, at least till version 6, and PHP 4.1.1 is also a bit buggy
|
|
in this area!
|
|
Even in a single-user environment, you might prefer to use HTTP or cookie
|
|
mode so that your user/password pair are not in clear in the configuration
|
|
file.
|
|
* HTTP and cookie authentication modes are more secure: the MySQL login
|
|
information does not need to be set in the phpMyAdmin configuration file
|
|
(except possibly for the controluser).
|
|
However, keep in mind that the password travels in plain text, unless you
|
|
are using the HTTPS protocol.
|
|
In cookie mode, the password is stored, encrypted with the blowfish
|
|
algorithm, in a temporary cookie.
|
|
* Note: starting with phpMyAdmin 2.6.1, this section is only applicable if
|
|
your MySQL server is older than 4.1.2, or is running with
|
|
--skip-show-database.
|
|
|
|
For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has only
|
|
the SELECT privilege on the `mysql`.`user` (all columns except `Password`),
|
|
`mysql`.`db` (all columns), `mysql`.`host` (all columns) and `mysql`.
|
|
`tables_priv` (all columns except `Grantor` and `Timestamp`) tables.
|
|
You must specify the details for the controluser in the config.inc.php file
|
|
under the $cfg['Servers'][$i]['controluser'] and $cfg['Servers'][$i]
|
|
['controlpass'] settings.
|
|
The following example assumes you want to use pma as the controluser and
|
|
pmapass as the controlpass, but this is only an example: use something else
|
|
in your file! Input these statements from the phpMyAdmin SQL Query window
|
|
or mysql command?line client.
|
|
Of course you have to replace localhost with the webserver's host if it's
|
|
not the same as the MySQL server's one.
|
|
|
|
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
|
|
GRANT SELECT (
|
|
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
|
|
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
|
|
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
|
|
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
|
|
Execute_priv, Repl_slave_priv, Repl_client_priv
|
|
) ON mysql.user TO 'pma'@'localhost';
|
|
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
|
|
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
|
|
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
|
|
ON mysql.tables_priv TO 'pma'@'localhost';
|
|
|
|
If you are using an old MySQL version (below 4.0.2), please replace the
|
|
first GRANT SELECT query by this one:
|
|
|
|
GRANT SELECT (
|
|
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
|
|
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
|
|
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
|
|
) ON mysql.user TO 'pma'@'localhost';
|
|
|
|
... and if you want to use the many new relation and bookmark features:
|
|
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
|
|
|
|
(this of course requires that your linked-tables infrastructure be set up).
|
|
Of course, the above queries only work if your MySQL version supports the
|
|
GRANT command. This is the case since 3.22.11.
|
|
* Then each of the true users should be granted a set of privileges on a set
|
|
of particular databases. Normally you shouldn't give global privileges to
|
|
an ordinary user, unless you understand the impact of those privileges (for
|
|
example, you are creating a superuser).
|
|
For example, to grant the user real_user with all privileges on the
|
|
database user_base:
|
|
|
|
GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';
|
|
|
|
What the user may now do is controlled entirely by the MySQL user
|
|
management system.
|
|
With HTTP or cookie authentication mode, you don't need to fill the user/
|
|
password fields inside the $cfg['Servers'] array.
|
|
|
|
'HTTP' authentication mode
|
|
|
|
* Uses HTTP Basic authentication method and allows you to log in as any valid
|
|
MySQL user.
|
|
* Is supported with most PHP configurations. For IIS (ISAPI) support using
|
|
CGI PHP see FAQ 1.32, for using with Apache CGI see FAQ 1.35.
|
|
* See also FAQ 4.4 about not using the .htaccess mechanism along with 'HTTP'
|
|
authentication mode.
|
|
|
|
'cookie' authentication mode
|
|
|
|
* You can use this method as a replacement for the HTTP authentication (for
|
|
example, if you're running IIS).
|
|
* Obviously, the user must enable cookies in the browser, but this is now a
|
|
requirement for all authentication modes.
|
|
* With this mode, the user can truly log out of phpMyAdmin and log in back
|
|
with the same username.
|
|
* If you want to log in to arbitrary server see $cfg['AllowArbitraryServer']
|
|
directive.
|
|
* As mentioned in the requirements section, having the mcrypt extension will
|
|
speed up access considerably, but is not required.
|
|
|
|
'config' authentication mode
|
|
|
|
* This mode is the less secure one because it requires you to fill the $cfg
|
|
['Servers'][$i]['user'] and $cfg['Servers'][$i]['password'] fields (and as
|
|
a result, anyone who can read your config.inc.php can discover your
|
|
username and password).
|
|
But you don't need to setup a "controluser" here: using the $cfg['Servers']
|
|
[$i]['only_db'] might be enough.
|
|
* In the ISP FAQ section, there is an entry explaining how to protect your
|
|
configuration file.
|
|
* For additional security in this mode, you may wish to consider the Host
|
|
authentication $cfg['Servers'][$i]['AllowDeny']['order'] and $cfg
|
|
['Servers'][$i]['AllowDeny']['rules'] configuration directives.
|
|
* Unlike cookie and http, does not require a user to log in when first
|
|
loading the phpMyAdmin site. This is by design but could allow any user to
|
|
access your installation. Use of some restriction method is suggested,
|
|
perhaps a .htaccess file with the HTTP-AUTH directive or disallowing
|
|
incoming HTTP requests at one?s router or firewall will suffice (both of
|
|
which are beyond the scope of this manual but easily searchable with
|
|
Google).
|
|
|
|
Configuration
|
|
|
|
Warning for Mac users: PHP does not seem to like Mac end of lines character ("\
|
|
r"). So ensure you choose the option that allows to use the *nix end of line
|
|
character ("\n") in your text editor before saving a script you have modified.
|
|
|
|
Configuration note: Almost all configurable data is placed in config.inc.php.
|
|
If this file does not exist, please refer to the Quick install section to
|
|
create one. This file only needs to contain the parameters you want to change
|
|
from their corresponding default value in libraries/config.default.php.
|
|
|
|
The parameters which relate to design (like colors) are placed in themes/
|
|
themename/layout.inc.php. You might also want to create config.footer.inc.php
|
|
and config.header.inc.php files to add your site specific code to be included
|
|
on start and end of each page.
|
|
|
|
$cfg['PmaAbsoluteUri'] string
|
|
Sets here the complete URL (with full path) to your phpMyAdmin
|
|
installation's directory. E.g. http://www.your_web.net/
|
|
path_to_your_phpMyAdmin_directory/. Note also that the URL on some web
|
|
servers are case?sensitive. Don?t forget the trailing slash at the end.
|
|
|
|
Starting with version 2.3.0, it is advisable to try leaving this blank. In
|
|
most cases phpMyAdmin automatically detects the proper setting. Users of
|
|
port forwarding will need to set PmaAbsoluteUri (more info). A good test is
|
|
to browse a table, edit a row and save it. There should be an error message
|
|
if phpMyAdmin is having trouble auto?detecting the correct value. If you
|
|
get an error that this must be set or if the autodetect code fails to
|
|
detect your path, please post a bug report on our bug tracker so we can
|
|
improve the code.
|
|
$cfg['PmaNoRelation_DisableWarning'] boolean
|
|
Starting with version 2.3.0 phpMyAdmin offers a lot of features to work
|
|
with master / foreign ? tables (see $cfg['Servers'][$i]['pmadb']).
|
|
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 you would like to use it. You
|
|
will find a link that will analyze why those features have been disabled.
|
|
If you do not want to use those features set this variable to TRUE to stop
|
|
this message from appearing.
|
|
$cfg['blowfish_secret'] string
|
|
The "cookie" auth_type uses blowfish algorithm to encrypt the password.
|
|
If you are using the "cookie" auth_type, enter here a random passphrase of
|
|
your choice. It will be used internally by the blowfish algorithm: you
|
|
won?t be prompted for this passphrase. The maximum number of characters for
|
|
this parameter seems to be 46.
|
|
$cfg['Servers'] array
|
|
Since version 1.4.2, phpMyAdmin supports the administration of multiple
|
|
MySQL servers. Therefore, a $cfg['Servers']-array has been added which
|
|
contains the login information for the different servers. The first $cfg
|
|
['Servers'][$i]['host'] contains the hostname of the first server, the
|
|
second $cfg['Servers'][$i]['host'] the hostname of the second server, etc.
|
|
In ./libraries/config.default.php, there is only one section for server
|
|
definition, however you can put as many as you need in ./config.inc.php,
|
|
copy that block or needed parts (you don't have to define all settings,
|
|
just those you need to change).
|
|
$cfg['Servers'][$i]['host'] string
|
|
The hostname or IP address of your $i-th MySQL-server. E.g. localhost.
|
|
$cfg['Servers'][$i]['port'] string
|
|
The port-number of your $i-th MySQL-server. Default is 3306 (leave blank).
|
|
If you use "localhost" as the hostname, MySQL ignores this port number and
|
|
connects with the socket, so if you want to connect to a port different
|
|
from the default port, use "127.0.0.1" or the real hostname in $cfg
|
|
['Servers'][$i]['host'].
|
|
$cfg['Servers'][$i]['socket'] string
|
|
The path to the socket to use. Leave blank for default.
|
|
To determine the correct socket, check your MySQL configuration or, using
|
|
the mysql command?line client, issue the status command. Among the
|
|
resulting information displayed will be the socket used.
|
|
$cfg['Servers'][$i]['ssl'] boolean
|
|
Whether to enable SSL for connection to MySQL server.
|
|
$cfg['Servers'][$i]['connect_type'] string
|
|
What type connection to use with the MySQL server. Your options are
|
|
'socket' and 'tcp'. It defaults to 'tcp' as that is nearly guaranteed to be
|
|
available on all MySQL servers, while sockets are not supported on some
|
|
platforms.
|
|
|
|
To use the socket mode, your MySQL server must be on the same machine as
|
|
the Web server.
|
|
$cfg['Servers'][$i]['extension'] string
|
|
What php MySQL extension to use for the connection. Valid options are:
|
|
|
|
mysql : The classic MySQL extension. This is the recommended and default
|
|
method at this time.
|
|
|
|
mysqli : The improved MySQL extension. This extension became available with
|
|
php 5.0.0 and is the recommended way to connect to a server running MySQL
|
|
4.1.x.
|
|
$cfg['Servers'][$i]['compress'] boolean
|
|
Whether to use a compressed protocol for the MySQL server connection or not
|
|
(experimental).
|
|
This feature requires PHP >= 4.3.0.
|
|
$cfg['Servers'][$i]['controluser'] string
|
|
$cfg['Servers'][$i]['controlpass'] string
|
|
This special account is used for 2 distinct purposes: to make possible all
|
|
relational features (see $cfg['Servers'][$i]['pmadb']) and, for a MySQL
|
|
server older than 4.1.2 or running with --skip-show-database, to enable a
|
|
multi-user installation (HTTP or cookie authentication mode).
|
|
|
|
When using HTTP or cookie authentication modes (or 'config' authentication
|
|
mode since phpMyAdmin 2.2.1), you need to supply the details of a MySQL
|
|
account that has SELECT privilege on the mysql.user (all columns except
|
|
"Password"), mysql.db (all columns) and mysql.tables_priv (all columns
|
|
except "Grantor" and "Timestamp") tables. This account is used to check
|
|
what databases the user will see at login.
|
|
Please see the install section on "Using authentication modes" for more
|
|
information.
|
|
|
|
In phpMyAdmin versions before 2.2.5, those were called "stduser/stdpass".
|
|
$cfg['Servers'][$i]['auth_type'] string ['HTTP'|'http'|'cookie'|'config'|
|
|
'signon']
|
|
Whether config or cookie or HTTP or signon authentication should be used
|
|
for this server.
|
|
+ 'config' authentication ($auth_type = 'config') is the plain old way:
|
|
username and password are stored in config.inc.php.
|
|
+ 'cookie' authentication mode ($auth_type = 'cookie') as introduced in
|
|
2.2.3 allows you to log in as any valid MySQL user with the help of
|
|
cookies. Username and password are stored in cookies during the session
|
|
and password is deleted when it ends. This can also allow you to log in
|
|
in arbitrary server if $cfg['AllowArbitraryServer'] enabled.
|
|
+ 'HTTP' authentication (was called 'advanced' in older versions and can
|
|
be written also as 'http') ($auth_type = 'HTTP') as introduced in 1.3.0
|
|
allows you to log in as any valid MySQL user via HTTP-Auth.
|
|
+ 'signon' authentication mode ($auth_type = 'signon') as introduced in
|
|
2.10.0 allows you to log in from prepared PHP session data. This is
|
|
useful for implementing single signon from another application. Sample
|
|
way how to seed session is in signon example: scripts/signon.php. You
|
|
need to configure session name and signon URL to use this
|
|
authentication method.
|
|
Please see the install section on "Using authentication modes" for more
|
|
information.
|
|
$cfg['Servers'][$i]['user'] string
|
|
$cfg['Servers'][$i]['password'] string
|
|
When using auth_type = 'config', this is the user/password-pair which
|
|
phpMyAdmin will use to connect to the MySQL server. This user/password pair
|
|
is not needed when HTTP or cookie authentication is used and should be
|
|
empty.
|
|
$cfg['Servers'][$i]['nopassword'] boolean
|
|
Allow attempt to log in without password when a login with password fails.
|
|
This can be used together with http authentication, when authentication is
|
|
done some other way and phpMyAdmin gets user name from auth and uses empty
|
|
password for connecting to MySQL. Password login is still tried first, but
|
|
as fallback, no password method is tried.
|
|
$cfg['Servers'][$i]['only_db'] string or array
|
|
If set to a (an array of) database name(s), only this (these) database(s)
|
|
will be shown to the user. Since phpMyAdmin 2.2.1, this/these database(s)
|
|
name(s) may contain MySQL wildcards characters ("_" and "%"): if you want
|
|
to use literal instances of these characters, escape them (I.E. use 'my\
|
|
_db' and not 'my_db').
|
|
This setting is an efficient way to lower the server load since the latter
|
|
does not need to send MySQL requests to build the available database list.
|
|
But it does not replace the privileges rules of the MySQL database server.
|
|
If set, it just means only these databases will be displayed but not that
|
|
all other databases can't be used.
|
|
|
|
An example of using more that one database: $cfg['Servers'][$i]['only_db']
|
|
= array('db1', 'db2');
|
|
|
|
As of phpMyAdmin 2.5.5 the order inside the array is used for sorting the
|
|
databases in the left frame, so that you can individually arrange your
|
|
databases.
|
|
If you want to have certain databases at the top, but don't care about the
|
|
others, you do not need to specify all other databases. Use: $cfg
|
|
['Servers'][$i]['only_db'] = array('db3', 'db4', '*'); instead to tell
|
|
phpMyAdmin that it should display db3 and db4 on top, and the rest in
|
|
alphabetic order.
|
|
$cfg['Servers'][$i]['hide_db'] string
|
|
Regular expression for hiding some databases. This only hides them from
|
|
listing, but a user is still able to access them (using, for example, the
|
|
SQL query area). To limit access, use the MySQL privilege system.
|
|
|
|
For example, to hide all databases starting with the letter "a", use
|
|
|
|
$cfg['Servers'][$i]['hide_db'] = '^a';
|
|
|
|
and to hide both "db1" and "db2" use
|
|
|
|
$cfg['Servers'][$i]['hide_db'] = '(db1|db2)';
|
|
|
|
More information on regular expressions can be found in the PCRE pattern
|
|
syntax portion of the PHP reference manual.
|
|
$cfg['Servers'][$i]['verbose'] string
|
|
Only useful when using phpMyAdmin with multiple server entries. If set,
|
|
this string will be displayed instead of the hostname in the pull-down menu
|
|
on the main page. This can be useful if you want to show only certain
|
|
databases on your system, for example.
|
|
$cfg['Servers'][$i]['pmadb'] string
|
|
The name of the database containing the linked-tables infrastructure.
|
|
|
|
See the Linked-tables infrastructure section in this document to see the
|
|
benefits of this infrastructure, and for a quick way of creating this
|
|
database and the needed tables.
|
|
|
|
If you are the only user of this phpMyAdmin installation, you can use your
|
|
current database to store those special tables; in this case, just put your
|
|
current database name in $cfg['Servers'][$i]['pmadb']. For a multi-user
|
|
installation, set this parameter to the name of your central database
|
|
containing the linked-tables infrastructure.
|
|
$cfg['Servers'][$i]['bookmarktable'] string
|
|
Since release 2.2.0 phpMyAdmin allows users to bookmark queries. This can
|
|
be useful for queries you often run.
|
|
|
|
To allow the usage of this functionality:
|
|
+ set up pmadb and the linked-tables infrastructure
|
|
+ enter the table name in $cfg['Servers'][$i]['bookmarktable']
|
|
$cfg['Servers'][$i]['relation'] string
|
|
Since release 2.2.4 you can describe, in a special 'relation' table, which
|
|
field is a key in another table (a foreign key). phpMyAdmin currently uses
|
|
this to
|
|
+ make clickable, when you browse the master table, the data values that
|
|
point to the foreign table;
|
|
+ display in an optional tool-tip the "display field" when browsing the
|
|
master table, if you move the mouse to a column containing a foreign
|
|
key (use also the 'table_info' table);
|
|
(see FAQ 6.7)
|
|
+ in edit/insert mode, display a drop-down list of possible foreign keys
|
|
(key value and "display field" are shown)
|
|
(see FAQ 6.21)
|
|
+ display links on the table properties page, to check referential
|
|
integrity (display missing foreign keys) for each described key;
|
|
+ in query-by-example, create automatic joins (see FAQ 6.6)
|
|
+ enable you to get a PDF schema of your database (also uses the
|
|
table_coords table).
|
|
The keys can be numeric or character.
|
|
|
|
To allow the usage of this functionality:
|
|
+ set up pmadb and the linked-tables infrastructure
|
|
+ put the relation table name in $cfg['Servers'][$i]['relation']
|
|
+ now as normal user open phpMyAdmin and for each one of your tables
|
|
where you want to use this feature, click "Structure/Relation view/"
|
|
and choose foreign fields.
|
|
Please note that in the current version, master_db must be the same as
|
|
foreign_db. Those fields have been put in future development of the
|
|
cross-db relations.
|
|
$cfg['Servers'][$i]['table_info'] string
|
|
Since release 2.3.0 you can describe, in a special 'table_info' table,
|
|
which field is to be displayed as a tool-tip when moving the cursor over
|
|
the corresponding key.
|
|
This configuration variable will hold the name of this special table. To
|
|
allow the usage of this functionality:
|
|
+ set up pmadb and the linked-tables infrastructure
|
|
+ put the table name in $cfg['Servers'][$i]['table_info']
|
|
+ then for each table where you want to use this feature, click
|
|
"Structure/Relation view/Choose field to display" to choose the field.
|
|
Usage tip: Display field.
|
|
$cfg['Servers'][$i]['table_coords'] string
|
|
$cfg['Servers'][$i]['pdf_pages'] string
|
|
Since release 2.3.0 you can have phpMyAdmin create PDF pages showing the
|
|
relations between your tables. To do this it needs two tables "pdf_pages"
|
|
(storing information about the available PDF pages) and "table_coords"
|
|
(storing coordinates where each table will be placed on a PDF schema
|
|
output).
|
|
|
|
You must be using the "relation" feature.
|
|
|
|
To allow the usage of this functionality:
|
|
+ set up pmadb and the linked-tables infrastructure
|
|
+ put the correct table names in $cfg['Servers'][$i]['table_coords'] and
|
|
$cfg['Servers'][$i]['pdf_pages']
|
|
Usage tips: PDF output.
|
|
$cfg['Servers'][$i]['column_info'] string
|
|
Since release 2.3.0 you can store comments to describe each column for each
|
|
table. These will then be shown on the "printview".
|
|
|
|
Starting with release 2.5.0, comments are consequently used on the table
|
|
property pages and table browse view, showing up as tool-tips above the
|
|
column name (properties page) or embedded within the header of table in
|
|
browse view. They can also be shown in a table dump. Please see the
|
|
relevant configuration directives later on.
|
|
|
|
Also new in release 2.5.0 is a MIME-transformation system which is also
|
|
based on the following table structure. See Transformations for further
|
|
information. To use the MIME-transformation system, your column_info table
|
|
has to have the three new fields 'mimetype', 'transformation',
|
|
'transformation_options'.
|
|
|
|
To allow the usage of this functionality:
|
|
+ set up pmadb and the linked-tables infrastructure
|
|
+ put the table name in $cfg['Servers'][$i]['column_info']
|
|
+ to update your PRE-2.5.0 Column_comments Table use this:
|
|
|
|
ALTER TABLE `pma_column_comments`
|
|
ADD `mimetype` VARCHAR( 255 ) NOT NULL,
|
|
ADD `transformation` VARCHAR( 255 ) NOT NULL,
|
|
ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
|
|
|
|
and remember that the Variable in config.inc.php has been renamed from
|
|
$cfg['Servers'][$i]['column_comments'] to $cfg['Servers'][$i]
|
|
['column_info']
|
|
$cfg['Servers'][$i]['history'] string
|
|
Since release 2.5.0 you can store your SQL history, which means all queries
|
|
you entered manually into the phpMyAdmin interface. If you don't want to
|
|
use a table-based history, you can use the JavaScript-based history. Using
|
|
that, all your history items are deleted when closing the window.
|
|
|
|
Using $cfg['QueryHistoryMax'] you can specify an amount of history items
|
|
you want to have on hold. On every login, this list gets cut to the maximum
|
|
amount.
|
|
|
|
The query history is only available if JavaScript is enabled in your
|
|
browser.
|
|
|
|
To allow the usage of this functionality:
|
|
+ set up pmadb and the linked-tables infrastructure
|
|
+ put the table name in $cfg['Servers'][$i]['history']
|
|
$cfg['Servers'][$i]['designer_coords'] string
|
|
Since release 2.10.0 a Designer interface is available; it permits to
|
|
visually manage the relations.
|
|
|
|
To allow the usage of this functionality:
|
|
+ set up pmadb and the linked-tables infrastructure
|
|
+ put the table name in $cfg['Servers'][$i]['designer_coords']
|
|
$cfg['Servers'][$i]['verbose_check'] boolean
|
|
Because release 2.5.0 introduced the new MIME-transformation support, the
|
|
column_info table got enhanced with three new fields. If the above variable
|
|
is set to TRUE (default) phpMyAdmin will check if you have the latest table
|
|
structure available. If not, it will emit a warning to the superuser.
|
|
|
|
You can disable this checking behavior by setting the variable to false,
|
|
which should offer a performance increase.
|
|
|
|
Recommended to set to FALSE, when you are sure, your table structure is up
|
|
to date.
|
|
$cfg['Servers'][$i]['AllowRoot'] boolean
|
|
Whether to allow root access. This is just simplification of rules below.
|
|
$cfg['Servers'][$i]['AllowDeny']['order'] string
|
|
If your rule order is empty, then IP authentication is disabled.
|
|
|
|
If your rule order is set to 'deny,allow' then the system applies all deny
|
|
rules followed by allow rules. Access is allowed by default. Any client
|
|
which does not match a Deny command or does match an Allow command will be
|
|
allowed access to the server.
|
|
|
|
If your rule order is set to 'allow,deny' then the system applies all allow
|
|
rules followed by deny rules. Access is denied by default. Any client which
|
|
does not match an Allow directive or does match a Deny directive will be
|
|
denied access to the server.
|
|
|
|
If your rule order is set to 'explicit', the authentication is performed in
|
|
a similar fashion to rule order 'deny,allow', with the added restriction
|
|
that your host/username combination must be listed in the allow rules, and
|
|
not listed in the deny rules. This is the most secure means of using Allow/
|
|
Deny rules, and was available in Apache by specifying allow and deny rules
|
|
without setting any order.
|
|
|
|
Please also see $cfg['TrustedProxies'] for detecting IP address behind
|
|
proxies.
|
|
$cfg['Servers'][$i]['AllowDeny']['rules'] array of strings
|
|
The general format for the rules is as such:
|
|
|
|
<'allow' | 'deny'> <username> [from] <ipmask>
|
|
|
|
If you wish to match all users, it is possible to use a '%' as a wildcard
|
|
in the username field.
|
|
There are a few shortcuts you can use in the ipmask field as well (please
|
|
note that those containing SERVER_ADDRESS might not be available on all
|
|
webservers):
|
|
|
|
'all' -> 0.0.0.0/0
|
|
'localhost' -> 127.0.0.1/8
|
|
'localnetA' -> SERVER_ADDRESS/8
|
|
'localnetB' -> SERVER_ADDRESS/16
|
|
'localnetC' -> SERVER_ADDRESS/24
|
|
|
|
Having an empty rule list is equivalent to either using 'allow % from all'
|
|
if your rule order is set to 'deny,allow' or 'deny % from all' if your rule
|
|
order is set to 'allow,deny' or 'explicit'.
|
|
|
|
For the IP matching system, the following work:
|
|
xxx.xxx.xxx.xxx (an exact IP address)
|
|
xxx.xxx.xxx.[yyy-zzz] (an IP address range)
|
|
xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP addresses)
|
|
But the following does not work:
|
|
xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range)
|
|
$cfg['Servers'][$i]['SignonSession'] string
|
|
Name of session which will be used for signon authentication method.
|
|
$cfg['Servers'][$i]['SignonURL'] string
|
|
URL where user will be redirected to log in for signon authentication
|
|
method. Should be absolute including protocol.
|
|
$cfg['Servers'][$i]['LogoutURL'] string
|
|
URL where user will be redirected after logout (doesn't affect config
|
|
authentication method). Should be absolute including protocol.
|
|
$cfg['ServerDefault'] integer
|
|
If you have more than one server configured, you can set $cfg
|
|
['ServerDefault'] to any one of them to autoconnect to that server when
|
|
phpMyAdmin is started, or set it to 0 to be given a list of servers without
|
|
logging in.
|
|
If you have only one server configured, $cfg['ServerDefault'] MUST be set
|
|
to that server.
|
|
$cfg['OBGzip'] string/boolean
|
|
Defines whether to use GZip output buffering for increased speed in HTTP
|
|
transfers.
|
|
Set to true/false for enabling/disabling. When set to 'auto' (string),
|
|
phpMyAdmin tries to enable output buffering and will automatically disable
|
|
it if your browser has some problems with buffering. IE6 with a certain
|
|
patch is known to cause data corruption when having enabled buffering.
|
|
$cfg['PersistentConnections'] boolean
|
|
Whether persistent connections should be used or not (mysql_connect or
|
|
mysql_pconnect).
|
|
$cfg['ForceSSL'] boolean
|
|
Whether to force using https while accessing phpMyAdmin.
|
|
$cfg['ExecTimeLimit'] integer [number of seconds]
|
|
Set the number of seconds a script is allowed to run. If seconds is set to
|
|
zero, no time limit is imposed.
|
|
This setting is used while importing/exporting dump files but has no effect
|
|
when PHP is running in safe mode.
|
|
$cfg['MemoryLimit'] integer [number of bytes]
|
|
Set the number of bytes a script is allowed to allocate. If number set to
|
|
zero, no limit is imposed.
|
|
This setting is used while importing/exporting dump files but has no effect
|
|
when PHP is running in safe mode.
|
|
You can also use any string as in php.ini, eg. '16M'.
|
|
$cfg['SkipLockedTables'] boolean
|
|
Mark used tables and make it possible to show databases with locked tables
|
|
(since MySQL 3.23.30).
|
|
$cfg['ShowSQL'] boolean
|
|
Defines whether SQL queries generated by phpMyAdmin should be displayed or
|
|
not.
|
|
$cfg['AllowUserDropDatabase'] boolean
|
|
Defines whether normal users (non-administrator) are allowed to delete
|
|
their own database or not. If set as FALSE, the link "Drop Database" will
|
|
not be shown, and even a "DROP DATABASE mydatabase" will be rejected. Quite
|
|
practical for ISP's with many customers.
|
|
Please note that this limitation of SQL queries is not as strict as when
|
|
using MySQL privileges. This is due to nature of SQL queries which might be
|
|
quite complicated. So this choice should be viewed as help to avoid
|
|
accidental dropping rather than strict privilege limitation.
|
|
$cfg['Confirm'] boolean
|
|
Whether a warning ("Are your really sure...") should be displayed when
|
|
you're about to lose data.
|
|
$cfg['LoginCookieRecall'] boolean
|
|
Define whether the previous login should be recalled or not in cookie
|
|
authentication mode.
|
|
$cfg['LoginCookieValidity'] integer [number of seconds]
|
|
Define how long is login cookie valid.
|
|
$cfg['LoginCookieStore'] integer [number of seconds]
|
|
Define how long is login cookie should be stored in browser. Default 0
|
|
means that it will be kept for existing session. This is recommended for
|
|
not trusted environments.
|
|
$cfg['LoginCookieDeleteAll'] boolean
|
|
If enabled (default), logout deletes cookies for all servers, otherwise
|
|
only for current one. Setting this to false makes it easy to forget to log
|
|
out from other server, when you are using more of them.
|
|
$cfg['UseDbSearch'] boolean
|
|
Define whether the "search string inside database" is enabled or not.
|
|
$cfg['IgnoreMultiSubmitErrors'] boolean
|
|
Define whether phpMyAdmin will continue executing a multi-query statement
|
|
if one of the queries fails. Default is to abort execution.
|
|
$cfg['VerboseMultiSubmit'] boolean
|
|
Define whether phpMyAdmin will output the results of each query of a
|
|
multi-query statement embedded into the SQL output as inline comments.
|
|
Defaults to TRUE.
|
|
$cfg['AllowArbitraryServer'] boolean
|
|
If enabled allows you to log in to arbitrary servers using cookie auth.
|
|
|
|
NOTE: Please use this carefully, as this may allow users access to MySQL
|
|
servers behind the firewall where your HTTP server is placed.
|
|
$cfg['LeftFrameLight'] boolean
|
|
Defines whether to use a select-based menu and display only the current
|
|
tables in the left frame (smaller page). Only in Non-Lightmode you can use
|
|
the feature to display nested folders using $cfg['LeftFrameTableSeparator']
|
|
$cfg['LeftFrameDBTree'] boolean
|
|
In light mode, defines whether to display the names of databases (in the
|
|
selector) using a tree, see also $cfg['LeftFrameDBSeparator'].
|
|
$cfg['LeftFrameDBSeparator'] string
|
|
The string used to separate the parts of the database name when showing
|
|
them in a tree.
|
|
$cfg['LeftFrameTableSeparator'] string
|
|
Defines a string to be used to nest table spaces. Defaults to '__'. This
|
|
means if you have tables like 'first__second__third' this will be shown as
|
|
a three-level hierarchy like: first > second > third. If set to FALSE or
|
|
empty, the feature is disabled. NOTE: You should not use this separator at
|
|
the beginning or end of a table name or multiple times after another
|
|
without any other characters in between.
|
|
$cfg['LeftFrameTableLevel'] string
|
|
Defines how many sublevels should be displayed when splitting up tables by
|
|
the above separator.
|
|
$cfg['ShowTooltip'] boolean
|
|
Defines whether to display table comment as tool-tip in left frame or not.
|
|
$cfg['ShowTooltipAliasDB'] boolean
|
|
If tool-tips are enabled and a DB comment is set, this will flip the
|
|
comment and the real name. That means that if you have a table called
|
|
'user0001' and add the comment 'MyName' on it, you will see the name
|
|
'MyName' used consequently in the left frame and the tool-tip shows the
|
|
real name of the DB.
|
|
$cfg['ShowTooltipAliasTB'] boolean/string
|
|
Same as $cfg['ShowTooltipAliasDB'], except this works for table names. When
|
|
setting this to 'nested', the Alias of the Tablename is only used to split/
|
|
nest the tables according to the $cfg['LeftFrameTableSeparator'] directive.
|
|
So only the folder is called like the Alias, the tablename itself stays the
|
|
real tablename.
|
|
$cfg['LeftDisplayLogo'] boolean
|
|
Defines whether or not to display the phpMyAdmin logo at the top of the
|
|
left frame. Defaults to TRUE.
|
|
$cfg['LeftLogoLink'] string
|
|
Enter URL where logo in the navigation frame will point to. For use
|
|
especially with self made theme which changes this. The default value for
|
|
this is main.php.
|
|
$cfg['LeftLogoLinkWindow'] string
|
|
Whether to open the linked page in the main window (main) or in a new one
|
|
(new).
|
|
$cfg['LeftDisplayServers'] boolean
|
|
Defines whether or not to display a server choice at the top of the left
|
|
frame. Defaults to FALSE.
|
|
$cfg['DisplayServersList'] boolean
|
|
Defines whether to display this server choice as links instead of in a
|
|
drop-down. Defaults to FALSE (drop-down).
|
|
$cfg['DisplayDatabasesList'] boolean
|
|
Defines whether to display database choice in light navigation frame as
|
|
links instead of in a drop-down. Defaults to FALSE (drop-down).
|
|
$cfg['ShowStats'] boolean
|
|
Defines whether or not to display space usage and statistics about
|
|
databases and tables.
|
|
Note that statistics requires at least MySQL 3.23.3 and that, at this date,
|
|
MySQL doesn't return such information for Berkeley DB tables.
|
|
$cfg['ShowServerInfo'] boolean
|
|
Defines whether to display detailed server information on main page. You
|
|
can additionally hide more information by using $cfg['Servers'][$i]
|
|
['verbose'].
|
|
$cfg['ShowPhpInfo'] boolean
|
|
$cfg['ShowChgPassword'] boolean
|
|
$cfg['ShowCreateDb'] boolean
|
|
Defines whether to display the "PHP information" and "Change password "
|
|
links and form for creating database or not at the starting main (right)
|
|
frame. This setting does not check MySQL commands entered directly.
|
|
|
|
Please note that to block the usage of phpinfo() in scripts, you have to
|
|
put this in your php.ini:
|
|
|
|
disable_functions = phpinfo()
|
|
|
|
Also note that enabling the "Change password " link has no effect with
|
|
"config" authentication mode: because of the hard coded password value in
|
|
the configuration file, end users can't be allowed to change their
|
|
passwords.
|
|
$cfg['SuggestDBName'] boolean
|
|
Defines whether to suggest a database name on the "Create Database" form or
|
|
to keep the textfield empty.
|
|
$cfg['ShowBlob'] boolean
|
|
Defines whether or not BLOB fields are shown when browsing a table's
|
|
content.
|
|
$cfg['NavigationBarIconic'] string
|
|
Defines whether navigation bar buttons and the right panel top menu contain
|
|
text or symbols only. A value of TRUE displays icons, FALSE displays text
|
|
and 'both' displays both icons and text.
|
|
$cfg['ShowAll'] boolean
|
|
Defines whether a user should be displayed a "show all (records)" button in
|
|
browse mode or not.
|
|
$cfg['MaxRows'] integer
|
|
Number of rows displayed when browsing a result set. If the result set
|
|
contains more rows, "Previous" and "Next" links will be shown.
|
|
$cfg['Order'] string [DESC|ASC|SMART]
|
|
Defines whether fields are displayed in ascending (ASC) order, in
|
|
descending (DESC) order or in a "smart" (SMART) order - I.E. descending
|
|
order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending
|
|
order else- by default.
|
|
$cfg['ProtectBinary'] boolean or string
|
|
Defines whether BLOB or BINARY fields are protected from editing when
|
|
browsing a table's content. Valid values are:
|
|
+ FALSE to allow editing of all fields;
|
|
+ 'blob' to allow editing of all fields except BLOBS;
|
|
+ 'all' to disallow editing of all BINARY or BLOB fields.
|
|
$cfg['ShowFunctionFields'] boolean
|
|
Defines whether or not MySQL functions fields should be initially displayed
|
|
in edit/insert mode. Since version 2.10, the user can toggle this setting
|
|
from the interface.
|
|
$cfg['CharEditing'] string
|
|
Defines which type of editing controls should be used for CHAR and VARCHAR
|
|
fields. Possible values are:
|
|
+ input - this allows to limit size of text to size of field in MySQL,
|
|
but has problems with newlines in fields
|
|
+ textarea - no problems with newlines in fields, but also no length
|
|
limitations
|
|
Default is old behavior so input.
|
|
$cfg['InsertRows'] integer
|
|
Defines the maximum number of concurrent entries for the Insert page.
|
|
$cfg['ForeignKeyMaxLimit'] integer
|
|
If there are fewer items than this in the set of foreign keys, then a
|
|
drop-down box of foreign keys is presented, in the style described by the
|
|
$cfg['ForeignKeyDropdownOrder'] setting.
|
|
$cfg['ForeignKeyDropdownOrder'] array
|
|
For the foreign key drop-down fields, there are several methods of display,
|
|
offering both the key and value data. The contents of the array should be
|
|
one or both of the following strings: 'content-id', 'id-content'.
|
|
$cfg['ZipDump'] boolean
|
|
$cfg['GZipDump'] boolean
|
|
$cfg['BZipDump'] boolean
|
|
Defines whether to allow the use of zip/GZip/BZip2 compression when
|
|
creating a dump file
|
|
$cfg['CompressOnFly'] boolean
|
|
Defines whether to allow on the fly compression for GZip/BZip2 compressed
|
|
exports. This doesn't affect smaller dumps and allows users to create
|
|
larger dumps that won't otherwise fit in memory due to php memory limit.
|
|
Produced files contain more GZip/BZip2 headers, but all normal programs
|
|
handle this correctly.
|
|
$cfg['LightTabs'] boolean
|
|
If set to TRUE, use less graphically intense tabs on the top of the
|
|
mainframe.
|
|
$cfg['PropertiesIconic'] string
|
|
If set to TRUE, will display icons instead of text for db and table
|
|
properties links (like 'Browse', 'Select', 'Insert', ...).
|
|
Can be set to 'both' if you want icons AND text.
|
|
When set to FALSE, will only show text.
|
|
$cfg['PropertiesNumColumns'] integer
|
|
How many columns will be utilized to display the tables on the database
|
|
property view? Default is 1 column. When setting this to a value larger
|
|
than 1, the type of the database will be omitted for more display space.
|
|
$cfg['DefaultTabServer'] string
|
|
Defines the tab displayed by default on server view. Possible values:
|
|
"main.php" (recommended for multi-user setups), "server_databases.php",
|
|
"server_status.php", "server_variables.php", "server_privileges.php" or
|
|
"server_processlist.php".
|
|
$cfg['DefaultTabDatabase'] string
|
|
Defines the tab displayed by default on database view. Possible values:
|
|
"db_structure.php", "db_sql.php" or "db_search.php".
|
|
$cfg['DefaultTabTable'] string
|
|
Defines the tab displayed by default on table view. Possible values:
|
|
"tbl_structure.php", "tbl_sql.php", "tbl_select.php", "tbl_change.php" or
|
|
"sql.php".
|
|
$cfg['MySQLManualBase'] string
|
|
If set to an URL which points to the MySQL documentation (type depends on
|
|
$cfg['MySQLManualType']), appropriate help links are generated.
|
|
See MySQL Documentation page for more information about MySQL manuals and
|
|
their types.
|
|
$cfg['MySQLManualType'] string
|
|
Type of MySQL documentation:
|
|
+ viewable - "viewable online", current one used on MySQL website
|
|
+ searchable - "Searchable, with user comments"
|
|
+ chapters - "HTML, one page per chapter"
|
|
+ big - "HTML, all on one page"
|
|
+ none - do not show documentation links
|
|
$cfg['DefaultLang'] string
|
|
Defines the default language to use, if not browser-defined or
|
|
user-defined.
|
|
See the select_lang.lib.php script to know the valid values for this
|
|
setting.
|
|
$cfg['DefaultConnectionCollation'] string
|
|
Defines the default connection collation to use, if not user-defined.
|
|
See the MySQL documentation for list of possible values.
|
|
$cfg['Lang'] string
|
|
Force: always use this language (must be defined in the select_lang.lib.php
|
|
script).
|
|
$cfg['FilterLanguages'] string
|
|
Limit list of available languages to those matching the given regular
|
|
expression. For example if you want only Czech and English, you should set
|
|
filter to '^(cs|en)'.
|
|
$cfg['DefaultCharset'] string
|
|
Default character set to use for recoding of MySQL queries. This must be
|
|
enabled and it's described by $cfg['AllowAnywhereRecoding'] option.
|
|
You can give here any character set which is in $cfg['AvailableCharsets']
|
|
array and this is just default choice, user can select any of them.
|
|
$cfg['AllowAnywhereRecoding'] boolean
|
|
Allow character set recoding of MySQL queries. You need recode or iconv
|
|
support (compiled in or module) in PHP to allow MySQL queries recoding and
|
|
used language file must have it enabled (by default only these which are in
|
|
Unicode, just to avoid losing some characters).
|
|
|
|
Setting this to TRUE also activates a pull-down menu in the Export page, to
|
|
choose the character set when exporting a file.
|
|
$cfg['RecodingEngine'] string
|
|
You can select here which functions will be used for character set
|
|
conversion. Possible values are:
|
|
+ auto - automatically use available one (first is tested iconv, then
|
|
recode)
|
|
+ iconv - use iconv or libiconv functions
|
|
+ recode - use recode_string function
|
|
Default is auto.
|
|
$cfg['IconvExtraParams'] string
|
|
Specify some parameters for iconv used in charset conversion. See iconv
|
|
documentation for details. By default //TRANSLIT is used, so that invalid
|
|
characters will be transliterated.
|
|
$cfg['AvailableCharsets'] array
|
|
Available character sets for MySQL conversion. You can add your own (any of
|
|
supported by recode/iconv) or remove these which you don't use. Character
|
|
sets will be shown in same order as here listed, so if you frequently use
|
|
some of these move them to the top.
|
|
$cfg['TrustedProxies'] array
|
|
Lists proxies and HTTP headers which are trusted for IP Allow/Deny. This
|
|
list is by default empty, you need to fill in some trusted proxy servers if
|
|
you want to use rules for IP addresses behind proxy.
|
|
|
|
The following example specifies that phpMyAdmin should trust a
|
|
HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy
|
|
1.2.3.4:
|
|
|
|
$cfg['TrustedProxies'] =
|
|
array('1.2.3.4' => 'HTTP_X_FORWARDED_FOR');
|
|
|
|
The $cfg['Servers'][$i]['AllowDeny']['rules'] directive uses the client's
|
|
IP address as usual.
|
|
$cfg['GD2Available'] string
|
|
Specifies whether GD >= 2 is available. If yes it can be used for MIME
|
|
transformations.
|
|
Possible values are:
|
|
+ auto - automatically detect, this is a bit expensive operation for php
|
|
< 4.3.0 so it is preferred to change this according to your server real
|
|
possibilities
|
|
+ yes - GD 2 functions can be used
|
|
+ no - GD 2 function cannot be used
|
|
Default is auto.
|
|
$cfg['NaviWidth'] integer
|
|
Navi frame width in pixels. See themes/themename/layout.inc.php.
|
|
$cfg['NaviBackground'] string [valid css code for background]
|
|
$cfg['MainBackground'] string [valid css code for background]
|
|
The background styles used for both the frames. See themes/themename/
|
|
layout.inc.php.
|
|
$cfg['NaviPointerBackground'] string [valid css code for background]
|
|
$cfg['NaviPointerColor'] string [valid css color]
|
|
The style used for the pointer in the navi frame. See themes/themename/
|
|
layout.inc.php.
|
|
$cfg['LeftPointerEnable'] boolean
|
|
A value of TRUE activates the navi pointer (when LeftFrameLight is FALSE).
|
|
$cfg['Border'] integer
|
|
The size of a table's border. See themes/themename/layout.inc.php.
|
|
$cfg['ThBackground'] string [valid css code for background]
|
|
$cfg['ThColor'] string [valid css color]
|
|
The style used for table headers. See themes/themename/layout.inc.php.
|
|
$cfg['BgOne'] string [HTML color]
|
|
The color (HTML) #1 for table rows. See themes/themename/layout.inc.php.
|
|
$cfg['BgTwo'] string [HTML color]
|
|
The color (HTML) #2 for table rows. See themes/themename/layout.inc.php.
|
|
$cfg['BrowsePointerBackground'] string [HTML color]
|
|
$cfg['BrowsePointerColor'] string [HTML color]
|
|
$cfg['BrowseMarkerBackground'] string [HTML color]
|
|
$cfg['BrowseMarkerColor'] string [HTML color]
|
|
The colors (HTML) uses for the pointer and the marker in browse mode.
|
|
The former feature highlights the row over which your mouse is passing and
|
|
the latter lets you visually mark/unmark rows by clicking on them.
|
|
See themes/themename/layout.inc.php.
|
|
$cfg['FontFamily'] string
|
|
You put here a valid CSS font family value, for example arial, sans-serif.
|
|
See themes/themename/layout.inc.php.
|
|
$cfg['FontFamilyFixed'] string
|
|
You put here a valid CSS font family value, for example monospace. This one
|
|
is used in textarea.
|
|
See themes/themename/layout.inc.php.
|
|
$cfg['BrowsePointerEnable'] boolean
|
|
Whether to activate the browse pointer or not.
|
|
$cfg['BrowseMarkerEnable'] boolean
|
|
Whether to activate the browse marker or not.
|
|
$cfg['TextareaCols'] integer
|
|
$cfg['TextareaRows'] integer
|
|
$cfg['CharTextareaCols'] integer
|
|
$cfg['CharTextareaRows'] integer
|
|
Number of columns and rows for the textareas.
|
|
This value will be emphasized (*2) for SQL query textareas and (*1.25) for
|
|
SQL textareas inside the query window.
|
|
The Char* values are used for CHAR and VARCHAR editing (if configured via
|
|
$cfg['CharEditing']).
|
|
$cfg['LongtextDoubleTextarea'] boolean
|
|
Defines whether textarea for LONGTEXT fields should have double size.
|
|
$cfg['TextareaAutoSelect'] boolean
|
|
Defines if the whole textarea of the query box will be selected on click.
|
|
$cfg['CtrlArrowsMoving'] boolean
|
|
Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when
|
|
editing.
|
|
$cfg['LimitChars'] integer
|
|
Maximum number of characters showen in any non-numeric field on browse
|
|
view. Can be turned off by a toggle button on the browse page.
|
|
$cfg['ModifyDeleteAtLeft'] boolean $cfg['ModifyDeleteAtRight'] boolean
|
|
Defines the place where modify and delete links would be put when tables
|
|
contents are displayed (you may have them displayed both at the left and at
|
|
the right). "Left" and "right" are parsed as "top" and "bottom" with
|
|
vertical display mode.
|
|
$cfg['DefaultDisplay'] string $cfg['HeaderFlipType'] string
|
|
There are 3 display modes: horizontal, horizontalflipped and vertical.
|
|
Define which one is displayed by default. The first mode displays each row
|
|
on a horizontal line, the second rotates the headers by 90 degrees, so you
|
|
can use descriptive headers even though fields only contain small values
|
|
and still print them out. The vertical mode sorts each row on a vertical
|
|
lineup.
|
|
|
|
The HeaderFlipType can be set to 'css' or 'fake'. When using 'css' the
|
|
rotation of the header for horizontalflipped is done via CSS. If set to
|
|
'fake' PHP does the transformation for you, but of course this does not
|
|
look as good as CSS.
|
|
$cfg['DefaultPropDisplay'] string or integer
|
|
When editing/creating new columns in a table all fields normally get lined
|
|
up one field a line. (default: 'horizontal'). If you set this to 'vertical'
|
|
you can have each field lined up vertically beneath each other. You can
|
|
save up a lot of place on the horizontal direction and no longer have to
|
|
scroll. If you set this to integer, editing of fewer columns will appear in
|
|
'vertical' mode, while editing of more fields still in 'horizontal' mode.
|
|
This way you can still effectively edit large number of fields, while
|
|
having full view on few of them.
|
|
$cfg['ShowBrowseComments'] boolean
|
|
$cfg['ShowPropertyComments'] boolean
|
|
By setting the corresponding variable to TRUE you can enable the display of
|
|
column comments in Browse or Property display. In browse mode, the comments
|
|
are shown inside the header. In property mode, comments are displayed using
|
|
a CSS-formatted dashed-line below the name of the field. The comment is
|
|
shown as a tool-tip for that field.
|
|
$cfg['SQLQuery']['Edit'] boolean
|
|
Whether to display an edit link to change a query in any SQL Query box.
|
|
$cfg['SQLQuery']['Explain'] boolean
|
|
Whether to display a link to explain a SELECT query in any SQL Query box.
|
|
$cfg['SQLQuery']['ShowAsPHP'] boolean
|
|
Whether to display a link to wrap a query in PHP code in any SQL Query box.
|
|
$cfg['SQLQuery']['Validate'] boolean
|
|
Whether to display a link to validate a query in any SQL Query box. See
|
|
also $cfg_SQLValidator.
|
|
$cfg['SQLQuery']['Refresh'] boolean
|
|
Whether to display a link to refresh a query in any SQL Query box.
|
|
$cfg['UploadDir'] string
|
|
The name of the directory where
|
|
$cfg['UploadDir'] string
|
|
The name of the directory where SQL files have been uploaded by other means
|
|
than phpMyAdmin (for example, ftp). Those files are available under a
|
|
drop-down box when you click the database name, then the SQL tab.
|
|
|
|
If you want different directory for each user, %u will be replaced with
|
|
username.
|
|
|
|
Please note that the file names must have the suffix ".sql" (or ".sql.bz2"
|
|
or ".sql.gz" if support for compressed formats is enabled).
|
|
|
|
This feature is useful when your file is too big to be uploaded via HTTP,
|
|
or when file uploads are disabled in PHP.
|
|
|
|
Please note that if PHP is running in safe mode, this directory must be
|
|
owned by the same user as the owner of the phpMyAdmin scripts.
|
|
|
|
See also FAQ 1.16 for alternatives.
|
|
$cfg['SaveDir'] string
|
|
The name of the directory where dumps can be saved.
|
|
|
|
If you want different directory for each user, %u will be replaced with
|
|
username.
|
|
|
|
Please note that the directory has to be writable for user running
|
|
webserver.
|
|
|
|
Please note that if PHP is running in safe mode, this directory must be
|
|
owned by the same user as the owner of the phpMyAdmin scripts.
|
|
$cfg['TempDir'] string
|
|
The name of the directory where temporary files can be stored.
|
|
|
|
This is needed for native MS Excel export, see FAQ 6.23
|
|
$cfg['Export'] array
|
|
In this array are defined default parameters for export, names of items are
|
|
similar to texts seen on export page, so you can easily identify what they
|
|
mean.
|
|
$cfg['Import'] array
|
|
In this array are defined default parameters for import, names of items are
|
|
similar to texts seen on import page, so you can easily identify what they
|
|
mean.
|
|
$cfg['RepeatCells'] integer
|
|
Repeat the headers every X cells, or 0 to deactivate.
|
|
$cfg['EditInWindow'] boolean
|
|
$cfg['QueryWindowWidth'] integer
|
|
$cfg['QueryWindowHeight'] integer
|
|
$cfg['QueryHistoryDB'] boolean
|
|
$cfg['QueryWindowDefTab'] string
|
|
$cfg['QueryHistoryMax'] integer
|
|
All those variables affect the query window feature. A SQL link or icon is
|
|
always displayed on the left panel. If JavaScript is enabled in your
|
|
browser, a click on this opens a distinct query window, which is a direct
|
|
interface to enter SQL queries. Otherwise, the right panel changes to
|
|
display a query box.
|
|
|
|
The size of this query window can be customized with $cfg
|
|
['QueryWindowWidth'] and $cfg['QueryWindowWidth'] - both integers for the
|
|
size in pixels. Note that normally, those parameters will be modified in
|
|
layout.inc.php for the theme you are using.
|
|
|
|
If $cfg['EditInWindow'] is set to true, a click on [Edit] from the results
|
|
page (in the "Showing Rows" section) opens the query window and puts the
|
|
current query inside it. If set to false, clicking on the link puts the SQL
|
|
query in the right panel's query box.
|
|
|
|
The usage of the JavaScript query window is recommended if you have a
|
|
JavaScript enabled browser. Basic functions are used to exchange quite a
|
|
few variables, so most 4th generation browsers should be capable to use
|
|
that feature. It currently is only tested with Internet Explorer 6 and
|
|
Mozilla 1.x.
|
|
|
|
If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged to a
|
|
table, which has to be created by you (see $cfg['Servers'][$i]['history']).
|
|
If set to FALSE, all your queries will be appended to the form, but only as
|
|
long as your window is opened they remain saved.
|
|
|
|
When using the JavaScript based query window, it will always get updated
|
|
when you click on a new table/db to browse and will focus if you click on
|
|
"Edit SQL" after using a query. You can suppress updating the query window
|
|
by checking the box "Do not overwrite this query from outside the window"
|
|
below the query textarea. Then you can browse tables/databases in the
|
|
background without losing the contents of the textarea, so this is
|
|
especially useful when composing a query with tables you first have to look
|
|
in. The checkbox will get automatically checked whenever you change the
|
|
contents of the textarea. Please uncheck the button whenever you definitely
|
|
want the query window to get updated even though you have made alterations.
|
|
|
|
If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount of
|
|
saved history items using $cfg['QueryHistoryMax'].
|
|
|
|
The query window also has a custom tabbed look to group the features. Using
|
|
the variable $cfg['QueryWindowDefTab'] you can specify the default tab to
|
|
be used when opening the query window. It can be set to either 'sql',
|
|
'files', 'history' or 'full'.
|
|
$cfg['BrowseMIME'] boolean
|
|
Enable MIME-transformations.
|
|
$cfg['MaxExactCount'] integer
|
|
For InnoDB tables, determines for how large tables phpMyAdmin should get
|
|
the exact row count using SELECT COUNT. If the approximate row count as
|
|
returned by SHOW TABLE STATUS is smaller than this value, SELECT COUNT will
|
|
be used, otherwise the approximate count will be used.
|
|
$cfg['MaxExactCountViews'] integer
|
|
For VIEWs, since obtaining the exact count could have an impact on
|
|
performance, this value is the maximum to be displayed, using a SELECT
|
|
COUNT ... LIMIT. The default value of 0 bypasses any row counting.
|
|
$cfg['WYSIWYG-PDF'] boolean
|
|
Utilizes a WYSIWYG editing control to easily place elements of a PDF page.
|
|
By clicking on the button 'toggle scratchboard' on the page where you edit
|
|
x/y coordinates of those elements you can activate a scratchboard where all
|
|
your elements are placed. By clicking on an element, you can move them
|
|
around in the pre-defined area and the x/y coordinates will get updated
|
|
dynamically. Likewise, when entering a new position directly into the input
|
|
field, the new position in the scratchboard changes after your cursor
|
|
leaves the input field.
|
|
You have to click on the 'OK'-button below the tables to save the new
|
|
positions. If you want to place a new element, first add it to the table of
|
|
elements and then you can drag the new element around.
|
|
By changing the paper size and the orientation you can change the size of
|
|
the scratchboard as well. You can do so by just changing the dropdown field
|
|
below, and the scratchboard will resize automatically, without interfering
|
|
with the current placement of the elements.
|
|
If ever an element gets out of range you can either enlarge the paper size
|
|
or click on the 'reset' button to place all elements below each other.
|
|
NOTE: You have to use a recent browser like IE6 or Mozilla to get this
|
|
control to work. The basic Drag&Drop script functionality was kindly
|
|
borrowed from www.youngpup.net and is underlying so specific license.
|
|
$cfg['NaturalOrder'] boolean
|
|
Sorts database and table names according to natural order (for example, t1,
|
|
t2, t10). Currently implemented in the left panel (Light mode) and in
|
|
Database view, for the table list.
|
|
$cfg['TitleTable'] string
|
|
$cfg['TitleDatabase'] string
|
|
$cfg['TitleServer'] string
|
|
$cfg['TitleDefault'] string
|
|
Allows you to specify window's title bar. Following magic string can be
|
|
used to get special values:
|
|
|
|
@HTTP_HOST@
|
|
HTTP host that runs phpMyAdmin
|
|
@SERVER@
|
|
MySQL server name
|
|
@VERBOSE@
|
|
Verbose MySQL server name as defined in server configuration
|
|
@VSERVER@
|
|
Verbose MySQL server name if set, otherwise normal
|
|
@DATABASE@
|
|
Currently opened database
|
|
@TABLE@
|
|
Currently opened table
|
|
@PHPMYADMIN@
|
|
phpMyAdmin with version
|
|
|
|
$cfg['ErrorIconic'] boolean
|
|
Uses icons for warnings, errors and informations.
|
|
$cfg['MainPageIconic'] boolean
|
|
Uses icons on main page in lists and menu tabs.
|
|
$cfg['ReplaceHelpImg'] boolean
|
|
Shows a help button instead of the "Documentation" message.
|
|
$cfg['ThemePath'] string
|
|
If theme manager is active, use this as the path of the subdirectory
|
|
containing all the themes.
|
|
$cfg['ThemeManager'] boolean
|
|
Enables user-selectable themes. See FAQ 2.7.
|
|
$cfg['ThemeDefault'] string
|
|
The default theme (a subdirectory under cfg['ThemePath']).
|
|
$cfg['ThemePerServer'] boolean
|
|
Whether to allow different theme for each server.
|
|
$cfg['DefaultQueryTable'] string
|
|
$cfg['DefaultQueryDatabase'] string
|
|
Default queries that will be displayed in query boxes when user didn't
|
|
specify any. Use %d for database name, %t for table name and %f for a comma
|
|
separated list of field names. Note that %t and %f are only applicable to
|
|
$cfg['DefaultQueryTable'].
|
|
$cfg['SQP']['fmtType'] string [html|none]
|
|
The main use of the new SQL Parser is to pretty-print SQL queries. By
|
|
default we use HTML to format the query, but you can disable this by
|
|
setting this variable to 'none'.
|
|
$cfg['SQP']['fmtInd'] float
|
|
$cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex]
|
|
For the pretty-printing of SQL queries, under some cases the part of a
|
|
query inside a bracket is indented. By changing $cfg['SQP']['fmtInd'] you
|
|
can change the amount of this indent.
|
|
Related in purpose is $cfg['SQP']['fmtIndUnit'] which specifies the units
|
|
of the indent amount that you specified. This is used via stylesheets.
|
|
$cfg['SQP']['fmtColor'] array of string tuples
|
|
This array is used to define the colours for each type of element of the
|
|
pretty-printed SQL queries. The tuple format is
|
|
class => [HTML colour code | empty string]
|
|
If you specify an empty string for the color of a class, it is ignored in
|
|
creating the stylesheet. You should not alter the class names, only the
|
|
colour strings.
|
|
Class name key:
|
|
+ comment Applies to all comment sub-classes
|
|
+ comment_mysql Comments as "#...\n"
|
|
+ comment_ansi Comments as "-- ...\n"
|
|
+ comment_c Comments as "/*...*/"
|
|
+ digit Applies to all digit sub-classes
|
|
+ digit_hex Hexadecimal numbers
|
|
+ digit_integer Integer numbers
|
|
+ digit_float Floating point numbers
|
|
+ punct Applies to all punctuation sub-classes
|
|
+ punct_bracket_open_round Opening brackets"("
|
|
+ punct_bracket_close_round Closing brackets ")"
|
|
+ punct_listsep List item Separator ","
|
|
+ punct_qualifier Table/Column Qualifier "."
|
|
+ punct_queryend End of query marker ";"
|
|
+ alpha Applies to all alphabetic classes
|
|
+ alpha_columnType Identifiers matching a column type
|
|
+ alpha_columnAttrib Identifiers matching a database/table/column
|
|
attribute
|
|
+ alpha_functionName Identifiers matching a MySQL function name
|
|
+ alpha_reservedWord Identifiers matching any other reserved word
|
|
+ alpha_variable Identifiers matching a SQL variable "@foo"
|
|
+ alpha_identifier All other identifiers
|
|
+ quote Applies to all quotation mark classes
|
|
+ quote_double Double quotes "
|
|
+ quote_single Single quotes '
|
|
+ quote_backtick Backtick quotes `
|
|
$cfg['SQLValidator'] boolean
|
|
|
|
$cfg['SQLValidator']['use'] boolean
|
|
phpMyAdmin now supports use of the Mimer SQL Validator service, as
|
|
originally published on Slashdot.
|
|
For help in setting up your system to use the service, see the FAQ 6.14
|
|
.
|
|
$cfg['SQLValidator']['username'] string
|
|
$cfg['SQLValidator']['password'] string
|
|
The SOAP service allows you to log in with anonymous and any password,
|
|
so we use those by default. Instead, if you have an account with them,
|
|
you can put your login details here, and it will be used in place of
|
|
the anonymous login.
|
|
|
|
$cfg['DBG']
|
|
DEVELOPERS ONLY!
|
|
$cfg['DBG']['enable'] boolean
|
|
DEVELOPERS ONLY!
|
|
Enable the DBG extension for debugging phpMyAdmin. Required for profiling
|
|
the code.
|
|
For help in setting up your system to this, see the Developers section.
|
|
$cfg['DBG']['profile']['enable'] boolean
|
|
DEVELOPERS ONLY!
|
|
Enable profiling support for phpMyAdmin. This will append a chunk of data
|
|
to the end of every page displayed in the main window with profiling
|
|
statistics for that page.
|
|
You may need to increase the maximum execution time for this to complete
|
|
successfully.Profiling was removed from the code for version 2.9.0 due to
|
|
licensing issues.
|
|
$cfg['DBG']['profile']['threshold'] float (units in milliseconds)
|
|
DEVELOPERS ONLY!
|
|
When profiling data is displayed, this variable controls the threshold of
|
|
display for any profiling data, based on the average time each time has
|
|
taken. If it is over the threshold it is displayed, otherwise it is not
|
|
displayed. This takes a value in milliseconds. In most cases you don't need
|
|
to edit this.
|
|
$cfg['ColumnTypes'] array
|
|
All possible types of a MySQL column. In most cases you don't need to edit
|
|
this.
|
|
$cfg['AttributeTypes'] array
|
|
Possible attributes for fields. In most cases you don't need to edit this.
|
|
$cfg['Functions'] array
|
|
A list of functions MySQL supports. In most cases you don't need to edit
|
|
this.
|
|
$cfg['RestrictColumnTypes'] array
|
|
Mapping of column types to meta types used for preferring displayed
|
|
functions. In most cases you don't need to edit this.
|
|
$cfg['RestrictFunctions'] array
|
|
Functions preferred for column meta types as defined in $cfg
|
|
['RestrictColumnTypes']. In most cases you don't need to edit this.
|
|
$cfg['DefaultFunctions'] array
|
|
Functions selected by default when inserting/changing row, Functions are
|
|
defined for meta types from $cfg['RestrictColumnTypes'] and for
|
|
first_timestamp, which is used for first timestamp column in table.
|
|
$cfg['NumOperators'] array
|
|
Operators available for search operations on numeric and date fields.
|
|
$cfg['TextOperators'] array
|
|
Operators available for search operations on character fields. Note that we
|
|
put LIKE by default instead of LIKE %...%, to avoid unintended performance
|
|
problems in case of huge tables.
|
|
$cfg['EnumOperators'] array
|
|
Operators available for search operations on enum fields.
|
|
$cfg['NullOperators'] array
|
|
Additional operators available for search operations when the field can be
|
|
null.
|
|
|
|
Transformations
|
|
|
|
1. Introduction
|
|
2. Usage
|
|
3. File structure
|
|
|
|
1. Introduction
|
|
|
|
To enable transformations, you have to setup the column_info table and the
|
|
proper directives. Please see the Configuration section on how to do so.
|
|
|
|
You can apply different transformations to the contents of each field. The
|
|
transformation will take the content of each field and transform it with
|
|
certain rules defined in the selected transformation.
|
|
|
|
Say you have a field 'filename' which contains a filename. Normally you would
|
|
see in phpMyAdmin only this filename. Using transformations you can transform
|
|
that filename into a HTML link, so you can click inside of the phpMyAdmin
|
|
structure on the field's link and will see the file displayed in a new browser
|
|
window. Using transformation options you can also specify strings to append/
|
|
prepend to a string or the format you want the output stored in.
|
|
|
|
For a general overview of all available transformations and their options, you
|
|
can consult your <www.your-host.com>/<your-install-dir>/
|
|
transformation_overview.php installation.
|
|
|
|
For a tutorial on how to effectively use transformations, see our Link section
|
|
on the official phpMyAdmin homepage.
|
|
|
|
2. Usage
|
|
|
|
Go to your tbl_structure.php page (i.e. reached through clicking on the
|
|
'Structure' link for a table). There click on "Change" (or change icon) and
|
|
there you will see three new fields at the end of the line. They are called
|
|
'MIME-type', 'Browser transformation' and 'Transformation options'.
|
|
|
|
* The field 'MIME-type' is a dropdown field. You have the options to leave
|
|
that field empty or to use 'auto' [this feature is not yet available].
|
|
Please note that transformations are inactive as long as no MIME-type is
|
|
selected.
|
|
* The field 'Browser transformation' is a drop-down field. You can choose
|
|
from a hopefully growing amount of pre-defined transformations. See below
|
|
for information on how to build your own transformation.
|
|
There are global transformations and mimetype-bound transformations. Global
|
|
transformations can be used for any mimetype. They will take the mimetype,
|
|
if necessary, into regard. Mimetype-bound transformations usually only
|
|
operate on a certain mimetype. There are transformations which operate on
|
|
the main mimetype (like 'image'), which will most likely take the subtype
|
|
into regard, and those who only operate on a specific subtype (like 'image/
|
|
jpeg').
|
|
You can use transformations on mimetypes for which the function was not
|
|
defined for. There is no security check for you selected the right
|
|
transformation, so take care of what the output will be like.
|
|
* The field 'Transformation options' is a free-type textfield. You have to
|
|
enter transform-function specific options here. Usually the transforms can
|
|
operate with default options, but it is generally a good idea to look up
|
|
the overview to see which options are necessary.
|
|
Much like the ENUM/SET-Fields, you have to split up several options using
|
|
the format 'a','b','c',...(NOTE THE MISSING BLANKS). This is because
|
|
internally the options will be parsed as an array, leaving the first value
|
|
the first element in the array, and so forth.
|
|
If you want to specify a MIME character set you can define it in the
|
|
transformation_options. You have to put that outside of the pre-defined
|
|
options of the specific mime-transform, as the last value of the set. Use
|
|
the format "'; charset=XXX'". If you use a transform, for which you can
|
|
specify 2 options and you want to append a character set, enter "'first
|
|
parameter','second parameter','charset=us-ascii'". You can, however use the
|
|
defaults for the parameters: "'','','charset=us-ascii'".
|
|
|
|
3. File structure
|
|
|
|
All mimetypes and their transformations are defined through single files in the
|
|
directory 'libraries/transformations/'.
|
|
|
|
They are stored in files to ease up customization and easy adding of new
|
|
transformations.
|
|
|
|
Because the user cannot enter own mimetypes, it is kept sure that
|
|
transformations always work. It makes no sense to apply a transformation to a
|
|
mimetype, the transform-function doesn't know to handle.
|
|
|
|
One can, however, use empty mime-types and global transformations which should
|
|
work for many mimetypes. You can also use transforms on a different mimetype
|
|
they where built for, but pay attention to option usage as well as what the
|
|
transformation does to your field.
|
|
|
|
There is a basic file called 'global.inc.php'. This function can be included by
|
|
any other transform function and provides some basic functions.
|
|
|
|
There are 5 possible file names:
|
|
|
|
1. A mimetype+subtype transform:
|
|
|
|
[mimetype]_[subtype]__[transform].inc.php
|
|
|
|
Please not that mimetype and subtype are separated via '_', which shall not
|
|
be contained in their names. The transform function/filename may contain
|
|
only characters which cause no problems in the file system as well as the
|
|
PHP function naming convention.
|
|
|
|
The transform function will the be called 'PMA_transform_[mimetype]_
|
|
[subtype]__[transform]()'.
|
|
|
|
Example:
|
|
|
|
text_html__formatted.inc.php
|
|
PMA_transform_text_html__formatted()
|
|
2. A mimetype (w/o subtype) transform:
|
|
|
|
[mimetype]__[transform].inc.php
|
|
|
|
Please note that there are no single '_' characters. The transform function
|
|
/filename may contain only characters which cause no problems in the file
|
|
system as well as the PHP function naming convention.
|
|
|
|
The transform function will the be called 'PMA_transform_[mimetype]__
|
|
[transform]()'.
|
|
|
|
Example:
|
|
|
|
text__formatted.inc.php
|
|
PMA_transform_text__formatted()
|
|
3. A mimetype+subtype without specific transform function
|
|
|
|
[mimetype]_[subtype].inc.php
|
|
|
|
Please note that there are no '__' characters in the filename. Do not use
|
|
special characters in the filename causing problems with the file system.
|
|
|
|
No transformation function is defined in the file itself.
|
|
|
|
Example:
|
|
|
|
text_plain.inc.php
|
|
(No function)
|
|
4. A mimetype (w/o subtype) without specific transform function
|
|
|
|
[mimetype].inc.php
|
|
|
|
Please note that there are no '_' characters in the filename. Do not use
|
|
special characters in the filename causing problems with the file system.
|
|
|
|
No transformation function is defined in the file itself.
|
|
|
|
Example:
|
|
|
|
text.inc.php
|
|
(No function)
|
|
5. A global transform function with no specific mimetype
|
|
|
|
global__[transform].inc.php
|
|
|
|
The transform function will the be called 'PMA_transform_global__
|
|
[transform]()'.
|
|
|
|
Example:
|
|
|
|
global__formatted
|
|
PMA_transform_global__formatted()
|
|
|
|
So generally use '_' to split up mimetype and subtype, and '__' to provide a
|
|
transform function.
|
|
|
|
All filenames containing no '__' in themselves are not shown as valid transform
|
|
functions in the dropdown.
|
|
|
|
Please see the libraries/transformations/TEMPLATE file for adding your own
|
|
transform function. See the libraries/transformations/TEMPLATE_MIMETYPE for
|
|
adding a mimetype without a transform function. Also note the introduction of a
|
|
function description in the language files. For each function a
|
|
$strTransformation_[filename without .inc.php] has to exist.
|
|
|
|
You can use the template generator to generate new functions and entries in the
|
|
language file.
|
|
|
|
To create a new transform function please see libraries/transformations/
|
|
template_generator.sh. To create a new, empty mimetype please see libraries/
|
|
transformations/template_generator_mimetype.sh.
|
|
|
|
A transform function always gets passed three variables:
|
|
|
|
1. $buffer - Contains the text inside of the column. This is the text, you
|
|
want to transform.
|
|
2. $options - Contains any user-passed options to a transform function as an
|
|
array.
|
|
3. $meta - Contains an object with field information to your column. The data
|
|
is drawn from the output of the mysql_fetch_field() function. This means,
|
|
all object properties described on the manual page are available in this
|
|
variable and can be used to transform a field accordingly to unsigned/
|
|
zerofill/not_null/... properties.
|
|
The $meta->mimetype variable contains the original MIME-type of the field
|
|
(i.e. 'text/plain', 'image/jpeg' etc.)
|
|
|
|
FAQ - Frequently Asked Questions
|
|
|
|
1. Server
|
|
2. Configuration
|
|
3. Known limitations
|
|
4. ISPs, multi-user installations
|
|
5. Browsers or client OS
|
|
6. Using phpMyAdmin
|
|
7. phpMyAdmin project
|
|
8. Security
|
|
|
|
Please have a look at our Link section on the official phpMyAdmin homepage for
|
|
in-depth coverage of phpMyAdmin's features and or interface.
|
|
|
|
Server
|
|
|
|
1.1 I'm running PHP 4+ and my server is crashing each time a specific action is
|
|
required or phpMyAdmin sends a blank page or a page full of cryptic characters
|
|
to my browser, what can I do?
|
|
|
|
There are some known PHP bugs with output buffering and compression.
|
|
Try to set the $cfg['OBGzip'] directive to FALSE in your config.inc.php file
|
|
and the zlib.output_compression directive to Off in your php configuration
|
|
file.
|
|
Furthermore, we know about such problems connected to the release candidates of
|
|
PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with MS Internet
|
|
Explorer. Please upgrade to the release version PHP 4.2.0.
|
|
|
|
1.2 My Apache server crashes when using phpMyAdmin.
|
|
|
|
You should first try the latest versions of Apache (and possibly MySQL).
|
|
See also the FAQ 1.1 entry about PHP bugs with output buffering.
|
|
If your server keeps crashing, please ask for help in the various Apache
|
|
support groups.
|
|
|
|
1.3 I'm running phpMyAdmin with "cookie" authentication mode under PHP 4.2.0 or
|
|
4.2.1 loaded as an Apache 2 module but can't enter the script: I'm always
|
|
displayed the login screen.
|
|
|
|
This is a known PHP bug (see this bug report) from the official PHP bug
|
|
database. It means there is and won't be any phpMyAdmin fix against it because
|
|
there is no way to code a fix.
|
|
|
|
1.4 Using phpMyAdmin on IIS, I'm displayed the error message: "The specified
|
|
CGI application misbehaved by not returning a complete set of HTTP headers
|
|
...".
|
|
|
|
You just forgot to read the install.txt file from the php distribution. Have a
|
|
look at the last message in this bug report from the official PHP bug database.
|
|
|
|
1.5 Using phpMyAdmin on IIS, I'm facing crashes and/or many error messages with
|
|
the HTTP or advanced authentication mode.
|
|
|
|
This is a known problem with the PHP ISAPI filter: it's not so stable. Please
|
|
use instead the cookie authentication mode.
|
|
|
|
1.6 I can't use phpMyAdmin on PWS: nothing is displayed!
|
|
|
|
This seems to be a PWS bug. Filippo Simoncini found a workaround (at this time
|
|
there is no better fix): remove or comment the DOCTYPE declarations (2 lines)
|
|
from the scripts libraries/header.inc.php, libraries/header_printview.inc.php,
|
|
index.php, navigation.php and libraries/common.lib.php.
|
|
|
|
1.7 How can I GZip or Bzip a dump or a CSV export? It does not seem to work.
|
|
|
|
These features are based on the gzencode() and bzcompress() PHP functions to be
|
|
more independent of the platform (Unix/Windows, Safe Mode or not, and so on).
|
|
So, you must have PHP4 >= 4.0.4 and Zlib/Bzip2 support (--with-zlib and
|
|
--with-bz2).
|
|
We faced PHP crashes when trying to download a dump with MS Internet Explorer
|
|
when phpMyAdmin is run with a release candidate of PHP 4.2.0. In this case you
|
|
should switch to the release version of PHP 4.2.0.
|
|
|
|
1.8 I cannot insert a text file in a table, and I get an error about safe mode
|
|
being in effect.
|
|
|
|
Your uploaded file is saved by PHP in the "upload dir", as defined in php.ini
|
|
by the variable upload_tmp_dir (usually the system default is /tmp).
|
|
We recommend the following setup for Apache servers running in safe mode, to
|
|
enable uploads of files while being reasonably secure:
|
|
|
|
* create a separate directory for uploads: mkdir /tmp/php
|
|
* give ownership to the Apache server's user.group: chown apache.apache /tmp/
|
|
php
|
|
* give proper permission: chmod 600 /tmp/php
|
|
* put upload_tmp_dir = /tmp/php in php.ini
|
|
* restart Apache
|
|
|
|
1.9 I'm having troubles when uploading files. In general file uploads don't
|
|
work on my system and uploaded files have a Content-Type: header in the first
|
|
line.
|
|
|
|
It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0 and
|
|
you updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't you?
|
|
So the problem is that this package has a serious bug that was corrected ages
|
|
ago in PHP (2001-01-28: see PHP's bug tracking system for more details). The
|
|
problem is that the bugged package is still available though it was corrected
|
|
(see RedHat's BugZilla for more details).
|
|
So please download the fixed package (4.0.4pl1-9) and the problem should go
|
|
away.
|
|
And that fixes the \r\n problem with file uploads!
|
|
|
|
1.10 I'm having troubles when uploading files with phpMyAdmin running on a
|
|
secure server. My browser is Internet Explorer and I'm using the Apache server.
|
|
|
|
As suggested by "Rob M" in the phpWizard forum, add this line to your
|
|
httpd.conf:
|
|
|
|
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
|
|
|
|
It seems to clear up many problems between Internet Explorer and SSL.
|
|
|
|
1.11 I get an 'open_basedir restriction' while uploading a file from the query
|
|
box.
|
|
|
|
Since version 2.2.4, phpMyAdmin supports servers with open_basedir
|
|
restrictions. Assuming that the restriction allows you to open files in the
|
|
current directory ('.'), all you have to do is create a 'tmp' directory under
|
|
the phpMyAdmin install directory, with permissions 777 and the same owner as
|
|
the owner of your phpMyAdmin directory. The uploaded files will be moved there,
|
|
and after execution of your SQL commands, removed.
|
|
|
|
1.12 I have lost my MySQL root password, what can I do?
|
|
|
|
The MySQL manual explains how to reset the permissions.
|
|
|
|
1.13 I get an error 'No SQL query' when trying to execute a bookmark.
|
|
|
|
If PHP does not have read/write access to its upload_tmp_dir, it cannot access
|
|
the uploaded query.
|
|
|
|
1.14 I get an error 'No SQL query' when trying to submit a query from the
|
|
convenient text area.
|
|
|
|
Check the post_max_size directive from your PHP configuration file and try to
|
|
increase it.
|
|
|
|
1.15 I have problems with mysql.user field names.
|
|
|
|
In older MySQL versions, the User and Password fields were named user and
|
|
password. Please modify your field names to align with current standards.
|
|
|
|
1.16 I cannot upload big dump files (memory, HTTP or timeout problems).
|
|
|
|
Starting with version 2.7.0, the import engine has been re?written and these
|
|
problems should not occur. If possible, upgrade your phpMyAdmin to the latest
|
|
version to take advantage of the new import features.
|
|
|
|
The first things to check (or ask your host provider to check) are the values
|
|
of upload_max_filesize, memory_limit and post_max_size in the php.ini
|
|
configuration file. All of these three settings limit the maximum size of data
|
|
that can be submitted and handled by PHP. One user also said that post_max_size
|
|
and memory_limit need to be larger than upload_max_filesize.
|
|
|
|
There exist several workarounds if your upload is too big or your hosting
|
|
provider is unwilling to change the settings:
|
|
|
|
* Look at the $cfg['UploadDir'] feature. This allows one to upload a file to
|
|
the server via scp, ftp, or your favorite file transfer method. PhpMyAdmin
|
|
is then able to import the files from the temporary directory. More
|
|
information is available in the Configuration section of this document.
|
|
* Using a utility (such as BigDump) to split the files before uploading. We
|
|
cannot support this or any third party applications, but are aware of users
|
|
having success with it.
|
|
* If you have shell (command line) access, use MySQL to import the files
|
|
directly. You can do this by issuing the "source" command from within
|
|
MySQL: source filename.sql.
|
|
|
|
1.17 Which MySQL versions does phpMyAdmin support?
|
|
|
|
All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are fully
|
|
supported. Please note that the older your MySQL version is, the more
|
|
limitations you will have to face.
|
|
phpMyAdmin may connect to your MySQL server using php's classic MySQL extension
|
|
as well as the improved MySQL extension (MySQLi) that is available in php 5.0.
|
|
Either way, the developers of both extensions recommend to use the classic
|
|
extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.
|
|
When compiling php, we strongly recommend that you manually link the MySQL
|
|
extension of your choice to a MySQL client library of at least the same minor
|
|
version since the one that is bundled with some php distributions is rather old
|
|
and might cause problems (see FAQ 1.17a). If your webserver is running on a
|
|
windows system, you might want to try MySQL's Connector/PHP instead of the
|
|
MySQL / MySQLi extensions that are bundled with the official php Win32 builds.
|
|
MySQL 5.1 is not yet supported.
|
|
|
|
1.17a I cannot connect to the MySQL server. It always returns the error
|
|
message, "Client does not support authentication protocol requested by server;
|
|
consider upgrading MySQL client"
|
|
|
|
You tried to access MySQL with an old MySQL client library. The version of your
|
|
MySQL client library can be checked in your phpinfo() output. In general, it
|
|
should have at least the same minor version as your server - as mentioned in
|
|
FAQ 1.17.
|
|
|
|
This problem is generally caused by using MySQL version 4.1 or newer. MySQL
|
|
changed the authentication hash and your PHP is trying to use the old method.
|
|
The proper solution is to use the mysqli extension with the proper client
|
|
library to match your MySQL installation. Your chosen extension is specified in
|
|
$cfg['Servers'][$i]['extension']. More information (and several workarounds)
|
|
are located in the MySQL Documentation.
|
|
|
|
1.18 I'm running MySQL <= 4.0.1 having lower_case_table_names set to 1. If I
|
|
create a new table with a capital letter in its name it is changed to lowercase
|
|
as it should. But if I try to DROP this table MySQL is unable to find the
|
|
corresponding file.
|
|
|
|
This is a bug of MySQL <= 4.0.1. Please upgrade to at least MySQL 4.0.2 or turn
|
|
off your lower_case_table_names directive.
|
|
|
|
1.19 I can't run the "display relations" feature because the script seems not
|
|
to know the font face I'm using!
|
|
|
|
The "FPDF" library we're using for this feature requires some special files to
|
|
use font faces.
|
|
Please refers to the FPDF manual to build these files.
|
|
|
|
1.20 I receive the error "cannot load MySQL extension, please check PHP
|
|
Configuration".
|
|
|
|
To connect to a MySQL server, PHP needs a set of MySQL functions called "MySQL
|
|
extension". This extension may be part of the PHP distribution (compiled-in),
|
|
otherwise it needs to be loaded dynamically. Its name is probably mysql.so or
|
|
php_mysql.dll. phpMyAdmin tried to load the extension but failed.
|
|
|
|
Usually, the problem is solved by installing a software package called
|
|
"PHP-MySQL" or something similar.
|
|
|
|
1.21 I am running the CGI version of PHP under Unix, and I cannot log in using
|
|
cookie auth.
|
|
|
|
In php.ini, set mysql.max_links higher than 1.
|
|
|
|
1.22 I don't see the "Location of text file" field, so I cannot upload.
|
|
|
|
This is most likely because in php.ini, your file_uploads parameter is not set
|
|
to "on".
|
|
|
|
1.23 I'm running MySQL on a Win32 machine. Each time I create a new table the
|
|
table and field names are changed to lowercase!
|
|
|
|
This happens because the MySQL directive lower_case_table_names defaults to 1
|
|
(ON) in the Win32 version of MySQL. You can change this behavior by simply
|
|
changing the directive to 0 (OFF):
|
|
Just edit your my.ini file that should be located in your Windows directory and
|
|
add the following line to the group [mysqld]:
|
|
|
|
set-variable = lower_case_table_names=0
|
|
|
|
Next, save the file and restart the MySQL service. You can always check the
|
|
value of this directive using the query
|
|
|
|
SHOW VARIABLES LIKE 'lower_case_table_names';
|
|
|
|
1.24 Some characters are being truncated in my queries, or I get characters
|
|
randomly added. I am running PHP 4.2.3.
|
|
|
|
This is a PHP 4.2.3 bug.
|
|
|
|
1.25 I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get
|
|
problems, such as undefined variables when I run a SQL query.
|
|
|
|
A tip from Jose Fandos: put a comment on the following two lines in httpd.conf,
|
|
like this:
|
|
|
|
# mod_gzip_item_include file \.php$
|
|
# mod_gzip_item_include mime "application/x-httpd-php.*"
|
|
|
|
as this version of mod_gzip on Apache (Windows) has problems handling PHP
|
|
scripts. Of course you have to restart Apache.
|
|
|
|
1.26 I just installed phpMyAdmin in my document root of IIS but I get the error
|
|
"No input file specified" when trying to run phpMyAdmin.
|
|
|
|
This is a permission problem. Right-click on the phpmyadmin folder and choose
|
|
properties. Under the tab Security, click on "Add" and select the user
|
|
"IUSR_machine" from the list. Now set his permissions and it should work.
|
|
|
|
1.27 I get empty page when I want to view huge page (eg. db_structure.php with
|
|
plenty of tables).
|
|
|
|
This is a PHP bug that occur when GZIP output buffering is enabled. If you turn
|
|
off it (by $cfg['OBGzip'] = false in config.inc.php), it should work. This bug
|
|
will be fixed in PHP 5.0.0.
|
|
|
|
1.28 My MySQL server sometimes refuses queries and returns the message
|
|
'Errorcode: 13'. What does this mean?
|
|
|
|
This can happen due to a MySQL bug when having database / table names with
|
|
upper case characters although lower_case_table_names is set to 1. To fix this,
|
|
turn off this directive, convert all database and table names to lower case and
|
|
turn it on again. Alternatively, there's a bug-fix available starting with
|
|
MySQL 3.23.56 / 4.0.11-gamma.
|
|
|
|
1.29 When I create a table or modify a field, I get an error and the fields are
|
|
duplicated.
|
|
|
|
It is possible to configure Apache in such a way that PHP has problems
|
|
interpreting .php files.
|
|
|
|
The problems occur when two different (and conflicting) set of directives are
|
|
used:
|
|
|
|
SetOutputFilter PHP
|
|
SetInputFilter PHP
|
|
|
|
and
|
|
|
|
AddType application/x-httpd-php .php
|
|
|
|
In the case we saw, one set of directives was in /etc/httpd/conf/httpd.conf,
|
|
while the other set was in /etc/httpd/conf/addon-modules/php.conf.
|
|
The recommended way is with AddType, so just comment out the first set of lines
|
|
and restart Apache:
|
|
|
|
#SetOutputFilter PHP
|
|
#SetInputFilter PHP
|
|
|
|
1.30 I get the error "navigation.php: Missing hash".
|
|
|
|
This problem is known to happen when the server is running Turck MMCache but
|
|
upgrading MMCache to version 2.3.21 solves the problem.
|
|
|
|
1.31 Does phpMyAdmin support php5?
|
|
|
|
Yes.
|
|
However, phpMyAdmin needs to be backwards compatible to php4. This is why
|
|
phpMyAdmin disables the E_STRICT error_level in error_reporting settings.
|
|
|
|
1.32 Can I use HTTP authentication with IIS?
|
|
|
|
Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI mode
|
|
under IIS 5.1.
|
|
|
|
1. In your php.ini file, set cgi.rfc2616_headers = 0
|
|
2. In Web Site Properties -> File/Directory Security -> Anonymous Access
|
|
dialog box, check the Anonymous access checkbox and uncheck any other
|
|
checkboxes (i.e. uncheck Basic authentication, Integrated Windows
|
|
authentication, and Digest if it's enabled.) Click OK.
|
|
3. In Custom Errors, select the range of 401;1 through 401;5 and click the Set
|
|
to Default button.
|
|
|
|
1.33 Is there a problem with the mysqli extension when running PHP 5.0.4 on
|
|
64-bit systems?
|
|
|
|
Yes. This problem affects phpMyAdmin ("Call to undefined function
|
|
pma_reloadnavigation"), so upgrade your PHP to the next version.
|
|
|
|
1.34 Can I access directly to database or table pages?
|
|
|
|
Yes. Out of the box, you can use URLs like http://server/phpMyAdmin/index.php?
|
|
db=database&table=table&target=script. Table and script parts are optional. If
|
|
you want http://server/phpMyAdmin/database[/table][/script] URLs, you need to
|
|
do some configuration. Following lines apply only for Apache web server. First
|
|
make sure, that you have enabled some features within global configuration. You
|
|
need Options FollowSymLinks and AllowOverride FileInfo enabled for directory
|
|
where phpMyAdmin is installed and you need mod_rewrite to be enabled. Then you
|
|
just need to create following .htaccess file in root folder of phpMyAdmin
|
|
installation (don't forget to change directory name inside of it):
|
|
|
|
RewriteEngine On
|
|
RewriteBase /path_to_phpMyAdmin
|
|
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
|
|
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
|
|
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
|
|
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
|
|
|
|
1.35 Can I use HTTP authentication with Apache CGI?
|
|
|
|
Yes. However you need to pass authentication variable to CGI using following
|
|
rewrite rule:
|
|
|
|
RewriteEngine On
|
|
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
|
|
|
|
1.36 I get an error "500 Internal Server Error".
|
|
|
|
There can be many explanations to this and a look at your server's error log
|
|
file might give a clue.
|
|
|
|
1.37 I run phpMyAdmin on cluster of different machines and password encryption
|
|
in cookie auth doesn't work.
|
|
|
|
If your cluster consist of different architectures, PHP code used for
|
|
encryption/decryption won't work correct. This is caused by use of pack/unpack
|
|
functions in code. Only solution is to use mcrypt extension which works fine in
|
|
this case.
|
|
|
|
Configuration
|
|
|
|
2.1 The error message "Warning: Cannot add header information - headers already
|
|
sent by ..." is displayed, what's the problem?
|
|
|
|
Edit your config.inc.php file and ensure there is nothing (I.E. no blank lines,
|
|
no spaces, no characters...) neither before the <?php tag at the beginning,
|
|
neither after the ?> tag at the end.
|
|
|
|
2.2 phpMyAdmin can't connect to MySQL. What's wrong?
|
|
|
|
Either there is an error with your PHP setup or your username/password is
|
|
wrong. Try to make a small script which uses mysql_connect and see if it works.
|
|
If it doesn't, it may be you haven't even compiled MySQL support into PHP.
|
|
|
|
2.3 The error message "Warning: MySQL Connection Failed: Can't connect to local
|
|
MySQL server through socket '/tmp/mysql.sock' (111) ..." is displayed. What can
|
|
I do?
|
|
|
|
For RedHat users, Harald Legner suggests this on the mailing list:
|
|
|
|
On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In your
|
|
php.ini you will find a line
|
|
|
|
mysql.default_socket = /tmp/mysql.sock
|
|
|
|
change it to
|
|
|
|
mysql.default_socket = /var/lib/mysql/mysql.sock
|
|
|
|
Then restart apache and it will work.
|
|
|
|
Here is a fix suggested by Brad Ummer:
|
|
|
|
* First, you need to determine what socket is being used by MySQL.
|
|
To do this, telnet to your server and go to the MySQL bin directory. In
|
|
this directory there should be a file named mysqladmin. Type ./mysqladmin
|
|
variables, and this should give you a bunch of info about your MySQL
|
|
server, including the socket (/tmp/mysql.sock, for example).
|
|
* Then, you need to tell PHP to use this socket.
|
|
To do this in phpMyAdmin, you need to complete the socket information in
|
|
the config.inc.php.
|
|
For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
|
|
|
|
Please also make sure that the permissions of this file allow to be
|
|
readable by your webserver (i.e. '0755').
|
|
|
|
Have also a look at the corresponding section of the MySQL documentation.
|
|
|
|
2.4 Nothing is displayed by my browser when I try to run phpMyAdmin, what can I
|
|
do?
|
|
|
|
Try to set the $cfg['OBGZip'] directive to FALSE in the phpMyAdmin
|
|
configuration file. It helps sometime.
|
|
Also have a look at your PHP version number: if it contains "4.0b..." it means
|
|
you're running a beta version of PHP. That's not a so good idea, please upgrade
|
|
to a plain revision.
|
|
|
|
2.5 Each time I want to insert or change a record or drop a database or a
|
|
table, an error 404 (page not found) is displayed or, with HTTP or cookie
|
|
authentication, I'm asked to log in again. What's wrong?
|
|
|
|
Check the value you set for the $cfg['PmaAbsoluteUri'] directive in the
|
|
phpMyAdmin configuration file.
|
|
|
|
2.6 I get an "Access denied for user: 'root@localhost' (Using password: YES)
|
|
"-error when trying to access a MySQL-Server on a host which is port-forwarded
|
|
for my localhost.
|
|
|
|
When you are using a port on your localhost, which you redirect via
|
|
port-forwarding to another host, MySQL is not resolving the localhost as
|
|
expected.
|
|
Erik Wasser explains: The solution is: if your host is "localhost" MySQL (the
|
|
commandline tool 'mysql' as well) always tries to use the socket connection for
|
|
speeding up things. And that doesn't work in this configuration with port
|
|
forwarding.
|
|
If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the
|
|
TCP connection.
|
|
|
|
2.7 Using and creating themes
|
|
|
|
Themes are configured with $cfg['ThemePath'], $cfg['ThemeManager'] and $cfg
|
|
['ThemeDefault'].
|
|
|
|
Under $cfg['ThemePath'], you should not delete the directory "original" or its
|
|
underlying structure, because this is the system theme used by phpMyAdmin.
|
|
"original" contains all images and styles, for backwards compatibility and for
|
|
all themes that would not include images or css-files.
|
|
|
|
If $cfg['ThemeManager'] is enabled, you can select your favorite theme on the
|
|
main page. Your selected theme will be stored in a cookie.
|
|
|
|
|
|
To create a theme:
|
|
|
|
* make a new subdirectory (for example "your_theme_name") under $cfg
|
|
['ThemePath'] (by default themes)
|
|
* copy the files and directories from "original" to "your_theme_name"
|
|
* edit the css-files in "your_theme_name/css"
|
|
* put your new images in "your_theme_name/img"
|
|
* edit layout.inc.php in "your_theme_name"
|
|
* edit info.inc.php in "your_theme_name" to contain your chosen theme name,
|
|
that will be visible in user interface
|
|
* make a new screenshot of your theme and save it under "your_theme_name/
|
|
screen.png"
|
|
|
|
In theme directory there is file info.inc.php which contains theme verbose
|
|
name, theme generation and theme version. These versions and generations are
|
|
enumerated from 1 and do not have any direct dependence on phpMyAdmin version.
|
|
Themes within same generation should be backwards compatible - theme with
|
|
version 2 should work in phpMyAdmin requiring version 1. Themes with different
|
|
generation are incompatible.
|
|
|
|
If you do not want to use your own symbols and buttons, remove the directory
|
|
"img" in "your_theme_name". phpMyAdmin will use the default icons and buttons
|
|
(from the system-theme "original").
|
|
|
|
2.8 I get "Missing parameters" errors, what can I do?
|
|
|
|
Here are a few points to check:
|
|
|
|
* In config.inc.php, try to leave the $cfg['PmaAbsoluteUri'] directive empty.
|
|
See also FAQ 4.7.
|
|
* Maybe you have a broken PHP installation or you need to upgrade your Zend
|
|
Optimizer. See http://bugs.php.net/bug.php?id=31134.
|
|
* If you are using Hardened PHP with the ini directive
|
|
varfilter.max_request_variables set to the default (200) or another low
|
|
value, you could get this error if your table has a high number of columns.
|
|
Adjust this setting accordingly. (Thanks to Klaus Dorninger for the hint).
|
|
* In the php.ini directive arg_separator.input, a value of ";" will cause
|
|
this error. Replace it with "&;".
|
|
* If you are using Hardened-PHP, you might want to increase request limits.
|
|
* The directory specified in the php.ini directive session.save_path does not
|
|
exist or is read-only.
|
|
|
|
Known limitations
|
|
|
|
3.1 When using HTTP authentication, an user who logged out can not log in again
|
|
in with the same nick.
|
|
|
|
This is related to the authentication mechanism (protocol) used by phpMyAdmin.
|
|
To bypass this problem: just close all the opened browser windows and then go
|
|
back to phpMyAdmin. You should be able to log in again.
|
|
|
|
3.2 When dumping a large table in compressed mode, I get a memory limit error
|
|
or a time limit error.
|
|
|
|
Compressed dumps are built in memory and because of this are limited to php's
|
|
memory limit. For GZip/BZip2 exports this can be overcome since 2.5.4 using
|
|
$cfg['CompressOnFly'] (enabled by default). Zip exports can not be handled this
|
|
way, so if you need Zip files for larger dump, you have to use another way.
|
|
|
|
3.3 With InnoDB tables, I lose foreign key relationships when I rename or alter
|
|
a table.
|
|
|
|
This seems to be a InnoDB bug (fixed in MySQL 3.23.50?).
|
|
|
|
3.4 I am unable to import dumps I created with the mysqldump tool bundled with
|
|
the MySQL server distribution.
|
|
|
|
The problem is that older versions of mysqldump created invalid comments like
|
|
this:
|
|
|
|
-- MySQL dump 8.22
|
|
--
|
|
-- Host: localhost Database: database
|
|
---------------------------------------------------------
|
|
-- Server version 3.23.54
|
|
|
|
The invalid part of the code is the horizontal line made of dashes that appears
|
|
once in every dump created with mysqldump. If you want to run your dump you
|
|
have to turn it into valid MySQL. This means, you have to add a whitespace
|
|
after the first two dashes of the line or add a # before it:
|
|
-- -------------------------------------------------------
|
|
or
|
|
#---------------------------------------------------------
|
|
|
|
3.5 When using nested folders there are some multiple hierarchies displayed in
|
|
a wrong manner?! ($cfg['LeftFrameTableSeparator'])
|
|
|
|
Please note that you should not use the separating string multiple times
|
|
without any characters between them, or at the beginning/end of your table
|
|
name. If you have to, think about using another TableSeparator or disabling
|
|
that feature
|
|
|
|
3.6 What is currently not supported in phpMyAdmin about InnoDB?
|
|
|
|
In Relation view, being able to choose a table in another database, or having
|
|
more than one index field in the foreign key.
|
|
|
|
In Query-by-example (Query), automatic generation of the query LEFT JOIN from
|
|
the foreign table.
|
|
|
|
|
|
3.7 I have table with many (100+) fields and when I try to browse table I get
|
|
series of errors like "Warning: unable to parse url". How can this be fixed?
|
|
|
|
Your table neither have a primary key nor an unique one, so we must use a long
|
|
expression to identify this row. This causes problems to parse_url function.
|
|
The workaround is to create a primary or unique key.
|
|
|
|
3.8 I cannot use (clickable) HTML-forms in fields where I put a
|
|
MIME-Transformation onto!
|
|
|
|
Due to a surrounding form-container (for multi-row delete checkboxes), no
|
|
nested forms can be put inside the table where phpMyAdmin displays the results.
|
|
You can, however, use any form inside of a table if keep the parent
|
|
form-container with the target to tbl_row_delete.php and just put your own
|
|
input-elements inside. If you use a custom submit input field, the form will
|
|
submit itself to the displaying page again, where you can validate the
|
|
$HTTP_POST_VARS in a transformation. For a tutorial on how to effectively use
|
|
transformations, see our Link section on the official phpMyAdmin-homepage.
|
|
|
|
3.9 I get error messages when using "--sql_mode=ANSI" for the MySQL server
|
|
|
|
When MySQL is running in ANSI-compatibility mode, there are some major
|
|
differences in how SQL is structured (see http://dev.mysql.com/doc/mysql/en/
|
|
ANSI_mode.html). Most important of all, the quote-character (") is interpreted
|
|
as an identifier quote character and not as a string quote character, which
|
|
makes many internal phpMyAdmin operations into invalid SQL statements. There is
|
|
no workaround to this behaviour. News to this item will be posted in Bug report
|
|
#816858
|
|
|
|
3.10 Homonyms and no primary key: When the results of a SELECT display more
|
|
that one column with the same value (for example SELECT lastname from employees
|
|
where firstname like 'A%' and two "Smith" values are displayed), if I click
|
|
Edit I cannot be sure that I am editing the intended row.
|
|
|
|
Please make sure that your table has a primary key, so that phpMyAdmin can use
|
|
it for the Edit and Delete links.
|
|
|
|
3.11 The number of records for InnoDB tables is not correct.
|
|
|
|
phpMyAdmin uses a quick method to get the row count, and this method only
|
|
returns an approximate count in the case of InnoDB tables. See $cfg
|
|
['MaxExactCount'] for a way to modify those results, but this could have a
|
|
serious impact on performance.
|
|
|
|
3.12 What are the phpMyAdmin limitations for MySQL 3?
|
|
|
|
The number of records in queries containing COUNT and GROUP BY is not correctly
|
|
calculated. Also, sorting results of a query like "SELECT * from table GROUP
|
|
BY" ... is problematic.
|
|
|
|
3.13 I get an error when entering USE followed by a db name containing an
|
|
hyphen.
|
|
|
|
The tests I have made with current MySQL 4.1.11 API shows that the API does not
|
|
accept this syntax for the USE command. Enclosing the db name with backquotes
|
|
works. For further confusion, no backquotes are needed with command-line mysql.
|
|
|
|
ISPs, multi-user installations
|
|
|
|
4.1 I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to
|
|
install it for each customer.
|
|
|
|
Since version 2.0.3, you can setup a central copy of phpMyAdmin for all your
|
|
users. The development of this feature was kindly sponsored by NetCologne GmbH.
|
|
This requires a properly setup MySQL user management and phpMyAdmin HTTP or
|
|
cookie authentication. See the install section on "Using HTTP authentication".
|
|
|
|
4.2 What's the preferred way of making phpMyAdmin secure against evil access.
|
|
|
|
This depends on your system.
|
|
If you're running a server which cannot be accessed by other people, it's
|
|
sufficient to use the directory protection bundled with your webserver (with
|
|
Apache you can use .htaccess files, for example).
|
|
If other people have telnet access to your server, you should use phpMyAdmin's
|
|
HTTP or cookie authentication features.
|
|
|
|
Suggestions:
|
|
|
|
* Your config.inc.php file should be chmod 660.
|
|
* All your phpMyAdmin files should be chown -R phpmy.apache, where phpmy is a
|
|
user whose password is only known to you, and apache is the group under
|
|
which Apache runs.
|
|
* You should use PHP safe mode, to protect from other users that try to
|
|
include your config.inc.php in their scripts.
|
|
|
|
4.3 I get errors about not being able to include a file in /lang or in /
|
|
libraries.
|
|
|
|
Check php.ini, or ask your sysadmin to check it. The include_path must contain
|
|
"." somewhere in it, and open_basedir, if used, must contain "." and "./lang"
|
|
to allow normal operation of phpMyAdmin.
|
|
|
|
4.4 phpMyAdmin always gives "Access denied" when using HTTP authentication.
|
|
|
|
This could happen for several reasons:
|
|
|
|
* $cfg['Servers'][$i]['controluser'] and/or $cfg['Servers'][$i]
|
|
['controlpass'] are wrong.
|
|
* The username/password you specify in the login dialog are invalid.
|
|
* You have already setup a security mechanism for the phpMyAdmin-directory,
|
|
eg. a .htaccess file. This would interfere with phpMyAdmin's
|
|
authentication, so remove it.
|
|
|
|
4.5 Is it possible to let users create their own databases?
|
|
|
|
Starting with 2.2.5, in the user management page, you can enter a wildcard
|
|
database name for a user (for example "joe%"), and put the privileges you want.
|
|
For example, adding SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
|
|
would let a user create/manage his/her database(s).
|
|
|
|
4.6 How can I use the Host-based authentication additions?
|
|
|
|
If you have existing rules from an old .htaccess file, you can take them and
|
|
add a username between the 'deny'/'allow' and 'from' strings. Using the
|
|
username wildcard of '%' would be a major benefit here if your installation is
|
|
suited to using it. Then you can just add those updated lines into the $cfg
|
|
['Servers'][$i]['AllowDeny']['rules'] array.
|
|
|
|
If you want a pre-made sample, you can try this fragment. It stops the 'root'
|
|
user from logging in from any networks other than the private network IP
|
|
blocks.
|
|
|
|
//block root from logging in except from the private networks
|
|
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
|
|
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
|
|
'deny root from all',
|
|
'allow root from localhost',
|
|
'allow root from 10.0.0.0/8',
|
|
'allow root from 192.168.0.0/16',
|
|
'allow root from 172.16.0.0/12',
|
|
);
|
|
|
|
4.7 Authentication window is displayed more than once, why?
|
|
|
|
This happens if you are using a URL to start phpMyAdmin which is different than
|
|
the one set in your $cfg['PmaAbsoluteUri']. For example, a missing "www", or
|
|
entering with an IP address while a domain name is defined in the config file.
|
|
|
|
4.8 Which parameters can I use in the URL that starts phpMyAdmin?
|
|
|
|
When starting phpMyAdmin, you can use the db, pma_username, pma_password and
|
|
server parameters. This last one can contain either the numeric host index
|
|
(from $i of the configuration file) or one of the host names present in the
|
|
configuration file. Using pma_username and pma_password has been tested along
|
|
with the usage of 'cookie' auth_type.
|
|
|
|
Browsers or client OS
|
|
|
|
5.1 I get an out of memory error, and my controls are non-functional, when
|
|
trying to create a table with more than 14 fields.
|
|
|
|
We could reproduce this problem only under Win98/98SE. Testing under WinNT4 or
|
|
Win2K, we could easily create more than 60 fields.
|
|
A workaround is to create a smaller number of fields, then come back to your
|
|
table properties and add the other fields.
|
|
|
|
5.2 With Xitami 2.5b4, phpMyAdmin won't process form fields.
|
|
|
|
This is not a phpMyAdmin problem but a Xitami known bug: you'll face it with
|
|
each script/website that use forms.
|
|
Upgrade or downgrade your Xitami server.
|
|
|
|
5.3 I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).
|
|
|
|
With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that the
|
|
proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps don't
|
|
seem to work.
|
|
With Konqueror 2.2.1: plain dumps work; zip dumps are placed into the user's
|
|
temporary directory, so they must be moved before closing Konqueror, or else
|
|
they disappear. GZip dumps give an error message.
|
|
Testing needs to be done for Konqueror 2.2.2.
|
|
|
|
5.4 I can't use the cookie authentication mode because Internet Explorer never
|
|
stores the cookies.
|
|
|
|
MS Internet Explorer seems to be really buggy about cookies, at least till
|
|
version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1 bug in
|
|
this area!
|
|
Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may work!
|
|
|
|
5.5 In Internet Explorer 5.0, I get JavaScript errors when browsing my rows.
|
|
|
|
Upgrade to at least Internet Explorer 5.5 SP2.
|
|
|
|
5.6 In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not
|
|
found") when trying to modify a row in a table with many fields, or with a text
|
|
field
|
|
|
|
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 limit on the length of the URL in those
|
|
browsers, and this not happen in Netscape, for example. The workaround is to
|
|
create a primary or unique key, or use another browser.
|
|
|
|
5.7 I refresh (reload) my browser, and come back to the welcome page.
|
|
|
|
Some browsers support right-clicking into the frame you want to refresh, just
|
|
do this in the right frame.
|
|
|
|
5.8 With Mozilla 0.9.7 I have problems sending a query modified in the query
|
|
box.
|
|
|
|
Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future Mozilla
|
|
versions.
|
|
|
|
5.9 With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a whitespace in
|
|
the SQL-Query edit area: the page scrolls down.
|
|
|
|
This is a Mozilla bug (see bug #26882 at BugZilla).
|
|
|
|
5.10 With Netscape 4.75 I get empty rows between each row of data in a CSV
|
|
exported file.
|
|
|
|
This is a known Netscape 4.75 bug: it adds some line feeds when exporting data
|
|
in octet-stream mode. Since we can't detect the specific Netscape version, we
|
|
cannot workaround this bug.
|
|
|
|
5.11 Extended-ASCII characters like German umlauts are displayed wrong.
|
|
|
|
Please ensure that you have set your browser's character set to the one of the
|
|
language file you have selected on phpMyAdmin's start page. Alternatively, you
|
|
can try the auto detection mode that is supported by the recent versions of the
|
|
most browsers.
|
|
|
|
5.12 Mac OS X: Safari browser changes special characters to "?".
|
|
|
|
This issue has been reported by a OS X user, who adds that Chimera, Netscape
|
|
and Mozilla do not have this problem.
|
|
|
|
5.13 With Internet Explorer 5.5 or 6, and HTTP authentication type, I cannot
|
|
manage two servers: I log in to the first one, then the other one, but if I
|
|
switch back to the first, I have to log in on each operation.
|
|
|
|
This is a bug in Internet Explorer, other browsers do not behave this way.
|
|
|
|
5.14 Using Opera6, I can manage to get to the authentication, but nothing
|
|
happens after that, only a blank screen.
|
|
|
|
Having $cfg['QueryFrameJS'] set o TRUE, this leads to a bug in Opera6, because
|
|
it is not able to interpret frameset definitions written by JavaScript. Please
|
|
upgrade your phpMyAdmin installtion or to Opera7 at least.
|
|
|
|
5.15 I have display problems with Safari.
|
|
|
|
Please upgrade to at least version 1.2.3.
|
|
|
|
5.16 With Internet Explorer, I get "Access is denied" Javascript errors. Or I
|
|
cannot make phpMyAdmin work under Windows.
|
|
|
|
Please check the following points:
|
|
|
|
* Maybe you have defined your PmaAbsoluteUri setting in config.inc.php to an
|
|
IP address and you are starting phpMyAdmin with a URL containing a domain
|
|
name, or the reverse situation.
|
|
* Security settings in IE and/or Microsoft Security Center are too high, thus
|
|
blocking scripts execution.
|
|
* The Windows Firewall is blocking Apache and MySQL. You must allow HTTP
|
|
ports (80 or 443) and MySQL port (usually 3306) in the "in" and "out"
|
|
directions.
|
|
|
|
5.17 With Firefox, I cannot delete rows of data or drop a database.
|
|
|
|
Many users have confirmed that the Tabbrowser Extensions plugin they installed
|
|
in their Firefox is causing the problem.
|
|
|
|
Using phpMyAdmin
|
|
|
|
6.1 I can't insert new rows into a table / I can't create a table - MySQL
|
|
brings up a SQL-error.
|
|
|
|
Examine the SQL error with care. Often the problem is caused by specifying a
|
|
wrong field-type.
|
|
Common errors include:
|
|
|
|
* Using VARCHAR without a size argument
|
|
* Using TEXT or BLOB with a size argument
|
|
|
|
Also, look at the syntax chapter in the MySQL manual to confirm that your
|
|
syntax is correct.
|
|
|
|
6.2 When I create a table, I click the Index checkbox for 2 fields and
|
|
phpMyAdmin generates only one index with those 2 fields.
|
|
|
|
In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields index.
|
|
If you want two indexes, create the first one when creating the table, save,
|
|
then display the table properties and click the Index link to create the other
|
|
index.
|
|
|
|
6.3 How can I insert a null value into my table?
|
|
|
|
Since version 2.2.3, you have a checkbox for each field that can be null.
|
|
Before 2.2.3, you had to enter "null", without the quotes, as the field's
|
|
value. Since version 2.5.5, you have to use the checkbox to get a real NULL
|
|
value, so if you enter "NULL" this means you want a literal NULL in the field,
|
|
and not a NULL value (this works in PHP4).
|
|
|
|
6.4 How can I backup my database or table?
|
|
|
|
Click on a database or table name in the left frame, the properties will be
|
|
displayed. Then on the menu, click "Export", you can dump the structure, the
|
|
data, or both. This will generate standard SQL statements that can be used to
|
|
recreate your database/table.
|
|
|
|
You will need to choose "Save as file", so that phpMyAdmin can transmit the
|
|
resulting dump to your station. Depending on your PHP configuration, you will
|
|
see options to compress the dump. See also the $cfg['ExecTimeLimit']
|
|
configuration variable.
|
|
|
|
For additional help on this subject, look for the word "dump" in this document.
|
|
|
|
6.5 How can I restore (upload) my database or table using a dump? How can I run
|
|
a ".sql" file?
|
|
|
|
Click on a database name in the left frame, the properties will be displayed.
|
|
Select "Import" from the list of tabs in the right?hand frame (or "SQL" if your
|
|
phpMyAdmin version is older than 2.7.0). In the "Location of the text file"
|
|
section, type in the path to your dump filename, or use the Browse button. Then
|
|
click Go.
|
|
|
|
With version 2.7.0, the import engine has been re?written, if possible it is
|
|
suggested that you upgrade to take advantage of the new features.
|
|
|
|
For additional help on this subject, look for the word "upload" in this
|
|
document.
|
|
|
|
6.6 How can I use the relation table in Query-by-example?
|
|
|
|
Here is an example with the tables persons, towns and countries, all located in
|
|
the database mydb. If you don't have a pma_relation table, create it as
|
|
explained in the configuration section. Then create the example tables:
|
|
|
|
CREATE TABLE REL_countries (
|
|
country_code char(1) NOT NULL default '',
|
|
description varchar(10) NOT NULL default '',
|
|
PRIMARY KEY (country_code)
|
|
) TYPE=MyISAM;
|
|
|
|
INSERT INTO REL_countries VALUES ('C', 'Canada');
|
|
|
|
CREATE TABLE REL_persons (
|
|
id tinyint(4) NOT NULL auto_increment,
|
|
person_name varchar(32) NOT NULL default '',
|
|
town_code varchar(5) default '0',
|
|
country_code char(1) NOT NULL default '',
|
|
PRIMARY KEY (id)
|
|
) TYPE=MyISAM;
|
|
|
|
INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
|
|
INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
|
|
|
|
CREATE TABLE REL_towns (
|
|
town_code varchar(5) NOT NULL default '0',
|
|
description varchar(30) NOT NULL default '',
|
|
PRIMARY KEY (town_code)
|
|
) TYPE=MyISAM;
|
|
|
|
INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
|
|
INSERT INTO REL_towns VALUES ('M', 'Montr?al');
|
|
|
|
To setup appropriate links and display information:
|
|
|
|
* on table "REL_persons" click Structure, then Relation view
|
|
* in Links, for "town_code" choose "REL_towns->code"
|
|
* in Links, for "country_code" choose "REL_countries->country_code"
|
|
* on table "REL_towns" click Structure, then Relation view
|
|
* in "Choose field to display", choose "description"
|
|
* repeat the two previous steps for table "REL_countries"
|
|
|
|
Then test like this:
|
|
|
|
* Click on your db name in the left frame
|
|
* Choose "Query"
|
|
* Use tables: persons, towns, countries
|
|
* Click "Update query"
|
|
* In the fields row, choose persons.person_name and click the "Show" tickbox
|
|
* Do the same for towns.description and countries.descriptions in the other 2
|
|
columns
|
|
* Click "Update query" and you will see in the query box that the correct
|
|
joins have been generated
|
|
* Click "Submit query"
|
|
|
|
6.7 How can I use the "display field" feature?
|
|
|
|
Starting from the previous example, create the pma_table_info as explained in
|
|
the configuration section, then browse your persons table, and move the mouse
|
|
over a town code or country code.
|
|
|
|
See also FAQ 6.21 for an additional feature that "display field" enables:
|
|
drop-down list of possible values.
|
|
|
|
6.8 How can I produce a PDF schema of my database?
|
|
|
|
First the configuration variables "relation", "table_coords" and "pdf_pages"
|
|
have to be filled in.
|
|
|
|
Then you need to think about your schema layout. Which tables will go on which
|
|
pages?
|
|
|
|
* Select your database in the left frame.
|
|
* Choose "Operations" in the navigation bar at the top.
|
|
* Choose "Edit PDF Pages" near the bottom of the page.
|
|
* Enter a name for the first PDF page and click Go. If you like, you can use
|
|
the "automatic layout," which will put all your linked tables onto the new
|
|
page.
|
|
* Select the name of the new page (making sure the Edit radio button is
|
|
selected) and click Go.
|
|
* Select a table from the list, enter its coordinates and click Save.
|
|
Coordinates are relative; your diagram will be automatically scaled to fit
|
|
the page. When initially placing tables on the page, just pick any
|
|
coordinates -- say, 50x50. After clicking Save, you can then use the
|
|
graphical editor to position the element correctly.
|
|
* When you'd like to look at your PDF, first be sure to click the Save button
|
|
beneath the list of tables and coordinates, to save any changes you made
|
|
there. Then scroll all the way down, select the PDF options you want, and
|
|
click Go.
|
|
* Internet Explorer for Windows may suggest an incorrect filename when you
|
|
try to save a generated PDF. When saving a generated PDF, be sure that the
|
|
filename ends in ".pdf", for example "schema.pdf". Browsers on other
|
|
operating systems, and other browsers on Windows, do not have this problem.
|
|
|
|
6.9 phpMyAdmin is changing the type of one of my columns!
|
|
|
|
No, it's MySQL that is doing silent column type changing.
|
|
|
|
6.10 When creating a privilege, what happens with underscores in the database
|
|
name?
|
|
|
|
If you do not put a backslash before the underscore, this is a wildcard grant,
|
|
and the underscore means "any character". So, if the database name is
|
|
"john_db", the user would get rights to john1db, john2db ...
|
|
|
|
If you put a backslash before the underscore, it means that the database name
|
|
will have a real underscore.
|
|
|
|
6.11 What is the curious symbol ? in the statistics pages?
|
|
|
|
It means "average".
|
|
|
|
6.12 I want to understand some Export options.
|
|
|
|
Structure:
|
|
|
|
* "Add DROP TABLE" will add a line telling MySQL to drop the table, if it
|
|
already exists during the import. It does NOT drop the table after your
|
|
export, it only affects the import file.
|
|
* "If Not Exists" will only create the table if it doesn't exist. Otherwise,
|
|
you may get an error if the table name exists but has a different
|
|
structure.
|
|
* "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any) will
|
|
be included in backup.
|
|
* "Enclose table and field names with backquotes" ensures that field and
|
|
table names formed with special characters are protected.
|
|
* "Add into comments" includes column comments, relations, and MIME types set
|
|
in the pmadb in the dump as SQL comments (/* xxx */).
|
|
|
|
Data:
|
|
|
|
* "Complete inserts" adds the column names on every INSERT command, for
|
|
better documentation (but resulting file is bigger).
|
|
* "Extended inserts" provides a shorter dump file by using only once the
|
|
INSERT verb and the table name.
|
|
* "Delayed inserts" are best explained in the MySQL manual.
|
|
* "Ignore inserts" treats errors as a warning instead. Again, more info is
|
|
provided in the MySQL manual, but basically with this selected, invalid
|
|
values are adjusted and inserted rather than causing the entire statement
|
|
to fail.
|
|
|
|
6.13 I would like to create a database with a dot in its name.
|
|
|
|
This is a bad idea, because in MySQL the syntax "database.table" is the normal
|
|
way to reference a database and table name. Worse, MySQL will usually let you
|
|
create a database with a dot, but then you cannot work with it, nor delete it.
|
|
|
|
6.14 How do I set up the SQL Validator?
|
|
|
|
To use it, you need a very recent version of PHP, 4.3.0 recommended, with XML,
|
|
PCRE and PEAR support. On your system command line, run "pear install
|
|
Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP" to get the necessary
|
|
PEAR modules for usage.
|
|
On a more recent pear version, I had problems with the state of Net_DIME being
|
|
beta, so this single command "pear -d preferred_state=beta install -a SOAP"
|
|
installed all the needed modules.
|
|
If you use the Validator, you should be aware that any SQL statement you submit
|
|
will be stored anonymously (database/table/column names, strings, numbers
|
|
replaced with generic values). The Mimer SQL Validator itself, is ? 2001
|
|
Upright Database Technology. We utilize it as free SOAP service.
|
|
|
|
6.15 I want to add a BLOB field and put an index on it, but MySQL says "BLOB
|
|
column '...' used in key specification without a key length".
|
|
|
|
The right way to do this, is to create the field without any indexes, then
|
|
display the table structure and use the "Create an index" dialog. On this page,
|
|
you will be able to choose your BLOB field, and set a size to the index, which
|
|
is the condition to create an index on a BLOB field.
|
|
|
|
6.16 How can I simply move in page with plenty editing fields?
|
|
|
|
You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most pages with
|
|
many editing fields (table structure changes, row editing, etc.) (must be
|
|
enabled in configuration - see. $cfg['CtrlArrowsMoving']). You can also have a
|
|
look at the directive $cfg['DefaultPropDisplay'] ('vertical') and see if this
|
|
eases up editing for you.
|
|
|
|
6.17 Transformations: I can't enter my own mimetype! WTF is this feature then
|
|
useful for?
|
|
|
|
Slow down :). Defining mimetypes is of no use, if you can't put transformations
|
|
on them. Otherwise you could just put a comment on the field. Because entering
|
|
your own mimetype will cause serious syntax checking issues and validation,
|
|
this introduces a high-risk false-user-input situation. Instead you have to
|
|
initialize mimetypes using functions or empty mimetype definitions.
|
|
Plus, you have a whole overview of available mimetypes. Who knows all those
|
|
mimetypes by heart so he/she can enter it at will?
|
|
|
|
6.18 Bookmarks: Where can I store bookmarks? Why can't I see any bookmarks
|
|
below the query box? What is this variable for?
|
|
|
|
Any query you have executed can be stored as a bookmark on the page where the
|
|
results are displayed. You will find a button labeled 'Bookmark this query'
|
|
just at the end of the page.
|
|
As soon as you have stored a bookmark, it is related to the database you run
|
|
the query on. You can now access a bookmark dropdown on each page, the query
|
|
box appears on for that database.
|
|
|
|
Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks.
|
|
Just use the string /*[VARIABLE]*/ anywhere in your query. Everything which is
|
|
put into the value input box on the query box page will replace the string "/*
|
|
[VARIABLE]*/" in your stored query. Just be aware of that you HAVE to create a
|
|
valid query, otherwise your query won't be even able to be stored in the
|
|
database.
|
|
Also remember, that everything else inside the /*[VARIABLE]*/ string for your
|
|
query will remain the way it is, but will be stripped of the /**/ chars. So you
|
|
can use:
|
|
|
|
/*, [VARIABLE] AS myname */
|
|
|
|
which will be expanded to
|
|
|
|
, VARIABLE as myname
|
|
|
|
in your query, where VARIABLE is the string you entered in the input box. If an
|
|
empty string is provided, no replacements are made.
|
|
|
|
A more complex example. Say you have stored this query:
|
|
|
|
SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */
|
|
|
|
Say, you now enter "phpMyAdmin" as the variable for the stored query, the full
|
|
query will be:
|
|
|
|
SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'
|
|
|
|
You can use multiple occurrences of /*[VARIABLE]*/ in a single query.
|
|
NOTE THE ABSENCE OF SPACES inside the "/**/" construct. Any spaces inserted
|
|
there will be later also inserted as spaces in your query and may lead to
|
|
unexpected results especially when using the variable expansion inside of a
|
|
"LIKE ''" expression.
|
|
Your initial query which is going to be stored as a bookmark has to yield at
|
|
least one result row so you can store the bookmark. You may have that to work
|
|
around using well positioned "/**/" comments.
|
|
|
|
6.19 How can I create simple L^AT[E]X document to include exported table?
|
|
|
|
You can simply include table in your L^AT[E]X documents, minimal sample
|
|
document should look like following one (assuming you have table exported in
|
|
file table.tex):
|
|
|
|
\documentclass{article} % or any class you want
|
|
\usepackage{longtable} % for displaying table
|
|
\begin{document} % start of document
|
|
\include{table} % including exported table
|
|
\end{document} % end of document
|
|
|
|
6.20 In MySQL 4, I see a lot of databases which are not mine, and cannot access
|
|
them.
|
|
|
|
Upgrading to MySQL 4 usually gives users those global privileges: CREATE
|
|
TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also enable
|
|
users to see all the database names. See this bug report.
|
|
|
|
So if your users do not need those privileges, you can remove them and their
|
|
databases list will shorten.
|
|
|
|
6.21 In edit/insert mode, how can I see a list of possible values for a field,
|
|
based on some foreign table?
|
|
|
|
You have to setup appropriate links between the tables, and also setup the
|
|
"display field" in the foreign table. See FAQ 6.6 for an example. Then, if
|
|
there are 200 values or less in the foreign table, a drop-down list of values
|
|
will be available. You will see two lists of values, the first list containing
|
|
the key and the display field, the second list containing the display field and
|
|
the key. The reason for this is to be able to type the first letter of either
|
|
the key or the display field.
|
|
|
|
For 200 values or more, a distinct window will appear, to browse foreign key
|
|
values and choose one.
|
|
|
|
6.22 Bookmarks: Can I execute a default bookmark automatically when entering
|
|
Browse mode for a table?
|
|
|
|
Yes. If a bookmark has the same label as a table name, it will be executed.
|
|
|
|
6.23 Export: I heard phpMyAdmin can export Microsoft Excel files, how can I
|
|
enable that?
|
|
|
|
Current version does support direct export to Microsoft Excel and Word versions
|
|
2000 and newer. If you need export older versions, you can use CSV suitable for
|
|
Microsoft Excel, which works out of the box or you can try native experimental
|
|
MS Excel exporter. This export has several problems, most important are
|
|
limitation of cell content to 255 chars and no support for charsets, so think
|
|
carefully whether you want to enable this.. For enabling this you need to set
|
|
$cfg['TempDir'] to place where web server user can write (for example './tmp')
|
|
and install PEAR module Spreadsheet_Excel_Writer into php include path. The
|
|
installation can be done by following command:
|
|
|
|
pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer
|
|
|
|
First part of switches set we want to install beta version of that module (no
|
|
stable version available yet) and then we tell pear we want to satisfy
|
|
dependencies.
|
|
|
|
If you are running in PHP safe mode, you will have to set in php.ini the
|
|
safe_mode_include_dir to the directory where your PEAR modules are located, for
|
|
example:
|
|
|
|
safe_mode_include_dir = /usr/local/lib/php
|
|
|
|
To create the temporary directory on a UNIX-based system, you can do:
|
|
|
|
cd phpMyAdmin
|
|
mkdir tmp
|
|
chmod o+rwx tmp
|
|
|
|
6.24 Now that phpMyAdmin supports native MySQL 4.1.x column comments, what
|
|
happens to my column comments stored in pmadb?
|
|
|
|
Automatic migration of a table's pmadb-style column comments to the native ones
|
|
is done whenever you enter Structure page for this table.
|
|
|
|
phpMyAdmin project
|
|
|
|
7.1 I have found a bug. How do I inform developers?
|
|
|
|
Our Bug Tracker is located at http://sf.net/projects/phpmyadmin/ under the Bugs
|
|
section.
|
|
|
|
But please first discuss your bug with other users:
|
|
http://sf.net/projects/phpmyadmin/ (and choose Forums)
|
|
|
|
7.2 I want to translate the messages to a new language or upgrade an existing
|
|
language, where do I start?
|
|
|
|
Always use the current SVN version of your language file. For a new language,
|
|
start from english-iso-8859-1.inc.php. If you don't know how to get the SVN
|
|
version, please ask one of the developers.
|
|
Please note that we try not to use HTML entities like é in the
|
|
translations, since we define the right character set in the file. With HTML
|
|
entities, the text on JavaScript messages would not display correctly. However
|
|
there are some entities that need to be there, for quotes ,non-breakable
|
|
spaces, ampersands, less than, greater than.
|
|
You can then put your translations, as a zip file to avoid losing special
|
|
characters, on the sourceforge.net translation tracker.
|
|
It would be a good idea to subscribe to the phpmyadmin-translators mailing
|
|
list, because this is where we ask for translations of new messages.
|
|
|
|
7.3 I would like to help out with the development of phpMyAdmin. How should I
|
|
proceed?
|
|
|
|
The following method is preferred for new developers:
|
|
|
|
1. fetch the current SVN tree over anonymous SVN:
|
|
svn co https://svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin
|
|
2. add your stuff
|
|
3. generate patch with your changes: svn diff
|
|
4. put the patch inside the patch tracker of the phpMyAdmin project.
|
|
|
|
Write access to the SVN tree is granted only to experienced developers who have
|
|
already contributed something useful to phpMyAdmin.
|
|
Also, have a look at the Developers section.
|
|
|
|
Security
|
|
|
|
8.1 Where can I get information about the security alerts issued for
|
|
phpMyAdmin?
|
|
|
|
Please refer to http://www.phpmyadmin.net/home_page/security.php
|
|
|
|
Developers Information
|
|
|
|
phpMyAdmin is Open Source, so you're invited to contribute to it. Many great
|
|
features have been written by other people and you too can help to make
|
|
phpMyAdmin a useful tool.
|
|
|
|
If you're planning to contribute source, please read the following information:
|
|
|
|
* All files include libraries/header.inc.php (layout),. libraries/
|
|
common.lib.php (common functions) and config.inc.php.
|
|
Only configuration data should go in config.inc.php. Please keep it free
|
|
from other code.
|
|
Commonly used functions should be added to libraries/common.lib.php and
|
|
more specific ones may be added within a library stored into the libraries
|
|
sub-directory.
|
|
* Obviously, you're free to use whatever coding style you want. But please
|
|
try to keep your code as simple as possible: beginners are using phpMyAdmin
|
|
as an example application.
|
|
As far as possible, we want the scripts to be XHTML1.0 and CSS2 compliant
|
|
on one hand, they fit the PEAR coding standards on the other hand. Please
|
|
pay attention to this.
|
|
* Please try to keep up the file-naming conventions. Table-related stuff goes
|
|
to tbl_*.php, db-related code to db_*.php, server-related tools to
|
|
server_*.php and so on.
|
|
* Please don't use verbose strings in your code, instead add the string (at
|
|
least) to english-iso-8859-1.inc.php and print() it out.
|
|
* If you want to be really helpful, write an entry for the ChangeLog.
|
|
* The DBG extension (PHP Debugger DBG) is now supported by phpMyAdmin for
|
|
developers to better debug and profile their code.
|
|
Please see the $cfg['DBG']* configuration options for more information.
|
|
This is in memoriam of the Space Shuttle Columbia (STS-107) which was lost
|
|
during its re-entry into Earth's atmosphere and in memory of the brave men
|
|
and women who gave their lives for the people of Earth.
|
|
|
|
Credits
|
|
|
|
phpMyAdmin - Credits
|
|
====================
|
|
|
|
CREDITS, in chronological order
|
|
-------------------------------
|
|
|
|
- Tobias Ratschiller <tobias_at_ratschiller.com>
|
|
* creator of the phpmyadmin project
|
|
* maintainer from 1998 to summer 2000
|
|
|
|
- Marc Delisle <Marc.Delisle_at_cegepsherbrooke.qc.ca>
|
|
* multi-language version
|
|
* various fixes and improvements
|
|
* SQL analyser (most of it)
|
|
* current project maintainer
|
|
|
|
- Olivier M?ller <om_at_omnis.ch>
|
|
* started SourceForge phpMyAdmin project in March 2001
|
|
* sync'ed different existing CVS trees with new features and bugfixes
|
|
* multi-language improvements, dynamic language selection
|
|
* current project maintainer
|
|
* many bugfixes and improvements
|
|
|
|
- Lo?c Chapeaux <lolo_at_phpheaven.net>
|
|
* rewrote and optimized javascript, DHTML and DOM stuff
|
|
* rewrote the scripts so they fit the PEAR coding standards and
|
|
generate XHTML1.0 and CSS2 compliant codes
|
|
* improved the language detection system
|
|
* many bugfixes and improvements
|
|
|
|
- Robin Johnson <robbat2_at_users.sourceforge.net>
|
|
* database maintenance controls
|
|
* table type code
|
|
* Host authentication IP Allow/Deny
|
|
* DB-based configuration (Not completed)
|
|
* SQL parser and pretty-printer
|
|
* SQL validator
|
|
* many bugfixes and improvements
|
|
|
|
- Armel Fauveau <armel.fauveau_at_globalis-ms.com>
|
|
* bookmarks feature
|
|
* multiple dump feature
|
|
* gzip dump feature
|
|
* zip dump feature
|
|
|
|
- Geert Lund <glund_at_silversoft.dk>
|
|
* various fixes
|
|
* moderator of the phpMyAdmin former users forum at phpwizard.net
|
|
|
|
- Korakot Chaovavanich <korakot_at_iname.com>
|
|
* "insert as new row" feature
|
|
|
|
- Pete Kelly <webmaster_at_trafficg.com>
|
|
* rewrote and fix dump code
|
|
* bugfixes
|
|
|
|
- Steve Alberty <alberty_at_neptunlabs.de>
|
|
* rewrote dump code for PHP4
|
|
* mySQL table statistics
|
|
* bugfixes
|
|
|
|
- Benjamin Gandon <gandon_at_isia.cma.fr>
|
|
* main author of the version 2.1.0.1
|
|
* bugfixes
|
|
|
|
- Alexander M. Turek <me_at_derrabus.de>
|
|
* MySQL 4.0 / 4.1 / 5.0 compatibility
|
|
* abstract database interface (PMA_DBI) with MySQLi support
|
|
* privileges administration
|
|
* XML exports
|
|
* various features and fixes
|
|
* German language file updates
|
|
|
|
- Mike Beck <mike.beck_at_web.de>
|
|
* automatic joins in QBE
|
|
* links column in printview
|
|
* Relation view
|
|
|
|
- Michal ?iha? <michal_at_cihar.com>
|
|
* enhanced index creation/display feature
|
|
* feature to use a different charset for HTML than for MySQL
|
|
* improvements of export feature
|
|
* various features and fixes
|
|
* Czech language file updates
|
|
|
|
- Christophe Gesch? from the "MySQL Form Generator for PHPMyAdmin"
|
|
(http://sf.net/projects/phpmysqlformgen/)
|
|
* suggested the patch for multiple table printviews
|
|
|
|
- Garvin Hicking <me_at_supergarv.de>
|
|
* built the patch for vertical display of table rows
|
|
* built the Javascript based Query window + SQL history
|
|
* Improvement of column/db comments
|
|
* (MIME)-Transformations for columns
|
|
* Use custom alias names for Databases in left frame
|
|
* hierarchical/nested table display
|
|
* PDF-scratchboard for WYSIWYG-distribution of PDF relations
|
|
* new icon sets
|
|
* vertical display of column properties page
|
|
* some bugfixes, features, support, German language additions
|
|
|
|
- Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
|
|
* japanese kanji encoding conversion feature
|
|
|
|
- Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson
|
|
* the Cookie authentication mode
|
|
|
|
- Axel Sander <n8falke_at_users.sourceforge.net>
|
|
* table relation-links feature
|
|
|
|
- Maxime Delorme <delorme.maxime_at_free.fr>
|
|
* PDF schema output, thanks also to Olivier Plathey for the
|
|
"FPDF" library (see http://www.fpdf.org/) and Steven Wittens
|
|
for the "UFPDF" library (see http://www.acko.net/node/56).
|
|
|
|
- Olof Edlund <olof.edlund_at_upright.se>
|
|
* SQL validator server
|
|
|
|
- Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
|
|
* phpMyAdmin logo (until June 2004)
|
|
|
|
- Mike Cochrane <mike_at_graftonhall.co.nz>
|
|
* blowfish library from the Horde project
|
|
|
|
- Marcel Tschopp <ne0x_at_users.sourceforge.net>
|
|
* mysqli support
|
|
* many bugfixes and improvements
|
|
|
|
- Michael Keck <mkkeck_at_users.sourceforge.net>
|
|
* redesign for 2.6.0
|
|
* phpMyAdmin sailboat logo (June 2004)
|
|
|
|
- Mathias Landh?u?er
|
|
* Representation at conferences
|
|
|
|
- Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
|
|
* interface improvements
|
|
* various bugfixes
|
|
|
|
- Ivan A Kirillov
|
|
* new relations Designer
|
|
|
|
And also to the following people who have contributed minor changes,
|
|
enhancements, bugfixes or support for a new language since version 2.1.0:
|
|
|
|
Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
|
|
P?ter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
|
|
Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kl?ger,
|
|
Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
|
|
Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna,
|
|
www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec,
|
|
Michael Tacelosky, Rachim Tamsjadi, Kositer Uros,
|
|
Lu?s V., Martijn W. van der Lee,
|
|
Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
|
|
Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai".
|
|
|
|
|
|
Original Credits of Version 2.1.0
|
|
---------------------------------
|
|
|
|
This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
|
|
to create a web-based interface to MySQL using PHP3. Although I have not
|
|
used any of his source-code, there are some concepts I've borrowed from
|
|
him. phpMyAdmin was created because Peter told me he wasn't going to
|
|
further develop his (great) tool.
|
|
Thanks go to
|
|
- Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the
|
|
code for the check when dropping a table or database. He also suggested
|
|
that you should be able to specify the primary key on tbl_create.php3. To
|
|
version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
|
|
well as a bug-report. Plus many smaller improvements.
|
|
- Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that
|
|
were introduced in 1.3.0 (including quite significant ones like the
|
|
authentication). For 1.4.1 he enhanced the table-dump feature. Plus
|
|
bug-fixes and help.
|
|
- Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin
|
|
language-independent by outsourcing the strings to a separate file. He
|
|
also contributed the French translation.
|
|
- Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed
|
|
tbl_select.php3, a feature to display only some fields from a table.
|
|
- Chris Jackson <chrisj_at_ctel.net> added support for MySQL
|
|
functions in tbl_change.php3. He also added the
|
|
"Query by Example" feature in 2.0.
|
|
- Dave Walton <walton_at_nordicdms.com> added support for multiple
|
|
servers and is a regular contributor for bug-fixes.
|
|
- Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access
|
|
features for 2.0.6.
|
|
The following people have contributed minor changes, enhancements, bugfixes
|
|
or support for a new language:
|
|
Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
|
|
Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
|
|
Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
|
|
G. Wieggers.
|
|
|
|
And thanks to everyone else who sent me email with suggestions, bug-reports
|
|
and or just some feedback.
|
|
|
|
Glossary
|
|
|
|
From Wikipedia, the free encyclopedia
|
|
|
|
* .htaccess - the default name of Apache's directory-level configuration
|
|
file.
|
|
* Blowfish - a keyed, symmetric block cipher, designed in 1993 by Bruce
|
|
Schneier.
|
|
* Browser (Web Browser) - a software application that enables a user to
|
|
display and interact with text, images, and other information typically
|
|
located on a web page at a website on the World Wide Web.
|
|
* bzip2 - a free software/open source data compression algorithm and program
|
|
developed by Julian Seward.
|
|
* CGI (Common Gateway Interface) - an important World Wide Web technology
|
|
that enables a client web browser to request data from a program executed
|
|
on the Web server.
|
|
* Changelog - a log or record of changes made to a project.
|
|
* Client - a computer system that accesses a (remote) service on another
|
|
computer by some kind of network.
|
|
* column - a set of data values of a particular simple type, one for each row
|
|
of the table.
|
|
* Cookie - a packet of information sent by a server to a World Wide Web
|
|
browser and then sent back by the browser each time it accesses that
|
|
server.
|
|
* CSV - Comma-seperated values
|
|
* DB - look at Database.
|
|
* database - an organized collection of data.
|
|
* Engine - look at Storage Engines.
|
|
* extension - a PHP module that extends PHP with additional functionality.
|
|
* FAQ (Frequently Asked Questions) - a list of commonly asked question and
|
|
there answers.
|
|
* Field - one part of divided data/columns.
|
|
* foreign key - a field or group of fields in a database record that point to
|
|
a key field or group of fields forming a key of another database record in
|
|
some (usually different) table.
|
|
* FPDF (FreePDF) - the free PDF library
|
|
* GD Graphics Library - a library by Thomas Boutell and others for
|
|
dynamically manipulating images.
|
|
* GD2 - look at GD Graphics Library.
|
|
* gzip - gzip is short for GNU zip, a GNU free software file compression
|
|
program.
|
|
* host - any machine connected to a computer network, a node that has a
|
|
hostname.
|
|
* hostname - the unique name by which a network attached device is known on a
|
|
network.
|
|
* HTTP (HyperText Transfer Protocol) - the primary method used to transfer or
|
|
convey information on the World Wide Web.
|
|
* https - a HTTP-connection with additional security measures.
|
|
* IIS (Internet Information Services) - a set of Internet-based services for
|
|
servers using Microsoft Windows.
|
|
* Index - a feature that allows quick access to the rows in a table.
|
|
* IP (Internet Protocol) - a data-oriented protocol used by source and
|
|
destination hosts for communicating data across a packet-switched
|
|
internetwork.
|
|
* IP Address - a unique number that devices use in order to identify and
|
|
communicate with each other on a network utilizing the Internet Protocol
|
|
standard.
|
|
* ISAPI (Internet Server Application Programming Interface) - the API of
|
|
Internet Information Services (IIS).
|
|
* ISP (Internet service provider) - a business or organization that offers
|
|
users access to the Internet and related services.
|
|
* JPEG - a most commonly used standard method of lossy compression for
|
|
photographic images.
|
|
* JPG - look at JPEG.
|
|
* Key - look at index.
|
|
* L^AT[E]X - a document preparation system for the T[E]X typesetting program.
|
|
* Mac (Apple Macintosh) - line of personal computers is designed, developed,
|
|
manufactured, and marketed by Apple Computer.
|
|
* Mac OS X - the operating system which is included with all currently
|
|
shipping Apple Macintosh computers in the consumer and professional
|
|
markets.
|
|
* MCrypt - a cryptographic library.
|
|
* mcrypt - the MCrypt PHP extension.
|
|
* MIME (Multipurpose Internet Mail Extensions) - an Internet Standard for the
|
|
format of e-mail.
|
|
* module - some sort of extension for the Apache Webserver.
|
|
* MySQL - a multithreaded, multi-user, SQL (Structured Query Language)
|
|
Database Management System (DBMS).
|
|
* mysqli - the improved MySQL client PHP extension.
|
|
* mysql - the MySQL client PHP extension.
|
|
* OpenDocument - open standard for office documents.
|
|
* OS X - look at Mac OS X.
|
|
* PDF (Portable Document Format) - a file format developed by Adobe Systems
|
|
for representing two dimensional documents in a device independent and
|
|
resolution independent format.
|
|
* PEAR - the PHP Extension and Application Repository.
|
|
* PCRE (Perl Compatible Regular Expressions) - the perl-compatible regular
|
|
expression functions for PHP
|
|
* PHP - short for "PHP: Hypertext Preprocessor", is an open-source,
|
|
reflective programming language used mainly for developing server-side
|
|
applications and dynamic web content, and more recently, a broader range of
|
|
software applications.
|
|
* port - a connection through which data is sent and received.
|
|
* RFC - Request for Comments (RFC) documents are a series of memoranda
|
|
encompassing new research, innovations, and methodologies applicable to
|
|
Internet technologies.
|
|
* RFC 1952 - GZIP file format specification version 4.3
|
|
* Row (record, tulpel) - represents a single, implicitly structured data item
|
|
in a table.
|
|
* Server - a computer system that provides services to other computing
|
|
systems over a network.
|
|
* Storage Engines - handlers for different table types
|
|
* socket - a form of inter-process communication.
|
|
* SSL (Secure Sockets Layer) - a cryptographic protocol which provides secure
|
|
communication on the Internet.
|
|
* SQL - Structured Query Language
|
|
* table - a set of data elements (cells) that is organized, defined and
|
|
stored as horizontal rows and vertical columns where each item can be
|
|
uniquely identified by a label or key or by it?s position in relation to
|
|
other items.
|
|
* Table type
|
|
* tar - a type of archive file format: the Tape ARchive format.
|
|
* TCP (Transmission Control Protocol) - one of the core protocols of the
|
|
Internet protocol suite.
|
|
* UFPDF - Unicode/UTF-8 extension for FPDF
|
|
* URL (Uniform Resource Locator) - a sequence of characters, conforming to a
|
|
standardized format, that is used for referring to resources, such as
|
|
documents and images on the Internet, by their location.
|
|
* Webserver - A computer (program) that is responsible for accepting HTTP
|
|
requests from clients and serving them Web pages.
|
|
* XML (Extensible Markup Language) - a W3C-recommended general-purpose markup
|
|
language for creating special-purpose markup languages, capable of
|
|
describing many different kinds of data.
|
|
* ZIP - a popular data compression and archival format.
|
|
* zlib - an open-source, cross-platform data compression library by Jean-loup
|
|
Gailly and Mark Adler.
|
|
|
|
Valid XHTML 1.1 Valid CSS!
|
|
|