0,0 → 1,4543 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> |
<!-- $Id: Documentation.html,v 2.205.2.21.2.5 2006/08/22 17:00:29 lem9 Exp $ --> |
<!-- |
vim: expandtab ts=4 sw=4 sts=4 tw=78 |
--> |
|
<head> |
<link rel="icon" href="./favicon.ico" type="image/x-icon" /> |
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" /> |
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
<title>phpMyAdmin 2.8.2.4 - Documentation</title> |
<link rel="stylesheet" type="text/css" href="docs.css" /> |
</head> |
|
<body> |
<a name="top"></a><br /> |
|
<div class="header"> |
<hr noshade="noshade" width="100%" /> |
<a href="#top">Top</a> - |
<a href="#require">Requirements</a> - |
<a href="#intro">Introduction</a> - |
<a href="#setup">Installation</a> - |
<a href="#setup_script">Setup script</a> - |
<a href="#config">Configuration</a> |
<br /> |
<a href="#transformations">Transformations</a> - |
<a href="#faq">FAQ</a> - |
<a href="#developers">Developers</a> - |
<a href="#credits">Credits</a> - |
<a href="translators.html">Translators</a> |
<hr noshade="noshade" width="100%" /> |
</div> |
|
<h1>phpMyAdmin 2.8.2.4 Documentation</h1> |
|
|
<!-- TOP MENU --> |
<ul> |
<li> |
<a href="http://www.phpmyadmin.net/"> |
SourceForge phpMyAdmin project page [ http://www.phpmyadmin.net/ ] |
</a> |
</li> |
<li> |
Local documents: |
<ul> |
<li>Version history: <a href="changelog.php">ChangeLog</a></li> |
<li>General notes: <a href="readme.php">README</a></li> |
<li>License: <a href="license.php">LICENSE</a></li> |
</ul> |
</li> |
<li> |
Documentation version: |
<i>$Id: Documentation.html,v 2.205.2.21.2.5 2006/08/22 17:00:29 lem9 Exp $</i> |
</li> |
</ul> |
|
|
<!-- REQUIREMENTS --> |
<a name="require"></a><br /> |
<h2>Requirements</h2> |
|
<ul> |
<li> |
<b>PHP</b> |
<ul> |
<li>You need PHP 4.1.0 or newer, with <tt>session</tt> support (<a href="#faq1_31">*</a>)</li> |
<li>You need GD2 support in PHP to display inline |
thumbnails of JPEGs ("image/jpeg: inline") with their |
original aspect ratio</li> |
<li>You need PHP 4.3.0 or newer to use the |
"text/plain: external" MIME-based transformation</li> |
</ul> |
</li> |
<li> |
<b>MySQL</b> 3.23.32 or newer (<a href="#faqmysqlversions">details</a>); |
</li> |
<li> |
Not really a requirement but a <b>strong suggestion</b>: |
if you are using |
the "cookie" authentication method, having the <tt>mcrypt</tt> |
PHP extension on your web server accelerates not only the login |
phase but every other action that you do in phpMyAdmin. |
</li> |
<li> |
<b>Web browser</b> with cookies enabled. |
</li> |
</ul> |
|
|
<!-- INTRODUCTION --> |
<a name="intro"></a><br /> |
<h2>Introduction</h2> |
|
<p> |
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.<br /> |
Currently phpMyAdmin can: |
</p> |
|
<ul> |
<li>easily browse through databases and tables</li> |
<li>create, copy, rename, alter and drop databases</li> |
<li>create, copy, rename, alter and drop tables</li> |
<li>do table maintenance</li> |
<li>add, edit and drop fields</li> |
<li>execute any SQL-statement, even multiple queries</li> |
<li>create, alter and drop indexes</li> |
<li>load text files into tables</li> |
<li>create (*) and read dumps of tables or databases</li> |
<li>export (*) data to SQL, CSV, XML, Word, Excel, PDF and Latex formats</li> |
<li>administer multiple servers</li> |
<li>manage MySQL users and privileges</li> |
<li>check server settings and runtime information with configuration |
hints</li> |
<li>check referential integrity in MyISAM tables</li> |
<li>using Query-by-example (QBE), create complex queries automatically connecting required tables</li> |
<li>create PDF graphics of your Database layout</li> |
<li>search globally in a database or a subset of it</li> |
<li>transform stored data into any format using a set of predefined functions, |
like displaying BLOB-data as image or download-link</li> |
<li>support InnoDB tables and foreign keys <a href="#faq3_6">(see FAQ 3.6)</a></li> |
<li>support mysqli, the improved MySQL extension <a href="#faqmysqlversions">(see FAQ 1.17)</a></li> |
<li> |
communicate in |
<a href="./translators.html">50 different languages</a> |
</li> |
</ul> |
|
<h4>A word about users:</h4> |
<p> 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.</p> |
|
<p class="footnote" id="footnote_1"> |
<sup>1)</sup> phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) |
dumps and <abbr title="comma seperated values">CSV</abbr> exports if you use |
PHP with Zlib support (<tt>--with-zlib</tt>) and/or Bzip2 support |
(<tt>--with-bz2</tt>). Proper support may also need changes in |
<tt>php.ini</tt>.</p> |
|
|
<!-- INSTALLATION --> |
<a name="setup"></a><br /> |
<h2>Installation</h2> |
|
<p> |
<span class="important">NOTE: 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. </span>phpMyAdmin's |
"Privileges" page can be used for this. |
</p> |
|
<p> |
<span class="important">Warning for Mac users:</span>if you are on a MacOS |
version before OS X, StuffIt unstuffs with Mac formats.<br /> |
So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts |
before uploading them to your server, as PHP seems not to like Mac-style |
end of lines character ("<tt>\r</tt>"). |
</p> |
|
<h3>Quick Install</h3> |
<ol> |
<li> Untar or unzip the distribution (be sure to unzip the subdirectories): |
<tt>tar -xzvf phpMyAdmin_x.x.x.tar.gz</tt> 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 3, |
transfer the directory on your web server using, for example, ftp.</li> |
<li> 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 <a href="#faq4_2">FAQ 4.2</a> and |
<a href="#faq1_26">FAQ 1.26</a> for suggestions.</li> |
|
<li>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. |
<ul><li>To manually create the file, simply use your text editor to |
create the file <tt>config.inc.php</tt> in the main (top-level) |
phpMyAdmin directory (the one that contains <tt>index.php</tt>). |
phpMyAdmin first loads <tt>libraries/config.default.php</tt> |
and then overrides those values with anything found in |
<tt>config.inc.php</tt>. If the default value is okay for a particular |
setting, there is no need to include it in <tt>config.inc.php</tt>. |
You'll need a few directives to get going, a simple configuration |
may look like this: |
<pre> |
<?php |
$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice |
|
$i=0; |
$i++; |
$cfg['Servers'][$i]['auth_type'] = 'cookie'; |
?> |
</pre> |
Or, if you prefer to not be prompted every time you log in: |
<pre> |
<?php |
|
$i=0; |
$i++; |
$cfg['Servers'][$i]['user'] = 'root'; |
$cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password |
?> |
</pre> |
For a full explanation of possible configuration values, see the |
<a href="#config">Configuration Section</a> of this document.</li> |
<li id="setup_script">Instead of manually editing |
<tt>config.inc.php</tt>, you can use the |
<a href="scripts/setup.php">Setup Script</a>. First you must |
manually create a folder <tt>config</tt> in the phpMyAdmin |
directory. This is a security measure. On a Linux/Unix system you |
can use the following commands: |
<pre> |
cd phpMyAdmin |
mkdir config # create directory for saving |
chmod o+rw config # give it world writable permissions |
</pre> |
And to edit an existing configuration, copy it over first: |
<pre> |
cp config.inc.php config/ # copy current configuration for editing |
chmod o+w config/config.inc.php # give it world writable permissions |
</pre> |
On other platforms, simply create the folder and ensure that your |
web server has read and write access to it. <a href="#faq1_26">FAQ |
1.26</a> can help with this.<br /><br /> |
|
Next, open <tt><a href="scripts/setup.php">scripts/setup.php</a> |
</tt>in your browser. Note that <strong>changes are not saved to |
disk until explicitly choose <tt>Save</tt></strong> from the |
<i>Configuration</i> area of the screen. Normally the script saves |
the new config.inc.php to the <tt>config/</tt> directory, but if |
the webserver does not have the proper permissions you may see the |
error "Cannot load or save configuration." Ensure that the <tt> |
config/</tt> directory exists and has the proper permissions - |
or use the <tt>Download</tt> link to save the config file locally |
and upload (via FTP or some similar means) to the proper location.<br /><br /> |
|
Once the file has been saved, it must be moved out of the <tt> |
config/</tt> directory and the permissions must be reset, again |
as a security measure: |
<pre> |
mv config/config.inc.php . # move file to current directory |
chmod o-rw config.inc.php # remove world read and write permissions |
</pre> |
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.</li></ul></li> |
<li> If you are using the |
<tt>auth_type</tt> configuration directive, it is suggested that you protect the phpMyAdmin |
installation directory, for example with HTTP–AUTH in a |
<i>.htaccess</i> file. See the <a href="#faqmultiuser"> |
multi–user sub–section</a> of this FAQ for additional |
information, especially <a href="#faq4_4">FAQ 4.4</a>.</li> |
<li>Open the <a href="index.php">main phpMyAdmin directory</a> |
in your browser. phpMyAdmin should now display a welcome screen |
and your databases, or a login dialog if using |
<abbr title="HyperText Transfer Protocol">HTTP</abbr> or cookie |
authentication mode.</li> |
<li> You should deny access to the <tt>libraries</tt> 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.</li> |
</ol> |
|
<a name="linked-tables"></a> |
<h3>Linked-tables infrastructure</h3> |
<p> |
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). |
<br /> <br /> |
Please look at your scripts/ |
directory, where you should find a file called <i>create_tables.sql</i>. |
(If you are using a Windows server, pay special attention to <a href="#faq1_23">FAQ 1.23</a>). |
<br /> <br /> |
If your MySQL server's version is 4.1.2 or later, please use |
<i>create_tables_mysql_4_1_2+.sql</i> instead, for a new installation. |
<br /> <br /> |
If you already had this infrastructure and upgraded to MySQL 4.1.2 |
or later, please use <i>upgrade_tables_mysql_4_1_2+.sql</i>. |
<br /> <br /> |
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. |
<br /> <br /> |
After having imported the <i>create_tables.sql</i> file, |
you should specify the table names in your <i>config.inc.php</i> file. The directives |
used for that can be found in the <a href="#config">Configuration section</a>. |
You will also need to have a controluser with the proper rights to |
those tables (see section <i>Using authentication modes</i> below). |
</p> |
|
<h3>Upgrading from an older version</h3> |
|
<p> Simply copy <i>./config.inc.php</i> 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.</p> |
|
<p> You should <strong>not</strong> copy <tt>libraries/config.default.php</tt> |
over <tt>config.inc.php</tt> because the default configuration file |
is version-specific.</p> |
|
<p> 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 |
<tt>scripts/upgrade_tables_mysql_4_1_2+.sql</tt>.</p> |
|
<h3>Using authentication modes</h3> |
<ul> |
<li>HTTP and cookie authentication modes are recommended in a <b>multi-user |
environment</b> where you want to give users access to their own |
database and don't want them to play around with others. |
<br /> |
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!<br /> |
Even in a <b>single-user environment</b>, you might prefer to use |
HTTP or cookie mode so that your user/password pair are not in clear |
in the configuration file.<br /><br /></li> |
<li>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 <a href="#controluser">controluser</a>). |
<br /> |
However, keep in mind that the password travels in plain text, unless |
you are using the HTTPS protocol. |
<br /> |
In cookie mode, the password is stored, encrypted with the blowfish |
algorithm, in a temporary cookie. |
<br /><br /></li> |
|
<li> |
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 <tt>--skip-show-database</tt>. |
<br /><br /> |
For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has |
<b>only</b> the <tt>SELECT</tt> privilege on the <i>mysql.user (all |
columns except "Password")</i>, <i>mysql.db (all |
columns)</i>, <i>mysql.host (all columns)</i> and |
<i>mysql.tables_priv (all columns except |
"Grantor" & "Timestamp") </i>tables.<br /> You |
must specify the details for the <a href="#controluser">controluser</a> |
in the <i>config.inc.php</i> file under the |
<tt>$cfg['Servers'][$i]['controluser']</tt>& |
<tt>$cfg['Servers'][$i]['controlpass']</tt> settings.<br /> The |
following example assumes you want to use <tt>pma</tt> as the |
controluser and <tt>pmapass</tt> as the controlpass, but <b>this is |
only an example: use something else in your file!</b><br /> Of course |
you have to replace <tt>localhost</tt> by the webserver's host if it's |
not the same as the MySQL server's one. |
<pre> |
|
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'; |
</pre> |
If you are using an old MySQL version (below 4.0.2), please replace |
the first GRANT SELECT query by this one: |
<pre> |
|
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'; |
</pre> |
... and if you want to use the many new relation and bookmark |
features: |
<pre> |
|
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost'; |
</pre> |
(this of course requires that your <a href="#linked-tables">linked-tables infrastructure</a> be set up). |
<br /> |
Of course, the above queries only work if your MySQL version supports |
the GRANT command. This is the case since 3.22.11. |
</li> |
<li> |
Then each of the <i>true</i> 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).<br /> |
For example, to grant the user <i>real_user</i> with |
all privileges on the database <i>user_base</i>:<br /> |
<tt>GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';</tt> |
<br /> |
What the user may now do is controlled entirely by the MySQL user |
management system.<br /> |
With HTTP or cookie authentication mode, you don't need to fill the |
user/password fields inside the <tt>$cfg['Servers']</tt> array.<br /> |
</li> |
</ul> |
|
<h4>'http' authentication mode</h4> |
<ul> |
<li>Was called 'advanced' in versions before 2.2.3.</li> |
<li>Introduced in 1.3.0, it uses Basic HTTP authentication method and |
allows you to login as any valid MySQL user.</li> |
<li>Is supported with most PHP configurations. For IIS (ISAPI) support |
using CGI PHP see <a href="#faq1_32">FAQ 1.32</a>, for using with |
Apache CGI see <a href="#faq1_35">FAQ 1.35</a>.</li> |
<li>See also <a href="#faq4_4">FAQ 4.4</a> about not using the |
<i>.htaccess</i> mechanism along with 'http' authentication mode.</li> |
</ul> |
|
<h4>'cookie' authentication mode</h4> |
<ul> |
<li>You can use this method as a replacement for the HTTP |
authentication (for example, if you're running IIS). |
</li> |
<li>Obviously, the user must enable cookies in the browser.</li> |
<li>With this mode, the user can truly logout of phpMyAdmin and login back |
with the same username.</li> |
<li>If you want to login to arbitrary server see |
<tt><a href="#AllowArbitraryServer">$cfg['AllowArbitraryServer']</a></tt> directive.</li> |
<li>As mentioned in the <a href="#require">requirements</a> section, having the |
<tt>mcrypt</tt> extension will speed up access considerably, but is not required.</li> |
</ul> |
<h4>'config' authentication mode</h4> |
<ul> |
<li>This mode is the less secure one because it requires you to fill the |
<tt><a href="#servers_user">$cfg['Servers'][$i]['user']</a></tt> and |
<tt><a href="#servers_user">$cfg['Servers'][$i]['password']</a></tt> fields |
(and as a result, anyone who can read your config.inc.php can discover your |
username and password).<br /> |
But you don't need to setup a "controluser" here: |
using the <tt><a href="#servers_only_db">$cfg['Servers'][$i]['only_db']</a></tt> might be enough.</li> |
<li>In the <a href="#faqmultiuser">ISP FAQ</a> section, there is an entry explaining how to protect |
your configuration file.<br /></li> |
<li>For additional security in this mode, you may wish to consider the |
Host authentication <tt><a href="#servers_allowdeny_order">$cfg['Servers'][$i]['AllowDeny']['order']</a></tt> |
and <tt><a href="#servers_allowdeny_rules">$cfg['Servers'][$i]['AllowDeny']['rules']</a></tt> configuration |
directives.</li> |
</ul> |
|
|
<!-- CONFIGURATION --> |
<a name="config"></a><br /> |
<h2>Configuration</h2> |
|
<p> |
<span class="important">Warning for Mac users:</span> PHP does not seem to like |
Mac end of lines character ("<tt>\r</tt>"). So ensure you choose |
the option that allows to use the *nix end of line character |
("<tt>\n</tt>") in your text editor before saving a script |
you have modified. |
</p> |
|
<p> |
<span class="important">Configuration note:</span> |
Almost all configurable data is placed in <tt>config.inc.php</tt>. If this file |
does not exist, please refer to the <a href="#setup">Quick install</a> |
section to create one. This file only needs to contain the parameters you want to |
change from their corresponding default value in |
<tt>libraries/config.default.php</tt>. |
<br /><br /> |
The parameters which relate to design (like colors) |
are placed in <tt>themes/themename/layout.inc.php</tt>. You |
might also want to create <i>config.footer.inc.php</i> and |
<i>config.header.inc.php</i> files to add your site specific code to be |
included on start and end of each page. |
</p> |
|
<dl> |
<dt><b><a name="cfg_PmaAbsoluteUri"></a>$cfg[PmaAbsoluteUri]</b> string</dt> |
<dd> |
Sets here the complete URL (with full path) to your phpMyAdmin |
installation's directory. |
E.g. <tt>http://www.your_web.net/path_to_your_phpMyAdmin_directory/</tt>. |
Note also that the URL on some web servers are case–sensitive. |
Don’t forget the trailing slash at the end. |
<br /><br /> |
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 (<a |
href="https://sourceforge.net/tracker/index.php?func=detail&aid=1340187&group_id=23067&atid=377409">more info</a>). |
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. |
</dd> |
|
<dt><b><a name="cfg_PmaNoRelation_DisableWarning"></a>$cfg[PmaNoRelation_DisableWarning]</b> boolean</dt> |
<dd> |
Starting with version 2.3.0 phpMyAdmin offers a lot of features to work |
with master / foreign - tables (see |
<a href="#pmadb">$cfg['Servers'][$i]['pmadb']</a>). |
<br /> |
If you tried to set this up and it does not work for you, have a look on |
the "Structure" page of one database where you would like to |
use it. You will find a link that will analyze why those features have |
been disabled.<br /> |
If you do not want to use those features set this variable to |
<tt>TRUE</tt> to stop this message from appearing. |
</dd> |
|
<dt><b><a name="cfg_blowfish_secret"></a>$cfg[blowfish_secret]</b> string</dt> |
<dd> |
Starting with version 2.5.2, the 'cookie' auth_type uses blowfish |
algorithm to encrypt the password. |
<br /> |
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. |
</dd> |
|
<dt><b><a name="cfg_Servers"></a>$cfg[Servers]</b> array</dt> |
<dd> |
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 |
<tt>$cfg['Servers'][$i]['host']</tt> contains the hostname of the first |
server, the second <tt>$cfg['Servers'][$i]['host']</tt> the hostname of |
the second server, etc. |
In <tt>libraries/config.default.php</tt>, there is only one section |
for server definition, however you can put as many as you need in |
<tt>config.inc.php</tt>, copy that block or needed parts (you don't |
have to define all settings, just those you need to change). |
</dd> |
|
<dt><b><a name="cfg_Servers_host"></a>$cfg['Servers'][$i]['host']</b> string</dt> |
<dd> |
The hostname or IP address of your $i-th MySQL-server. E.g. localhost. |
</dd> |
|
<dt><b><a name="cfg_Servers_port"></a>$cfg['Servers'][$i]['port']</b> string</dt> |
<dd> |
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']. |
</dd> |
|
<dt><b><a name="cfg_Servers_socket"></a>$cfg['Servers'][$i]['socket']</b> string</dt> |
<dd> |
The path to the socket to use. Leave blank for default. |
</dd> |
|
<dt><b><a name="cfg_Servers_connect_type"></a>$cfg['Servers'][$i]['connect_type']</b> string</dt> |
<dd> |
What type connection to use with the MySQL server. Your options are |
<tt>'socket'</tt> & <tt>'tcp'</tt>. It defaults to 'tcp' as that |
is nearly guaranteed to be available on all MySQL servers, while |
sockets are not supported on some platforms. |
<br /><br /> |
To use the socket mode, your MySQL server must be on the same machine |
as the Web server. |
</dd> |
|
<dt><b><a name="cfg_Servers_extension"></a>$cfg['Servers'][$i]['extension']</b> string</dt> |
<dd> |
What php MySQL extension to use for the connection. Valid options are: |
<br /><br /> |
<tt><i>mysql</i></tt> : |
The classic MySQL extension. This is the recommended and default |
method at this time. |
<br /><br /> |
<tt><i>mysqli</i></tt> : |
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. |
</dd> |
|
<dt><b><a name="cfg_Servers_compress"></a>$cfg['Servers'][$i]['compress']</b> boolean</dt> |
<dd> |
Whether to use a compressed protocol for the MySQL server connection |
or not (experimental).<br /> |
This feature requires PHP >= 4.3.0. |
</dd> |
|
<dt> |
<a name="controluser"></a> |
<b><a name="cfg_Servers_controluser"></a>$cfg['Servers'][$i]['controluser']</b> string<br /> |
<b><a name="cfg_Servers_controlpass"></a>$cfg['Servers'][$i]['controlpass']</b> string |
</dt> |
<dd> |
This special account is used for 2 distinct purposes: to make possible |
all relational features |
(see <a href="#pmadb">$cfg['Servers'][$i]['pmadb']</a>) and, for a |
MySQL server older than 4.1.2 or running with |
<tt>--skip-show-database</tt>, to enable a multi-user installation |
(http or cookie authentication mode). |
<br /><br /> |
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 <tt>SELECT</tt> privilege on the |
<i>mysql.user (all columns except "Password")</i>, |
<i>mysql.db (all columns)</i> & <i>mysql.tables_priv (all columns |
except "Grantor" & "Timestamp") </i>tables. |
This account is used to check what databases the user will see at |
login. |
<br /> |
Please see the <a href="#setup">install section</a> on |
"Using authentication modes" for more information. |
<br /><br /> |
In phpMyAdmin versions before 2.2.5, those were called |
"stduser/stdpass". |
</dd> |
|
<dt><b><a name="cfg_Servers_auth_type"></a>$cfg['Servers'][$i]['auth_type']</b> string |
<tt>['http'|'cookie'|'config']</tt></dt> |
<dd> |
Whether config or cookie or http authentication should be used for this |
server. |
<ul> |
<li> |
'config' authentication |
(<tt>$auth_type = 'config'</tt>) is the plain old |
way: username and password are stored in |
<i>config.inc.php</i>. |
</li> |
<li> |
'cookie' authentication mode |
(<tt>$auth_type = 'cookie'</tt>) 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 login in arbitrary server if |
<tt><a href="#AllowArbitraryServer">$cfg['AllowArbitraryServer']</a></tt> enabled. |
</li> |
<li> |
'http' authentication (was called 'advanced' in older versions) |
(<tt>$auth_type = 'http'</tt>) as introduced in 1.3.0 |
allows you to log in as any valid MySQL user via HTTP-Auth. |
</li> |
</ul><br /> |
|
Please see the <a href="#setup">install section</a> on "Using authentication modes" |
for more information. |
</dd> |
<dt> |
<a name="servers_user"></a> |
<b><a name="cfg_Servers_user"></a>$cfg['Servers'][$i]['user']</b> string<br /> |
<b><a name="cfg_Servers_password"></a>$cfg['Servers'][$i]['password']</b> string |
</dt> |
<dd> |
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. |
</dd> |
<dt> |
<a name="servers_only_db"></a> |
<b><a name="cfg_Servers_only_db"></a>$cfg['Servers'][$i]['only_db']</b> string or array |
</dt> |
<dd> |
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 <tt>'my\_db'</tt> and not |
<tt>'my_db'</tt>).<br /> |
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 <span class="important">it does not replace the |
privileges rules of the MySQL database server</span>. If set, it just |
means only these databases will be displayed but |
<span class="important">not that all other databases can't be used.</span> |
<br /><br /> |
An example of using more that one database: |
<tt>$cfg['Servers'][$i]['only_db'] = array('db1', 'db2'); </tt> |
<br /><br /> |
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.<br /> |
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: |
<tt>$cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*');</tt> |
instead to tell phpMyAdmin that it should display db3 and db4 on top, and the rest in alphabetic |
order. |
</dd> |
|
<dt> |
<b><a name="cfg_Servers_hide_db"></a>$cfg['Servers'][$i]['hide_db']</b> string |
</dt> |
<dd> |
Regular expression for hiding some databases. This only hides them |
from listing, but user is still able to access them. |
</dd> |
|
<dt><b><a name="cfg_Servers_verbose"></a>$cfg['Servers'][$i]['verbose']</b> string</dt> |
<dd> |
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. |
</dd> |
|
<dt> |
<a name="pmadb"></a> |
<b><a name="cfg_Servers_pmadb"></a>$cfg['Servers'][$i]['pmadb']</b> string |
</dt> |
<dd> |
The name of the database containing the linked-tables infrastructure. |
<br /><br /> |
See the <a href="#linked-tables">Linked-tables infrastructure</a> |
section in this document to see the benefits of this infrastructure, |
and for a quick way of creating this database and the needed tables. |
<br /><br /> |
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 |
<tt>$cfg['Servers'][$i]['pmadb']</tt>. For a multi-user installation, |
set this parameter to the name of your central database containing |
the linked-tables infrastructure. |
</dd> |
|
<dt> |
<a name="bookmark"></a> |
<b><a name="cfg_Servers_bookmarktable"></a>$cfg['Servers'][$i]['bookmarktable']</b> string |
</dt> |
<dd> |
Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can be |
useful for queries you often run.<br /><br /> |
|
To allow the usage of this functionality: |
<ul> |
<li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li> |
<li>enter the table name in |
<tt>$cfg['Servers'][$i]['bookmarktable']</tt></li> |
</ul> |
</dd> |
|
<dt> |
<a name="relation"></a> |
<b><a name="cfg_Servers_relation"></a>$cfg['Servers'][$i]['relation']</b> string |
</dt> |
<dd> |
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 |
<ul> |
<li> |
make clickable, when you browse the master table, the data values |
that point to the foreign table; |
</li> |
<li> |
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);<br /> |
(see <a href="#faqdisplay">FAQ 6.7</a>) |
</li> |
<li> |
in edit/insert mode, display a drop-down list of possible |
foreign keys (key value and "display field" are |
shown)<br /> |
(see <a href="#faq6_21">FAQ 6.21</a>) |
</li> |
<li> |
display links on the table properties page, to check referential |
integrity (display missing foreign keys) for each described key; |
</li> |
<li> |
in query-by-example, create automatic joins (see <a href="#faq6_6">FAQ 6.6</a>) |
</li> |
<li> |
enable you to get a PDF schema of your database (also uses the |
table_coords table). |
</li> |
</ul> |
|
The keys can be numeric or character. |
<br /><br /> |
|
To allow the usage of this functionality: |
<ul> |
<li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li> |
<li> |
put the relation table name in |
<tt>$cfg['Servers'][$i]['relation']</tt> |
</li> |
<li> |
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. |
</li> |
</ul> |
Please note that in the current version, <tt>master_db</tt> |
must be the same as <tt>foreign_db</tt>. Those fields have been put in |
future development of the cross-db relations. |
</dd> |
|
<dt> |
<a name="table_info"></a> |
<b><a name="cfg_Servers_table_info"></a>$cfg['Servers'][$i]['table_info']</b> string |
</dt> |
<dd> |
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. |
<br /> |
This configuration variable will hold the name of this special |
table. |
To allow the usage of this functionality: |
<ul> |
<li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li> |
<li> |
put the table name in |
<tt>$cfg['Servers'][$i]['table_info']</tt> |
</li> |
<li> |
then for each table where you want to use this feature, |
click "Structure/Relation view/Choose field to display" |
to choose the field. |
</li> |
</ul> |
Usage tip: <a href="#faqdisplay">Display field</a>. |
</dd> |
<dt> |
<a name="table_coords"></a> |
<b><a name="cfg_Servers_table_coords"></a>$cfg['Servers'][$i]['table_coords']</b> string<br /> |
<b><a name="cfg_Servers_pdf_pages"></a>$cfg['Servers'][$i]['pdf_pages']</b> string |
</dt> |
<dd> |
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). |
<br /><br /> |
You must be using the "relation" feature. |
<br /><br /> |
To allow the usage of this functionality: |
<ul> |
<li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li> |
<li> |
put the correct table names in |
<tt>$cfg['Servers'][$i]['table_coords']</tt> and |
<tt>$cfg['Servers'][$i]['pdf_pages']</tt> |
</li> |
</ul> |
Usage tips: <a href="#faqpdf">PDF output</a>. |
</dd> |
|
<dt> |
<a name="col_com"></a> |
<b><a name="cfg_Servers_column_info"></a>$cfg['Servers'][$i]['column_info']</b> string |
</dt> |
<dd> |
<!-- This part requires a content update! --> |
Since release 2.3.0 you can store comments to describe each column |
for each table. These will then be shown on the "printview". |
<br /><br /> |
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. |
<br /><br /> |
Also new in release 2.5.0 is a MIME-transformation system which is also based on |
the following table structure. See <a href="#transformations">Transformations</a> |
for further information. To use the MIME-transformation system, your column_info |
table has to have the three new fields 'mimetype', 'transformation', 'transformation_options'. |
<br /><br /> |
To allow the usage of this functionality: |
<ul> |
<li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li> |
<li> |
put the table name in |
<tt>$cfg['Servers'][$i]['column_info']</tt> |
</li> |
<li> |
to update your PRE-2.5.0 Column_comments Table use this:<br /> |
<tt> |
ALTER TABLE `pma_column_comments` <br /> |
ADD `mimetype` VARCHAR( 255 ) NOT NULL ,<br /> |
ADD `transformation` VARCHAR( 255 ) NOT NULL ,<br /> |
ADD `transformation_options` VARCHAR( 255 ) NOT NULL ;<br /> |
</tt> |
and remember that the Variable in <i>config.inc.php</i> has been renamed |
from <br /><tt>$cfg['Servers'][$i]['column_comments']</tt> to <tt>$cfg['Servers'][$i]['column_info']</tt> |
</li> |
</ul> |
</dd> |
|
<dt> |
<a name="history"></a> |
<b><a name="cfg_Servers_history"></a>$cfg['Servers'][$i]['history']</b> string |
</dt> |
<dd> |
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.<br /><br /> |
|
Using <b><a name="cfg_QueryHistoryMax"></a>$cfg[QueryHistoryMax]</b> 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. |
<br /><br /> |
|
The query history is only available if JavaScript is enabled in your |
browser. |
<br /><br /> |
|
To allow the usage of this functionality: |
<ul> |
<li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li> |
<li> |
put the table name in |
<tt>$cfg['Servers'][$i]['history']</tt> |
</li> |
</ul> |
</dd> |
|
<dt> |
<b><a name="cfg_Servers_verbose_check"></a>$cfg['Servers'][$i]['verbose_check']</b> boolean |
</dt> |
<dd> |
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 <tt>TRUE</tt> (default) phpMyAdmin will check if you have the latest table structure |
available. If not, it will emit a warning to the superuser.<br /><br /> |
|
You can disable this checking behavior by setting the variable to false, which |
should offer a performance increase.<br /><br /> |
|
Recommended to set to FALSE, when you are sure, your table structure is up to date. |
</dd> |
<dt> |
<b><a name="cfg_Servers_AllowRoot"></a>$cfg['Servers'][$i]['AllowRoot']</b> boolean |
</dt> |
<dd> |
Whether to allow root access, This is just simplification of rules below. |
</dd> |
<dt> |
<a name="servers_allowdeny_order"></a> |
<b><a name="cfg_Servers_AllowDeny_order"></a>$cfg['Servers'][$i]['AllowDeny']['order']</b> string |
</dt> |
<dd> |
If your rule order is empty, then IP authentication is disabled. |
<br /><br /> |
If your rule order is set to <tt>'deny,allow'</tt> 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. |
<br /><br /> |
If your rule order is set to <tt>'allow,deny'</tt> 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. |
<br /><br /> |
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 <b>must</b> be |
listed in the <i>allow</i> rules, and not listed in the <i>deny</i> |
rules. This is the <b>most</b> secure means of using Allow/Deny rules, |
and was available in Apache by specifying allow and deny rules without |
setting any order. |
</dd> |
<dt> |
<a name="servers_allowdeny_rules"></a> |
<b><a name="cfg_Servers_AllowDeny_rules"></a>$cfg['Servers'][$i]['AllowDeny']['rules']</b> array of strings |
</dt> |
<dd> |
The general format for the rules is as such:<br /> |
<tt> |
|
<'allow' | 'deny'> <username> [from] <ipmask> |
</tt> |
<br /><br /> |
|
If you wish to match all users, it is possible to use a <tt>'%'</tt> as |
a wildcard in the <i>username</i> field.<br /> |
There are a few shortcuts you can use in the <i>ipmask</i> field as |
well (please note that those containing SERVER_ADDRESS might not be |
available on all webservers):<br /><br /> |
<tt> |
'all' -> 0.0.0.0/0<br /> |
'localhost' -> 127.0.0.1/8<br /> |
'localnetA' -> SERVER_ADDRESS/8<br /> |
'localnetB' -> SERVER_ADDRESS/16<br /> |
'localnetC' -> SERVER_ADDRESS/24 |
</tt> |
<br /><br /> |
|
Having an empty rule list is equivalent to either using |
<tt>'allow % from all'</tt> if your rule order is set to |
<tt>'deny,allow'</tt> or <tt>'deny % from all'</tt> if your rule order |
is set to <tt>'allow,deny'</tt> or <tt>'explicit'</tt>. |
<br /><br /> |
|
For the IP matching system, the following work:<br /> |
<tt>xxx.xxx.xxx.xxx</tt> (an exact IP address)<br /> |
<tt>xxx.xxx.xxx.[yyy-zzz]</tt> (an IP address range)<br /> |
<tt>xxx.xxx.xxx.xxx/nn</tt> (CIDR, Classless Inter-Domain Routing type IP addresses)<br /> |
But the following does not work:<br /> |
<tt>xxx.xxx.xxx.xx[yyy-zzz]</tt> (partial IP address range) |
</dd> |
|
<dt><b><a name="cfg_ServerDefault"></a>$cfg[ServerDefault]</b> integer</dt> |
<dd> |
If you have more than one server configured, you can set |
<tt>$cfg['ServerDefault']</tt> 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.<br /> |
If you have only one server configured, <tt>$cfg['ServerDefault']</tt> |
MUST be set to that server. |
</dd> |
|
<dt><b><a name="cfg_OBGzip"></a>$cfg[OBGzip] </b>string/boolean</dt> |
<dd> |
Defines whether to use GZip output buffering for increased |
speed in HTTP transfers.<br /> |
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 having enabled buffering. |
</dd> |
|
<dt><b><a name="cfg_PersistentConnections"></a>$cfg[PersistentConnections] </b>boolean</dt> |
<dd> |
Whether persistent connections should be used or not (mysql_connect or |
mysql_pconnect). |
</dd> |
|
<dt><b><a name="cfg_ForceSSL"></a>$cfg[ForceSSL] </b>boolean</dt> |
<dd> |
Whether to force using https while accessing phpMyAdmin. |
</dd> |
|
<dt><b><a name="cfg_ExecTimeLimit"></a>$cfg[ExecTimeLimit] </b>integer [number of seconds]</dt> |
<dd> |
Set the number of seconds a script is allowed to run. If seconds is set |
to zero, no time limit is imposed.<br /> |
This setting is used while importing/exporting dump files but has no |
effect when PHP is running in safe mode. |
</dd> |
|
<dt><b><a name="cfg_MemoryLimit"></a>$cfg[MemoryLimit] </b>integer [number of bytes]</dt> |
<dd> |
Set the number of bytes a script is allowed to allocate. If number set |
to zero, no limit is imposed.<br /> |
This setting is used while importing/exporting dump files but has no |
effect when PHP is running in safe mode.<br /> |
You can also use any string as in php.ini, eg. '16M'. |
</dd> |
|
<dt><b><a name="cfg_SkipLockedTables"></a>$cfg[SkipLockedTables] </b>boolean</dt> |
<dd> |
Mark used tables and make it possible to show databases with locked |
tables (since 3.23.30). |
</dd> |
|
<dt><b><a name="cfg_ShowSQL"></a>$cfg[ShowSQL] </b>boolean</dt> |
<dd> |
Defines whether SQL-queries generated by phpMyAdmin should be displayed |
or not. |
</dd> |
|
<dt><b><a name="cfg_AllowUserDropDatabase"></a>$cfg[AllowUserDropDatabase] </b>boolean</dt> |
<dd> |
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. |
</dd> |
|
<dt><b><a name="cfg_Confirm"></a>$cfg[Confirm] </b>boolean</dt> |
<dd> |
Whether a warning ("Are your really sure...") should be |
displayed when you're about to lose data. |
</dd> |
|
<dt><b><a name="cfg_LoginCookieRecall"></a>$cfg[LoginCookieRecall] </b>boolean</dt> |
<dd> |
Define whether the previous login should be recalled or not in cookie |
authentication mode. |
</dd> |
|
<dt><b><a name="cfg_UseDbSearch"></a>$cfg[UseDbSearch] </b>boolean</dt> |
<dd> |
Define whether the "search string inside database" is enabled or not. |
</dd> |
|
<dt><b><a name="cfg_IgnoreMultiSubmitErrors"></a>$cfg[IgnoreMultiSubmitErrors] </b>boolean</dt> |
<dd> |
Define whether phpMyAdmin will continue executing a multi-query |
statement if one of the queries fails. Default is to abort execution. |
</dd> |
|
<dt><b><a name="cfg_VerboseMultiSubmit"></a>$cfg[VerboseMultiSubmit] </b>boolean</dt> |
<dd> |
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 <tt>TRUE</tt>. |
</dd> |
<dt> |
<a name="AllowArbitraryServer"></a> |
<b><a name="cfg_AllowArbitraryServer"></a>$cfg[AllowArbitraryServer] </b>boolean</dt> |
<dd> |
If enabled allows you to login to arbitrary server using cookie auth. |
<br /><br /> |
<b>NOTE:</b> Please use this carefully, as this may allow to access |
MySQL servers behind firewall where your http server is placed. |
<br /><br /> |
</dd> |
|
<dt><b><a name="cfg_LeftFrameLight"></a>$cfg[LeftFrameLight]</b> boolean</dt> |
<dd> |
Defines whether to use 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'] |
</dd> |
|
<dt><b><a name="cfg_LeftFrameDBTree"></a>$cfg[LeftFrameDBTree]</b> boolean</dt> |
<dd> |
In light mode, defines whether to display the names of databases (in the |
selector) using a tree, see also <tt>$cfg['LeftFrameDBSeparator']</tt>. |
</dd> |
|
<dt><b><a name="cfg_LeftFrameDBSeparator"></a>$cfg[LeftFrameDBSeparator]</b> string</dt> |
<dd> |
The string used to separate the parts of the database name when showing |
them in a tree. |
</dd> |
|
<dt><b><a name="cfg_LeftFrameTableSeparator"></a>$cfg[LeftFrameTableSeparator]</b> string</dt> |
<dd> |
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 shall |
not use this Separator in a table name at the beginning or end of a |
table name, or multiple times after another without any other |
characters in between. |
</dd> |
|
<dt><b><a name="cfg_LeftFrameTableLevel"></a>$cfg[LeftFrameTableLevel]</b> string</dt> |
<dd> |
Defines how many sublevels should be displayed when splitting |
up tables by the above Separator. |
</dd> |
|
<dt><b><a name="cfg_ShowTooltip"></a>$cfg[ShowTooltip] </b>boolean</dt> |
<dd> |
Defines whether to display table comment as tool-tip in left frame or |
not. |
</dd> |
|
<dt><b><a name="cfg_ShowTooltipAliasDB"></a>$cfg[ShowTooltipAliasDB] </b>boolean</dt> |
<dd> |
If tool-tips are enabled and a DB comment is set, this will flip the |
comment and the real name. That means, 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. |
</dd> |
|
<dt><b><a name="cfg_ShowTooltipAliasTB"></a>$cfg[ShowTooltipAliasTB] </b>boolean/string</dt> |
<dd> |
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. |
<br /><br /> |
</dd> |
<dt><b><a name="cfg_LeftDisplayLogo"></a>$cfg[LeftDisplayLogo] </b>boolean</dt> |
<dd>Defines whether to display the phpMyAdmin logo at the top of the left frame or not. |
Defaults to <tt>TRUE</tt>. |
</dd> |
<dt><b><a name="cfg_LeftDisplayServers"></a>$cfg[LeftDisplayServers] </b>boolean</dt> |
<dd>Defines whether to display a server choice at the top of the left frame or not. |
Defaults to FALSE. |
</dd> |
<dt><b><a name="cfg_DisplayServersList"></a>$cfg[DisplayServersList] </b>boolean</dt> |
<dd>Defines whether to display this server choice as links instead of in a drop-down. |
Defaults to FALSE (drop-down). |
</dd> |
<dt><b><a name="cfg_ShowStats"></a>$cfg[ShowStats] </b>boolean</dt> |
<dd> |
Defines whether to display space usage and statistics about databases |
and tables or not.<br /> |
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. |
</dd> |
|
<dt> |
<b><a name="cfg_ShowPhpInfo"></a>$cfg[ShowPhpInfo] </b>boolean<br /> |
<b><a name="cfg_ShowChgPassword"></a>$cfg[ShowChgPassword] </b>boolean |
</dt> |
<dd> |
Defines whether to display the "PHP information" and |
"Change password " links or not for simple users at the |
starting main (right) frame. This setting does not check MySQL |
commands entered directly. |
<br /><br /> |
|
Please note that to block the usage of phpinfo() in scripts, you |
have to put this in your <i>php.ini</i>:<br /> |
<tt>disable_functions = phpinfo()</tt> |
<br /><br /> |
|
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. |
</dd> |
|
<dt><b><a name="cfg_SuggestDBName"></a>$cfg[SuggestDBName]</b> boolean</dt> |
<dd> |
Defines whether to suggest a database name on the |
"Create Database" form or to keep the textfield empty. |
</dd> |
|
<dt><b><a name="cfg_ShowBlob"></a>$cfg[ShowBlob] </b>boolean</dt> |
<dd> |
Defines whether <tt>BLOB</tt> fields are shown when browsing a table's |
content or not. |
</dd> |
|
<dt><b><a name="cfg_NavigationBarIconic"></a>$cfg[NavigationBarIconic] </b>string</dt> |
<dd> |
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. |
</dd> |
|
<dt><b><a name="cfg_ShowAll"></a>$cfg[ShowAll] </b>boolean</dt> |
<dd> |
Defines whether an user should be displayed a |
"show all (records)" button in browse mode or not. |
</dd> |
|
<dt><b><a name="cfg_MaxRows"></a>$cfg[MaxRows] </b>integer</dt> |
<dd> |
Number of rows displayed when browsing a result set. If the result set |
contains more rows, Previous/Next links will be shown. |
</dd> |
|
<dt><b><a name="cfg_Order"></a>$cfg[Order] </b>string [<tt>DESC</tt>|<tt>ASC</tt>|<tt>SMART</tt>]</dt> |
<dd> |
Defines whether fields are displayed in ascending (<tt>ASC</tt>) order, |
in descending (<tt>DESC</tt>) order or in a "smart" |
(<tt>SMART</tt>) order - I.E. descending order for fields of type TIME, |
DATE, DATETIME & TIMESTAMP, ascending order else- by default. |
</dd> |
|
<dt><b><a name="cfg_ProtectBinary"></a>$cfg[ProtectBinary] </b>boolean or string</dt> |
<dd> |
Defines whether <tt>BLOB</tt> or <tt>BINARY</tt> fields are protected |
from editing when browsing a table's content or not. |
Valid values are: |
<ul> |
<li><tt>FALSE</tt> to allow editing of all fields;</li> |
<li><tt>'blob'</tt> to allow editing of all fields except <tt>BLOBS</tt>;</li> |
<li><tt>'all'</tt> to disallow editing of all <tt>BINARY</tt> or |
<tt>BLOB</tt> fields.</li> |
</ul> |
</dd> |
|
<dt><b><a name="cfg_ShowFunctionFields"></a>$cfg[ShowFunctionFields] </b>boolean</dt> |
<dd> |
Defines whether MySQL functions fields should be displayed or not in |
edit/insert mode. |
</dd> |
|
<dt><b><a name="cfg_CharEditing"></a>$cfg[CharEditing] </b>string</dt> |
<dd> |
Defines which type of editing controls should be used for CHAR and |
VARCHAR fields. Possible values are: |
<ul> |
<li> |
input - this allows to limit size of text to size of field in |
MySQL, but has problems with newlines in fields |
</li> |
<li> |
textarea - no problems with newlines in fields, but also no |
length limitations |
</li> |
</ul> |
Default is old behavior so input. |
</dd> |
|
<dt><b><a name="cfg_InsertRows"></a>$cfg[InsertRows]</b> integer</dt> |
<dd> |
Defines the maximum number of concurrent entries for the Insert page. |
</dd> |
|
<dt><b><a name="cfg_ForeignKeyMaxLimit"></a>$cfg[ForeignKeyMaxLimit]</b> integer</dt> |
<dd> |
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 |
<b>$cfg[ForeignKeyDropdownOrder]</b> setting. |
</dd> |
|
<dt><b><a name="cfg_ForeignKeyDropdownOrder"></a>$cfg[ForeignKeyDropdownOrder]</b> array</dt> |
<dd> |
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: |
<i>'content-id'</i>, <i>'id-content'</i>. |
</dd> |
|
<dt> |
<b><a name="cfg_ZipDump"></a>$cfg[ZipDump] </b>boolean<br /> |
<b><a name="cfg_GZipDump"></a>$cfg[GZipDump] </b>boolean<br /> |
<b><a name="cfg_BZipDump"></a>$cfg[BZipDump] </b>boolean |
</dt> |
<dd> |
Defines whether to allow the use of zip/GZip/BZip2 compression when |
creating a dump file or not. |
</dd> |
|
<dt> |
<b><a name="cfg_CompressOnFly"></a>$cfg[CompressOnFly] </b>boolean<br /> |
</dt> |
<dd> |
Defines whether to allow on the fly compression for GZip/BZip2 |
compressed exports. This doesn't affect smaller dumps and allows to |
create larger dumps, that won't fit otherwise in memory due to php |
memory limit. Produced files contain more GZip/BZip2 headers, but all |
normal programs handle this correctly. |
</dd> |
|
<dt><b><a name="cfg_LightTabs"></a>$cfg[LightTabs] </b>string</dt> |
<dd> |
If set to True, use less graphically intense tabs on the top of the |
mainframe. |
</dd> |
|
<dt><b><a name="cfg_PropertiesIconic"></a>$cfg[PropertiesIconic] </b>string</dt> |
<dd> |
If set to <tt>TRUE</tt>, will display icons instead of text for db and table |
properties links (like 'Browse', 'Select', 'Insert', ...).<br /> Can be set to <tt>'both'</tt> if you want icons AND text.<br /> |
When set to <tt>FALSE</tt>, will only show text. |
</dd> |
|
<dt><b><a name="cfg_PropertiesNumColumns"></a>$cfg[PropertiesNumColumns] </b>integer</dt> |
<dd> |
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. |
</dd> |
|
|
<dt><b><a name="cfg_DefaultTabServer"></a>$cfg[DefaultTabServer] </b>string</dt> |
<dd> |
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". |
</dd> |
|
<dt><b><a name="cfg_DefaultTabDatabase"></a>$cfg[DefaultTabDatabase] </b>string</dt> |
<dd> |
Defines the tab displayed by default on database view. Possible |
values: "db_details_structure.php", |
"db_details.php" or "db_search.php". |
</dd> |
|
<dt><b><a name="cfg_DefaultTabTable"></a>$cfg[DefaultTabTable] </b>string</dt> |
<dd> |
Defines the tab displayed by default on table view. Possible |
values: "tbl_properties_structure.php", |
"tbl_properties.php", "tbl_select.php", |
"tbl_change.php" or "sql.php". |
</dd> |
|
<dt><b><a name="cfg_MySQLManualBase"></a>$cfg[MySQLManualBase]</b> string</dt> |
<dd> |
If set to an URL which points to the MySQL documentation (type depends |
on <tt>$cfg['MySQLManualType']</tt>), appropriate help links are |
generated. |
<br /> |
See <a href="http://dev.mysql.com/doc/">MySQL Documentation page</a> |
for more information about MySQL manuals and their types. |
</dd> |
|
<dt><b><a name="cfg_MySQLManualType"></a>$cfg[MySQLManualType]</b> string</dt> |
<dd> |
Type of MySQL documentation: |
<ul> |
<li>viewable - "viewable online", current one used on MySQL website</li> |
<li>searchable - "Searchable, with user comments"</li> |
<li>chapters - "HTML, one page per chapter"</li> |
<li>big - "HTML, all on one page"</li> |
<li>none - do not show documentation links</li> |
</ul> |
</dd> |
|
<dt><b><a name="cfg_DefaultLang"></a>$cfg[DefaultLang] </b>string</dt> |
<dd> |
Defines the default language to use, if not browser-defined or |
user-defined.<br /> |
See the <i>select_lang.lib.php</i> script to know the valid values for |
this setting. |
</dd> |
|
<dt><b><a name="cfg_DefaultConnectionCollation"></a>$cfg[DefaultConnectionCollation] </b>string</dt> |
<dd> |
Defines the default connection collation to use, if not |
user-defined.<br /> |
See the <a href="http://dev.mysql.com/doc/mysql/en/charset-charsets.html">MySQL |
documentation</a> for list of possible values. |
</dd> |
|
<dt><b><a name="cfg_Lang"></a>$cfg[Lang] </b>string</dt> |
<dd> |
Force: always use this language (must be defined in the |
<i>select_lang.lib.php</i> script). |
</dd> |
|
<dt><b><a name="cfg_FilterLanguages"></a>$cfg[FilterLanguages] </b>string</dt> |
<dd> |
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 <code>'^(cs|en)'</code>. |
</dd> |
|
<dt><b><a name="cfg_DefaultCharset"></a>$cfg[DefaultCharset] </b>string</dt> |
<dd> |
Default character set to use for recoding of MySQL queries. This must be |
enabled and it's described by <tt>$cfg['AllowAnywhereRecoding']</tt> |
option.<br /> |
You can give here any character set which is in |
<tt>$cfg['AvailableCharsets']</tt> array and this is just default |
choice, user can select any of them. |
</dd> |
|
<dt><b><a name="cfg_AllowAnywhereRecoding"></a>$cfg[AllowAnywhereRecoding] </b>boolean</dt> |
<dd> |
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). |
<br /><br /> |
Setting this to <tt>TRUE</tt> also activates a pull-down menu |
in the Export page, to choose the character set when exporting a file. |
</dd> |
|
<dt><b><a name="cfg_RecodingEngine"></a>$cfg[RecodingEngine] </b>string</dt> |
<dd> |
You can select here which functions will be used for character set |
conversion. |
Possible values are: |
<ul> |
<li>auto - automatically use available one (first is tested |
iconv, then recode)</li> |
<li>iconv - use iconv or libiconv functions</li> |
<li>recode - use recode_string function</li> |
</ul> |
Default is auto. |
</dd> |
|
<dt><b><a name="cfg_IconvExtraParams"></a>$cfg[IconvExtraParams] </b>string</dt> |
<dd> |
Specify some parameters for iconv used in charset conversion. See |
<a href="http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html">iconv |
documentation</a> for details. By default <code>//TRANSLIT</code> is |
used, so that invalid characters will be transliterated. |
</dd> |
|
<dt><b><a name="cfg_AvailableCharsets"></a>$cfg[AvailableCharsets] </b>array</dt> |
<dd> |
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. |
</dd> |
|
<dt><b><a name="cfg_GD2Available"></a>$cfg[GD2Available] </b>string</dt> |
<dd> |
Specifies whether GD >= 2 is available. If yes it can be used for |
MIME transformations.<br /> |
Possible values are: |
<ul> |
<li> |
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 |
</li> |
<li>yes - GD 2 functions can be used</li> |
<li>no - GD 2 function cannot be used</li> |
</ul> |
Default is auto. |
</dd> |
|
<dt><b><a name="cfg_LeftWidth"></a>$cfg[LeftWidth] </b>integer</dt> |
<dd> |
Left frame width in pixel. See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt> |
<b><a name="cfg_LeftBgColor"></a>$cfg[LeftBgColor] </b>string [HTML color]<br /> |
<b><a name="cfg_RightBgColor"></a>$cfg[RightBgColor] </b>string [HTML color] |
</dt> |
<dd> |
The background colors (HTML) used for both the frames. |
See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt> |
<b><a name="cfg_RightBgImage"></a>$cfg[RightBgImage] </b>string |
</dt> |
<dd> |
The URI of the background image used for the right frame. It must be |
an absolute URI. See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt><b><a name="cfg_LeftPointerColor"></a>$cfg[LeftPointerColor] </b>string [HTML color]</dt> |
<dd> |
The color (HTML) used for the pointer in the left frame (does not work |
with Netscape 4). See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt><b><a name="cfg_LeftPointerEnable"></a>$cfg[LeftPointerEnable] </b>boolean</dt> |
<dd> |
A value of <tt>TRUE</tt> activates the left pointer (when LeftFrameLight is <tt>FALSE</tt>). |
</dd> |
|
<dt><b><a name="cfg_Border"></a>$cfg[Border] </b>integer</dt> |
<dd> |
The size of a table's border. See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt><b><a name="cfg_ThBgcolor"></a>$cfg[ThBgcolor] </b>string [HTML color]</dt> |
<dd> |
The color (HTML) used for table headers. See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt><b><a name="cfg_BgcolorOne"></a>$cfg[BgcolorOne] </b>string [HTML color]</dt> |
<dd> |
The color (HTML) #1 for table rows. See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt><b><a name="cfg_BgcolorTwo"></a>$cfg[BgcolorTwo] </b>string [HTML color]</dt> |
<dd> |
The color (HTML) #2 for table rows. See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt> |
<b><a name="cfg_BrowsePointerColor"></a>$cfg[BrowsePointerColor] </b>string [HTML color]<br /> |
<b><a name="cfg_BrowseMarkerColor"></a>$cfg[BrowseMarkerColor] </b>string [HTML color] |
</dt> |
<dd> |
The colors (HTML) uses for the pointer and the marker in browse mode |
(does not work with Netscape 4).<br /> |
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.<br /> |
See <tt>themes/themename/layout.inc.php</tt>. |
</dd> |
|
<dt><b><a name="cfg_BrowsePointerEnable"></a>$cfg[BrowsePointerEnable] </b>boolean</dt> |
<dd> |
Whether to activate the browse pointer or not. |
</dd> |
|
<dt><b><a name="cfg_BrowseMarkerEnable"></a>$cfg[BrowseMarkerEnable] </b>boolean</dt> |
<dd> |
Whether to activate the browse marker or not. |
</dd> |
|
<dt> |
<b><a name="cfg_TextareaCols"></a>$cfg[TextareaCols] </b>integer<br /> |
<b><a name="cfg_TextareaRows"></a>$cfg[TextareaRows] </b>integer<br /> |
<b><a name="cfg_CharTextareaCols"></a>$cfg[CharTextareaCols] </b>integer<br /> |
<b><a name="cfg_CharTextareaRows"></a>$cfg[CharTextareaRows] </b>integer |
</dt> |
<dd> |
Number of columns and rows for the textareas.<br /> |
This value will be emphasized (*2) for SQL query textareas and (*1.25) for |
SQL textareas inside the query window.<br /> |
The Char* values are used for CHAR and VARCHAR editing (if configured |
via $cfg['CharEditing']). |
</dd> |
|
<dt> |
<b><a name="cfg_LongtextDoubleTextarea"></a>$cfg[LongtextDoubleTextarea] </b>boolean |
</dt> |
<dd> |
Defines whether textarea for LONGTEXT fields should have double size. |
</dd> |
|
<dt> |
<b><a name="cfg_TextareaAutoSelect"></a>$cfg[TextareaAutoSelect] </b>boolean |
</dt> |
<dd> |
Defines if the whole textarea of the query box will be selected on |
click. |
</dd> |
<dt> |
<a name="CtrlArrowsMoving"></a> |
<b><a name="cfg_CtrlArrowsMoving"></a>$cfg[CtrlArrowsMoving] </b>boolean |
</dt> |
<dd> |
Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when editing. |
</dd> |
|
<dt><b><a name="cfg_LimitChars"></a>$cfg[LimitChars] </b>integer</dt> |
<dd> |
Maximal number of Chars showed in any non-numeric |
field on browse view. Can be turned off by a toggle button on the |
browse page. |
</dd> |
|
<dt> |
<b><a name="cfg_ModifyDeleteAtLeft"></a>$cfg[ModifyDeleteAtLeft] </b>boolean |
<b><a name="cfg_ModifyDeleteAtRight"></a>$cfg[ModifyDeleteAtRight] </b>boolean |
</dt> |
<dd> |
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. |
</dd> |
|
<dt><b><a name="cfg_DefaultDisplay"></a>$cfg[DefaultDisplay] </b>string |
<b><a name="cfg_HeaderFlipType"></a>$cfg[HeaderFlipType] </b>string |
</dt> |
<dd> |
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. |
<br /><br /> |
The HeaderFlipType can be set to 'css' or 'faked'. When using 'css' |
the rotation of the header for horizontalflipped is done via CSS. If |
set to 'faked' PHP does the transformation for you, but of course this |
does not look as good as CSS. |
</dd> |
<dt> |
|
<a name="DefaultPropDisplay"></a> |
<b><a name="cfg_DefaultPropDisplay"></a>$cfg[DefaultPropDisplay] </b>string</dt> |
<dd> |
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. |
</dd> |
|
<dt><b><a name="cfg_ShowBrowseComments"></a>$cfg[ShowBrowseComments] </b>boolean<br /> |
<b><a name="cfg_ShowPropertyComments"></a>$cfg[ShowPropertyComments] </b>boolean |
</dt> |
<dd> |
By setting the corresponding variable to <tt>TRUE</tt> you can enable the |
display of column comments in Browse or Property display. In browse |
mode, the comments are show 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. |
</dd> |
|
<dt><b><a name="cfg_UploadDir"></a>$cfg[UploadDir] </b>string</dt> |
<dd> |
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. |
<br /><br /> |
If you want different directory for each user, %u will be replaced |
with username. |
<br /><br /> |
Please note that the file names must have the suffix ".sql" |
(or ".sql.bz2" or ".sql.gz" if support for |
compressed formats is enabled). |
<br /><br /> |
This feature is useful when your file is too big to be uploaded via |
HTTP, or when file uploads are disabled in PHP. |
<br /><br /> |
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. |
<br /><br /> |
See also <a href="#faq1_16">FAQ 1.16</a> for alternatives. |
</dd> |
|
<dt><b><a name="cfg_docSQLDir"></a>$cfg[docSQLDir] </b>string</dt> |
<dd> |
The name of the directory where docSQL files can be uploaded for |
import into phpMyAdmin. |
<br /><br /> |
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. |
</dd> |
|
<dt><b><a name="cfg_SaveDir"></a>$cfg[SaveDir] </b>string</dt> |
<dd> |
The name of the directory where dumps can be saved. |
<br /><br /> |
If you want different directory for each user, %u will be replaced |
with username. |
<br /><br /> |
Please note that the directory has to be writable for user running |
webserver. |
<br /><br /> |
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. |
</dd> |
|
<dt><b><a name="cfg_TempDir"></a>$cfg[TempDir] </b>string</dt> |
<dd> |
The name of the directory, where temporary files can be stored. |
<br /><br /> |
This is needed for native MS Excel export, see <a href="#faq6_23">FAQ |
6.23</a> |
</dd> |
|
<dt><b><a name="cfg_Export"></a>$cfg[Export] </b>array</dt> |
<dd> |
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. |
</dd> |
|
<dt><b><a name="cfg_Import"></a>$cfg[Import] </b>array</dt> |
<dd> |
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. |
</dd> |
|
<dt><b><a name="cfg_RepeatCells"></a>$cfg[RepeatCells] </b>integer</dt> |
<dd> |
Repeat the headers every X cells, or 0 to deactivate. |
</dd> |
|
<dt><b><a name="cfg_EditInWindow"></a>$cfg[EditInWindow] </b>boolean<br /> |
<b><a name="cfg_QueryWindowWidth"></a>$cfg[QueryWindowWidth] </b>integer<br /> |
<b><a name="cfg_QueryWindowHeight"></a>$cfg[QueryWindowHeight] </b>integer<br /> |
<b><a name="cfg_QueryHistoryDB"></a>$cfg[QueryHistoryDB] </b>boolean<br /> |
<b><a name="cfg_QueryWindowDefTab"></a>$cfg[QueryWindowDefTab] </b>string<br /> |
<b><a name="cfg_QueryHistoryMax"></a>$cfg[QueryHistoryMax] </b>integer |
</dt> |
<dd> |
All those variables affect the query window feature. A <tt>SQL</tt> 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. |
<br /><br /> |
The size of this query window can be customized with |
<tt>$cfg['QueryWindowWidth']</tt> and <tt>$cfg['QueryWindowWidth']</tt> |
- both integers for the size in pixels. Note that normally, those |
parameters will be modified in <tt>layout.inc.php</tt> for the |
theme you are using. |
<br /><br /> |
If <tt>$cfg['EditInWindow']</tt> 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. |
<br /><br /> |
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. |
<br /><br /> |
If $cfg['QueryHistoryDB'] is set to <tt>TRUE</tt>, all your Queries are logged |
to a table, which has to be created by you (see <a |
href="#history">$cfg['Servers'][$i]['history']</a>). 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. |
<br /><br /> |
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. |
<br /><br /> |
If $cfg['QueryHistoryDB'] is set to <tt>TRUE</tt> you can specify the amount of |
saved history items using $cfg['QueryHistoryMax']. |
<br /><br /> |
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'. |
</dd> |
|
<dt><b><a name="cfg_BrowseMIME"></a>$cfg[BrowseMIME] </b>boolean</dt> |
<dd> |
Enable <a href="#transformations">MIME-transformations</a>. |
</dd> |
|
<dt><b><a name="cfg_MaxExactCount"></a>$cfg[MaxExactCount] </b>integer</dt> |
<dd> |
<ul> |
<li>For InnoDB tables, determines for how large tables phpMyAdmin |
should get the exact row count using <code>SELECT COUNT</code>. |
If the approximate row count as returned by |
<code>SHOW TABLE STATUS</code> is smaller than this value, |
<code>SELECT COUNT</code> will be used, otherwise the approximate |
count will be used. |
</li> |
<li>For VIEWs, since obtaining the exact count could have an |
impact on performance, this value is the maximum to be displayed. |
</li> |
</ul> |
</dd> |
|
<dt><a name="wysiwyg"></a> |
<b><a name="cfg_WYSIWYG-PDF"></a>$cfg[WYSIWYG-PDF] </b>boolean</dt> |
<dd> |
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. |
<br /> |
You have to click on the 'OK'-button below the tables to save the new |
positions. If you want to place a new element, first add it to the |
table of elements and then you can drag the new element around. |
<br /> |
By changing the paper size and the orientation you can change the size |
of the scratchboard as well. You can do so by just changing the |
dropdown field below, and the scratchboard will resize automatically, |
without interfering with the current placement of the elements. |
<br /> |
If ever an element gets out of range you can either enlarge the paper |
size or click on the 'reset' button to place all elements below each |
other. |
<br /> |
<b>NOTE:</b> 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. |
</dd> |
|
<dt><b><a name="cfg_NaturalOrder"></a>$cfg[NaturalOrder] </b>boolean</dt> |
<dd> |
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. |
</dd> |
|
<dt><b><a name="cfg_ShowHttpHostTitle"></a>$cfg[ShowHttpHostTitle] </b>boolean</dt> |
<dd> |
Shows the HTTP host name in window's title bar. |
</dd> |
|
<dt><b><a name="cfg_SetHttpHostTitle"></a>$cfg[SetHttpHostTitle] </b>string</dt> |
<dd> |
If <tt>$cfg['ShowHttpHostTitle']</tt> is <tt>TRUE</tt>, it shows the real |
HTTP host name, unless an alternate name is set here. |
</dd> |
|
<dt><b><a name="cfg_ErrorIconic"></a>$cfg[ErrorIconic] </b>boolean</dt> |
<dd> |
Uses icons for warnings, errors and informations. |
</dd> |
|
<dt><b><a name="cfg_MainPageIconic"></a>$cfg[MainPageIconic] </b>boolean</dt> |
<dd> |
Uses icons on main page in lists and menu tabs. |
</dd> |
|
<dt><b><a name="cfg_ReplaceHelpImg"></a>$cfg[ReplaceHelpImg] </b>boolean</dt> |
<dd> |
Shows a help button instead of the "Documentation" message. |
</dd> |
|
<dt><b><a name="cfg_ThemePath"></a>$cfg[ThemePath] </b>string</dt> |
<dd> |
If theme manager is active, use this as the path of the subdirectory |
containing all the themes. |
</dd> |
|
<dt><b><a name="cfg_ThemeManager"></a>$cfg[ThemeManager] </b>boolean</dt> |
<dd> |
Enables user-selectable themes. See <a href="#faqthemes">FAQ 2.7</a>. |
</dd> |
|
<dt><b><a name="cfg_ThemeDefault"></a>$cfg[ThemeDefault] </b>string</dt> |
<dd> |
The default theme (a subdirectory under <tt>cfg['ThemePath']</tt>). |
</dd> |
|
<dt><b><a name="cfg_ThemePerServer"></a>$cfg[ThemePerServer] </b>boolean</dt> |
<dd> |
Whether to allow different theme for each server. |
</dd> |
|
<dt><b><a name="cfg_DefaultQueryTable"></a>$cfg[DefaultQueryTable]</b> string<br /> |
<b><a name="cfg_DefaultQueryDatabase"></a>$cfg[DefaultQueryDatabase]</b> string |
</dt> |
<dd> |
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']. |
</dd> |
|
<dt><b><a name="cfg_SQP_fmtType"></a>$cfg[SQP]['fmtType']</b> string [<tt>html</tt>|<tt>none</tt>]</dt> |
<dd> |
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 <tt>'none'</tt>. |
</dd> |
|
<dt><b><a name="cfg_SQP_fmtInd"></a>$cfg[SQP]['fmtInd']</b> float<br /> |
<b><a name="cfg_SQP"></a>$cfg[SQP]['fmtIndUnit']</b> string [<tt>em</tt>|<tt>px</tt>|<tt>pt</tt>|<tt>ex</tt>]</dt> |
<dd> |
For the pretty-printing of SQL queries, under some cases the part of a |
query inside a bracket is indented. By changing |
<tt>$cfg['SQP']['fmtInd']</tt> you can change the amount of this indent. |
<br />Related in purpose is <tt>$cfg['SQP']['fmtIndUnit']</tt> which |
specifies the units of the indent amount that you specified. This is |
used via stylesheets. |
</dd> |
|
<dt><b><a name="cfg_SQP_fmtColor"></a>$cfg[SQP]['fmtColor']</b> array of string tuples</dt> |
<dd> |
This array is used to define the colours for each type of element of |
the pretty-printed SQL queries. The tuple format is<br /> |
<i>class</i> => [<i>HTML colour code</i> | <i>empty string</i>]<br /> |
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.<br /> |
<b>Class name key:</b> |
<ul> |
<li><b>comment</b> Applies to all comment sub-classes</li> |
<li><b>comment_mysql</b> Comments as <tt>"#...\n"</tt></li> |
<li><b>comment_ansi</b> Comments as <tt>"-- ...\n"</tt></li> |
<li><b>comment_c</b> Comments as <tt>"/*...*/"</tt></li> |
<li><b>digit</b> Applies to all digit sub-classes</li> |
<li><b>digit_hex</b> Hexadecimal numbers</li> |
<li><b>digit_integer</b> Integer numbers</li> |
<li><b>digit_float</b> Floating point numbers</li> |
<li><b>punct</b> Applies to all punctuation sub-classes</li> |
<li><b>punct_bracket_open_round</b> Opening brackets<tt>"("</tt></li> |
<li><b>punct_bracket_close_round</b> Closing brackets <tt>")"</tt></li> |
<li><b>punct_listsep</b> List item Separator <tt>","</tt></li> |
<li><b>punct_qualifier</b> Table/Column Qualifier <tt>"."</tt> </li> |
<li><b>punct_queryend</b> End of query marker <tt>";"</tt></li> |
<li><b>alpha</b> Applies to all alphabetic classes</li> |
<li><b>alpha_columnType</b> Identifiers matching a column type</li> |
<li><b>alpha_columnAttrib</b> Identifiers matching a database/table/column attribute</li> |
<li><b>alpha_functionName</b> Identifiers matching a MySQL function name</li> |
<li><b>alpha_reservedWord</b> Identifiers matching any other reserved word</li> |
<li><b>alpha_variable</b> Identifiers matching a SQL variable <tt>"@foo"</tt></li> |
<li><b>alpha_identifier</b> All other identifiers</li> |
<li><b>quote</b> Applies to all quotation mark classes</li> |
<li><b>quote_double</b> Double quotes <tt>"</tt></li> |
<li><b>quote_single</b> Single quotes <tt>'</tt></li> |
<li><b>quote_backtick</b> Backtick quotes <tt>`</tt></li> |
</ul> |
</dd> |
|
<dt><b><a name="cfg_SQLValidator"></a>$cfg[SQLValidator]['use']</b> boolean</dt> |
<dd> |
phpMyAdmin now supports use of the <a href="http://developer.mimer.com/validator/index.htm">Mimer SQL Validator</a> service, |
as originally published on |
<a href="http://developers.slashdot.org/article.pl?sid=02/02/19/1720246">Slashdot</a>. |
<br /> |
For help in setting up your system to use the service, see the |
<a href="#faqsqlvalidator">FAQ #6.14</a>. |
</dd> |
|
<dt><b><a name="cfg_SQLValidator"></a>$cfg[SQLValidator]['username']</b> string<br /> |
<b><a name="cfg_SQLValidator"></a>$cfg[SQLValidator]['password']</b> string</dt> |
<dd> |
The SOAP service allows you to login with <tt>anonymous</tt> |
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. |
</dd> |
|
<dt><b><a name="cfg_DBG_enable"></a>$cfg[DBG]['enable']</b> boolean</dt> |
<dd> |
<b>DEVELOPERS ONLY!</b><br /> |
Enable the DBG extension for debugging phpMyAdmin. Required for profiling |
the code. |
<br /> |
For help in setting up your system to this, see the |
<a href="#developersdbg">Developers</a> section. |
</dd> |
|
<dt><b><a name="cfg_DBG_profile_enable"></a>$cfg[DBG]['profile']['enable']</b> boolean</dt> |
<dd> |
<b>DEVELOPERS ONLY!</b><br /> |
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.<br /> |
You may need to increase the maximum execution time for this to |
complete successfully. |
</dd> |
|
<dt><b><a name="cfg_DBG_profile_threshold"></a>$cfg[DBG]['profile']['threshold']</b> float (units in milliseconds)</dt> |
<dd> |
<b>DEVELOPERS ONLY!</b><br /> |
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. |
</dd> |
|
<dt><b><a name="cfg_ColumnTypes"></a>$cfg[ColumnTypes] </b>array</dt> |
<dd> |
All possible types of a MySQL column. In most cases you don't need to |
edit this. |
</dd> |
|
<dt><b><a name="cfg_AttributeTypes"></a>$cfg[AttributeTypes] </b>array</dt> |
<dd> |
Possible attributes for fields. In most cases you don't need to edit |
this. |
</dd> |
|
<dt><b><a name="cfg_Functions"></a>$cfg[Functions] </b>array</dt> |
<dd> |
A list of functions MySQL supports. In most cases you don't need to |
edit this. |
</dd> |
|
<dt><b><a name="cfg_RestrictColumnTypes"></a>$cfg[RestrictColumnTypes] </b>array</dt> |
<dd> |
Mapping of column types to meta types used for preferring displayed |
functions. In most cases you don't need to edit this. |
</dd> |
|
<dt><b><a name="cfg_RestrictFunctions"></a>$cfg[RestrictFunctions] </b>array</dt> |
<dd> |
Functions preferred for column meta types as defined in |
<code>$cfg['RestrictColumnTypes']</code>. In most cases you don't need |
to edit this. |
</dd> |
|
<dt><b><a name="cfg_DefaultFunctions"></a>$cfg[DefaultFunctions] </b>array</dt> |
<dd> |
Functions selected by default when inserting/changing row, Functions |
are defined for meta types from |
<code>$cfg['RestrictColumnTypes']</code> and for |
<code>first_timestamp</code>, which is used for first timestamp column |
in table. |
</dd> |
|
<dt><b><a name="cfg_NumOperators"></a>$cfg[NumOperators] </b>array</dt> |
<dd> |
Operators available for search operations on numeric and date fields. |
</dd> |
|
<dt><b><a name="cfg_TextOperators"></a>$cfg[TextOperators] </b>array</dt> |
<dd> |
Operators available for search operations on character fields. |
Note that we put <code>LIKE</code> by default instead of |
<code>LIKE %...%</code>, to avoid unintended performance problems |
in case of huge tables. |
</dd> |
|
<dt><b><a name="cfg_EnumOperators"></a>$cfg[EnumOperators] </b>array</dt> |
<dd> |
Operators available for search operations on enum fields. |
</dd> |
|
<dt><b><a name="cfg_NullOperators"></a>$cfg[NullOperators] </b>array</dt> |
<dd> |
Additional operators available for search operations when the |
field can be null. |
</dd> |
|
</dl> |
|
<!-- TRANSFORMATIONS --> |
<a name="transformations"></a><br /> |
<h2>Transformations</h2> |
|
<p> |
<a href="#transformationsintro">Introduction</a> - |
<a href="#transformationshowto">Usage</a> - |
<a href="#transformationsfiles">File structure</a> |
</p> |
|
<a name="transformationsintro"></a><br /> |
<h3>[1. Introduction]</h3> |
|
<p>To enable transformations, you have to setup the <tt>column_info</tt> table and the proper |
directives. Please see the <a href="#config">Configuration section</a> on how to do so.</p> |
<br /> |
|
<p>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.</p><br /> |
|
<p>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.</p><br /> |
|
<p>For a general overview of all available transformations and their options, you can |
consult your |
<i><www.your-host.com>/<your-install-dir>/transformation_overview.php</i> |
installation.</p> |
|
<p><br />For a tutorial on how to effectively use transformations, see our <a href="http://www.phpmyadmin.net/home_page/docs.php">Link section</a> on the official phpMyAdmin homepage.</p> |
|
<a name="transformationshowto"></a><br /> |
<h3>[2. Usage]</h3> |
|
<p>Go to your <i>tbl_properties_structure.php</i> 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'.</p> |
|
<ul> |
<li>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.</li> |
|
<li>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.<br /> |
|
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').<br /> |
|
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.</li> |
|
<li>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.<br /> |
|
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.<br /> |
|
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'".</li> |
</ul> |
|
<a name="transformationsfiles"></a><br /> |
<h3>[3. File structure]</h3> |
|
<p>All mimetypes and their transformations are defined through single files in |
the directory 'libraries/transformations/'.</p><br /> |
|
<p>They are stored in files to ease up customization and easy adding of new |
transformations.</p><br /> |
|
<p>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.</p><br /> |
|
<p>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.</p><br /> |
|
<p>There is a basic file called '<i>global.inc.php</i>'. This function can be included by |
any other transform function and provides some basic functions.</p><br /> |
|
<p>There are 5 possible file names:</p> |
|
<ol> |
<li>A mimetype+subtype transform:<br /><br /> |
|
[mimetype]_[subtype]__[transform].inc.php<br /><br /> |
|
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.<br /><br /> |
|
The transform function will the be called 'PMA_transform_[mimetype]_[subtype]__[transform]()'.<br /><br /> |
|
<b>Example:</b><br /><br /> |
|
text_html__formatted.inc.php<br /> |
PMA_transform_text_html__formatted()</li> |
|
<li>A mimetype (w/o subtype) transform:<br /><br /> |
|
[mimetype]__[transform].inc.php<br /><br /> |
|
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.<br /><br /> |
|
The transform function will the be called 'PMA_transform_[mimetype]__[transform]()'.<br /><br /> |
|
<b>Example:</b><br /><br /> |
|
text__formatted.inc.php<br /> |
PMA_transform_text__formatted()</li> |
|
<li>A mimetype+subtype without specific transform function<br /><br /> |
|
[mimetype]_[subtype].inc.php<br /><br /> |
|
Please note that there are no '__' characters in the filename. Do not use special |
characters in the filename causing problems with the file system.<br /><br /> |
|
No transformation function is defined in the file itself.<br /><br /> |
|
<b>Example:</b><br /><br /> |
|
text_plain.inc.php<br /> |
(No function)</li> |
|
<li>A mimetype (w/o subtype) without specific transform function<br /><br /> |
|
[mimetype].inc.php<br /><br /> |
|
Please note that there are no '_' characters in the filename. Do not use special |
characters in the filename causing problems with the file system.<br /><br /> |
|
No transformation function is defined in the file itself.<br /><br /> |
|
<b>Example:</b><br /><br /> |
|
text.inc.php<br /> |
(No function)</li> |
|
<li>A global transform function with no specific mimetype<br /><br /> |
|
global__[transform].inc.php<br /><br /> |
|
The transform function will the be called 'PMA_transform_global__[transform]()'.<br /><br /> |
|
<b>Example:</b><br /><br /> |
|
global__formatted<br /> |
PMA_transform_global__formatted()</li> |
</ol> |
|
<br /> |
<p>So generally use '_' to split up mimetype and subtype, and '__' to provide a |
transform function.</p><br /> |
|
<p>All filenames containing no '__' in themselves are not shown as valid transform |
functions in the dropdown.</p><br /> |
|
<p>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.</p><br /> |
|
<p>You can use the template generator to generate new functions and entries in the |
language file.</p><br /> |
|
<p>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.</p><br /> |
|
<p>A transform function always gets passed three variables:</p> |
<ol> |
<li><b>$buffer</b> - Contains the text inside of the column. This is the text, you want to transform.</li> |
<li><b>$options</b> - Contains any user-passed options to a transform function as an array.</li> |
<li><b>$meta</b> - Contains an object with field information to your column. The data is drawn from the output of the |
<a href="http://www.php.net/mysql_fetch_field">mysql_fetch_field()</a> function. This means, all object properties described |
on the <a href="http://www.php.net/mysql_fetch_field">manual page</a> are available in this variable and can be used to |
transform a field accordingly to unsigned/zerofill/not_null/... properties.<br /> |
The $meta->mimetype variable contains the original MIME-type of the field (i.e. 'text/plain', 'image/jpeg' etc.)</li> |
</ol> |
|
<!-- FAQ --> |
<a name="faq"></a><br /> |
<h2>FAQ - Frequently Asked Questions</h2> |
|
<p> |
<a href="#faqserver">Server</a> - |
<a href="#faqconfig">Configuration</a> - |
<a href="#faqlimitations">Limitations</a> - |
<a href="#faqmultiuser">Multi-user</a> - |
<a href="#faqbrowsers">Browsers</a> - |
<a href="#faqusing">Usage tips</a> - |
<a href="#faqproject">Project</a> - |
<a href="#faqsecurity">Security</a> |
</p> |
|
<p><br /> |
Please have a look at our <a href="http://www.phpmyadmin.net/home_page/docs.php">Link section</a> on the official phpMyAdmin homepage for in-depth coverage of phpMyAdmin's features and/or interface. |
</p> |
|
<a name="faqserver"></a><br /> |
<h3>[1. Server]</h3> |
|
<a name="faq1_1"></a> |
<h4> |
[<a href="#faq1_1">1.1</a>] 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? |
</h4> |
<p> |
There are some known PHP bugs with output buffering and compression.<br /> |
Try to set the <tt>$cfg['OBGzip']</tt> directive to <tt>FALSE</tt> in your |
<i>config.inc.php</i> file and the |
<tt>zlib.output_compression</tt> directive to <tt>Off</tt> in your php |
configuration file.<br /> |
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. |
</p> |
|
<a name="faq1_2"></a> |
<h4> |
[<a href="#faq1_2">1.2</a>] My Apache server crashes when using phpMyAdmin. |
</h4> |
<p> |
You should first try the latest versions of Apache (and possibly MySQL). |
<br /> |
See also the <a href="#faq1_1">FAQ 1.1</a> entry about PHP bugs with output buffering. |
<br /> |
If your server keeps crashing, please ask for help in the various |
Apache support groups. |
</p> |
|
<a name="faq1_3"></a> |
<h4> |
[<a href="#faq1_3">1.3</a>] 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. |
</h4> |
<p> |
This is a known PHP bug (see this |
<a href="http://bugs.php.net/bug.php?id=16626">bug report</a>) 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. |
</p> |
|
<a name="faq1_4"></a> |
<h4> |
[<a href="#faq1_4">1.4</a>] Using phpMyAdmin on IIS, I'm displayed the error message: |
"The specified CGI application misbehaved by not returning a |
complete set of HTTP headers...". |
</h4> |
<p> |
You just forgot to read the <i>install.txt</i> file from the php |
distribution. Have a look at the last message in this |
<a href="http://bugs.php.net/bug.php?id=12061">bug report</a> from the |
official PHP bug database. |
</p> |
|
<a name="faq1_5"></a> |
<h4> |
[<a href="#faq1_5">1.5</a>] Using phpMyAdmin on IIS, I'm facing crashes and/or many error |
messages with the HTTP or advanced authentication mode. |
</h4> |
<p> |
This is a known problem with the PHP ISAPI filter: it's not so stable. |
Please use instead the cookie authentication mode. |
</p> |
|
<a name="faq1_6"></a> |
<h4> |
[<a href="#faq1_6">1.6</a>] I can't use phpMyAdmin on PWS: nothing is displayed!</h4> |
<p> |
This seems to be a PWS bug. Filippo Simoncini found a workaround (at this |
time there is no better fix): remove or comment the <tt>DOCTYPE</tt> |
declarations (2 lines) from the scripts <i>libraries/header.inc.php</i>, |
<i>libraries/header_printview.inc.php</i>, <i>index.php</i>, |
<i>left.php</i> and <i>libraries/common.lib.php</i>. |
</p> |
|
<a name="faq1_7"></a> |
<h4> |
[<a href="#faq1_7">1.7</a>] How can I GZip or Bzip a dump or a CSV export? It does not seem to |
work. |
</h4> |
<p> |
These features are based on the <tt>gzencode()</tt> and |
<tt>bzcompress()</tt> 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 |
(<tt>--with-zlib</tt> and <tt>--with-bz2</tt>).<br /> |
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. |
</p> |
|
<a name="faq1_8"></a> |
<h4> |
[<a href="#faq1_8">1.8</a>] I cannot insert a text file in a table, and I get an error about |
safe mode being in effect. |
</h4> |
<p> |
Your uploaded file is saved by PHP in the "upload dir", as |
defined in <i>php.ini</i> by the variable <tt>upload_tmp_dir</tt> (usually |
the system default is <i>/tmp</i>). |
<br /> |
We recommend the following setup for Apache servers running in safe mode, |
to enable uploads of files while being reasonably secure: |
</p> |
<ul> |
<li>create a separate directory for uploads: |
<tt>mkdir /tmp/php</tt></li> |
<li>give ownership to the Apache server's user.group: |
<tt>chown apache.apache /tmp/php</tt></li> |
<li>give proper permission: <tt>chmod 600 /tmp/php</tt></li> |
<li>put <tt>upload_tmp_dir = /tmp/php</tt> in <i>php.ini</i></li> |
<li>restart Apache</li> |
</ul> |
|
<a name="faq1_9"></a> |
<h4> |
[<a href="#faq1_9">1.9</a>] I'm having troubles when uploading files. In general file uploads |
don't work on my system and uploaded files have a <tt>Content-Type:</tt> |
header in the first line. |
</h4> |
<p> |
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? |
<br /> |
So the problem is that this package has a serious bug that was corrected |
ages ago in PHP (2001-01-28: see |
<a href="http://www.php.net/bugs.php?id=8966">PHP's bug tracking system</a> |
for more details). The problem is that the bugged package is still |
available though it was corrected (see |
<a href="http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=24933">RedHat's BugZilla</a> |
for more details). |
<br /> |
So please download |
<a href="http://www.redhat.com/swr/i386/php-4.0.4pl1-9.i386.html">the fixed package (4.0.4pl1-9)</a> |
and the problem should go away. |
<br /> |
And that fixes the \r\n problem with file uploads! |
</p> |
|
<a name="faq1_10"></a> |
<h4> |
[<a href="#faq1_10">1.10</a>] 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. |
</h4> |
<p> |
As suggested by "Rob M" in the phpWizard forum, add this line to |
your <i>httpd.conf</i>:<br /> |
<tt>SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown</tt><br /> |
It seems to clear up many problems between Internet Explorer and SSL. |
</p> |
|
<a name="faq1_11"></a> |
<h4> |
[<a href="#faq1_11">1.11</a>] I get an 'open_basedir restriction' while uploading a file from |
the query box. |
</h4> |
<p> |
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. |
</p> |
|
<a name="faq1_12"></a> |
<h4> |
[<a href="#faq1_12">1.12</a>] I have lost my MySQL root password, what can I do? |
</h4> |
<p> |
The MySQL manual explains how to |
<a href="http://www.mysql.com/doc/R/e/Resetting_permissions.html"> |
reset the permissions</a>. |
</p> |
|
<a name="faq1_13"></a> |
<h4> |
[<a href="#faq1_13">1.13</a>] I get an error 'No SQL query' when trying to execute a bookmark. |
</h4> |
<p> |
If PHP does not have read/write access to its <tt>upload_tmp_dir</tt>, it |
cannot access the uploaded query. |
</p> |
|
<a name="faq1_14"></a> |
<h4> |
[<a href="#faq1_14">1.14</a>] I get an error 'No SQL query' when trying to submit a query from |
the convenient text area. |
</h4> |
<p> |
Check the <tt>post_max_size</tt> directive from your PHP configuration file |
and try to increase it. |
</p> |
|
<a name="faq1_15"></a> |
<h4> |
[<a href="#faq1_15">1.15</a>] I have problems with <i>mysql.user</i> field names. |
</h4> |
<p> |
In older MySQL versions, the <tt>User</tt> and <tt>Password</tt> fields |
were named <tt>user</tt> and <tt>password</tt>. Please modify your field |
names to align with current standards. |
</p> |
|
<a name="faq1_16"></a> |
<h4> |
[<a href="#faq1_16">1.16</a>] I cannot upload big dump files (memory, http or timeout problems). |
</h4> |
<p> 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. |
</p> |
<p> |
The first things to check (or ask your host provider to check) are the |
values of <tt>upload_max_filesize</tt>, <tt>memory_limit</tt> and |
<tt>post_max_size</tt> in the <i>php.ini</i> 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. |
<br /> <br /> |
There exist several workarounds if your upload is too big or your |
hosting provider is unwilling to change the settings: |
</p> |
<ul> |
<li>Look at the <tt>$cfg['UploadDir']</tt> 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 <a href="#config">Configuration |
section</a> of this document.</li> |
<li>Using a utility (such as <a href="http://www.ozerov.de/bigdump.php"> |
BigDump</a>) to split the files before uploading. We cannot support this |
or any third party applications, but are aware of users having success |
with it.</li> |
<li>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: <tt>source <i>filename.sql</i></tt>.</li> |
</ul> |
|
<a name="faqmysqlversions"></a> |
<h4> |
[<a href="#faqmysqlversions">1.17</a>] Which MySQL versions does phpMyAdmin support? |
</h4> |
<p> |
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. |
<br /> |
phpMyAdmin may connect to your MySQL server using php's classic |
<a href="http://php.net/mysql">MySQL extension</a> as well as the |
<a href="http://php.net/mysqli">improved MySQL extension (MySQLi)</a> that |
is available in php 5.0. |
<br /> |
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. |
<br /> |
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 also FAQ 1.17a). |
If your webserver is running on a windows system, you might want to try |
MySQL's |
<a href="http://dev.mysql.com/downloads/connector/php/">Connector/PHP</a> |
instead of the MySQL / MySQLi extensions that are bundled with the official |
php Win32 builds. |
<br /> |
MySQL 5.1 is not yet supported. |
</p> |
|
<a name="faq1_17a"></a> |
<h4> |
[<a href="#faq1_17a">1.17a</a>] 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" |
</h4> |
<p> |
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. |
<br /><br /> |
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 <a href="http://www.php.net/mysqli">mysqli extension</a> |
with the proper client library to match your MySQL installation. Your |
chosen extension is specified in <tt>$cfg['Servers'][$i]['extension']</tt>. |
More information (and several workarounds) are located in the |
<a href="http://dev.mysql.com/doc/mysql/en/old-client.html">MySQL Documentation</a>. |
</p> |
|
<a name="faq1_18"></a> |
<h4> |
[<a href="#faq1_18">1.18</a>] I'm running MySQL <= 4.0.1 having |
<tt>lower_case_table_names</tt> 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. |
</h4> |
<p> |
This is a bug of MySQL <= 4.0.1. Please upgrade to at least |
MySQL 4.0.2 or turn off your <tt>lower_case_table_names</tt> |
directive. |
</p> |
|
<a name="faq1_19"></a> |
<h4> |
[<a href="#faq1_19">1.19</a>] I can't run the "display relations" feature because the |
script seems not to know the font face I'm using! |
</h4> |
<p> |
The "FPDF" library we're using for this feature requires some |
special files to use font faces.<br /> |
Please refers to the |
<a href="http://www.fpdf.org/" target="_blank">FPDF manual</a> to build |
these files. |
</p> |
|
<a name="faqmysql"></a> |
<h4> |
[<a href="#faqmysql">1.20</a>] I receive the error "cannot load MySQL extension, please |
check PHP Configuration". |
</h4> |
<p> |
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 <i>mysql.so</i> or |
<i>php_mysql.dll</i>. phpMyAdmin tried to load the extension but failed. |
<br /><br /> |
Usually, the problem is solved by installing a software package called |
"PHP-MySQL" or something similar. |
</p> |
|
<a name="faq1_21"></a> |
<h4> |
[<a href="#faq1_21">1.21</a>] I am running the CGI version of PHP under Unix, and I cannot |
login using cookie auth. |
</h4> |
<p> |
In <i>php.ini</i>, set <tt>mysql.max_links</tt> higher than 1. |
</p> |
|
<a name="faq1_22"></a> |
<h4> |
[<a href="#faq1_22">1.22</a>] I don't see the "Location of text file" field, so |
I cannot upload. |
</h4> |
<p> |
This is most likely because in <i>php.ini</i>, your <tt>file_uploads</tt> |
parameter is not set to "on". |
</p> |
|
<a name="faq1_23"></a> |
<h4> |
[<a href="#faq1_23">1.23</a>] I'm running MySQL on a Win32 machine. Each time I create a new |
table the table and field names are changed to lowercase! |
</h4> |
<p> |
This happens because the MySQL directive <tt>lower_case_table_names</tt> |
defaults to 1 (<tt>ON</tt>) in the Win32 version of MySQL. You can change |
this behavior by simply changing the directive to 0 (<tt>OFF</tt>):<br /> |
Just edit your <tt>my.ini</tt> file that should be located in your Windows |
directory and add the following line to the group [mysqld]:<br /> |
<tt>set-variable = lower_case_table_names=0</tt><br /> |
Next, save the file and restart the MySQL service. You can always check the |
value of this directive using the query<br /> |
<tt>SHOW VARIABLES LIKE 'lower_case_table_names';</tt> |
</p> |
|
<a name="faq1_24"></a> |
<h4> |
[<a href="#faq1_24">1.24</a>] Some characters are being truncated in my queries, or I get |
characters randomly added. I am running PHP 4.2.3. |
</h4> |
<p> |
This is a |
<a href="http://bugs.php.net/bug.php?id=19404">PHP 4.2.3 bug</a>. |
</p> |
|
<a name="faq1_25"></a> |
<h4> |
[<a href="#faq1_25">1.25</a>] 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. |
</h4> |
<p> |
A tip from Jose Fandos: put a comment on the following two lines |
in httpd.conf, like this:<br /> |
<tt># mod_gzip_item_include file \.php$</tt><br /> |
<tt># mod_gzip_item_include mime "application/x-httpd-php.*"</tt><br /> |
as this version of mod_gzip on Apache (Windows) has problems handling |
PHP scripts. Of course you have to restart Apache. |
</p> |
|
<a name="faq1_26"></a> |
<h4> |
[<a href="#faq1_26">1.26</a>] I just installed phpMyAdmin in my document root of IIS but |
I get the error "No input file specified" when trying to |
run phpMyAdmin. |
</h4> |
<p> |
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. |
</p> |
|
<a name="faq1_27"></a> |
<h4> |
[<a href="#faq1_27">1.27</a>] I get empty page when I want to view huge page (eg. |
db_details_structure.php with plenty of tables). |
</h4> |
<p> |
This is a <a href="http://bugs.php.net/21079">PHP bug</a> that occur when |
GZIP output buffering is enabled. If you turn off it (by <code>$cfg['OBGzip'] |
= FALSE</code> in <i>config.inc.php</i>), it should work. This bug will be |
fixed in PHP 5.0.0. |
</p> |
|
<a name="faq1_28"></a> |
<h4> |
[<a href="#faq1_28">1.28</a>] My MySQL server sometimes refuses queries and returns the message |
'Errorcode: 13'. What does this mean? |
</h4> |
<p> |
This can happen due to a MySQL bug when having database / table names with |
upper case characters although <tt>lower_case_table_names</tt> 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. |
</p> |
|
<a name="faq1_29"></a> |
<h4> |
[<a href="#faq1_29">1.29</a>] When I create a table or modify a field, I get an error |
and the fields are duplicated. |
</h4> |
<p> |
It is possible to configure Apache in such a way that PHP has problems |
interpreting .php files. |
<br /><br /> |
The problems occur when two different (and conflicting) set of directives |
are used: |
<br /><br /> |
<tt> |
SetOutputFilter PHP<br /> |
SetInputFilter PHP<br /> |
</tt> |
& |
<br /> |
<tt> |
AddType application/x-httpd-php .php |
</tt> |
<br /><br /> |
In the case we saw, one set of directives was in |
<tt>/etc/httpd/conf/httpd.conf</tt>, while |
the other set was in <tt>/etc/httpd/conf/addon-modules/php.conf</tt>.<br /> |
The recommended way is with <tt>AddType</tt>, so just comment out |
the first set of lines and restart Apache: |
<br /><br /> |
<tt><b> |
#SetOutputFilter PHP<br /> |
#SetInputFilter PHP<br /></b> |
</tt> |
</p> |
|
<a name="faq1_30"></a> |
<h4> |
[<a href="#faq1_30">1.30</a>] I get the error "left.php: Missing hash". |
</h4> |
<p> |
This problem is known to happen when the server is running Turck MMCache |
but upgrading MMCache to version 2.3.21 solves the problem. |
</p> |
|
<a name="faq1_31"></a> |
<h4> |
[<a href="#faq1_31">1.31</a>] Does phpMyAdmin support php5? |
</h4> |
<p> |
Yes. |
<br /> |
However, phpMyAdmin needs to be backwards compatible to php4. This is why |
phpMyAdmin disables the <tt>E_STRICT</tt> error_level in |
<tt>error_reporting</tt> settings. |
</p> |
|
<a name="faq1_32"></a> |
<h4> |
[<a href="#faq1_32">1.32</a>] Can I use HTTP authentication with IIS? |
</h4> |
<p> |
Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI |
mode under IIS 5.1.</p> |
<ol> |
<li>In your <tt>php.ini</tt> file, set <tt>cgi.rfc2616_headers = 0</tt></li> |
|
<li>In <tt>Web Site Properties -> File/Directory Security -> Anonymous Access</tt> dialog box, check the <tt>Anonymous access</tt> checkbox and uncheck any other checkboxes (i.e. uncheck <tt>Basic authentication</tt>, <tt>Integrated Windows authentication</tt>, and <tt>Digest</tt> if it's enabled.) Click <tt>OK</tt>. </li> |
|
<li>In <tt>Custom Errors</tt>, select the range of <tt>401;1</tt> through <tt>401;5</tt> and click the <tt>Set to Default</tt> button. </li> |
</ol> |
|
<a name="faq1_33"></a> |
<h4> |
[<a href="#faq1_33">1.33</a>] Is there a problem with the mysqli extension when running PHP 5.0.4 on 64-bit systems? |
</h4> |
<p> |
Yes. This problem affects phpMyAdmin ("Call to undefined function pma_reloadnavigation"), so upgrade your PHP to the next version. |
</p> |
|
<a name="faq1_34"></a> |
<h4> |
[<a href="#faq1_34">1.34</a>] Can I access directly to database or table pages? |
</h4> |
<p> |
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 <a |
href="http://httpd.apache.org">Apache</a> web server. First make sure, |
that you have enabled some features within global configuration. You need |
<code>Options FollowSymLinks</code> and <code>AllowOverride |
FileInfo</code> enabled for directory where phpMyAdmin is installed and |
you need mod_rewrite to be enabled. Then you just need to create following |
<code>.htaccess</code> file in root folder of phpMyAdmin installation |
(don't forget to change directory name inside of it): |
</p> |
|
<pre> |
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] |
</pre> |
|
<a name="faq1_35"></a> |
<h4> |
[<a href="#faq1_35">1.35</a>] Can I use HTTP authentication with Apache CGI? |
</h4> |
<p> |
Yes. However you need to pass authentication variable to CGI using |
following rewrite rule: |
</p> |
<pre> |
RewriteEngine On |
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L] |
</pre> |
|
<a name="faq1_36"></a> |
<h4> |
[<a href="#faq1_36">1.36</a>] I get an error "500 Internal Server |
Error". |
</h4> |
<p> |
There can be many explanations to this and a look at your server's |
error log file might give a clue. |
</p> |
|
<a name="faqconfig"></a><br /> |
<h3>[2. Configuration]</h3> |
|
<a name="faq2_1"></a> |
<h4> |
[<a href="#faq2_1">2.1</a>] The error message "Warning: Cannot add header information - |
headers already sent by ..." is displayed, what's the problem? |
</h4> |
<p> |
Edit your <i>config.inc.php</i> file and ensure there is nothing |
(I.E. no blank lines, no spaces, no characters...) neither before the |
<tt><?php</tt> tag at the beginning, neither after the <tt>?></tt> |
tag at the end. |
</p> |
|
<a name="faq2_2"></a> |
<h4> |
[<a href="#faq2_2">2.2</a>] phpMyAdmin can't connect to MySQL. What's wrong? |
</h4> |
<p> |
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. |
</p> |
|
<a name="faq2_3"></a> |
<h4> |
[<a href="#faq2_3">2.3</a>] 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? |
</h4> |
<p><br /> |
For RedHat users, Harald Legner suggests this on the mailing list: |
<br /><br /> |
On my RedHat-Box the socket of MySQL is <i>/var/lib/mysql/mysql.sock</i>. |
In your <i>php.ini</i> you will find a line |
<br /> |
<tt>mysql.default_socket = /tmp/mysql.sock</tt> |
<br /> |
change it to |
<br /> |
<tt>mysql.default_socket = /var/lib/mysql/mysql.sock</tt> |
<br /> |
Then restart apache and it will work. |
<br /><br /> |
Here is a fix suggested by Brad Ummer: |
</p> |
<ul> |
<li> |
First, you need to determine what socket is being used by MySQL. |
<br /> |
To do this, telnet to your server and go to the MySQL bin directory. In |
this directory there should be a file named <i>mysqladmin</i>. Type |
<tt>./mysqladmin variables</tt>, and this should give you a bunch of |
info about your MySQL server, including the socket |
(<i>/tmp/mysql.sock</i>, for example). |
</li> |
<li> |
Then, you need to tell PHP to use this socket.<br /> To do this in |
phpMyAdmin, you need to complete the socket information in the |
<i>config.inc.php</i>.<br /> |
For example: |
<tt>$cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';</tt><br /><br /> |
Please also make sure that the permissions of this file allow to be readable |
by your webserver (i.e. '0755'). |
</li> |
</ul> |
<p> |
Have also a look at the |
<a href="http://www.mysql.com/doc/C/a/Can_not_connect_to_server.html" target="_blank"> |
corresponding section of the MySQL documentation</a>. |
</p> |
|
<a name="faq2_4"></a> |
<h4> |
[<a href="#faq2_4">2.4</a>] Nothing is displayed by my browser when I try to run phpMyAdmin, |
what can I do? |
</h4> |
<p> |
Try to set the <tt>$cfg['OBGZip']</tt> directive to <tt>FALSE</tt> in the |
phpMyAdmin configuration file. It helps sometime.<br /> |
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. |
</p> |
|
<a name="faq2_5"></a> |
<h4> |
[<a href="#faq2_5">2.5</a>] 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 login again. What's wrong? |
</h4> |
<p> |
Check the value you set for the <tt>$cfg['PmaAbsoluteUri']</tt> directive |
in the phpMyAdmin configuration file. |
</p> |
|
<a name="faq2_6"></a> |
<h4> |
[<a href="#faq2_6">2.6</a>] 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. |
</h4> |
<p> |
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.<br /> |
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.<br /> |
If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the |
TCP connection. |
</p> |
|
<a name="faqthemes"></a> |
<h4> |
[<a href="#faqthemes">2.7</a>] Using and creating themes |
</h4> |
<p> |
Themes are configured with <tt>$cfg['ThemePath']</tt>, |
<tt>$cfg['ThemeManager']</tt> and <tt>$cfg['ThemeDefault']</tt>.<br /> |
<br /> |
Under <tt>$cfg['ThemePath']</tt>, 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.<br /> |
<br /> |
If <tt>$cfg['ThemeManager']</tt> is enabled, you can select your |
favorite theme on the main page. Your selected theme will be stored |
in a cookie.<br /> |
<br /> |
</p> |
<p> |
To create a theme: |
</p> |
<ul> |
<li>make a new subdirectory (for example "your_theme_name") under <tt>$cfg['ThemePath']</tt> (by default <tt>themes</tt>)</li> |
<li>copy the files and directories from "original" to "your_theme_name"</li> |
<li>edit the css-files in "your_theme_name/css"</li> |
<li>put your new images in "your_theme_name/img"</li> |
<li>edit <tt>layout.inc.php</tt> in "your_theme_name"</li> |
<li>edit <tt>info.inc.php</tt> in "your_theme_name" to |
contain your chosen theme name, that will be visible in user interface</li> |
<li>make a new screenshot of your theme and save it under "your_theme_name/screen.png"</li> |
</ul> |
|
<p> |
In theme directory there is file <tt>info.inc.php</tt> 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. |
</p> |
<p> |
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"). |
</p> |
|
<a name="faqmissingparameters"></a> |
<h4> |
[<a href="#faqmissingparameters">2.8</a>] I get "Missing parameters" errors, what can I do? |
</h4> |
<p> |
Here are a few points to check:</p> |
<ul> |
<li> |
In <tt>config.inc.php</tt>, try to leave the |
<tt>$cfg['PmaAbsoluteUri']</tt>directive empty. See also FAQ 4.7. |
</li> |
<li> |
Maybe you have a broken PHP installation or you need to upgrade |
your Zend Optimizer. See |
<a href="http://bugs.php.net/bug.php?id=31134"> |
http://bugs.php.net/bug.php?id=31134</a>. |
</li> |
<li> |
If you are using Hardened PHP with the ini directive <tt>varfilter.max_request_variables</tt> |
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). |
</li> |
<li> |
In the <tt>php.ini</tt> directive <tt>arg_separator.input</tt>, a value |
of ";" will cause this error. Replace it with "&;". |
</li> |
</ul> |
|
<a name="faqlimitations"></a><br /> |
<h3>[3. Known limitations]</h3> |
|
<a name="login_bug"></a> |
<h4> |
[<a href="#login_bug">3.1</a>] When using HTTP authentication, an user who logged out can not |
relogin in with the same nick. |
</h4> |
<p> |
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. |
</p> |
|
<a name="faq3_2"></a> |
<h4> |
[<a href="#faq3_2">3.2</a>] When dumping a large table in compressed mode, I get a memory |
limit error or a time limit error. |
</h4> |
<p> |
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 <tt>$cfg['CompressOnFly']</tt> (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. |
</p> |
|
<a name="faq3_3"></a> |
<h4> |
[<a href="#faq3_3">3.3</a>] With InnoDB tables, I lose foreign key relationships when I rename |
or alter a table. |
</h4> |
<p> |
This seems to be a InnoDB bug (fixed in MySQL 3.23.50?). |
</p> |
|
<a name="faq3_4"></a> |
<h4> |
[<a href="#faq3_4">3.4</a>] I am unable to import dumps I created with the mysqldump tool |
bundled with the MySQL server distribution. |
</h4> |
<p> |
The problem is that mysqldump creates invalid comments like this: |
</p> |
|
<pre> |
-- MySQL dump 8.22 |
-- |
-- Host: localhost Database: database |
--------------------------------------------------------- |
-- Server version 3.23.54 |
</pre> |
<p> |
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: |
<br /> |
<code> |
-- -------------------------------------------------------<br /> |
</code> |
or<br /> |
<code> |
#--------------------------------------------------------- |
</code> |
</p> |
|
<a name="faq3_5"></a> |
<h4> |
[<a href="#faq3_5">3.5</a>] When using nested folders ($cfg['LeftFrameTableSeparator']) there |
are some multiple hierarchies displayed in a wrong manner?! |
</h4> |
<p> |
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 |
</p> |
|
<a name="faq3_6"></a> |
<h4> |
[<a href="#faq3_6">3.6</a>] What is currently not supported in phpMyAdmin about InnoDB? |
</h4> |
<p> |
In Relation view, being able to choose a table in another database, |
or having more than one index field in the foreign key.<br /><br/> |
In Query-by-example (Query), automatic generation of the query |
LEFT JOIN from the foreign table.<br /><br/> |
In PDF schema editing, automatic layout. |
</p> |
|
<a name="faq3_7"></a> |
<h4> |
[<a href="#faq3_7">3.7</a>] 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? |
</h4> |
<p> |
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. |
<br /> |
</p> |
|
<a name="faq3_8"></a> |
<h4> |
[<a href="#faq3_8">3.8</a>] I cannot use (clickable) HTML-forms in fields where I put a <a href="#transformations">MIME-Transformation</a> onto! |
</h4> |
<p> |
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 <a href="http://www.phpmyadmin.net/home_page/docs.php">Link section</a> |
on the official phpMyAdmin-homepage. |
</p> |
|
<a name="faq3_9"></a> |
<h4> |
[<a href="#faq3_9">3.9</a>] I get error messages when using "--sql_mode=ANSI" for the MySQL server |
</h4> |
<p> |
When MySQL is running in ANSI-compatibility mode, there are some major differences in how SQL is structured (see <a href="http://dev.mysql.com/doc/mysql/en/ANSI_mode.html">http://dev.mysql.com/doc/mysql/en/ANSI_mode.html</a>). 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 <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=816858&group_id=23067&atid=377408">#816858</a> |
</p> |
|
<a name="faq3_10"></a> |
<h4> |
[<a href="#faq3_10">3.10</a>] Homonyms and no primary key: When the results of a SELECT display |
more that one column with the same value |
(for example <tt>SELECT lastname from employees where firstname like 'A%'</tt> and two "Smith" values are displayed), |
if I click Edit I cannot be sure that I am editing the intended row. |
</h4> |
<p> |
Please make sure that your table has a primary key, so that phpMyAdmin |
can use it for the Edit and Delete links. |
</p> |
|
<a name="faq3_11"></a> |
<h4> |
[<a href="#faq3_11">3.11</a>] The number of records for InnoDB tables is not correct. |
</h4> |
<p> |
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 |
<tt>$cfg['MaxExactCount']</tt> for a way to modify those results, but |
this could have a serious impact on performance. |
</p> |
|
<a name="faq3_12"></a> |
<h4> |
[<a href="#faq3_12">3.12</a>] What are the phpMyAdmin limitations for MySQL 3? |
</h4> |
<p> |
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. |
</p> |
|
<a name="faq3_13"></a> |
<h4> |
[<a href="#faq3_13">3.13</a>] I get an error when entering <tt>USE</tt> followed by a db name |
containing an hyphen. |
</h4> |
<p> |
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. |
</p> |
|
<a name="faqmultiuser"></a><br /> |
<h3>[4. ISPs, multi-user installations ]</h3> |
|
<a name="faq4_1"></a> |
<h4> |
[<a href="#faq4_1">4.1</a>] I'm an ISP. Can I setup one central copy of phpMyAdmin or do I |
need to install it for each customer. |
</h4> |
<p> |
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". |
</p> |
|
<a name="faq4_2"></a> |
<h4> |
[<a href="#faq4_2">4.2</a>] What's the preferred way of making phpMyAdmin secure against evil |
access. |
</h4> |
<p> |
This depends on your system.<br /> |
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 <i>.htaccess</i> files, for example).<br /> |
If other people have telnet access to your server, you should use |
phpMyAdmin's HTTP or cookie authentication features. |
<br /><br /> |
Suggestions: |
</p> |
<ul> |
<li> |
Your <i>config.inc.php</i> file should be <tt>chmod 660</tt>. |
</li> |
<li> |
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. |
</li> |
<li> |
You should use PHP safe mode, to protect from other users that try |
to include your <i>config.inc.php</i> in their scripts. |
</li> |
</ul> |
|
<a name="faq4_3"></a> |
<h4> |
[<a href="#faq4_3">4.3</a>] I get errors about not being able to include a file in |
<i>/lang</i> or in <i>/libraries</i>. |
</h4> |
<p> |
Check <i>php.ini</i>, or ask your sysadmin to check it. The |
<tt>include_path</tt> must contain "." somewhere in it, and |
<tt>open_basedir</tt>, if used, must contain "." and |
"./lang" to allow normal operation of phpMyAdmin. |
</p> |
|
<a name="faq4_4"></a> |
<h4> |
[<a href="#faq4_4">4.4</a>] phpMyAdmin always gives "Access denied" when using HTTP |
authentication. |
</h4> |
<p> |
This could happen for several reasons: |
</p> |
<ul> |
<li> |
<tt>$cfg['Servers'][$i]['controluser']</tt> and/or |
<tt>$cfg['Servers'][$i]['controlpass']</tt> are wrong. |
</li> |
<li> |
The username/password you specify in the login-dialog are invalid. |
</li> |
<li> |
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. |
</li> |
</ul> |
|
<a name="faq4_5"></a> |
<h4> |
[<a href="#faq4_5">4.5</a>] Is it possible to let users create their own databases? |
</h4> |
<p> |
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 <tt>SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER</tt> |
would let a user create/manage his/her database(s). |
</p> |
|
<a name="faq4_6"></a> |
<h4> |
[<a href="#faq4_6">4.6</a>] How can I use the Host-based authentication additions? |
</h4> |
<p> |
If you have existing rules from an old .htaccess file, you can take them |
and add a username between the <tt>'deny'</tt>/<tt>'allow'</tt> and |
<tt>'from'</tt> strings. Using the username wildcard of <tt>'%'</tt> would |
be a major benefit here if your installation is suited to using it. Then |
you can just add those updated lines into the |
<tt>$cfg['Servers'][$i]['AllowDeny']['rules']</tt> array. |
<br /><br /> |
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. |
<br /> |
<tt> |
//block root from logging in except from the private networks<br /> |
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';<br /> |
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(<br /> |
'deny root from all',<br /> |
'allow root from localhost',<br /> |
'allow root from 10.0.0.0/8',<br /> |
'allow root from 192.168.0.0/16',<br /> |
'allow root from 172.16.0.0/12',<br /> |
); |
</tt> |
</p> |
|
<a name="faq4_7"></a> |
<h4> |
[<a href="#faq4_7">4.7</a>] Authentication window is displayed more than once, why? |
</h4> |
<p> |
This happens if you are using a URL to start phpMyAdmin which is |
different than the one set in your <tt>$cfg['PmaAbsoluteUri']</tt>. |
For example, a missing "www", or entering with an IP address |
while a domain name is defined in the config file. |
</p> |
|
<a name="faqbrowsers"></a><br /> |
<h3>[5. Browsers or client OS]</h3> |
|
<a name="faq5_1"></a> |
<h4> |
[<a href="#faq5_1">5.1</a>] I get an out of memory error, and my controls are non-functional, |
when trying to create a table with more than 14 fields. |
</h4> |
<p> |
We could reproduce this problem only under Win98/98SE. Testing under |
WinNT4 or Win2K, we could easily create more than 60 fields. |
<br /> |
A workaround is to create a smaller number of fields, then come back to |
your table properties and add the other fields. |
</p> |
|
<a name="faq5_2"></a> |
<h4> |
[<a href="#faq5_2">5.2</a>] With Xitami 2.5b4, phpMyAdmin won't process form fields. |
</h4> |
<p> |
This is not a phpMyAdmin problem but a Xitami known bug: you'll face it |
with each script/website that use forms.<br /> |
Upgrade or downgrade your Xitami server. |
</p> |
|
<a name="faq5_3"></a> |
<h4> |
[<a href="#faq5_3">5.3</a>] I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2). |
</h4> |
<p> |
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.<br /> |
|
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.<br /> |
|
Testing needs to be done for Konqueror 2.2.2.<br /> |
</p> |
|
<a name="faq5_4"></a> |
<h4> |
[<a href="#faq5_4">5.4</a>] I can't use the cookie authentication mode because Internet |
Explorer never stores the cookies. |
</h4> |
<p> |
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! |
<br /> |
Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may |
work! |
</p> |
|
<a name="faq5_5"></a> |
<h4> |
[<a href="#faq5_5">5.5</a>] In Internet Explorer 5.0, I get JavaScript errors when browsing my |
rows. |
</h4> |
<p> |
Upgrade to at least Internet Explorer 5.5 SP2.<br /> |
</p> |
|
<a name="faq5_6"></a> |
<h4> |
[<a href="#faq5_6">5.6</a>] 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 |
</h4> |
<p> |
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. |
<br /> |
</p> |
|
<a name="faq5_7"></a> |
<h4> |
[<a href="#faq5_7">5.7</a>] I refresh (reload) my browser, and come back to the welcome |
page. |
</h4> |
<p> |
Some browsers support right-clicking into the frame you want to refresh, |
just do this in the right frame.<br /> |
</p> |
|
<a name="faq5_8"></a> |
<h4> |
[<a href="#faq5_8">5.8</a>] With Mozilla 0.9.7 I have problems sending a query modified in the |
query box. |
</h4> |
<p> |
Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future |
Mozilla versions.<br /> |
</p> |
|
<a name="faq5_9"></a> |
<h4> |
[<a href="#faq5_9">5.9</a>] 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. |
</h4> |
<p> |
This is a Mozilla bug (see bug #26882 at |
<a href="http://bugzilla.mozilla.org/" target="_blank">BugZilla</a>).<br /> |
</p> |
|
<a name="faq5_10"></a> |
<h4> |
[<a href="#faq5_10">5.10</a>] With Netscape 4.75 I get empty rows between each row of data in a |
CSV exported file. |
</h4> |
<p> |
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. |
</p> |
|
<a name="faq5_11"></a> |
<h4> |
[<a href="#faq5_11">5.11</a>] Extended-ASCII characters like German umlauts are displayed |
wrong. |
</h4> |
<p> |
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. |
</p> |
|
<a name="faq5_12"></a> |
<h4> |
[<a href="#faq5_12">5.12</a>] Apple OS X: Safari browser changes special characters to |
"?". |
</h4> |
<p> |
This issue has been reported by a OS X user, who adds that Chimera, |
Netscape and Mozilla do not have this problem. |
</p> |
|
<a name="faq5_13"></a> |
<h4> |
[<a href="#faq5_13">5.13</a>] With Internet Explorer 5.5 or 6, and HTTP authentication type, |
I cannot manage two servers: I login to the first one, then the other one, |
but if I switch back to the first, I have to login on each operation. |
</h4> |
<p> |
This is a bug in Internet Explorer, other browsers do not behave this way. |
</p> |
|
<a name="faq5_14"></a> |
<h4> |
[<a href="#faq5_14">5.14</a>] Using Opera6, I can manage to get to the authentication, but nothing |
happens after that, only a blank screen. |
</h4> |
<p> |
Having $cfg['QueryFrameJS'] set to <tt>TRUE</tt>, this leads to a bug in Opera6, because it |
is not able to interpret frameset definitions written by JavaScript. Please upgrade |
to Opera7 at least. |
</p> |
|
<a name="faq5_15"></a> |
<h4> |
[<a href="#faq5_15">5.15</a>] I have display problems with Safari. |
</h4> |
<p> |
Please upgrade to at least version 1.2.3. |
</p> |
|
<a name="faq5_16"></a> |
<h4> |
[<a href="#faq5_16">5.16</a>] With Internet Explorer, I get "Access is denied" |
Javascript errors. Or I cannot make phpMyAdmin work under Windows. |
</h4> |
<p> |
Please check the following points:</p> |
<ul> |
<li> |
Maybe you have defined your <tt>PmaAbsoluteUri</tt> setting |
in <tt>config.inc.php</tt> to an IP address and you are starting |
phpMyAdmin with a URL containing a domain name, or the reverse situation. |
</li> |
<li> |
Security settings in IE and/or Microsoft Security Center are |
too high, thus blocking scripts execution. |
</li> |
<li> |
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. |
</li> |
</ul> |
|
<a name="faq5_17"></a> |
<h4> |
[<a href="#faq5_17">5.17</a>] With Firefox, I cannot delete rows of data or drop a database. |
</h4> |
<p> Many users have confirmed that the Tabbrowser Extensions plugin they |
installed in their Firefox is causing the problem. |
</p> |
|
<a name="faqusing"></a><br /> |
<h3>[6. Using phpMyAdmin]</h3> |
|
<a name="faq6_1"></a> |
<h4> |
[<a href="#faq6_1">6.1</a>] I can't insert new rows into a table / I can't create a table |
- MySQL brings up a SQL-error. |
</h4> |
<p> |
Examine the SQL error with care. Often the problem is caused by |
specifying a wrong field-type.<br /> |
Common errors include: |
</p> |
<ul> |
<li>Using <tt>VARCHAR</tt> without a size argument</li> |
<li>Using <tt>TEXT</tt> or <tt>BLOB</tt> with a size argument</li> |
</ul> |
<p> |
Also, look at the syntax chapter in the MySQL manual to confirm that your |
syntax is correct. |
</p> |
|
<a name="faq6_2"></a> |
<h4> |
[<a href="#faq6_2">6.2</a>] When I create a table, I click the Index checkbox for 2 fields and |
phpMyAdmin generates only one index with those 2 fields. |
</h4> |
<p> |
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. |
</p> |
|
<a name="faq6_3"></a> |
<h4> |
[<a href="#faq6_3">6.3</a>] How can I insert a null value into my table? |
</h4> |
<p> |
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). |
</p> |
|
<a name="faq6_4"></a> |
<h4> |
[<a href="#faq6_4">6.4</a>] How can I backup my database or table? |
</h4> |
<p> |
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. |
<br /><br /> |
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 |
<tt>$cfg['ExecTimeLimit']</tt> configuration variable. |
<br /><br /> |
For additional help on this subject, look for the word "dump" in |
this document. |
</p> |
|
<a name="faq6_5"></a> |
<h4> |
[<a href="#faq6_5">6.5</a>] How can I restore (upload) my database or table using a dump? |
How can I run a ".sql" file? |
</h4> |
<p> |
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. |
<br /><br /> |
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. |
<br /><br /> |
For additional help on this subject, look for the word "upload" |
in this document. |
</p> |
|
<a name="faq6_6"></a> |
<h4> |
[<a href="#faq6_6">6.6</a>] How can I use the relation table in Query-by-example? |
</h4> |
<p> |
Here is an example with the tables persons, towns and countries, all |
located in the database mydb. If you don't have a <tt>pma_relation</tt> |
table, create it as explained in the configuration section. Then create the |
example tables: |
<br /><br /> |
<tt> |
CREATE TABLE REL_countries (<br /> |
country_code char(1) NOT NULL default '',<br /> |
description varchar(10) NOT NULL default '',<br /> |
PRIMARY KEY (country_code)<br /> |
) TYPE=MyISAM;<br /> |
<br /> |
INSERT INTO REL_countries VALUES ('C', 'Canada');<br /> |
<br /> |
CREATE TABLE REL_persons (<br /> |
id tinyint(4) NOT NULL auto_increment,<br /> |
person_name varchar(32) NOT NULL default '',<br /> |
town_code varchar(5) default '0',<br /> |
country_code char(1) NOT NULL default '',<br /> |
PRIMARY KEY (id)<br /> |
) TYPE=MyISAM;<br /> |
<br /> |
INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');<br /> |
INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');<br /> |
<br /> |
CREATE TABLE REL_towns (<br /> |
town_code varchar(5) NOT NULL default '0',<br /> |
description varchar(30) NOT NULL default '',<br /> |
PRIMARY KEY (town_code)<br /> |
) TYPE=MyISAM;<br /> |
<br /> |
INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');<br /> |
INSERT INTO REL_towns VALUES ('M', 'Montréal');<br /> |
<br /> |
</tt> |
To setup appropriate links and display information: |
</p> |
<ul> |
<li>on table "REL_persons" click Structure, then Relation view</li> |
<li>in Links, for "town_code" choose "REL_towns->code"</li> |
<li>in Links, for "country_code" choose "REL_countries->country_code"</li> |
<li>on table "REL_towns" click Structure, then Relation view</li> |
<li>in "Choose field to display", choose "description"</li> |
<li>repeat the two previous steps for table "REL_countries"</li> |
</ul> |
|
<p> |
Then test like this: |
</p> |
<ul> |
<li>Click on your db name in the left frame</li> |
<li>Choose "Query"</li> |
<li>Use tables: persons, towns, countries</li> |
<li>Click "Update query"</li> |
<li>In the fields row, choose persons.person_name and click the |
"Show" tickbox </li> |
<li>Do the same for towns.description and countries.descriptions in the |
other 2 columns</li> |
<li>Click "Update query" and you will see in the query box that |
the correct joins have been generated</li> |
<li>Click "Submit query"</li> |
</ul> |
|
|
<a name="faqdisplay"></a> |
<h4> |
[<a href="#faqdisplay">6.7</a>] How can I use the "display field" feature? |
</h4> |
<p> |
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. |
<br /><br /> |
See also <a href="#faq6_21">FAQ 6.21</a> for an additional feature that "display field" |
enables: drop-down list of possible values. |
</p> |
|
<a name="faqpdf"></a> |
<h4> |
[<a href="#faqpdf">6.8</a>] How can I produce a PDF schema of my database? |
</h4> |
<p> |
First the configuration variables "relation", |
"table_coords" and "pdf_pages" have to be filled in. |
<br /><br /> |
Then you need to think about your schema layout. Which tables will go on |
which pages? |
</p> |
<ul> |
<li>Select your database in the left frame.</li> |
<li>Choose "Operations" in the navigation bar at the top.</li> |
<li>Choose "Edit PDF Pages" near the bottom of the page.</li> |
<li>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.</li> |
<li>Select the name of the new page (making sure the Edit radio button |
is selected) and click Go.</li> |
<li>Select a table from the list, enter its coordinates and click Save.<br /> |
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 <a href="#wysiwyg">graphical editor</a> to |
position the element correctly.</li> |
<li>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.</li> |
<li>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.</li> |
</ul> |
|
<a name="faq6_9"></a> |
<h4> |
[<a href="#faq6_9">6.9</a>] phpMyAdmin is changing the type of one of my columns! |
</h4> |
<p> |
No, it's MySQL that is doing |
<a href="http://www.mysql.com/doc/S/i/Silent_column_changes.html">silent column type changing</a>. |
</p> |
|
<a name="underscore"></a> |
<h4> |
[<a href="#underscore">6.10</a>] When creating a privilege, what happens with underscores in |
the database name? |
</h4> |
<p> |
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...<br /><br /> |
If you put a backslash before the underscore, it means that the database |
name will have a real underscore. |
</p> |
|
<a name="faq6_11"></a> |
<h4> |
[<a href="#faq6_11">6.11</a>] What is the curious symbol ø in the statistics pages? |
</h4> |
<p> |
It means "average". |
</p> |
|
<a name="faqexport"></a> |
<h4> |
[<a href="#faqexport">6.12</a>] I want to understand some Export options. |
</h4> |
<p><b>Structure:</b></p> |
<ul> |
<li>"Add DROP TABLE" will add a line telling MySQL to |
<a href="http://dev.mysql.com/doc/mysql/en/drop-table.html">drop the table</a>, |
if it already exists during the import. It does NOT drop the table after |
your export, it only affects the import file.</li> |
<li>"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.</li> |
<li>"Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value |
(if any) will be included in backup.</li> |
<li>"Enclose table and field names with backquotes" ensures that |
field and table names formed with special characters are protected.</li> |
<li>"Add into comments" includes column comments, relations, and MIME |
types set in the pmadb in the dump as SQL comments (<i>/* xxx */</i>).</li> |
</ul> |
<p><b>Data:</b></p> |
<ul> |
<li>"Complete inserts" adds the column names on every INSERT command, |
for better documentation (but resulting file is bigger).</li> |
<li>"Extended inserts" provides a shorter dump file by using only |
once the INSERT verb and the table name.</li> |
<li>"Delayed inserts" are best explained in the |
<a href="http://dev.mysql.com/doc/mysql/en/insert-delayed.html">MySQL manual</a>.</li> |
<li>"Ignore inserts" treats errors as a warning instead. Again, more info |
is provided in the <a href="http://dev.mysql.com/doc/mysql/en/insert.html">MySQL |
manual</a>, but basically with this selected, invalid values are adjusted and inserted |
rather than causing the entire statement to fail.</li> |
</ul> |
|
<a name="faq6_13"></a> |
<h4> |
[<a href="#faq6_13">6.13</a>] I would like to create a database with a dot in its name. |
</h4> |
<p> |
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.<br /> |
</p> |
|
<a name="faqsqlvalidator"></a> |
<h4> |
[<a href="#faqsqlvalidator">6.14</a>] How do I set up the SQL Validator? |
</h4> |
<p> |
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 |
<tt>"pear install Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME |
SOAP"</tt> to get the necessary PEAR modules for usage. |
<br /> |
On a more recent pear version, I had problems with the state of Net_DIME |
being beta, so this single command |
<tt>"pear -d preferred_state=beta install -a SOAP"</tt> installed |
all the needed modules. |
<br /> |
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. |
</p> |
|
<a name="faq6_15"></a> |
<h4> |
[<a href="#faq6_15">6.15</a>] 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". |
</h4> |
<p> |
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. |
<br /> |
</p> |
|
<a name="faq6_16"></a> |
<h4> |
[<a href="#faq6_16">6.16</a>] How can I simply move in page with plenty editing fields? |
</h4> |
<p> |
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. |
<a href="#CtrlArrowsMoving">$cfg['CtrlArrowsMoving']</a>). You can also have |
a look at the directive |
<a href="#DefaultPropDisplay">$cfg['DefaultPropDisplay']</a> ('vertical') and |
see if this eases up editing for you. |
<br /> |
</p> |
|
<a name="faq6_17"></a> |
<h4> |
[<a href="#faq6_17">6.17</a>] Transformations: I can't enter my own mimetype! WTF is this feature |
then useful for? |
</h4> |
<p> |
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. |
<br /> |
Plus, you have a whole overview of available mimetypes. Who knows all those mimetypes by heart so |
he/she can enter it at will? |
<br /> |
</p> |
|
<a name="faqbookmark"></a> |
<h4> |
[<a href="#faqbookmark">6.18</a>] Bookmarks: Where can I store bookmarks? Why can't I see any bookmarks below the query box? |
What is this variable for? |
</h4> |
<p> |
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.<br /> |
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.<br /> |
<br /> |
Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks. Just use the string |
<b>/*[VARIABLE]*/</b> anywhere in your query. Everything which is put into the <i>value</i> 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.<br /> |
Also remember, that everything else inside the <b>/*[VARIABLE]*/</b> string for your query will remain |
the way it is, but will be stripped of the /**/ chars. So you can use:<br /><br /> |
<code>/*, [VARIABLE] AS myname */</code><br /><br /> |
which will be expanded to<br /><br /> |
<code>, VARIABLE as myname</code><br /><br /> |
in your query, where VARIABLE is the string you entered in the input box. If an empty string is |
provided, no replacements are made.<br /> |
<br /> |
A more complex example. Say you have stored this query:<br /><br /> |
<code>SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */</code><br /><br /> |
Say, you now enter "phpMyAdmin" as the variable for the stored query, the full query will |
be:<br /><br /> |
<code>SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'</code> |
<br /> |
<br /> |
You can use multiple occurrences of <b>/*[VARIABLE]*/</b> in a single query.<br /> |
<b>NOTE THE ABSENCE OF SPACES</b> 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.<br /> |
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.<br /> |
</p> |
|
<a name="faq6_19"></a> |
<h4> |
[<a href="#faq6_19">6.19</a>] How can I create simple LaTeX document to include exported table? |
</h4> |
<p> |
You can simply include table in your LaTeX documents, minimal sample |
document should look like following one (assuming you have table |
exported in file <code>table.tex</code>): |
</p> |
|
<pre> |
\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 |
</pre> |
|
<a name="faq6_20"></a> |
<h4> |
[<a href="#faq6_20">6.20</a>] In MySQL 4, I see a lot of databases which are not mine, and cannot |
access them. |
</h4> |
<p> |
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 <a href="http://bugs.mysql.com/179">bug report</a>. <br /><br /> |
So if your users do not need those privileges, you can remove them and their |
databases list will shorten. |
</p> |
|
<a name="faq6_21"></a> |
<h4> |
[<a href="#faq6_21">6.21</a>] In edit/insert mode, how can I see a list of possible values for |
a field, based on some foreign table? |
</h4> |
<p> |
You have to setup appropriate links between the tables, and also |
setup the "display field" in the foreign table. See <a href="#faq6_6">FAQ |
6.6</a> 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. |
<br /><br /> |
For 200 values or more, a distinct window will appear, to browse foreign |
key values and choose one. |
|
</p> |
|
<a name="faq6_22"></a> |
<h4> |
[<a href="#faq6_22">6.22</a>] Bookmarks: Can I execute a default bookmark automatically |
when entering Browse mode for a table? |
</h4> |
<p> |
Yes. If a bookmark has the same label as a table name, it will be |
executed. |
</p> |
|
<a name="faq6_23"></a> |
<h4> |
[<a href="#faq6_23">6.23</a>] Export: I heard phpMyAdmin can export Microsoft Excel files, how |
can I enable that? |
</h4> |
<p> |
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 <b>experimental</b> MS Excel exporter. <b>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.</b>. For enabling this you need to set $cfg['TempDir'] to |
place where web server user can write (for example <tt>'./tmp'</tt>) and |
install PEAR module Spreadsheet_Excel_Writer into php include path. The |
installation can be done by following command: |
</p> |
<pre> |
pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer |
</pre> |
<p> |
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. |
</p> |
<p> |
If you are running in PHP safe mode, you will have to set |
in <tt>php.ini</tt> the <tt>safe_mode_include_dir</tt> to the directory |
where your PEAR modules are located, for example: |
</p> |
<pre> |
safe_mode_include_dir = /usr/local/lib/php |
</pre> |
<p> |
To create the temporary directory on a UNIX-based system, you can do: |
</p> |
<pre> |
cd phpMyAdmin |
mkdir tmp |
chmod o+rwx tmp |
</pre> |
|
<a name="faq6_24"></a> |
<h4> |
[<a href="#faq6_24">6.24</a>] Now that phpMyAdmin supports native MySQL 4.1.x column comments, |
what happens to my column comments stored in pmadb? |
</h4> |
<p> Automatic migration of a table's pmadb-style column comments to the native |
ones is done whenever you enter Structure page for this table. |
</p> |
<a name="faqproject"></a><br /> |
<h3>[7. phpMyAdmin project]</h3> |
|
<a name="faq7_1"></a> |
<h4> |
[<a href="#faq7_1">7.1</a>] I have found a bug. How do I inform developers? |
</h4> |
<p> |
Our Bug Tracker is located at |
<a href="http://sourceforge.net/projects/phpmyadmin/">http://sourceforge.net/projects/phpmyadmin/</a> |
under the Bugs section. |
<br /><br /> |
But please first discuss your bug with other users: |
<br /> |
<a href="http://sourceforge.net/projects/phpmyadmin/"> |
http://sourceforge.net/projects/phpmyadmin/</a> (and choose Forums) |
</p> |
|
<a name="faq7_2"></a> |
<h4> |
[<a href="#faq7_2">7.2</a>] I want to translate the messages to a new language or upgrade an |
existing language, where do I start? |
</h4> |
<p> |
Always use the current CVS version of your language file. |
For a new language, start from <i>english-iso-8859-1.inc.php</i>. If you |
don't know how to get the CVS version, please ask one of the developers. |
<br /> |
Please note that we try not to use HTML entities like &eacute; 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. |
<br /> |
You can then put your translations, as a zip file to avoid losing special |
characters, on the sourceforge.net translation tracker. |
<br /> |
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. |
<br /> |
</p> |
|
<a name="faq7_3"></a> |
<h4> |
[<a href="#faq7_3">7.3</a>] I would like to help out with the development of phpMyAdmin. How |
should I proceed? |
</h4> |
<p> |
The following method is preferred for new developers: |
</p> |
<ol> |
<li> |
fetch the current CVS tree over anonymous CVS:<br /> |
<tt>cvs -d:pserver:anonymous@phpmyadmin.cvs.sourceforge.net:/cvsroot/phpmyadmin login</tt><br /> |
[Password: simply press the Enter key]<br /> |
<tt>cvs -z3 -d:pserver:anonymous@phpmyadmin.cvs.sourceforge.net:/cvsroot/phpmyadmin checkout phpMyAdmin</tt><br /> |
[This will create a new sub-directory named phpMyAdmin] |
</li> |
<li> |
add your stuff |
</li> |
<li> |
put the modified files (tar'ed and gzip'ed) inside the patch tracker of |
the |
<a href="http://sourceforge.net/projects/phpmyadmin/" target="_blank">phpMyAdmin SourceForge account</a>. |
</li> |
</ol> |
<p> |
Write access to the CVS tree is granted only to experienced developers who |
have already contributed something useful to phpMyAdmin.<br /> |
Also, have a look at the |
<a href="#developers">Developers section</a>. |
</p> |
<a name="faqsecurity"></a><br /> |
<h3>[8. Security ]</h3> |
|
<a name="faq8_1"></a> |
<h4> |
[<a href="#faq8_1">8.1</a>] Security alert, dated 2003-06-18. |
</h4> |
<p> |
Last update of this FAQ: 2003-07-22. |
<br /><br /> |
The phpMyAdmin development team received notice of this security alert: |
<a href="http://www.securityfocus.com/archive/1/325641" target="_blank">http://www.securityfocus.com/archive/1/325641.</a> |
<br /><br /> |
|
The team regrets that the author did not communicate with us before |
sending this alert. However, here is our current reply to the points mentioned: |
</p> |
|
<ul> |
<li>"Directory transversal attack" |
<br /><br /> |
|
This problem had been fixed in version 2.5.0, even if the author reports |
the 2.5.2 development version as vulnerable, which we could not reproduce. |
<br /><br /> |
</li> |
<li>"Remote local file retrieving" |
<br /><br /> |
This is a misleading title, as the author tells in his text: |
"Note that you can't request files ( only dirs )". |
<br /><br /> |
</li> |
|
<li>"Remote internal directory listing" |
<br /><br /> |
It was possible to retrieve the list of phpMyAdmin's directory (which we |
doubt can cause any damage), but we fixed this in the |
2.5.2 version. |
<br /><br /> |
</li> |
|
<li>"XSS and Path disclosures" |
<br /><br /> |
Most of the XSS problems have been fixed in version 2.5.0. The rest |
have been fixed in the 2.5.2 version. |
<br /><br /> |
We believe that the Path disclosures problems have also been fixed |
in version 2.5.2. |
<br /><br /> |
</li> |
<li>"Information encoding weakness" |
<br /><br /> |
We believe that an exploit for this weakness would be difficult |
to achieve. However version 2.5.2 now encrypts the password |
with the well-known blowfish algorithm. |
<br /><br /> |
</li> |
</ul> |
|
<a name="faq8_2"></a> |
<h4> |
[<a href="#faq8_2">8.2</a>] Security alert, dated 2004-06-29. |
</h4> |
<p> |
Last update of this FAQ: 2004-06-30. |
<br /><br /> |
The phpMyAdmin development team received notice of this security alert: |
<a href="http://securityfocus.com/archive/1/367486/2004-06-26/2004-07-02/0" target="_blank">http://securityfocus.com/archive/1/367486/2004-06-26/2004-07-02/0</a> |
<br /><br /> |
We would like to put emphasis on the disappointment we feel when a |
bugreporter does not contact the authors of a software first, before |
posting any exploits. The common way to report this, is to give the |
developers a reasonable amount of time to respond to an exploit before |
it is made public. |
<br /><br /> |
We acknowledge that phpMyAdmin versions 2.5.1 to 2.5.7 are vulnerable |
to this problem, if each of the following conditions are met: |
</p> |
<ul> |
<li> |
The Web server hosting phpMyAdmin is not running in safe mode. |
</li> |
<li> |
In config.inc.php, <tt>$cfg['LeftFrameLight']</tt> is set to FALSE |
(the default value of this parameter is <tt>TRUE</tt>). |
</li> |
<li> |
There is no firewall blocking requests from the Web server to the |
attacking host. |
</li> |
</ul> |
<p> |
<br /> |
Version 2.5.7-pl1 was released with a fix for this vulnerability. |
</p> |
|
<a name="faq8_3"></a> |
<h4> |
[<a href="#faq8_3">8.3</a>] About new security alerts |
</h4> |
<p> |
Please refer to |
<a href="http://www.phpmyadmin.net">http://www.phpmyadmin.net</a> |
for the complete list of security alerts. |
</p> |
|
<!-- DEVELOPERS --> |
<a name="developers"></a><br /> |
<h2>Developers Information</h2> |
|
<p> |
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. |
</p> |
|
<p> |
If you're planning to contribute source, please read the following |
information: |
</p> |
<ul> |
<li> |
All files include <i>libraries/header.inc.php</i> (layout),. |
<i>libraries/common.lib.php</i> (common functions) and |
<i>config.inc.php</i>. |
<br /> |
Only configuration data should go in <i>config.inc.php</i>. Please keep |
it free from other code. |
<br /> |
Commonly used functions should be added to |
<i>libraries/common.lib.php</i> and more specific ones may be added |
within a library stored into the <i>libraries</i> sub-directory. |
</li> |
<li> |
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.<br /> |
As far as possible, we want the scripts to be XHTML1.0 and CSS2 |
compliant on one hand, they fit the |
<a href="http://pear.php.net/" target="_blank">PEAR coding standards</a> |
on the other hand. Please pay attention to this. |
</li> |
<li> |
Please try to keep up the file-naming conventions. Table-related stuff |
goes to <i>tbl_*.php</i>, db-related code to <i>db_*.php</i>, |
server-related tools to <i>server_*.php</i> and so on. |
</li> |
<li> |
Please don't use verbose strings in your code, instead add the string |
(at least) to <i>english-iso-8859-1.inc.php</i> and print() it out. |
</li> |
<li> |
If you want to be really helpful, write an entry for the ChangeLog. |
</li> |
<li id="developersdbg"> |
The DBG extension (<a href="http://dd.cron.ru/dbg/" target="_blank">PHP |
Debugger DBG</a>) is now supported by phpMyAdmin for developers to |
better debug and profile their code.<br /> |
Please see the <tt>$cfg['DBG']*</tt> configuration options for more |
information.<br /> |
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. |
</li> |
|
</ul> |
|
<!-- CREDITS --> |
<a name="credits"></a><br /> |
<h2>Credits</h2> |
|
<pre> |
|
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://sourceforge.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 <a href="http://www.fpdf.org/">http://www.fpdf.org/</a>) and Steven Wittens |
for the "UFPDF" library (see <a href="http://www.acko.net/node/56">http://www.acko.net/node/56</a>). |
|
- 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 |
|
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. |
</pre> |
|
|
|
<a name="bottom"></a><br /> |
<p align="right"> |
<a href="http://validator.w3.org/check/referer" target="w3c"> |
<img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" border="0" height="31" width="88" /></a> |
|
<a href="http://jigsaw.w3.org/css-validator/" target="w3c"> |
<img src="http://www.w3.org/Icons/valid-css" alt="Valid CSS!" border="0" width="88" height="31" /></a> |
</p> |
|
</body> |
</html> |