Rev Author Line No. Line
250 kaklik 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
3 <!-- $Id: Documentation.html,v 2.205.2.21.2.5 2006/08/22 17:00:29 lem9 Exp $ -->
4 <!--
5 vim: expandtab ts=4 sw=4 sts=4 tw=78
6 -->
7  
8 <head>
9 <link rel="icon" href="./favicon.ico" type="image/x-icon" />
10 <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
12 <title>phpMyAdmin 2.8.2.4 - Documentation</title>
13 <link rel="stylesheet" type="text/css" href="docs.css" />
14 </head>
15  
16 <body>
17 <a name="top"></a><br />
18  
19 <div class="header">
20 <hr noshade="noshade" width="100%" />
21 <a href="#top">Top</a> &nbsp;-&nbsp;
22 <a href="#require">Requirements</a> &nbsp;-&nbsp;
23 <a href="#intro">Introduction</a> &nbsp;-&nbsp;
24 <a href="#setup">Installation</a> &nbsp;-&nbsp;
25 <a href="#setup_script">Setup script</a> &nbsp;-&nbsp;
26 <a href="#config">Configuration</a>
27 <br />
28 <a href="#transformations">Transformations</a> &nbsp;-&nbsp;
29 <a href="#faq">FAQ</a> &nbsp;-&nbsp;
30 <a href="#developers">Developers</a> &nbsp;-&nbsp;
31 <a href="#credits">Credits</a> &nbsp;-&nbsp;
32 <a href="translators.html">Translators</a>
33 <hr noshade="noshade" width="100%" />
34 </div>
35  
36 <h1>phpMyAdmin 2.8.2.4 Documentation</h1>
37  
38  
39 <!-- TOP MENU -->
40 <ul>
41 <li>
42 <a href="http://www.phpmyadmin.net/">
43 SourceForge phpMyAdmin project page&nbsp;&nbsp;&nbsp;[ http://www.phpmyadmin.net/ ]
44 </a>
45 </li>
46 <li>
47 Local documents:
48 <ul>
49 <li>Version history: <a href="changelog.php">ChangeLog</a></li>
50 <li>General notes: <a href="readme.php">README</a></li>
51 <li>License: <a href="license.php">LICENSE</a></li>
52 </ul>
53 </li>
54 <li>
55 Documentation version:
56 <i>$Id: Documentation.html,v 2.205.2.21.2.5 2006/08/22 17:00:29 lem9 Exp $</i>
57 </li>
58 </ul>
59  
60  
61 <!-- REQUIREMENTS -->
62 <a name="require"></a><br />
63 <h2>Requirements</h2>
64  
65 <ul>
66 <li>
67 <b>PHP</b>
68 <ul>
69 <li>You need PHP 4.1.0 or newer, with <tt>session</tt> support (<a href="#faq1_31">*</a>)</li>
70 <li>You need GD2 support in PHP to display inline
71 thumbnails of JPEGs (&quot;image/jpeg: inline&quot;) with their
72 original aspect ratio</li>
73 <li>You need PHP 4.3.0 or newer to use the
74 &quot;text/plain: external&quot; MIME-based transformation</li>
75 </ul>
76 </li>
77 <li>
78 <b>MySQL</b> 3.23.32 or newer (<a href="#faqmysqlversions">details</a>);
79 </li>
80 <li>
81 Not really a requirement but a <b>strong suggestion</b>:
82 if you are using
83 the &quot;cookie&quot; authentication method, having the <tt>mcrypt</tt>
84 PHP extension on your web server accelerates not only the login
85 phase but every other action that you do in phpMyAdmin.
86 </li>
87 <li>
88 <b>Web browser</b> with cookies enabled.
89 </li>
90 </ul>
91  
92  
93 <!-- INTRODUCTION -->
94 <a name="intro"></a><br />
95 <h2>Introduction</h2>
96  
97 <p>
98 phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as
99 a single database. To accomplish the latter you'll need a properly set up
100 MySQL user who can read/write only the desired database. It's up to you to
101 look up the appropriate part in the MySQL manual.<br />
102 Currently phpMyAdmin can:
103 </p>
104  
105 <ul>
106 <li>easily browse through databases and tables</li>
107 <li>create, copy, rename, alter and drop databases</li>
108 <li>create, copy, rename, alter and drop tables</li>
109 <li>do table maintenance</li>
110 <li>add, edit and drop fields</li>
111 <li>execute any SQL-statement, even multiple queries</li>
112 <li>create, alter and drop indexes</li>
113 <li>load text files into tables</li>
114 <li>create (*) and read dumps of tables or databases</li>
115 <li>export (*) data to SQL, CSV, XML, Word, Excel, PDF and Latex formats</li>
116 <li>administer multiple servers</li>
117 <li>manage MySQL users and privileges</li>
118 <li>check server settings and runtime information with configuration
119 hints</li>
120 <li>check referential integrity in MyISAM tables</li>
121 <li>using Query-by-example (QBE), create complex queries automatically connecting required tables</li>
122 <li>create PDF graphics of your Database layout</li>
123 <li>search globally in a database or a subset of it</li>
124 <li>transform stored data into any format using a set of predefined functions,
125 like displaying BLOB-data as image or download-link</li>
126 <li>support InnoDB tables and foreign keys <a href="#faq3_6">(see FAQ 3.6)</a></li>
127 <li>support mysqli, the improved MySQL extension <a href="#faqmysqlversions">(see FAQ 1.17)</a></li>
128 <li>
129 communicate in
130 <a href="./translators.html">50 different languages</a>
131 </li>
132 </ul>
133  
134 <h4>A word about users:</h4>
135 <p> Many people have difficulty
136 understanding the concept of user management with regards to phpMyAdmin. When
137 a user logs in to phpMyAdmin, that username and password are passed directly
138 to MySQL. phpMyAdmin does no account management on its own (other than
139 allowing one to manipulate the MySQL user account information); all users
140 must be valid MySQL users.</p>
141  
142 <p class="footnote" id="footnote_1">
143 <sup>1)</sup> phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats)
144 dumps and <abbr title="comma seperated values">CSV</abbr> exports if you use
145 PHP with Zlib support (<tt>--with-zlib</tt>) and/or Bzip2 support
146 (<tt>--with-bz2</tt>). Proper support may also need changes in
147 <tt>php.ini</tt>.</p>
148  
149  
150 <!-- INSTALLATION -->
151 <a name="setup"></a><br />
152 <h2>Installation</h2>
153  
154 <p>
155 <span class="important">NOTE: phpMyAdmin does not apply any special security
156 methods to the MySQL database server. It is still the system administrator's job to
157 grant permissions on the MySQL databases properly. </span>phpMyAdmin's
158 &quot;Privileges&quot; page can be used for this.
159 </p>
160  
161 <p>
162 <span class="important">Warning for Mac users:</span>if you are on a MacOS
163 version before OS X, StuffIt unstuffs with Mac formats.<br />
164 So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts
165 before uploading them to your server, as PHP seems not to like Mac-style
166 end of lines character (&quot;<tt>\r</tt>&quot;).
167 </p>
168  
169 <h3>Quick Install</h3>
170 <ol>
171 <li> Untar or unzip the distribution (be sure to unzip the subdirectories):
172 <tt>tar -xzvf phpMyAdmin_x.x.x.tar.gz</tt> in your webserver's
173 document root. If you don't have direct access to your document root,
174 put the files in a directory on your local machine, and, after step 3,
175 transfer the directory on your web server using, for example, ftp.</li>
176 <li> Ensure that all the scripts have the appropriate owner (if PHP is
177 running in safe mode, having some scripts with an owner different
178 from the owner of other scripts will be a
179 problem). See <a href="#faq4_2">FAQ 4.2</a> and
180 <a href="#faq1_26">FAQ 1.26</a> for suggestions.</li>
181  
182 <li>Now you must configure your installation. There are two methods that
183 can be used. Traditionally, users have hand-edited a copy of
184 config.inc.php, but now a wizard-style setup script is provided for
185 those who prefer a graphical installation. Creating a config.inc.php is
186 still a quick way to get started and needed for some advanced features.
187 <ul><li>To manually create the file, simply use your text editor to
188 create the file <tt>config.inc.php</tt> in the main (top-level)
189 phpMyAdmin directory (the one that contains <tt>index.php</tt>).
190 phpMyAdmin first loads <tt>libraries/config.default.php</tt>
191 and then overrides those values with anything found in
192 <tt>config.inc.php</tt>. If the default value is okay for a particular
193 setting, there is no need to include it in <tt>config.inc.php</tt>.
194 You'll need a few directives to get going, a simple configuration
195 may look like this:
196 <pre>
197 &lt;?php
198 $cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
199  
200 $i=0;
201 $i++;
202 $cfg['Servers'][$i]['auth_type'] = 'cookie';
203 ?&gt;
204 </pre>
205 Or, if you prefer to not be prompted every time you log in:
206 <pre>
207 &lt;?php
208  
209 $i=0;
210 $i++;
211 $cfg['Servers'][$i]['user'] = 'root';
212 $cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password
213 ?&gt;
214 </pre>
215 For a full explanation of possible configuration values, see the
216 <a href="#config">Configuration Section</a> of this document.</li>
217 <li id="setup_script">Instead of manually editing
218 <tt>config.inc.php</tt>, you can use the
219 <a href="scripts/setup.php">Setup Script</a>. First you must
220 manually create a folder <tt>config</tt> in the phpMyAdmin
221 directory. This is a security measure. On a Linux/Unix system you
222 can use the following commands:
223 <pre>
224 cd phpMyAdmin
225 mkdir config # create directory for saving
226 chmod o+rw config # give it world writable permissions
227 </pre>
228 And to edit an existing configuration, copy it over first:
229 <pre>
230 cp config.inc.php config/ # copy current configuration for editing
231 chmod o+w config/config.inc.php # give it world writable permissions
232 </pre>
233 On other platforms, simply create the folder and ensure that your
234 web server has read and write access to it. <a href="#faq1_26">FAQ
235 1.26</a> can help with this.<br /><br />
236  
237 Next, open <tt><a href="scripts/setup.php">scripts/setup.php</a>
238 </tt>in your browser. Note that <strong>changes are not saved to
239 disk until explicitly choose <tt>Save</tt></strong> from the
240 <i>Configuration</i> area of the screen. Normally the script saves
241 the new config.inc.php to the <tt>config/</tt> directory, but if
242 the webserver does not have the proper permissions you may see the
243 error "Cannot load or save configuration." Ensure that the <tt>
244 config/</tt> directory exists and has the proper permissions -
245 or use the <tt>Download</tt> link to save the config file locally
246 and upload (via FTP or some similar means) to the proper location.<br /><br />
247  
248 Once the file has been saved, it must be moved out of the <tt>
249 config/</tt> directory and the permissions must be reset, again
250 as a security measure:
251 <pre>
252 mv config/config.inc.php . # move file to current directory
253 chmod o-rw config.inc.php # remove world read and write permissions
254 </pre>
255 Now the file is ready to be used. You can choose to review or edit
256 the file with your favorite editor, if you prefer to set some
257 advanced options which the setup script does not provide.</li></ul></li>
258 <li> If you are using the
259 <tt>auth_type</tt> configuration directive, it is suggested that you protect the phpMyAdmin
260 installation directory, for example with HTTP&#8211;AUTH in a
261 <i>.htaccess</i> file. See the <a href="#faqmultiuser">
262 multi&#8211;user sub&#8211;section</a> of this FAQ for additional
263 information, especially <a href="#faq4_4">FAQ 4.4</a>.</li>
264 <li>Open the <a href="index.php">main phpMyAdmin directory</a>
265 in your browser. phpMyAdmin should now display a welcome screen
266 and your databases, or a login dialog if using
267 <abbr title="HyperText Transfer Protocol">HTTP</abbr> or cookie
268 authentication mode.</li>
269 <li> You should deny access to the <tt>libraries</tt> subfolder in your webserver
270 configuration. For Apache you can use supplied .htaccess file in that
271 folder, for other webservers, you should configure this yourself.
272 Such configuration prevents from possible path exposure and cross
273 side scripting vulnerabilities that might happen to be found in that
274 code.</li>
275 </ol>
276  
277 <a name="linked-tables"></a>
278 <h3>Linked-tables infrastructure</h3>
279 <p>
280 For a whole set of new features (bookmarks, comments, SQL-history,
281 PDF-generation, field contents transformation, etc.)
282 you need to create a set of special tables. Those tables can be located
283 in your own database, or in a central database for a multi-user
284 installation (this database would then be accessed by the controluser,
285 so no other user should have rights to it).
286 <br /> <br />
287 Please look at your scripts/
288 directory, where you should find a file called <i>create_tables.sql</i>.
289 (If you are using a Windows server, pay special attention to <a href="#faq1_23">FAQ 1.23</a>).
290 <br /> <br />
291 If your MySQL server's version is 4.1.2 or later, please use
292 <i>create_tables_mysql_4_1_2+.sql</i> instead, for a new installation.
293 <br /> <br />
294 If you already had this infrastructure and upgraded to MySQL 4.1.2
295 or later, please use <i>upgrade_tables_mysql_4_1_2+.sql</i>.
296 <br /> <br />
297 You can use your phpMyAdmin to create the tables for you. Please be
298 aware that you may need special (administrator) privileges to create
299 the database and tables, and that the script may need some tuning,
300 depending on the database name.
301 <br /> <br />
302 After having imported the <i>create_tables.sql</i> file,
303 you should specify the table names in your <i>config.inc.php</i> file. The directives
304 used for that can be found in the <a href="#config">Configuration section</a>.
305 You will also need to have a controluser with the proper rights to
306 those tables (see section <i>Using authentication modes</i> below).
307 </p>
308  
309 <h3>Upgrading from an older version</h3>
310  
311 <p> Simply copy <i>./config.inc.php</i> from your previous installation into the newly
312 unpacked one. Configuration files from very old versions (2.3.0 or older) may
313 require some tweaking as some options have been changed or removed.</p>
314  
315 <p> You should <strong>not</strong> copy <tt>libraries/config.default.php</tt>
316 over <tt>config.inc.php</tt> because the default configuration file
317 is version-specific.</p>
318  
319 <p> If you have upgraded your MySQL server from a version older than 4.1.2 to
320 version 4.1.2 or newer and if you use the pmadb/linked table infrastructure,
321 you should run the SQL script found in
322 <tt>scripts/upgrade_tables_mysql_4_1_2+.sql</tt>.</p>
323  
324 <h3>Using authentication modes</h3>
325 <ul>
326 <li>HTTP and cookie authentication modes are recommended in a <b>multi-user
327 environment</b> where you want to give users access to their own
328 database and don't want them to play around with others.
329 <br />
330 Nevertheless be aware that MS Internet Explorer seems to be really
331 buggy about cookies, at least till version 6. And PHP 4.1.1 is also a
332 bit buggy in this area!<br />
333 Even in a <b>single-user environment</b>, you might prefer to use
334 HTTP or cookie mode so that your user/password pair are not in clear
335 in the configuration file.<br /><br /></li>
336 <li>HTTP and cookie authentication modes are more secure: the MySQL
337 login information does not need to be set in the phpMyAdmin
338 configuration file
339 (except possibly for the <a href="#controluser">controluser</a>).
340 <br />
341 However, keep in mind that the password travels in plain text, unless
342 you are using the HTTPS protocol.
343 <br />
344 In cookie mode, the password is stored, encrypted with the blowfish
345 algorithm, in a temporary cookie.
346 <br /><br /></li>
347  
348 <li>
349 Note: starting with phpMyAdmin 2.6.1, this section is only applicable if
350 your MySQL server is older than 4.1.2,
351 or is running with <tt>--skip-show-database</tt>.
352 <br /><br />
353 For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has
354 <b>only</b> the <tt>SELECT</tt> privilege on the <i>mysql.user (all
355 columns except &quot;Password&quot;)</i>, <i>mysql.db (all
356 columns)</i>, <i>mysql.host (all columns)</i> and
357 <i>mysql.tables_priv (all columns except
358 &quot;Grantor&quot; &amp; &quot;Timestamp&quot;) </i>tables.<br /> You
359 must specify the details for the <a href="#controluser">controluser</a>
360 in the <i>config.inc.php</i> file under the
361 <tt>$cfg['Servers'][$i]['controluser']</tt>&amp;
362 <tt>$cfg['Servers'][$i]['controlpass']</tt> settings.<br /> The
363 following example assumes you want to use <tt>pma</tt> as the
364 controluser and <tt>pmapass</tt> as the controlpass, but <b>this is
365 only an example: use something else in your file!</b><br /> Of course
366 you have to replace <tt>localhost</tt> by the webserver's host if it's
367 not the same as the MySQL server's one.
368 <pre>
369  
370 GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
371 GRANT SELECT (
372 Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
373 Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
374 File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
375 Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
376 Execute_priv, Repl_slave_priv, Repl_client_priv
377 ) ON mysql.user TO 'pma'@'localhost';
378 GRANT SELECT ON mysql.db TO 'pma'@'localhost';
379 GRANT SELECT ON mysql.host TO 'pma'@'localhost';
380 GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
381 ON mysql.tables_priv TO 'pma'@'localhost';
382 </pre>
383 If you are using an old MySQL version (below 4.0.2), please replace
384 the first GRANT SELECT query by this one:
385 <pre>
386  
387 GRANT SELECT (
388 Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
389 Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
390 File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
391 ) ON mysql.user TO 'pma'@'localhost';
392 </pre>
393 ... and if you want to use the many new relation and bookmark
394 features:
395 <pre>
396  
397 GRANT SELECT, INSERT, UPDATE, DELETE ON &lt;pma_db&gt;.* TO 'pma'@'localhost';
398 </pre>
399 (this of course requires that your <a href="#linked-tables">linked-tables infrastructure</a> be set up).
400 <br />
401 Of course, the above queries only work if your MySQL version supports
402 the GRANT command. This is the case since 3.22.11.
403 </li>
404 <li>
405 Then each of the <i>true</i> users should be granted a set of
406 privileges on a set of particular databases. Normally you shouldn't
407 give global privileges to an ordinary user, unless you understand
408 the impact of those privileges (for example, you are creating
409 a superuser).<br />
410 For example, to grant the user <i>real_user</i> with
411 all privileges on the database <i>user_base</i>:<br />
412 &nbsp;&nbsp;&nbsp;<tt>GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';</tt>
413 <br />
414 What the user may now do is controlled entirely by the MySQL user
415 management system.<br />
416 With HTTP or cookie authentication mode, you don't need to fill the
417 user/password fields inside the <tt>$cfg['Servers']</tt> array.<br />
418 </li>
419 </ul>
420  
421 <h4>'http' authentication mode</h4>
422 <ul>
423 <li>Was called 'advanced' in versions before 2.2.3.</li>
424 <li>Introduced in 1.3.0, it uses Basic HTTP authentication method and
425 allows you to login as any valid MySQL user.</li>
426 <li>Is supported with most PHP configurations. For IIS (ISAPI) support
427 using CGI PHP see <a href="#faq1_32">FAQ 1.32</a>, for using with
428 Apache CGI see <a href="#faq1_35">FAQ 1.35</a>.</li>
429 <li>See also <a href="#faq4_4">FAQ 4.4</a> about not using the
430 <i>.htaccess</i> mechanism along with 'http' authentication mode.</li>
431 </ul>
432  
433 <h4>'cookie' authentication mode</h4>
434 <ul>
435 <li>You can use this method as a replacement for the HTTP
436 authentication (for example, if you're running IIS).
437 </li>
438 <li>Obviously, the user must enable cookies in the browser.</li>
439 <li>With this mode, the user can truly logout of phpMyAdmin and login back
440 with the same username.</li>
441 <li>If you want to login to arbitrary server see
442 <tt><a href="#AllowArbitraryServer">$cfg['AllowArbitraryServer']</a></tt> directive.</li>
443 <li>As mentioned in the <a href="#require">requirements</a> section, having the
444 <tt>mcrypt</tt> extension will speed up access considerably, but is not required.</li>
445 </ul>
446 <h4>'config' authentication mode</h4>
447 <ul>
448 <li>This mode is the less secure one because it requires you to fill the
449 <tt><a href="#servers_user">$cfg['Servers'][$i]['user']</a></tt> and
450 <tt><a href="#servers_user">$cfg['Servers'][$i]['password']</a></tt> fields
451 (and as a result, anyone who can read your config.inc.php can discover your
452 username and password).<br />
453 But you don't need to setup a &quot;controluser&quot; here:
454 using the <tt><a href="#servers_only_db">$cfg['Servers'][$i]['only_db']</a></tt> might be enough.</li>
455 <li>In the <a href="#faqmultiuser">ISP FAQ</a> section, there is an entry explaining how to protect
456 your configuration file.<br /></li>
457 <li>For additional security in this mode, you may wish to consider the
458 Host authentication <tt><a href="#servers_allowdeny_order">$cfg['Servers'][$i]['AllowDeny']['order']</a></tt>
459 and <tt><a href="#servers_allowdeny_rules">$cfg['Servers'][$i]['AllowDeny']['rules']</a></tt> configuration
460 directives.</li>
461 </ul>
462  
463  
464 <!-- CONFIGURATION -->
465 <a name="config"></a><br />
466 <h2>Configuration</h2>
467  
468 <p>
469 <span class="important">Warning for Mac users:</span> PHP does not seem to like
470 Mac end of lines character (&quot;<tt>\r</tt>&quot;). So ensure you choose
471 the option that allows to use the *nix end of line character
472 (&quot;<tt>\n</tt>&quot;) in your text editor before saving a script
473 you have modified.
474 </p>
475  
476 <p>
477 <span class="important">Configuration note:</span>
478 Almost all configurable data is placed in <tt>config.inc.php</tt>. If this file
479 does not exist, please refer to the <a href="#setup">Quick install</a>
480 section to create one. This file only needs to contain the parameters you want to
481 change from their corresponding default value in
482 <tt>libraries/config.default.php</tt>.
483 <br /><br />
484 The parameters which relate to design (like colors)
485 are placed in <tt>themes/themename/layout.inc.php</tt>. You
486 might also want to create <i>config.footer.inc.php</i> and
487 <i>config.header.inc.php</i> files to add your site specific code to be
488 included on start and end of each page.
489 </p>
490  
491 <dl>
492 <dt><b><a name="cfg_PmaAbsoluteUri"></a>$cfg[PmaAbsoluteUri]</b> string</dt>
493 <dd>
494 Sets here the complete URL (with full path) to your phpMyAdmin
495 installation's directory.
496 E.g. <tt>http://www.your_web.net/path_to_your_phpMyAdmin_directory/</tt>.
497 Note also that the URL on some web servers are case&#8211;sensitive.
498 Don&#8217;t forget the trailing slash at the end.
499 <br /><br />
500 Starting with version 2.3.0, it is advisable to try leaving this
501 blank. In most cases phpMyAdmin automatically detects the proper
502 setting. Users of port forwarding will need to set PmaAbsoluteUri (<a
503 href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1340187&amp;group_id=23067&amp;atid=377409">more info</a>).
504 A good test is to browse a table, edit a row and save it. There should
505 be an error message if phpMyAdmin is having trouble auto&#8211;detecting the correct value. If you get an error that this must be set or if
506 the autodetect code fails to detect your path, please post a bug
507 report on our bug tracker so we can improve the code.
508 </dd>
509  
510 <dt><b><a name="cfg_PmaNoRelation_DisableWarning"></a>$cfg[PmaNoRelation_DisableWarning]</b> boolean</dt>
511 <dd>
512 Starting with version 2.3.0 phpMyAdmin offers a lot of features to work
513 with master / foreign - tables (see
514 <a href="#pmadb">$cfg['Servers'][$i]['pmadb']</a>).
515 <br />
516 If you tried to set this up and it does not work for you, have a look on
517 the &quot;Structure&quot; page of one database where you would like to
518 use it. You will find a link that will analyze why those features have
519 been disabled.<br />
520 If you do not want to use those features set this variable to
521 <tt>TRUE</tt> to stop this message from appearing.
522 </dd>
523  
524 <dt><b><a name="cfg_blowfish_secret"></a>$cfg[blowfish_secret]</b> string</dt>
525 <dd>
526 Starting with version 2.5.2, the 'cookie' auth_type uses blowfish
527 algorithm to encrypt the password.
528 <br />
529 If you are using the 'cookie' auth_type, enter here a random
530 passphrase of your choice. It will be used internally by the blowfish
531 algorithm: you won't be prompted for this passphrase. The maximum
532 number of characters for this parameter seems to be 46.
533 </dd>
534  
535 <dt><b><a name="cfg_Servers"></a>$cfg[Servers]</b> array</dt>
536 <dd>
537 Since version 1.4.2, phpMyAdmin supports the administration of multiple
538 MySQL servers.
539 Therefore, a $cfg['Servers']-array has been added which contains
540 the login information for the different servers. The first
541 <tt>$cfg['Servers'][$i]['host']</tt> contains the hostname of the first
542 server, the second <tt>$cfg['Servers'][$i]['host']</tt> the hostname of
543 the second server, etc.
544 In <tt>libraries/config.default.php</tt>, there is only one section
545 for server definition, however you can put as many as you need in
546 <tt>config.inc.php</tt>, copy that block or needed parts (you don't
547 have to define all settings, just those you need to change).
548 </dd>
549  
550 <dt><b><a name="cfg_Servers_host"></a>$cfg['Servers'][$i]['host']</b> string</dt>
551 <dd>
552 The hostname or IP address of your $i-th MySQL-server. E.g. localhost.
553 </dd>
554  
555 <dt><b><a name="cfg_Servers_port"></a>$cfg['Servers'][$i]['port']</b> string</dt>
556 <dd>
557 The port-number of your $i-th MySQL-server. Default is 3306 (leave
558 blank). If you use &quot;localhost&quot; as the hostname, MySQL
559 ignores this port number and connects with the socket, so if you want
560 to connect to a port different from the default port, use
561 &quot;127.0.0.1&quot; or the real hostname in
562 $cfg['Servers'][$i]['host'].
563 </dd>
564  
565 <dt><b><a name="cfg_Servers_socket"></a>$cfg['Servers'][$i]['socket']</b> string</dt>
566 <dd>
567 The path to the socket to use. Leave blank for default.
568 </dd>
569  
570 <dt><b><a name="cfg_Servers_connect_type"></a>$cfg['Servers'][$i]['connect_type']</b> string</dt>
571 <dd>
572 What type connection to use with the MySQL server. Your options are
573 <tt>'socket'</tt> &amp; <tt>'tcp'</tt>. It defaults to 'tcp' as that
574 is nearly guaranteed to be available on all MySQL servers, while
575 sockets are not supported on some platforms.
576 <br /><br />
577 To use the socket mode, your MySQL server must be on the same machine
578 as the Web server.
579 </dd>
580  
581 <dt><b><a name="cfg_Servers_extension"></a>$cfg['Servers'][$i]['extension']</b> string</dt>
582 <dd>
583 What php MySQL extension to use for the connection. Valid options are:
584 <br /><br />
585 <tt><i>mysql</i></tt>&nbsp;:&nbsp;
586 The classic MySQL extension. This is the recommended and default
587 method at this time.
588 <br /><br />
589 <tt><i>mysqli</i></tt>&nbsp;:&nbsp;
590 The improved MySQL extension. This extension became available
591 with php 5.0.0 and is the recommended way to connect to a server
592 running MySQL 4.1.x.
593 </dd>
594  
595 <dt><b><a name="cfg_Servers_compress"></a>$cfg['Servers'][$i]['compress']</b> boolean</dt>
596 <dd>
597 Whether to use a compressed protocol for the MySQL server connection
598 or not (experimental).<br />
599 This feature requires PHP&nbsp;&gt;=&nbsp;4.3.0.
600 </dd>
601  
602 <dt>
603 <a name="controluser"></a>
604 <b><a name="cfg_Servers_controluser"></a>$cfg['Servers'][$i]['controluser']</b> string<br />
605 <b><a name="cfg_Servers_controlpass"></a>$cfg['Servers'][$i]['controlpass']</b> string
606 </dt>
607 <dd>
608 This special account is used for 2 distinct purposes: to make possible
609 all relational features
610 (see <a href="#pmadb">$cfg['Servers'][$i]['pmadb']</a>) and, for a
611 MySQL server older than 4.1.2 or running with
612 <tt>--skip-show-database</tt>, to enable a multi-user installation
613 (http or cookie authentication mode).
614 <br /><br />
615 When using HTTP or cookie authentication modes (or 'config'
616 authentication mode since phpMyAdmin 2.2.1), you need to supply the
617 details of a MySQL account that has <tt>SELECT</tt> privilege on the
618 <i>mysql.user (all columns except &quot;Password&quot;)</i>,
619 <i>mysql.db (all columns)</i> &amp; <i>mysql.tables_priv (all columns
620 except &quot;Grantor&quot; &amp; &quot;Timestamp&quot;) </i>tables.
621 This account is used to check what databases the user will see at
622 login.
623 <br />
624 Please see the <a href="#setup">install section</a> on
625 &quot;Using authentication modes&quot; for more information.
626 <br /><br />
627 In phpMyAdmin versions before 2.2.5, those were called
628 &quot;stduser/stdpass&quot;.
629 </dd>
630  
631 <dt><b><a name="cfg_Servers_auth_type"></a>$cfg['Servers'][$i]['auth_type']</b> string
632 <tt>['http'|'cookie'|'config']</tt></dt>
633 <dd>
634 Whether config or cookie or http authentication should be used for this
635 server.
636 <ul>
637 <li>
638 'config' authentication
639 (<tt>$auth_type&nbsp;=&nbsp;'config'</tt>) is the plain old
640 way: username and password are stored in
641 <i>config.inc.php</i>.
642 </li>
643 <li>
644 'cookie' authentication mode
645 (<tt>$auth_type&nbsp;=&nbsp;'cookie'</tt>) as introduced in
646 2.2.3 allows you to log in as any valid MySQL user with the
647 help of cookies. Username and password are stored in
648 cookies during the session and password is deleted when it
649 ends. This can also allow you to login in arbitrary server if
650 <tt><a href="#AllowArbitraryServer">$cfg['AllowArbitraryServer']</a></tt> enabled.
651 </li>
652 <li>
653 'http' authentication (was called 'advanced' in older versions)
654 (<tt>$auth_type&nbsp;=&nbsp;'http'</tt>) as introduced in 1.3.0
655 allows you to log in as any valid MySQL user via HTTP-Auth.
656 </li>
657 </ul><br />
658  
659 Please see the <a href="#setup">install section</a> on &quot;Using authentication modes&quot;
660 for more information.
661 </dd>
662 <dt>
663 <a name="servers_user"></a>
664 <b><a name="cfg_Servers_user"></a>$cfg['Servers'][$i]['user']</b> string<br />
665 <b><a name="cfg_Servers_password"></a>$cfg['Servers'][$i]['password']</b> string
666 </dt>
667 <dd>
668 When using auth_type = 'config', this is the user/password-pair
669 which phpMyAdmin will use to connect to the
670 MySQL server. This user/password pair is not needed when HTTP or
671 cookie authentication is used and should be empty.
672 </dd>
673 <dt>
674 <a name="servers_only_db"></a>
675 <b><a name="cfg_Servers_only_db"></a>$cfg['Servers'][$i]['only_db']</b> string or array
676 </dt>
677 <dd>
678 If set to a (an array of) database name(s), only this (these) database(s)
679 will be shown to the user. Since phpMyAdmin 2.2.1, this/these
680 database(s) name(s) may contain MySQL wildcards characters
681 (&quot;_&quot; and &quot;%&quot;): if you want to use literal instances
682 of these characters, escape them (I.E. use <tt>'my\_db'</tt> and not
683 <tt>'my_db'</tt>).<br />
684 This setting is an efficient way to lower the server load since the
685 latter does not need to send MySQL requests to build the available
686 database list. But <span class="important">it does not replace the
687 privileges rules of the MySQL database server</span>. If set, it just
688 means only these databases will be displayed but
689 <span class="important">not that all other databases can't be used.</span>
690 <br /><br />
691 An example of using more that one database:
692 <tt>$cfg['Servers'][$i]['only_db'] = array('db1', 'db2'); </tt>
693 <br /><br />
694 As of phpMyAdmin 2.5.5 the order inside the array is used for sorting the
695 databases in the left frame, so that you can individually arrange your databases.<br />
696 If you want to have certain databases at the top, but don't care about the others, you do not
697 need to specify all other databases. Use:
698 <tt>$cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*');</tt>
699 instead to tell phpMyAdmin that it should display db3 and db4 on top, and the rest in alphabetic
700 order.
701 </dd>
702  
703 <dt>
704 <b><a name="cfg_Servers_hide_db"></a>$cfg['Servers'][$i]['hide_db']</b> string
705 </dt>
706 <dd>
707 Regular expression for hiding some databases. This only hides them
708 from listing, but user is still able to access them.
709 </dd>
710  
711 <dt><b><a name="cfg_Servers_verbose"></a>$cfg['Servers'][$i]['verbose']</b> string</dt>
712 <dd>
713 Only useful when using phpMyAdmin with multiple server entries. If set,
714 this string will be displayed instead of the hostname in the pull-down
715 menu on the main page. This can be useful if you want to show only
716 certain databases on your system, for example.
717 </dd>
718  
719 <dt>
720 <a name="pmadb"></a>
721 <b><a name="cfg_Servers_pmadb"></a>$cfg['Servers'][$i]['pmadb']</b> string
722 </dt>
723 <dd>
724 The name of the database containing the linked-tables infrastructure.
725 <br /><br />
726 See the <a href="#linked-tables">Linked-tables infrastructure</a>
727 section in this document to see the benefits of this infrastructure,
728 and for a quick way of creating this database and the needed tables.
729 <br /><br />
730 If you are the only user of this phpMyAdmin installation, you can
731 use your current database to store those special tables; in this
732 case, just put your current database name in
733 <tt>$cfg['Servers'][$i]['pmadb']</tt>. For a multi-user installation,
734 set this parameter to the name of your central database containing
735 the linked-tables infrastructure.
736 </dd>
737  
738 <dt>
739 <a name="bookmark"></a>
740 <b><a name="cfg_Servers_bookmarktable"></a>$cfg['Servers'][$i]['bookmarktable']</b> string
741 </dt>
742 <dd>
743 Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can be
744 useful for queries you often run.<br /><br />
745  
746 To allow the usage of this functionality:
747 <ul>
748 <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
749 <li>enter the table name in
750 <tt>$cfg['Servers'][$i]['bookmarktable']</tt></li>
751 </ul>
752 </dd>
753  
754 <dt>
755 <a name="relation"></a>
756 <b><a name="cfg_Servers_relation"></a>$cfg['Servers'][$i]['relation']</b> string
757 </dt>
758 <dd>
759 Since release 2.2.4 you can describe, in a special 'relation' table,
760 which field is a key in another table (a foreign key). phpMyAdmin
761 currently uses this to
762 <ul>
763 <li>
764 make clickable, when you browse the master table, the data values
765 that point to the foreign table;
766 </li>
767 <li>
768 display in an optional tool-tip the &quot;display field&quot;
769 when browsing the master table, if you move the mouse to a column
770 containing a foreign key (use also the 'table_info' table);<br />
771 (see <a href="#faqdisplay">FAQ 6.7</a>)
772 </li>
773 <li>
774 in edit/insert mode, display a drop-down list of possible
775 foreign keys (key value and &quot;display field&quot; are
776 shown)<br />
777 (see <a href="#faq6_21">FAQ 6.21</a>)
778 </li>
779 <li>
780 display links on the table properties page, to check referential
781 integrity (display missing foreign keys) for each described key;
782 </li>
783 <li>
784 in query-by-example, create automatic joins (see <a href="#faq6_6">FAQ 6.6</a>)
785 </li>
786 <li>
787 enable you to get a PDF schema of your database (also uses the
788 table_coords table).
789 </li>
790 </ul>
791  
792 The keys can be numeric or character.
793 <br /><br />
794  
795 To allow the usage of this functionality:
796 <ul>
797 <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
798 <li>
799 put the relation table name in
800 <tt>$cfg['Servers'][$i]['relation']</tt>
801 </li>
802 <li>
803 now as normal user open phpMyAdmin and for each one of your
804 tables where you want to use this feature, click
805 &quot;Structure/Relation view/&quot; and choose foreign fields.
806 </li>
807 </ul>
808 Please note that in the current version, <tt>master_db</tt>
809 must be the same as <tt>foreign_db</tt>. Those fields have been put in
810 future development of the cross-db relations.
811 </dd>
812  
813 <dt>
814 <a name="table_info"></a>
815 <b><a name="cfg_Servers_table_info"></a>$cfg['Servers'][$i]['table_info']</b> string
816 </dt>
817 <dd>
818 Since release 2.3.0 you can describe, in a special 'table_info'
819 table, which field is to be displayed as a tool-tip when moving the
820 cursor over the corresponding key.
821 <br />
822 This configuration variable will hold the name of this special
823 table.
824 To allow the usage of this functionality:
825 <ul>
826 <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
827 <li>
828 put the table name in
829 <tt>$cfg['Servers'][$i]['table_info']</tt>
830 </li>
831 <li>
832 then for each table where you want to use this feature,
833 click &quot;Structure/Relation view/Choose field to display&quot;
834 to choose the field.
835 </li>
836 </ul>
837 Usage tip: <a href="#faqdisplay">Display field</a>.
838 </dd>
839 <dt>
840 <a name="table_coords"></a>
841 <b><a name="cfg_Servers_table_coords"></a>$cfg['Servers'][$i]['table_coords']</b> string<br />
842 <b><a name="cfg_Servers_pdf_pages"></a>$cfg['Servers'][$i]['pdf_pages']</b> string
843 </dt>
844 <dd>
845 Since release 2.3.0 you can have phpMyAdmin create PDF pages showing
846 the relations between your tables. To do this it needs two tables
847 &quot;pdf_pages&quot; (storing information about the available PDF
848 pages) and &quot;table_coords&quot; (storing coordinates where each
849 table will be placed on a PDF schema output).
850 <br /><br />
851 You must be using the &quot;relation&quot; feature.
852 <br /><br />
853 To allow the usage of this functionality:
854 <ul>
855 <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
856 <li>
857 put the correct table names in
858 <tt>$cfg['Servers'][$i]['table_coords']</tt> and
859 <tt>$cfg['Servers'][$i]['pdf_pages']</tt>
860 </li>
861 </ul>
862 Usage tips: <a href="#faqpdf">PDF output</a>.
863 </dd>
864  
865 <dt>
866 <a name="col_com"></a>
867 <b><a name="cfg_Servers_column_info"></a>$cfg['Servers'][$i]['column_info']</b> string
868 </dt>
869 <dd>
870 <!-- This part requires a content update! -->
871 Since release 2.3.0 you can store comments to describe each column
872 for each table. These will then be shown on the &quot;printview&quot;.
873 <br /><br />
874 Starting with release 2.5.0, comments are consequently used on the table property
875 pages and table browse view, showing up as tool-tips above the column name (properties page)
876 or embedded within the header of table in browse view. They can also be shown
877 in a table dump. Please see the relevant configuration directives later on.
878 <br /><br />
879 Also new in release 2.5.0 is a MIME-transformation system which is also based on
880 the following table structure. See <a href="#transformations">Transformations</a>
881 for further information. To use the MIME-transformation system, your column_info
882 table has to have the three new fields 'mimetype', 'transformation', 'transformation_options'.
883 <br /><br />
884 To allow the usage of this functionality:
885 <ul>
886 <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
887 <li>
888 put the table name in
889 <tt>$cfg['Servers'][$i]['column_info']</tt>
890 </li>
891 <li>
892 to update your PRE-2.5.0 Column_comments Table use this:<br />
893 <tt>
894 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER TABLE `pma_column_comments` <br />
895 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD `mimetype` VARCHAR( 255 ) NOT NULL ,<br />
896 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD `transformation` VARCHAR( 255 ) NOT NULL ,<br />
897 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD `transformation_options` VARCHAR( 255 ) NOT NULL ;<br />
898 </tt>
899 and remember that the Variable in <i>config.inc.php</i> has been renamed
900 from <br /><tt>$cfg['Servers'][$i]['column_comments']</tt> to <tt>$cfg['Servers'][$i]['column_info']</tt>
901 </li>
902 </ul>
903 </dd>
904  
905 <dt>
906 <a name="history"></a>
907 <b><a name="cfg_Servers_history"></a>$cfg['Servers'][$i]['history']</b> string
908 </dt>
909 <dd>
910 Since release 2.5.0 you can store your SQL history, which means all queries you
911 entered manually into the phpMyAdmin interface. If you don't want to use a table-
912 based history, you can use the JavaScript-based history. Using that, all your
913 history items are deleted when closing the window.<br /><br />
914  
915 Using <b><a name="cfg_QueryHistoryMax"></a>$cfg[QueryHistoryMax]</b> you can specify an amount of history items
916 you want to have on hold. On every login, this list gets cut to the maximum amount.
917 <br /><br />
918  
919 The query history is only available if JavaScript is enabled in your
920 browser.
921 <br /><br />
922  
923 To allow the usage of this functionality:
924 <ul>
925 <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
926 <li>
927 put the table name in
928 <tt>$cfg['Servers'][$i]['history']</tt>
929 </li>
930 </ul>
931 </dd>
932  
933 <dt>
934 <b><a name="cfg_Servers_verbose_check"></a>$cfg['Servers'][$i]['verbose_check']</b> boolean
935 </dt>
936 <dd>
937 Because release 2.5.0 introduced the new MIME-transformation support, the
938 column_info table got enhanced with three new fields. If the above variable is
939 set to <tt>TRUE</tt> (default) phpMyAdmin will check if you have the latest table structure
940 available. If not, it will emit a warning to the superuser.<br /><br />
941  
942 You can disable this checking behavior by setting the variable to false, which
943 should offer a performance increase.<br /><br />
944  
945 Recommended to set to FALSE, when you are sure, your table structure is up to date.
946 </dd>
947 <dt>
948 <b><a name="cfg_Servers_AllowRoot"></a>$cfg['Servers'][$i]['AllowRoot']</b> boolean
949 </dt>
950 <dd>
951 Whether to allow root access, This is just simplification of rules below.
952 </dd>
953 <dt>
954 <a name="servers_allowdeny_order"></a>
955 <b><a name="cfg_Servers_AllowDeny_order"></a>$cfg['Servers'][$i]['AllowDeny']['order']</b> string
956 </dt>
957 <dd>
958 If your rule order is empty, then IP authentication is disabled.
959 <br /><br />
960 If your rule order is set to <tt>'deny,allow'</tt> then the system
961 applies all deny rules followed by allow rules.
962 Access is allowed by default. Any client which does not match a Deny
963 command or does match an Allow command will be allowed access to the
964 server.
965 <br /><br />
966 If your rule order is set to <tt>'allow,deny'</tt> then the system
967 applies all allow rules followed by deny rules. Access is denied by
968 default. Any client which does not match an Allow directive or does
969 match a Deny directive will be denied access to the server.
970 <br /><br />
971 If your rule order is set to 'explicit', the authentication is
972 performed in a similar fashion to rule order 'deny,allow', with the
973 added restriction that your host/username combination <b>must</b> be
974 listed in the <i>allow</i> rules, and not listed in the <i>deny</i>
975 rules. This is the <b>most</b> secure means of using Allow/Deny rules,
976 and was available in Apache by specifying allow and deny rules without
977 setting any order.
978 </dd>
979 <dt>
980 <a name="servers_allowdeny_rules"></a>
981 <b><a name="cfg_Servers_AllowDeny_rules"></a>$cfg['Servers'][$i]['AllowDeny']['rules']</b> array of strings
982 </dt>
983 <dd>
984 The general format for the rules is as such:<br />
985 <tt>
986 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
987 &lt;'allow' | 'deny'&gt; &lt;username&gt; [from] &lt;ipmask&gt;
988 </tt>
989 <br /><br />
990  
991 If you wish to match all users, it is possible to use a <tt>'%'</tt> as
992 a wildcard in the <i>username</i> field.<br />
993 There are a few shortcuts you can use in the <i>ipmask</i> field as
994 well (please note that those containing SERVER_ADDRESS might not be
995 available on all webservers):<br /><br />
996 <tt>
997 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'all' -&gt; 0.0.0.0/0<br />
998 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localhost' -&gt; 127.0.0.1/8<br />
999 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localnetA' -&gt; SERVER_ADDRESS/8<br />
1000 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localnetB' -&gt; SERVER_ADDRESS/16<br />
1001 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localnetC' -&gt; SERVER_ADDRESS/24
1002 </tt>
1003 <br /><br />
1004  
1005 Having an empty rule list is equivalent to either using
1006 <tt>'allow % from all'</tt> if your rule order is set to
1007 <tt>'deny,allow'</tt> or <tt>'deny % from all'</tt> if your rule order
1008 is set to <tt>'allow,deny'</tt> or <tt>'explicit'</tt>.
1009 <br /><br />
1010  
1011 For the IP matching system, the following work:<br />
1012 <tt>xxx.xxx.xxx.xxx</tt> (an exact IP address)<br />
1013 <tt>xxx.xxx.xxx.[yyy-zzz]</tt> (an IP address range)<br />
1014 <tt>xxx.xxx.xxx.xxx/nn</tt> (CIDR, Classless Inter-Domain Routing type IP addresses)<br />
1015 But the following does not work:<br />
1016 <tt>xxx.xxx.xxx.xx[yyy-zzz]</tt> (partial IP address range)
1017 </dd>
1018  
1019 <dt><b><a name="cfg_ServerDefault"></a>$cfg[ServerDefault]</b> integer</dt>
1020 <dd>
1021 If you have more than one server configured, you can set
1022 <tt>$cfg['ServerDefault']</tt> to any one of them to autoconnect to
1023 that server when phpMyAdmin is started, or set it to 0 to be given a
1024 list of servers without logging in.<br />
1025 If you have only one server configured, <tt>$cfg['ServerDefault']</tt>
1026 MUST be set to that server.
1027 </dd>
1028  
1029 <dt><b><a name="cfg_OBGzip"></a>$cfg[OBGzip] </b>string/boolean</dt>
1030 <dd>
1031 Defines whether to use GZip output buffering for increased
1032 speed in HTTP transfers.<br />
1033 Set to true/false for enabling/disabling. When set to 'auto' (string),
1034 phpMyAdmin tries to enable output buffering and will automatically disable
1035 it, if your browser has some problems with buffering. IE6 with a certain patch
1036 is known to cause data corruption having enabled buffering.
1037 </dd>
1038  
1039 <dt><b><a name="cfg_PersistentConnections"></a>$cfg[PersistentConnections] </b>boolean</dt>
1040 <dd>
1041 Whether persistent connections should be used or not (mysql_connect or
1042 mysql_pconnect).
1043 </dd>
1044  
1045 <dt><b><a name="cfg_ForceSSL"></a>$cfg[ForceSSL] </b>boolean</dt>
1046 <dd>
1047 Whether to force using https while accessing phpMyAdmin.
1048 </dd>
1049  
1050 <dt><b><a name="cfg_ExecTimeLimit"></a>$cfg[ExecTimeLimit] </b>integer [number of seconds]</dt>
1051 <dd>
1052 Set the number of seconds a script is allowed to run. If seconds is set
1053 to zero, no time limit is imposed.<br />
1054 This setting is used while importing/exporting dump files but has no
1055 effect when PHP is running in safe mode.
1056 </dd>
1057  
1058 <dt><b><a name="cfg_MemoryLimit"></a>$cfg[MemoryLimit] </b>integer [number of bytes]</dt>
1059 <dd>
1060 Set the number of bytes a script is allowed to allocate. If number set
1061 to zero, no limit is imposed.<br />
1062 This setting is used while importing/exporting dump files but has no
1063 effect when PHP is running in safe mode.<br />
1064 You can also use any string as in php.ini, eg. '16M'.
1065 </dd>
1066  
1067 <dt><b><a name="cfg_SkipLockedTables"></a>$cfg[SkipLockedTables] </b>boolean</dt>
1068 <dd>
1069 Mark used tables and make it possible to show databases with locked
1070 tables (since 3.23.30).
1071 </dd>
1072  
1073 <dt><b><a name="cfg_ShowSQL"></a>$cfg[ShowSQL] </b>boolean</dt>
1074 <dd>
1075 Defines whether SQL-queries generated by phpMyAdmin should be displayed
1076 or not.
1077 </dd>
1078  
1079 <dt><b><a name="cfg_AllowUserDropDatabase"></a>$cfg[AllowUserDropDatabase] </b>boolean</dt>
1080 <dd>
1081 Defines whether normal users (non-administrator) are allowed to
1082 delete their own database or not. If set as FALSE, the link &quot;Drop
1083 Database&quot; will not be shown, and even a &quot;DROP DATABASE
1084 mydatabase&quot; will be rejected. Quite practical for ISP's with many
1085 customers.
1086 </dd>
1087  
1088 <dt><b><a name="cfg_Confirm"></a>$cfg[Confirm] </b>boolean</dt>
1089 <dd>
1090 Whether a warning (&quot;Are your really sure...&quot;) should be
1091 displayed when you're about to lose data.
1092 </dd>
1093  
1094 <dt><b><a name="cfg_LoginCookieRecall"></a>$cfg[LoginCookieRecall] </b>boolean</dt>
1095 <dd>
1096 Define whether the previous login should be recalled or not in cookie
1097 authentication mode.
1098 </dd>
1099  
1100 <dt><b><a name="cfg_UseDbSearch"></a>$cfg[UseDbSearch] </b>boolean</dt>
1101 <dd>
1102 Define whether the "search string inside database" is enabled or not.
1103 </dd>
1104  
1105 <dt><b><a name="cfg_IgnoreMultiSubmitErrors"></a>$cfg[IgnoreMultiSubmitErrors] </b>boolean</dt>
1106 <dd>
1107 Define whether phpMyAdmin will continue executing a multi-query
1108 statement if one of the queries fails. Default is to abort execution.
1109 </dd>
1110  
1111 <dt><b><a name="cfg_VerboseMultiSubmit"></a>$cfg[VerboseMultiSubmit] </b>boolean</dt>
1112 <dd>
1113 Define whether phpMyAdmin will output the results of each query of a
1114 multi-query statement embedded into the SQL output as inline comments.
1115 Defaults to <tt>TRUE</tt>.
1116 </dd>
1117 <dt>
1118 <a name="AllowArbitraryServer"></a>
1119 <b><a name="cfg_AllowArbitraryServer"></a>$cfg[AllowArbitraryServer] </b>boolean</dt>
1120 <dd>
1121 If enabled allows you to login to arbitrary server using cookie auth.
1122 <br /><br />
1123 <b>NOTE:</b> Please use this carefully, as this may allow to access
1124 MySQL servers behind firewall where your http server is placed.
1125 <br /><br />
1126 </dd>
1127  
1128 <dt><b><a name="cfg_LeftFrameLight"></a>$cfg[LeftFrameLight]</b> boolean</dt>
1129 <dd>
1130 Defines whether to use select-based menu and display only the current
1131 tables in the left frame (smaller page).
1132 Only in Non-Lightmode you can use the feature to display nested folders
1133 using $cfg['LeftFrameTableSeparator']
1134 </dd>
1135  
1136 <dt><b><a name="cfg_LeftFrameDBTree"></a>$cfg[LeftFrameDBTree]</b> boolean</dt>
1137 <dd>
1138 In light mode, defines whether to display the names of databases (in the
1139 selector) using a tree, see also <tt>$cfg['LeftFrameDBSeparator']</tt>.
1140 </dd>
1141  
1142 <dt><b><a name="cfg_LeftFrameDBSeparator"></a>$cfg[LeftFrameDBSeparator]</b> string</dt>
1143 <dd>
1144 The string used to separate the parts of the database name when showing
1145 them in a tree.
1146 </dd>
1147  
1148 <dt><b><a name="cfg_LeftFrameTableSeparator"></a>$cfg[LeftFrameTableSeparator]</b> string</dt>
1149 <dd>
1150 Defines a string to be used to nest table spaces. Defaults to '__'.
1151 This means if you have tables like 'first__second__third' this will be
1152 shown as a three-level hierarchy like: first &gt; second &gt; third.
1153 If set to FALSE or empty, the feature is disabled. NOTE: You shall
1154 not use this Separator in a table name at the beginning or end of a
1155 table name, or multiple times after another without any other
1156 characters in between.
1157 </dd>
1158  
1159 <dt><b><a name="cfg_LeftFrameTableLevel"></a>$cfg[LeftFrameTableLevel]</b> string</dt>
1160 <dd>
1161 Defines how many sublevels should be displayed when splitting
1162 up tables by the above Separator.
1163 </dd>
1164  
1165 <dt><b><a name="cfg_ShowTooltip"></a>$cfg[ShowTooltip] </b>boolean</dt>
1166 <dd>
1167 Defines whether to display table comment as tool-tip in left frame or
1168 not.
1169 </dd>
1170  
1171 <dt><b><a name="cfg_ShowTooltipAliasDB"></a>$cfg[ShowTooltipAliasDB] </b>boolean</dt>
1172 <dd>
1173 If tool-tips are enabled and a DB comment is set, this will flip the
1174 comment and the real name. That means, if you have a table called
1175 'user0001' and add the comment 'MyName' on it, you will see the name
1176 'MyName' used consequently in the left frame and the tool-tip shows
1177 the real name of the DB.
1178 </dd>
1179  
1180 <dt><b><a name="cfg_ShowTooltipAliasTB"></a>$cfg[ShowTooltipAliasTB] </b>boolean/string</dt>
1181 <dd>
1182 Same as $cfg['ShowTooltipAliasDB'], except this works for table names.
1183  
1184 When setting this to 'nested', the Alias of the Tablename is only used
1185 to split/nest the tables according to the $cfg['LeftFrameTableSeparator']
1186 directive. So only the folder is called like the Alias, the tablename itself
1187 stays the real tablename.
1188 <br /><br />
1189 </dd>
1190 <dt><b><a name="cfg_LeftDisplayLogo"></a>$cfg[LeftDisplayLogo] </b>boolean</dt>
1191 <dd>Defines whether to display the phpMyAdmin logo at the top of the left frame or not.
1192 Defaults to <tt>TRUE</tt>.
1193 </dd>
1194 <dt><b><a name="cfg_LeftDisplayServers"></a>$cfg[LeftDisplayServers] </b>boolean</dt>
1195 <dd>Defines whether to display a server choice at the top of the left frame or not.
1196 Defaults to FALSE.
1197 </dd>
1198 <dt><b><a name="cfg_DisplayServersList"></a>$cfg[DisplayServersList] </b>boolean</dt>
1199 <dd>Defines whether to display this server choice as links instead of in a drop-down.
1200 Defaults to FALSE (drop-down).
1201 </dd>
1202 <dt><b><a name="cfg_ShowStats"></a>$cfg[ShowStats] </b>boolean</dt>
1203 <dd>
1204 Defines whether to display space usage and statistics about databases
1205 and tables or not.<br />
1206 Note that statistics requires at least MySQL 3.23.3 and that, at this
1207 date, MySQL doesn't return such information for Berkeley DB tables.
1208 </dd>
1209  
1210 <dt>
1211 <b><a name="cfg_ShowPhpInfo"></a>$cfg[ShowPhpInfo] </b>boolean<br />
1212 <b><a name="cfg_ShowChgPassword"></a>$cfg[ShowChgPassword] </b>boolean
1213 </dt>
1214 <dd>
1215 Defines whether to display the &quot;PHP information&quot; and
1216 &quot;Change password &quot; links or not for simple users at the
1217 starting main (right) frame. This setting does not check MySQL
1218 commands entered directly.
1219 <br /><br />
1220  
1221 Please note that to block the usage of phpinfo() in scripts, you
1222 have to put this in your <i>php.ini</i>:<br />
1223 &nbsp;&nbsp;&nbsp;&nbsp;<tt>disable_functions = phpinfo()</tt>
1224 <br /><br />
1225  
1226 Also note that enabling the &quot;Change password &quot; link has no
1227 effect with &quot;config&quot; authentication mode: because of the
1228 hard coded password value in the configuration file, end users can't
1229 be allowed to change their passwords.
1230 </dd>
1231  
1232 <dt><b><a name="cfg_SuggestDBName"></a>$cfg[SuggestDBName]</b> boolean</dt>
1233 <dd>
1234 Defines whether to suggest a database name on the
1235 &quot;Create Database&quot; form or to keep the textfield empty.
1236 </dd>
1237  
1238 <dt><b><a name="cfg_ShowBlob"></a>$cfg[ShowBlob] </b>boolean</dt>
1239 <dd>
1240 Defines whether <tt>BLOB</tt> fields are shown when browsing a table's
1241 content or not.
1242 </dd>
1243  
1244 <dt><b><a name="cfg_NavigationBarIconic"></a>$cfg[NavigationBarIconic] </b>string</dt>
1245 <dd>
1246 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.
1247 </dd>
1248  
1249 <dt><b><a name="cfg_ShowAll"></a>$cfg[ShowAll] </b>boolean</dt>
1250 <dd>
1251 Defines whether an user should be displayed a
1252 &quot;show all (records)&quot; button in browse mode or not.
1253 </dd>
1254  
1255 <dt><b><a name="cfg_MaxRows"></a>$cfg[MaxRows] </b>integer</dt>
1256 <dd>
1257 Number of rows displayed when browsing a result set. If the result set
1258 contains more rows, Previous/Next links will be shown.
1259 </dd>
1260  
1261 <dt><b><a name="cfg_Order"></a>$cfg[Order] </b>string [<tt>DESC</tt>|<tt>ASC</tt>|<tt>SMART</tt>]</dt>
1262 <dd>
1263 Defines whether fields are displayed in ascending (<tt>ASC</tt>) order,
1264 in descending (<tt>DESC</tt>) order or in a &quot;smart&quot;
1265 (<tt>SMART</tt>) order - I.E. descending order for fields of type TIME,
1266 DATE, DATETIME &amp; TIMESTAMP, ascending order else- by default.
1267 </dd>
1268  
1269 <dt><b><a name="cfg_ProtectBinary"></a>$cfg[ProtectBinary] </b>boolean or string</dt>
1270 <dd>
1271 Defines whether <tt>BLOB</tt> or <tt>BINARY</tt> fields are protected
1272 from editing when browsing a table's content or not.
1273 Valid values are:
1274 <ul>
1275 <li><tt>FALSE</tt> to allow editing of all fields;</li>
1276 <li><tt>'blob'</tt> to allow editing of all fields except <tt>BLOBS</tt>;</li>
1277 <li><tt>'all'</tt> to disallow editing of all <tt>BINARY</tt> or
1278 <tt>BLOB</tt> fields.</li>
1279 </ul>
1280 </dd>
1281  
1282 <dt><b><a name="cfg_ShowFunctionFields"></a>$cfg[ShowFunctionFields] </b>boolean</dt>
1283 <dd>
1284 Defines whether MySQL functions fields should be displayed or not in
1285 edit/insert mode.
1286 </dd>
1287  
1288 <dt><b><a name="cfg_CharEditing"></a>$cfg[CharEditing] </b>string</dt>
1289 <dd>
1290 Defines which type of editing controls should be used for CHAR and
1291 VARCHAR fields. Possible values are:
1292 <ul>
1293 <li>
1294 input - this allows to limit size of text to size of field in
1295 MySQL, but has problems with newlines in fields
1296 </li>
1297 <li>
1298 textarea - no problems with newlines in fields, but also no
1299 length limitations
1300 </li>
1301 </ul>
1302 Default is old behavior so input.
1303 </dd>
1304  
1305 <dt><b><a name="cfg_InsertRows"></a>$cfg[InsertRows]</b> integer</dt>
1306 <dd>
1307 Defines the maximum number of concurrent entries for the Insert page.
1308 </dd>
1309  
1310 <dt><b><a name="cfg_ForeignKeyMaxLimit"></a>$cfg[ForeignKeyMaxLimit]</b> integer</dt>
1311 <dd>
1312 If there are fewer items than this in the set of foreign keys, then a
1313 drop-down box of foreign keys is presented, in the style described by the
1314 <b>$cfg[ForeignKeyDropdownOrder]</b> setting.
1315 </dd>
1316  
1317 <dt><b><a name="cfg_ForeignKeyDropdownOrder"></a>$cfg[ForeignKeyDropdownOrder]</b> array</dt>
1318 <dd>
1319 For the foreign key drop-down fields, there are several methods of
1320 display, offering both the key and value data. The contents of the
1321 array should be one or both of the following strings:
1322 <i>'content-id'</i>, <i>'id-content'</i>.
1323 </dd>
1324  
1325 <dt>
1326 <b><a name="cfg_ZipDump"></a>$cfg[ZipDump] </b>boolean<br />
1327 <b><a name="cfg_GZipDump"></a>$cfg[GZipDump] </b>boolean<br />
1328 <b><a name="cfg_BZipDump"></a>$cfg[BZipDump] </b>boolean
1329 </dt>
1330 <dd>
1331 Defines whether to allow the use of zip/GZip/BZip2 compression when
1332 creating a dump file or not.
1333 </dd>
1334  
1335 <dt>
1336 <b><a name="cfg_CompressOnFly"></a>$cfg[CompressOnFly] </b>boolean<br />
1337 </dt>
1338 <dd>
1339 Defines whether to allow on the fly compression for GZip/BZip2
1340 compressed exports. This doesn't affect smaller dumps and allows to
1341 create larger dumps, that won't fit otherwise in memory due to php
1342 memory limit. Produced files contain more GZip/BZip2 headers, but all
1343 normal programs handle this correctly.
1344 </dd>
1345  
1346 <dt><b><a name="cfg_LightTabs"></a>$cfg[LightTabs] </b>string</dt>
1347 <dd>
1348 If set to True, use less graphically intense tabs on the top of the
1349 mainframe.
1350 </dd>
1351  
1352 <dt><b><a name="cfg_PropertiesIconic"></a>$cfg[PropertiesIconic] </b>string</dt>
1353 <dd>
1354 If set to <tt>TRUE</tt>, will display icons instead of text for db and table
1355 properties links (like 'Browse', 'Select', 'Insert', ...).<br /> Can be set to <tt>'both'</tt> if you want icons AND text.<br />
1356 When set to <tt>FALSE</tt>, will only show text.
1357 </dd>
1358  
1359 <dt><b><a name="cfg_PropertiesNumColumns"></a>$cfg[PropertiesNumColumns] </b>integer</dt>
1360 <dd>
1361 How many columns will be utilized to display the tables on the
1362 database property view? Default is 1 column. When setting this to a
1363 value larger than 1, the type of the database will be omitted for more
1364 display space.
1365 </dd>
1366  
1367  
1368 <dt><b><a name="cfg_DefaultTabServer"></a>$cfg[DefaultTabServer] </b>string</dt>
1369 <dd>
1370 Defines the tab displayed by default on server view. Possible
1371 values: &quot;main.php&quot; (recommended for multi-user setups),
1372 &quot;server_databases.php&quot;, &quot;server_status.php&quot;,
1373 &quot;server_variables.php&quot;, &quot;server_privileges.php&quot;
1374 or &quot;server_processlist.php&quot;.
1375 </dd>
1376  
1377 <dt><b><a name="cfg_DefaultTabDatabase"></a>$cfg[DefaultTabDatabase] </b>string</dt>
1378 <dd>
1379 Defines the tab displayed by default on database view. Possible
1380 values: &quot;db_details_structure.php&quot;,
1381 &quot;db_details.php&quot; or &quot;db_search.php&quot;.
1382 </dd>
1383  
1384 <dt><b><a name="cfg_DefaultTabTable"></a>$cfg[DefaultTabTable] </b>string</dt>
1385 <dd>
1386 Defines the tab displayed by default on table view. Possible
1387 values: &quot;tbl_properties_structure.php&quot;,
1388 &quot;tbl_properties.php&quot;, &quot;tbl_select.php&quot;,
1389 &quot;tbl_change.php&quot; or &quot;sql.php&quot;.
1390 </dd>
1391  
1392 <dt><b><a name="cfg_MySQLManualBase"></a>$cfg[MySQLManualBase]</b> string</dt>
1393 <dd>
1394 If set to an URL which points to the MySQL documentation (type depends
1395 on <tt>$cfg['MySQLManualType']</tt>), appropriate help links are
1396 generated.
1397 <br />
1398 See <a href="http://dev.mysql.com/doc/">MySQL Documentation page</a>
1399 for more information about MySQL manuals and their types.
1400 </dd>
1401  
1402 <dt><b><a name="cfg_MySQLManualType"></a>$cfg[MySQLManualType]</b> string</dt>
1403 <dd>
1404 Type of MySQL documentation:
1405 <ul>
1406 <li>viewable - &quot;viewable online&quot;, current one used on MySQL website</li>
1407 <li>searchable - &quot;Searchable, with user comments&quot;</li>
1408 <li>chapters - &quot;HTML, one page per chapter&quot;</li>
1409 <li>big - &quot;HTML, all on one page&quot;</li>
1410 <li>none - do not show documentation links</li>
1411 </ul>
1412 </dd>
1413  
1414 <dt><b><a name="cfg_DefaultLang"></a>$cfg[DefaultLang] </b>string</dt>
1415 <dd>
1416 Defines the default language to use, if not browser-defined or
1417 user-defined.<br />
1418 See the <i>select_lang.lib.php</i> script to know the valid values for
1419 this setting.
1420 </dd>
1421  
1422 <dt><b><a name="cfg_DefaultConnectionCollation"></a>$cfg[DefaultConnectionCollation] </b>string</dt>
1423 <dd>
1424 Defines the default connection collation to use, if not
1425 user-defined.<br />
1426 See the <a href="http://dev.mysql.com/doc/mysql/en/charset-charsets.html">MySQL
1427 documentation</a> for list of possible values.
1428 </dd>
1429  
1430 <dt><b><a name="cfg_Lang"></a>$cfg[Lang] </b>string</dt>
1431 <dd>
1432 Force: always use this language (must be defined in the
1433 <i>select_lang.lib.php</i> script).
1434 </dd>
1435  
1436 <dt><b><a name="cfg_FilterLanguages"></a>$cfg[FilterLanguages] </b>string</dt>
1437 <dd>
1438 Limit list of available languages to those matching the given regular
1439 expression. For example if you want only Czech and English, you should
1440 set filter to <code>'^(cs|en)'</code>.
1441 </dd>
1442  
1443 <dt><b><a name="cfg_DefaultCharset"></a>$cfg[DefaultCharset] </b>string</dt>
1444 <dd>
1445 Default character set to use for recoding of MySQL queries. This must be
1446 enabled and it's described by <tt>$cfg['AllowAnywhereRecoding']</tt>
1447 option.<br />
1448 You can give here any character set which is in
1449 <tt>$cfg['AvailableCharsets']</tt> array and this is just default
1450 choice, user can select any of them.
1451 </dd>
1452  
1453 <dt><b><a name="cfg_AllowAnywhereRecoding"></a>$cfg[AllowAnywhereRecoding] </b>boolean</dt>
1454 <dd>
1455 Allow character set recoding of MySQL queries. You need recode or iconv
1456 support (compiled in or module) in PHP to allow MySQL queries recoding
1457 and used language file must have it enabled (by default only these
1458 which are in Unicode, just to avoid losing some characters).
1459 <br /><br />
1460 Setting this to <tt>TRUE</tt> also activates a pull-down menu
1461 in the Export page, to choose the character set when exporting a file.
1462 </dd>
1463  
1464 <dt><b><a name="cfg_RecodingEngine"></a>$cfg[RecodingEngine] </b>string</dt>
1465 <dd>
1466 You can select here which functions will be used for character set
1467 conversion.
1468 Possible values are:
1469 <ul>
1470 <li>auto - automatically use available one (first is tested
1471 iconv, then recode)</li>
1472 <li>iconv - use iconv or libiconv functions</li>
1473 <li>recode - use recode_string function</li>
1474 </ul>
1475 Default is auto.
1476 </dd>
1477  
1478 <dt><b><a name="cfg_IconvExtraParams"></a>$cfg[IconvExtraParams] </b>string</dt>
1479 <dd>
1480 Specify some parameters for iconv used in charset conversion. See
1481 <a href="http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html">iconv
1482 documentation</a> for details. By default <code>//TRANSLIT</code> is
1483 used, so that invalid characters will be transliterated.
1484 </dd>
1485  
1486 <dt><b><a name="cfg_AvailableCharsets"></a>$cfg[AvailableCharsets] </b>array</dt>
1487 <dd>
1488 Available character sets for MySQL conversion. You can add your own (any of
1489 supported by recode/iconv) or remove these which you don't use.
1490 Character sets will be shown in same order as here listed, so if you
1491 frequently use some of these move them to the top.
1492 </dd>
1493  
1494 <dt><b><a name="cfg_GD2Available"></a>$cfg[GD2Available] </b>string</dt>
1495 <dd>
1496 Specifies whether GD &gt;= 2 is available. If yes it can be used for
1497 MIME transformations.<br />
1498 Possible values are:
1499 <ul>
1500 <li>
1501 auto - automatically detect, this is a bit expensive
1502 operation for php &lt; 4.3.0 so it is preferred to change this
1503 according to your server real possibilities
1504 </li>
1505 <li>yes - GD 2 functions can be used</li>
1506 <li>no - GD 2 function cannot be used</li>
1507 </ul>
1508 Default is auto.
1509 </dd>
1510  
1511 <dt><b><a name="cfg_LeftWidth"></a>$cfg[LeftWidth] </b>integer</dt>
1512 <dd>
1513 Left frame width in pixel. See <tt>themes/themename/layout.inc.php</tt>.
1514 </dd>
1515  
1516 <dt>
1517 <b><a name="cfg_LeftBgColor"></a>$cfg[LeftBgColor] </b>string [HTML color]<br />
1518 <b><a name="cfg_RightBgColor"></a>$cfg[RightBgColor] </b>string [HTML color]
1519 </dt>
1520 <dd>
1521 The background colors (HTML) used for both the frames.
1522 See <tt>themes/themename/layout.inc.php</tt>.
1523 </dd>
1524  
1525 <dt>
1526 <b><a name="cfg_RightBgImage"></a>$cfg[RightBgImage] </b>string
1527 </dt>
1528 <dd>
1529 The URI of the background image used for the right frame. It must be
1530 an absolute URI. See <tt>themes/themename/layout.inc.php</tt>.
1531 </dd>
1532  
1533 <dt><b><a name="cfg_LeftPointerColor"></a>$cfg[LeftPointerColor] </b>string [HTML color]</dt>
1534 <dd>
1535 The color (HTML) used for the pointer in the left frame (does not work
1536 with Netscape 4). See <tt>themes/themename/layout.inc.php</tt>.
1537 </dd>
1538  
1539 <dt><b><a name="cfg_LeftPointerEnable"></a>$cfg[LeftPointerEnable] </b>boolean</dt>
1540 <dd>
1541 A value of <tt>TRUE</tt> activates the left pointer (when LeftFrameLight is <tt>FALSE</tt>).
1542 </dd>
1543  
1544 <dt><b><a name="cfg_Border"></a>$cfg[Border] </b>integer</dt>
1545 <dd>
1546 The size of a table's border. See <tt>themes/themename/layout.inc.php</tt>.
1547 </dd>
1548  
1549 <dt><b><a name="cfg_ThBgcolor"></a>$cfg[ThBgcolor] </b>string [HTML color]</dt>
1550 <dd>
1551 The color (HTML) used for table headers. See <tt>themes/themename/layout.inc.php</tt>.
1552 </dd>
1553  
1554 <dt><b><a name="cfg_BgcolorOne"></a>$cfg[BgcolorOne] </b>string [HTML color]</dt>
1555 <dd>
1556 The color (HTML) #1 for table rows. See <tt>themes/themename/layout.inc.php</tt>.
1557 </dd>
1558  
1559 <dt><b><a name="cfg_BgcolorTwo"></a>$cfg[BgcolorTwo] </b>string [HTML color]</dt>
1560 <dd>
1561 The color (HTML) #2 for table rows. See <tt>themes/themename/layout.inc.php</tt>.
1562 </dd>
1563  
1564 <dt>
1565 <b><a name="cfg_BrowsePointerColor"></a>$cfg[BrowsePointerColor] </b>string [HTML color]<br />
1566 <b><a name="cfg_BrowseMarkerColor"></a>$cfg[BrowseMarkerColor] </b>string [HTML color]
1567 </dt>
1568 <dd>
1569 The colors (HTML) uses for the pointer and the marker in browse mode
1570 (does not work with Netscape 4).<br />
1571 The former feature highlights the row over which your mouse is passing
1572 and the latter lets you visually mark/unmark rows by clicking on
1573 them.<br />
1574 See <tt>themes/themename/layout.inc.php</tt>.
1575 </dd>
1576  
1577 <dt><b><a name="cfg_BrowsePointerEnable"></a>$cfg[BrowsePointerEnable] </b>boolean</dt>
1578 <dd>
1579 Whether to activate the browse pointer or not.
1580 </dd>
1581  
1582 <dt><b><a name="cfg_BrowseMarkerEnable"></a>$cfg[BrowseMarkerEnable] </b>boolean</dt>
1583 <dd>
1584 Whether to activate the browse marker or not.
1585 </dd>
1586  
1587 <dt>
1588 <b><a name="cfg_TextareaCols"></a>$cfg[TextareaCols] </b>integer<br />
1589 <b><a name="cfg_TextareaRows"></a>$cfg[TextareaRows] </b>integer<br />
1590 <b><a name="cfg_CharTextareaCols"></a>$cfg[CharTextareaCols] </b>integer<br />
1591 <b><a name="cfg_CharTextareaRows"></a>$cfg[CharTextareaRows] </b>integer
1592 </dt>
1593 <dd>
1594 Number of columns and rows for the textareas.<br />
1595 This value will be emphasized (*2) for SQL query textareas and (*1.25) for
1596 SQL textareas inside the query window.<br />
1597 The Char* values are used for CHAR and VARCHAR editing (if configured
1598 via $cfg['CharEditing']).
1599 </dd>
1600  
1601 <dt>
1602 <b><a name="cfg_LongtextDoubleTextarea"></a>$cfg[LongtextDoubleTextarea] </b>boolean
1603 </dt>
1604 <dd>
1605 Defines whether textarea for LONGTEXT fields should have double size.
1606 </dd>
1607  
1608 <dt>
1609 <b><a name="cfg_TextareaAutoSelect"></a>$cfg[TextareaAutoSelect] </b>boolean
1610 </dt>
1611 <dd>
1612 Defines if the whole textarea of the query box will be selected on
1613 click.
1614 </dd>
1615 <dt>
1616 <a name="CtrlArrowsMoving"></a>
1617 <b><a name="cfg_CtrlArrowsMoving"></a>$cfg[CtrlArrowsMoving] </b>boolean
1618 </dt>
1619 <dd>
1620 Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when editing.
1621 </dd>
1622  
1623 <dt><b><a name="cfg_LimitChars"></a>$cfg[LimitChars] </b>integer</dt>
1624 <dd>
1625 Maximal number of Chars showed in any non-numeric
1626 field on browse view. Can be turned off by a toggle button on the
1627 browse page.
1628 </dd>
1629  
1630 <dt>
1631 <b><a name="cfg_ModifyDeleteAtLeft"></a>$cfg[ModifyDeleteAtLeft] </b>boolean
1632 <b><a name="cfg_ModifyDeleteAtRight"></a>$cfg[ModifyDeleteAtRight] </b>boolean
1633 </dt>
1634 <dd>
1635 Defines the place where modify and delete links would be put when
1636 tables contents are displayed (you may have them displayed both at the
1637 left and at the right).
1638 &quot;Left&quot; and &quot;right&quot; are parsed as &quot;top&quot;
1639 and &quot;bottom&quot; with vertical display mode.
1640 </dd>
1641  
1642 <dt><b><a name="cfg_DefaultDisplay"></a>$cfg[DefaultDisplay] </b>string
1643 <b><a name="cfg_HeaderFlipType"></a>$cfg[HeaderFlipType] </b>string
1644 </dt>
1645 <dd>
1646 There are 3 display modes: horizontal, horizontalflipped and vertical.
1647 Define which one is displayed by default. The first mode displays each
1648 row on a horizontal line, the second rotates the headers by 90
1649 degrees, so you can use descriptive headers even though fields only
1650 contain small values and still print them out. The vertical mode sorts
1651 each row on a vertical lineup.
1652 <br /><br />
1653 The HeaderFlipType can be set to 'css' or 'faked'. When using 'css'
1654 the rotation of the header for horizontalflipped is done via CSS. If
1655 set to 'faked' PHP does the transformation for you, but of course this
1656 does not look as good as CSS.
1657 </dd>
1658 <dt>
1659  
1660 <a name="DefaultPropDisplay"></a>
1661 <b><a name="cfg_DefaultPropDisplay"></a>$cfg[DefaultPropDisplay] </b>string</dt>
1662 <dd>
1663 When editing/creating new columns in a table all fields normally get
1664 lined up one field a line. (default: 'horizontal'). If you set this to
1665 'vertical' you can have each field lined up vertically beneath each
1666 other. You can save up a lot of place on the horizontal direction and
1667 no longer have to scroll.
1668 </dd>
1669  
1670 <dt><b><a name="cfg_ShowBrowseComments"></a>$cfg[ShowBrowseComments] </b>boolean<br />
1671 <b><a name="cfg_ShowPropertyComments"></a>$cfg[ShowPropertyComments] </b>boolean
1672 </dt>
1673 <dd>
1674 By setting the corresponding variable to <tt>TRUE</tt> you can enable the
1675 display of column comments in Browse or Property display. In browse
1676 mode, the comments are show inside the header. In property mode,
1677 comments are displayed using a CSS-formatted dashed-line below the
1678 name of the field. The comment is shown as a tool-tip for that field.
1679 </dd>
1680  
1681 <dt><b><a name="cfg_UploadDir"></a>$cfg[UploadDir] </b>string</dt>
1682 <dd>
1683 The name of the directory where SQL files have been uploaded by other
1684 means than phpMyAdmin (for example, ftp). Those files are available
1685 under a drop-down box when you click the database name, then the SQL
1686 tab.
1687 <br /><br />
1688 If you want different directory for each user, %u will be replaced
1689 with username.
1690 <br /><br />
1691 Please note that the file names must have the suffix &quot;.sql&quot;
1692 (or &quot;.sql.bz2&quot; or &quot;.sql.gz&quot; if support for
1693 compressed formats is enabled).
1694 <br /><br />
1695 This feature is useful when your file is too big to be uploaded via
1696 HTTP, or when file uploads are disabled in PHP.
1697 <br /><br />
1698 Please note that if PHP is running in safe mode, this directory must
1699 be owned by the same user as the owner of the phpMyAdmin scripts.
1700 <br /><br />
1701 See also <a href="#faq1_16">FAQ 1.16</a> for alternatives.
1702 </dd>
1703  
1704 <dt><b><a name="cfg_docSQLDir"></a>$cfg[docSQLDir] </b>string</dt>
1705 <dd>
1706 The name of the directory where docSQL files can be uploaded for
1707 import into phpMyAdmin.
1708 <br /><br />
1709 Please note that if PHP is running in safe mode, this directory must
1710 be owned by the same user as the owner of the phpMyAdmin scripts.
1711 </dd>
1712  
1713 <dt><b><a name="cfg_SaveDir"></a>$cfg[SaveDir] </b>string</dt>
1714 <dd>
1715 The name of the directory where dumps can be saved.
1716 <br /><br />
1717 If you want different directory for each user, %u will be replaced
1718 with username.
1719 <br /><br />
1720 Please note that the directory has to be writable for user running
1721 webserver.
1722 <br /><br />
1723 Please note that if PHP is running in safe mode, this directory must
1724 be owned by the same user as the owner of the phpMyAdmin scripts.
1725 </dd>
1726  
1727 <dt><b><a name="cfg_TempDir"></a>$cfg[TempDir] </b>string</dt>
1728 <dd>
1729 The name of the directory, where temporary files can be stored.
1730 <br /><br />
1731 This is needed for native MS Excel export, see <a href="#faq6_23">FAQ
1732 6.23</a>
1733 </dd>
1734  
1735 <dt><b><a name="cfg_Export"></a>$cfg[Export] </b>array</dt>
1736 <dd>
1737 In this array are defined default parameters for export, names of
1738 items are similar to texts seen on export page, so you can easily
1739 identify what they mean.
1740 </dd>
1741  
1742 <dt><b><a name="cfg_Import"></a>$cfg[Import] </b>array</dt>
1743 <dd>
1744 In this array are defined default parameters for import, names of
1745 items are similar to texts seen on import page, so you can easily
1746 identify what they mean.
1747 </dd>
1748  
1749 <dt><b><a name="cfg_RepeatCells"></a>$cfg[RepeatCells] </b>integer</dt>
1750 <dd>
1751 Repeat the headers every X cells, or 0 to deactivate.
1752 </dd>
1753  
1754 <dt><b><a name="cfg_EditInWindow"></a>$cfg[EditInWindow] </b>boolean<br />
1755 <b><a name="cfg_QueryWindowWidth"></a>$cfg[QueryWindowWidth] </b>integer<br />
1756 <b><a name="cfg_QueryWindowHeight"></a>$cfg[QueryWindowHeight] </b>integer<br />
1757 <b><a name="cfg_QueryHistoryDB"></a>$cfg[QueryHistoryDB] </b>boolean<br />
1758 <b><a name="cfg_QueryWindowDefTab"></a>$cfg[QueryWindowDefTab] </b>string<br />
1759 <b><a name="cfg_QueryHistoryMax"></a>$cfg[QueryHistoryMax] </b>integer
1760 </dt>
1761 <dd>
1762 All those variables affect the query window feature. A <tt>SQL</tt> link
1763 or icon is always displayed on the left panel. If JavaScript is enabled in
1764 your browser, a click on this opens a distinct query window, which is
1765 a direct interface to enter SQL queries. Otherwise, the right panel
1766 changes to display a query box.
1767 <br /><br />
1768 The size of this query window can be customized with
1769 <tt>$cfg['QueryWindowWidth']</tt> and <tt>$cfg['QueryWindowWidth']</tt>
1770 - both integers for the size in pixels. Note that normally, those
1771 parameters will be modified in <tt>layout.inc.php</tt> for the
1772 theme you are using.
1773 <br /><br />
1774 If <tt>$cfg['EditInWindow']</tt> is set to true, a click on [Edit]
1775 from the results page (in the &quot;Showing Rows&quot; section)
1776 opens the query window and puts the current query
1777 inside it. If set to false, clicking on the link puts the SQL
1778 query in the right panel's query box.
1779 <br /><br />
1780 The usage of the JavaScript query window is recommended if you have a
1781 JavaScript enabled browser. Basic functions are used to exchange quite
1782 a few variables, so most 4th generation browsers should be capable to
1783 use that feature. It currently is only tested with Internet Explorer 6
1784 and Mozilla 1.x.
1785 <br /><br />
1786 If $cfg['QueryHistoryDB'] is set to <tt>TRUE</tt>, all your Queries are logged
1787 to a table, which has to be created by you (see <a
1788 href="#history">$cfg['Servers'][$i]['history']</a>). If set to FALSE,
1789 all your queries will be appended to the form, but only as long as
1790 your window is opened they remain saved.
1791 <br /><br />
1792 When using the JavaScript based query window, it will always get
1793 updated when you click on a new table/db to browse and will focus if
1794 you click on "Edit SQL" after using a query. You can suppress updating
1795 the query window by checking the box "Do not overwrite this query from
1796 outside the window" below the query textarea. Then you can browse
1797 tables/databases in the background without losing the contents of the
1798 textarea, so this is especially useful when composing a query with
1799 tables you first have to look in. The checkbox will get automatically
1800 checked whenever you change the contents of the textarea. Please
1801 uncheck the button whenever you definitely want the query window to
1802 get updated even though you have made alterations.
1803 <br /><br />
1804 If $cfg['QueryHistoryDB'] is set to <tt>TRUE</tt> you can specify the amount of
1805 saved history items using $cfg['QueryHistoryMax'].
1806 <br /><br />
1807 The query window also has a custom tabbed look to group the features.
1808 Using the variable $cfg['QueryWindowDefTab'] you can specify the
1809 default tab to be used when opening the query window. It can be set to
1810 either 'sql', 'files', 'history' or 'full'.
1811 </dd>
1812  
1813 <dt><b><a name="cfg_BrowseMIME"></a>$cfg[BrowseMIME] </b>boolean</dt>
1814 <dd>
1815 Enable <a href="#transformations">MIME-transformations</a>.
1816 </dd>
1817  
1818 <dt><b><a name="cfg_MaxExactCount"></a>$cfg[MaxExactCount] </b>integer</dt>
1819 <dd>
1820 <ul>
1821 <li>For InnoDB tables, determines for how large tables phpMyAdmin
1822 should get the exact row count using <code>SELECT COUNT</code>.
1823 If the approximate row count as returned by
1824 <code>SHOW TABLE STATUS</code> is smaller than this value,
1825 <code>SELECT COUNT</code> will be used, otherwise the approximate
1826 count will be used.
1827 </li>
1828 <li>For VIEWs, since obtaining the exact count could have an
1829 impact on performance, this value is the maximum to be displayed.
1830 </li>
1831 </ul>
1832 </dd>
1833  
1834 <dt><a name="wysiwyg"></a>
1835 <b><a name="cfg_WYSIWYG-PDF"></a>$cfg[WYSIWYG-PDF] </b>boolean</dt>
1836 <dd>
1837 Utilizes a WYSIWYG editing control to easily place elements of a PDF
1838 page. By clicking on the button 'toggle scratchboard' on the page
1839 where you edit x/y coordinates of those elements you can activate a
1840 scratchboard where all your elements are placed. By clicking on an
1841 element, you can move them around in the pre-defined area and the x/y
1842 coordinates will get updated dynamically. Likewise, when entering a
1843 new position directly into the input field, the new position in the
1844 scratchboard changes after your cursor leaves the input field.
1845 <br />
1846 You have to click on the 'OK'-button below the tables to save the new
1847 positions. If you want to place a new element, first add it to the
1848 table of elements and then you can drag the new element around.
1849 <br />
1850 By changing the paper size and the orientation you can change the size
1851 of the scratchboard as well. You can do so by just changing the
1852 dropdown field below, and the scratchboard will resize automatically,
1853 without interfering with the current placement of the elements.
1854 <br />
1855 If ever an element gets out of range you can either enlarge the paper
1856 size or click on the 'reset' button to place all elements below each
1857 other.
1858 <br />
1859 <b>NOTE:</b> You have to use a recent browser like IE6 or Mozilla to
1860 get this control to work. The basic Drag&amp;Drop script functionality
1861 was kindly borrowed from www.youngpup.net and is underlying so
1862 specific license.
1863 </dd>
1864  
1865 <dt><b><a name="cfg_NaturalOrder"></a>$cfg[NaturalOrder] </b>boolean</dt>
1866 <dd>
1867 Sorts database and table names according to natural order (for example,
1868 t1, t2, t10). Currently implemented in the left panel (Light mode)
1869 and in Database view, for the table list.
1870 </dd>
1871  
1872 <dt><b><a name="cfg_ShowHttpHostTitle"></a>$cfg[ShowHttpHostTitle] </b>boolean</dt>
1873 <dd>
1874 Shows the HTTP host name in window's title bar.
1875 </dd>
1876  
1877 <dt><b><a name="cfg_SetHttpHostTitle"></a>$cfg[SetHttpHostTitle] </b>string</dt>
1878 <dd>
1879 If <tt>$cfg['ShowHttpHostTitle']</tt> is <tt>TRUE</tt>, it shows the real
1880 HTTP host name, unless an alternate name is set here.
1881 </dd>
1882  
1883 <dt><b><a name="cfg_ErrorIconic"></a>$cfg[ErrorIconic] </b>boolean</dt>
1884 <dd>
1885 Uses icons for warnings, errors and informations.
1886 </dd>
1887  
1888 <dt><b><a name="cfg_MainPageIconic"></a>$cfg[MainPageIconic] </b>boolean</dt>
1889 <dd>
1890 Uses icons on main page in lists and menu tabs.
1891 </dd>
1892  
1893 <dt><b><a name="cfg_ReplaceHelpImg"></a>$cfg[ReplaceHelpImg] </b>boolean</dt>
1894 <dd>
1895 Shows a help button instead of the &quot;Documentation&quot; message.
1896 </dd>
1897  
1898 <dt><b><a name="cfg_ThemePath"></a>$cfg[ThemePath] </b>string</dt>
1899 <dd>
1900 If theme manager is active, use this as the path of the subdirectory
1901 containing all the themes.
1902 </dd>
1903  
1904 <dt><b><a name="cfg_ThemeManager"></a>$cfg[ThemeManager] </b>boolean</dt>
1905 <dd>
1906 Enables user-selectable themes. See <a href="#faqthemes">FAQ 2.7</a>.
1907 </dd>
1908  
1909 <dt><b><a name="cfg_ThemeDefault"></a>$cfg[ThemeDefault] </b>string</dt>
1910 <dd>
1911 The default theme (a subdirectory under <tt>cfg['ThemePath']</tt>).
1912 </dd>
1913  
1914 <dt><b><a name="cfg_ThemePerServer"></a>$cfg[ThemePerServer] </b>boolean</dt>
1915 <dd>
1916 Whether to allow different theme for each server.
1917 </dd>
1918  
1919 <dt><b><a name="cfg_DefaultQueryTable"></a>$cfg[DefaultQueryTable]</b> string<br />
1920 <b><a name="cfg_DefaultQueryDatabase"></a>$cfg[DefaultQueryDatabase]</b> string
1921 </dt>
1922 <dd>
1923 Default queries that will be displayed in query boxes when user didn't
1924 specify any. Use %d for database name, %t for table name and %f for a
1925 comma separated list of field names. Note that %t and %f are only
1926 applicable to $cfg['DefaultQueryTable'].
1927 </dd>
1928  
1929 <dt><b><a name="cfg_SQP_fmtType"></a>$cfg[SQP]['fmtType']</b> string [<tt>html</tt>|<tt>none</tt>]</dt>
1930 <dd>
1931 The main use of the new SQL Parser is to pretty-print SQL queries. By
1932 default we use HTML to format the query, but you can disable this by
1933 setting this variable to <tt>'none'</tt>.
1934 </dd>
1935  
1936 <dt><b><a name="cfg_SQP_fmtInd"></a>$cfg[SQP]['fmtInd']</b> float<br />
1937 <b><a name="cfg_SQP"></a>$cfg[SQP]['fmtIndUnit']</b> string [<tt>em</tt>|<tt>px</tt>|<tt>pt</tt>|<tt>ex</tt>]</dt>
1938 <dd>
1939 For the pretty-printing of SQL queries, under some cases the part of a
1940 query inside a bracket is indented. By changing
1941 <tt>$cfg['SQP']['fmtInd']</tt> you can change the amount of this indent.
1942 <br />Related in purpose is <tt>$cfg['SQP']['fmtIndUnit']</tt> which
1943 specifies the units of the indent amount that you specified. This is
1944 used via stylesheets.
1945 </dd>
1946  
1947 <dt><b><a name="cfg_SQP_fmtColor"></a>$cfg[SQP]['fmtColor']</b> array of string tuples</dt>
1948 <dd>
1949 This array is used to define the colours for each type of element of
1950 the pretty-printed SQL queries. The tuple format is<br />
1951 <i>class</i> =&gt; [<i>HTML colour code</i> | <i>empty string</i>]<br />
1952 If you specify an empty string for the color of a class, it is ignored
1953 in creating the stylesheet.
1954 You should not alter the class names, only the colour strings.<br />
1955 <b>Class name key:</b>
1956 <ul>
1957 <li><b>comment</b> Applies to all comment sub-classes</li>
1958 <li><b>comment_mysql</b> Comments as <tt>"#...\n"</tt></li>
1959 <li><b>comment_ansi</b> Comments as <tt>"-- ...\n"</tt></li>
1960 <li><b>comment_c</b> Comments as <tt>"/*...*/"</tt></li>
1961 <li><b>digit</b> Applies to all digit sub-classes</li>
1962 <li><b>digit_hex</b> Hexadecimal numbers</li>
1963 <li><b>digit_integer</b> Integer numbers</li>
1964 <li><b>digit_float</b> Floating point numbers</li>
1965 <li><b>punct</b> Applies to all punctuation sub-classes</li>
1966 <li><b>punct_bracket_open_round</b> Opening brackets<tt>"("</tt></li>
1967 <li><b>punct_bracket_close_round</b> Closing brackets <tt>")"</tt></li>
1968 <li><b>punct_listsep</b> List item Separator <tt>","</tt></li>
1969 <li><b>punct_qualifier</b> Table/Column Qualifier <tt>"."</tt> </li>
1970 <li><b>punct_queryend</b> End of query marker <tt>";"</tt></li>
1971 <li><b>alpha</b> Applies to all alphabetic classes</li>
1972 <li><b>alpha_columnType</b> Identifiers matching a column type</li>
1973 <li><b>alpha_columnAttrib</b> Identifiers matching a database/table/column attribute</li>
1974 <li><b>alpha_functionName</b> Identifiers matching a MySQL function name</li>
1975 <li><b>alpha_reservedWord</b> Identifiers matching any other reserved word</li>
1976 <li><b>alpha_variable</b> Identifiers matching a SQL variable <tt>"@foo"</tt></li>
1977 <li><b>alpha_identifier</b> All other identifiers</li>
1978 <li><b>quote</b> Applies to all quotation mark classes</li>
1979 <li><b>quote_double</b> Double quotes <tt>"</tt></li>
1980 <li><b>quote_single</b> Single quotes <tt>'</tt></li>
1981 <li><b>quote_backtick</b> Backtick quotes <tt>`</tt></li>
1982 </ul>
1983 </dd>
1984  
1985 <dt><b><a name="cfg_SQLValidator"></a>$cfg[SQLValidator]['use']</b> boolean</dt>
1986 <dd>
1987 phpMyAdmin now supports use of the <a href="http://developer.mimer.com/validator/index.htm">Mimer SQL Validator</a> service,
1988 as originally published on
1989 <a href="http://developers.slashdot.org/article.pl?sid=02/02/19/1720246">Slashdot</a>.
1990 <br />
1991 For help in setting up your system to use the service, see the
1992 <a href="#faqsqlvalidator">FAQ #6.14</a>.
1993 </dd>
1994  
1995 <dt><b><a name="cfg_SQLValidator"></a>$cfg[SQLValidator]['username']</b> string<br />
1996 <b><a name="cfg_SQLValidator"></a>$cfg[SQLValidator]['password']</b> string</dt>
1997 <dd>
1998 The SOAP service allows you to login with <tt>anonymous</tt>
1999 and any password, so we use those by default. Instead, if
2000 you have an account with them, you can put your login details
2001 here, and it will be used in place of the anonymous login.
2002 </dd>
2003  
2004 <dt><b><a name="cfg_DBG_enable"></a>$cfg[DBG]['enable']</b> boolean</dt>
2005 <dd>
2006 <b>DEVELOPERS ONLY!</b><br />
2007 Enable the DBG extension for debugging phpMyAdmin. Required for profiling
2008 the code.
2009 <br />
2010 For help in setting up your system to this, see the
2011 <a href="#developersdbg">Developers</a> section.
2012 </dd>
2013  
2014 <dt><b><a name="cfg_DBG_profile_enable"></a>$cfg[DBG]['profile']['enable']</b> boolean</dt>
2015 <dd>
2016 <b>DEVELOPERS ONLY!</b><br />
2017 Enable profiling support for phpMyAdmin. This will append a chunk of data
2018 to the end of every page displayed in the main window with profiling
2019 statistics for that page.<br />
2020 You may need to increase the maximum execution time for this to
2021 complete successfully.
2022 </dd>
2023  
2024 <dt><b><a name="cfg_DBG_profile_threshold"></a>$cfg[DBG]['profile']['threshold']</b> float (units in milliseconds)</dt>
2025 <dd>
2026 <b>DEVELOPERS ONLY!</b><br />
2027 When profiling data is displayed, this variable controls the threshold of
2028 display for any profiling data, based on the average time each time has
2029 taken. If it is over the threshold it is displayed, otherwise it is not
2030 displayed. This takes a value in milliseconds. In most cases you don't need
2031 to edit this.
2032 </dd>
2033  
2034 <dt><b><a name="cfg_ColumnTypes"></a>$cfg[ColumnTypes] </b>array</dt>
2035 <dd>
2036 All possible types of a MySQL column. In most cases you don't need to
2037 edit this.
2038 </dd>
2039  
2040 <dt><b><a name="cfg_AttributeTypes"></a>$cfg[AttributeTypes] </b>array</dt>
2041 <dd>
2042 Possible attributes for fields. In most cases you don't need to edit
2043 this.
2044 </dd>
2045  
2046 <dt><b><a name="cfg_Functions"></a>$cfg[Functions] </b>array</dt>
2047 <dd>
2048 A list of functions MySQL supports. In most cases you don't need to
2049 edit this.
2050 </dd>
2051  
2052 <dt><b><a name="cfg_RestrictColumnTypes"></a>$cfg[RestrictColumnTypes] </b>array</dt>
2053 <dd>
2054 Mapping of column types to meta types used for preferring displayed
2055 functions. In most cases you don't need to edit this.
2056 </dd>
2057  
2058 <dt><b><a name="cfg_RestrictFunctions"></a>$cfg[RestrictFunctions] </b>array</dt>
2059 <dd>
2060 Functions preferred for column meta types as defined in
2061 <code>$cfg['RestrictColumnTypes']</code>. In most cases you don't need
2062 to edit this.
2063 </dd>
2064  
2065 <dt><b><a name="cfg_DefaultFunctions"></a>$cfg[DefaultFunctions] </b>array</dt>
2066 <dd>
2067 Functions selected by default when inserting/changing row, Functions
2068 are defined for meta types from
2069 <code>$cfg['RestrictColumnTypes']</code> and for
2070 <code>first_timestamp</code>, which is used for first timestamp column
2071 in table.
2072 </dd>
2073  
2074 <dt><b><a name="cfg_NumOperators"></a>$cfg[NumOperators] </b>array</dt>
2075 <dd>
2076 Operators available for search operations on numeric and date fields.
2077 </dd>
2078  
2079 <dt><b><a name="cfg_TextOperators"></a>$cfg[TextOperators] </b>array</dt>
2080 <dd>
2081 Operators available for search operations on character fields.
2082 Note that we put <code>LIKE</code> by default instead of
2083 <code>LIKE %...%</code>, to avoid unintended performance problems
2084 in case of huge tables.
2085 </dd>
2086  
2087 <dt><b><a name="cfg_EnumOperators"></a>$cfg[EnumOperators] </b>array</dt>
2088 <dd>
2089 Operators available for search operations on enum fields.
2090 </dd>
2091  
2092 <dt><b><a name="cfg_NullOperators"></a>$cfg[NullOperators] </b>array</dt>
2093 <dd>
2094 Additional operators available for search operations when the
2095 field can be null.
2096 </dd>
2097  
2098 </dl>
2099  
2100 <!-- TRANSFORMATIONS -->
2101 <a name="transformations"></a><br />
2102 <h2>Transformations</h2>
2103  
2104 <p>
2105 <a href="#transformationsintro">Introduction</a> &nbsp;-&nbsp;
2106 <a href="#transformationshowto">Usage</a> &nbsp;-&nbsp;
2107 <a href="#transformationsfiles">File structure</a>
2108 </p>
2109  
2110 <a name="transformationsintro"></a><br />
2111 <h3>[1. Introduction]</h3>
2112  
2113 <p>To enable transformations, you have to setup the <tt>column_info</tt> table and the proper
2114 directives. Please see the <a href="#config">Configuration section</a> on how to do so.</p>
2115 <br />
2116  
2117 <p>You can apply different transformations to the contents of each field. The
2118 transformation will take the content of each field and transform it with
2119 certain rules defined in the selected transformation.</p><br />
2120  
2121 <p>Say you have a field 'filename' which contains a filename. Normally you would see
2122 in phpMyAdmin only this filename. Using transformations you can transform that filename
2123 into a HTML link, so you can click inside of the phpMyAdmin structure on the field's
2124 link and will see the file displayed in a new browser window. Using transformation
2125 options you can also specify strings to append/prepend to a string or the format you
2126 want the output stored in.</p><br />
2127  
2128 <p>For a general overview of all available transformations and their options, you can
2129 consult your
2130 <i>&lt;www.your-host.com&gt;/&lt;your-install-dir&gt;/transformation_overview.php</i>
2131 installation.</p>
2132  
2133 <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>
2134  
2135 <a name="transformationshowto"></a><br />
2136 <h3>[2. Usage]</h3>
2137  
2138 <p>Go to your <i>tbl_properties_structure.php</i> page (i.e. reached through
2139 clicking on the 'Structure' link for a table). There click on
2140 &quot;Change&quot; (or change icon) and there you will see three new fields at
2141 the end of the line. They are called 'MIME-type', 'Browser transformation' and
2142 'Transformation options'.</p>
2143  
2144 <ul>
2145 <li>The field 'MIME-type' is a dropdown field. You have the options to leave that field
2146 empty or to use 'auto' [this feature is not yet available]. Please note that
2147 transformations are inactive as long as no MIME-type is selected.</li>
2148  
2149 <li>The field 'Browser transformation' is a drop-down field. You can choose from a
2150 hopefully growing amount of pre-defined transformations. See below for information on
2151 how to build your own transformation.<br />
2152  
2153 There are global transformations and mimetype-bound transformations. Global transformations
2154 can be used for any mimetype. They will take the mimetype, if necessary, into regard.
2155 Mimetype-bound transformations usually only operate on a certain mimetype. There are
2156 transformations which operate on the main mimetype (like 'image'), which will most likely
2157 take the subtype into regard, and those who only operate on a
2158 specific subtype (like 'image/jpeg').<br />
2159  
2160 You can use transformations on mimetypes for which the function was not defined for. There
2161 is no security check for you selected the right transformation, so take care of what the
2162 output will be like.</li>
2163  
2164 <li>The field 'Transformation options' is a free-type textfield. You have to enter
2165 transform-function specific options here. Usually the transforms can operate with default
2166 options, but it is generally a good idea to look up the overview to see which options are
2167 necessary.<br />
2168  
2169 Much like the ENUM/SET-Fields, you have to split up several options using the format
2170 'a','b','c',...(NOTE THE MISSING BLANKS). This is because internally the options will be
2171 parsed as an array, leaving the first value the first element in the array, and so
2172 forth.<br />
2173  
2174 If you want to specify a MIME character set you can define it in the transformation_options.
2175 You have to put that outside of the pre-defined options of the specific mime-transform,
2176 as the last value of the set. Use the format "'; charset=XXX'". If you use a transform,
2177 for which you can specify 2 options and you want to append a character set, enter "'first
2178 parameter','second parameter','charset=us-ascii'". You can, however use the defaults for
2179 the parameters: "'','','charset=us-ascii'".</li>
2180 </ul>
2181  
2182 <a name="transformationsfiles"></a><br />
2183 <h3>[3. File structure]</h3>
2184  
2185 <p>All mimetypes and their transformations are defined through single files in
2186 the directory 'libraries/transformations/'.</p><br />
2187  
2188 <p>They are stored in files to ease up customization and easy adding of new
2189 transformations.</p><br />
2190  
2191 <p>Because the user cannot enter own mimetypes, it is kept sure that transformations
2192 always work. It makes no sense to apply a transformation to a mimetype, the
2193 transform-function doesn't know to handle.</p><br />
2194  
2195 <p>One can, however, use empty mime-types and global transformations which should work
2196 for many mimetypes. You can also use transforms on a different mimetype they where built
2197 for, but pay attention to option usage as well as what the transformation does to your
2198 field.</p><br />
2199  
2200 <p>There is a basic file called '<i>global.inc.php</i>'. This function can be included by
2201 any other transform function and provides some basic functions.</p><br />
2202  
2203 <p>There are 5 possible file names:</p>
2204  
2205 <ol>
2206 <li>A mimetype+subtype transform:<br /><br />
2207  
2208 [mimetype]_[subtype]__[transform].inc.php<br /><br />
2209  
2210 Please not that mimetype and subtype are separated via '_', which shall not be
2211 contained in their names. The transform function/filename may contain only
2212 characters which cause no problems in the file system as well as the PHP function
2213 naming convention.<br /><br />
2214  
2215 The transform function will the be called 'PMA_transform_[mimetype]_[subtype]__[transform]()'.<br /><br />
2216  
2217 <b>Example:</b><br /><br />
2218  
2219 text_html__formatted.inc.php<br />
2220 PMA_transform_text_html__formatted()</li>
2221  
2222 <li>A mimetype (w/o subtype) transform:<br /><br />
2223  
2224 [mimetype]__[transform].inc.php<br /><br />
2225  
2226 Please note that there are no single '_' characters.
2227 The transform function/filename may contain only characters which cause no problems
2228 in the file system as well as the PHP function naming convention.<br /><br />
2229  
2230 The transform function will the be called 'PMA_transform_[mimetype]__[transform]()'.<br /><br />
2231  
2232 <b>Example:</b><br /><br />
2233  
2234 text__formatted.inc.php<br />
2235 PMA_transform_text__formatted()</li>
2236  
2237 <li>A mimetype+subtype without specific transform function<br /><br />
2238  
2239 [mimetype]_[subtype].inc.php<br /><br />
2240  
2241 Please note that there are no '__' characters in the filename. Do not use special
2242 characters in the filename causing problems with the file system.<br /><br />
2243  
2244 No transformation function is defined in the file itself.<br /><br />
2245  
2246 <b>Example:</b><br /><br />
2247  
2248 text_plain.inc.php<br />
2249 (No function)</li>
2250  
2251 <li>A mimetype (w/o subtype) without specific transform function<br /><br />
2252  
2253 [mimetype].inc.php<br /><br />
2254  
2255 Please note that there are no '_' characters in the filename. Do not use special
2256 characters in the filename causing problems with the file system.<br /><br />
2257  
2258 No transformation function is defined in the file itself.<br /><br />
2259  
2260 <b>Example:</b><br /><br />
2261  
2262 text.inc.php<br />
2263 (No function)</li>
2264  
2265 <li>A global transform function with no specific mimetype<br /><br />
2266  
2267 global__[transform].inc.php<br /><br />
2268  
2269 The transform function will the be called 'PMA_transform_global__[transform]()'.<br /><br />
2270  
2271 <b>Example:</b><br /><br />
2272  
2273 global__formatted<br />
2274 PMA_transform_global__formatted()</li>
2275 </ol>
2276  
2277 <br />
2278 <p>So generally use '_' to split up mimetype and subtype, and '__' to provide a
2279 transform function.</p><br />
2280  
2281 <p>All filenames containing no '__' in themselves are not shown as valid transform
2282 functions in the dropdown.</p><br />
2283  
2284 <p>Please see the libraries/transformations/TEMPLATE file for adding your own transform
2285 function. See the libraries/transformations/TEMPLATE_MIMETYPE for adding a mimetype
2286 without a transform function. Also note the introduction of a function description in
2287 the language files. For each function a $strTransformation_[filename without .inc.php]
2288 has to exist.</p><br />
2289  
2290 <p>You can use the template generator to generate new functions and entries in the
2291 language file.</p><br />
2292  
2293 <p>To create a new transform function please see libraries/transformations/template_generator.sh.
2294 To create a new, empty mimetype please see libraries/transformations/template_generator_mimetype.sh.</p><br />
2295  
2296 <p>A transform function always gets passed three variables:</p>
2297 <ol>
2298 <li><b>$buffer</b> - Contains the text inside of the column. This is the text, you want to transform.</li>
2299 <li><b>$options</b> - Contains any user-passed options to a transform function as an array.</li>
2300 <li><b>$meta</b> - Contains an object with field information to your column. The data is drawn from the output of the
2301 <a href="http://www.php.net/mysql_fetch_field">mysql_fetch_field()</a> function. This means, all object properties described
2302 on the <a href="http://www.php.net/mysql_fetch_field">manual page</a> are available in this variable and can be used to
2303 transform a field accordingly to unsigned/zerofill/not_null/... properties.<br />
2304 The $meta-&gt;mimetype variable contains the original MIME-type of the field (i.e. 'text/plain', 'image/jpeg' etc.)</li>
2305 </ol>
2306  
2307 <!-- FAQ -->
2308 <a name="faq"></a><br />
2309 <h2>FAQ - Frequently Asked Questions</h2>
2310  
2311 <p>
2312 <a href="#faqserver">Server</a> &nbsp;-&nbsp;
2313 <a href="#faqconfig">Configuration</a> &nbsp;-&nbsp;
2314 <a href="#faqlimitations">Limitations</a> &nbsp;-&nbsp;
2315 <a href="#faqmultiuser">Multi-user</a> &nbsp;-&nbsp;
2316 <a href="#faqbrowsers">Browsers</a> &nbsp;-&nbsp;
2317 <a href="#faqusing">Usage tips</a> &nbsp;-&nbsp;
2318 <a href="#faqproject">Project</a> &nbsp;-&nbsp;
2319 <a href="#faqsecurity">Security</a>
2320 </p>
2321  
2322 <p><br />
2323 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.
2324 </p>
2325  
2326 <a name="faqserver"></a><br />
2327 <h3>[1. Server]</h3>
2328  
2329 <a name="faq1_1"></a>
2330 <h4>
2331 [<a href="#faq1_1">1.1</a>] I'm running PHP 4+ and my server is crashing each time a specific
2332 action is required or phpMyAdmin sends a blank page or a page full of
2333 cryptic characters to my browser, what can I do?
2334 </h4>
2335 <p>
2336 There are some known PHP bugs with output buffering and compression.<br />
2337 Try to set the <tt>$cfg['OBGzip']</tt> directive to <tt>FALSE</tt> in your
2338 <i>config.inc.php</i> file and the
2339 <tt>zlib.output_compression</tt> directive to <tt>Off</tt> in your php
2340 configuration file.<br />
2341 Furthermore, we know about such problems connected to the release
2342 candidates of PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with
2343 MS Internet Explorer. Please upgrade to the release version PHP 4.2.0.
2344 </p>
2345  
2346 <a name="faq1_2"></a>
2347 <h4>
2348 [<a href="#faq1_2">1.2</a>] My Apache server crashes when using phpMyAdmin.
2349 </h4>
2350 <p>
2351 You should first try the latest versions of Apache (and possibly MySQL).
2352 <br />
2353 See also the <a href="#faq1_1">FAQ 1.1</a> entry about PHP bugs with output buffering.
2354 <br />
2355 If your server keeps crashing, please ask for help in the various
2356 Apache support groups.
2357 </p>
2358  
2359 <a name="faq1_3"></a>
2360 <h4>
2361 [<a href="#faq1_3">1.3</a>] I'm running phpMyAdmin with "cookie" authentication mode under
2362 PHP 4.2.0 or 4.2.1 loaded as an Apache 2+ module but can't enter the
2363 script: I'm always displayed the login screen.
2364 </h4>
2365 <p>
2366 This is a known PHP bug (see this
2367 <a href="http://bugs.php.net/bug.php?id=16626">bug report</a>) from the
2368 official PHP bug database. It means there is and won't be any phpMyAdmin
2369 fix against it because there is no way to code a fix.
2370 </p>
2371  
2372 <a name="faq1_4"></a>
2373 <h4>
2374 [<a href="#faq1_4">1.4</a>] Using phpMyAdmin on IIS, I'm displayed the error message:
2375 &quot;The specified CGI application misbehaved by not returning a
2376 complete set of HTTP headers...&quot;.
2377 </h4>
2378 <p>
2379 You just forgot to read the <i>install.txt</i> file from the php
2380 distribution. Have a look at the last message in this
2381 <a href="http://bugs.php.net/bug.php?id=12061">bug report</a> from the
2382 official PHP bug database.
2383 </p>
2384  
2385 <a name="faq1_5"></a>
2386 <h4>
2387 [<a href="#faq1_5">1.5</a>] Using phpMyAdmin on IIS, I'm facing crashes and/or many error
2388 messages with the HTTP or advanced authentication mode.
2389 </h4>
2390 <p>
2391 This is a known problem with the PHP ISAPI filter: it's not so stable.
2392 Please use instead the cookie authentication mode.
2393 </p>
2394  
2395 <a name="faq1_6"></a>
2396 <h4>
2397 [<a href="#faq1_6">1.6</a>] I can't use phpMyAdmin on PWS: nothing is displayed!</h4>
2398 <p>
2399 This seems to be a PWS bug. Filippo Simoncini found a workaround (at this
2400 time there is no better fix): remove or comment the <tt>DOCTYPE</tt>
2401 declarations (2 lines) from the scripts <i>libraries/header.inc.php</i>,
2402 <i>libraries/header_printview.inc.php</i>, <i>index.php</i>,
2403 <i>left.php</i> and <i>libraries/common.lib.php</i>.
2404 </p>
2405  
2406 <a name="faq1_7"></a>
2407 <h4>
2408 [<a href="#faq1_7">1.7</a>] How can I GZip or Bzip a dump or a CSV export? It does not seem to
2409 work.
2410 </h4>
2411 <p>
2412 These features are based on the <tt>gzencode()</tt> and
2413 <tt>bzcompress()</tt> PHP functions to be more independent of the platform
2414 (Unix/Windows, Safe Mode or not, and so on).
2415 So, you must have PHP4&nbsp;>=&nbsp;4.0.4 and Zlib/Bzip2 support
2416 (<tt>--with-zlib</tt> and <tt>--with-bz2</tt>).<br />
2417 We faced PHP crashes when trying to download a dump with MS Internet
2418 Explorer when phpMyAdmin is run with a release candidate of PHP 4.2.0. In
2419 this case you should switch to the release version of PHP 4.2.0.
2420 </p>
2421  
2422 <a name="faq1_8"></a>
2423 <h4>
2424 [<a href="#faq1_8">1.8</a>] I cannot insert a text file in a table, and I get an error about
2425 safe mode being in effect.
2426 </h4>
2427 <p>
2428 Your uploaded file is saved by PHP in the &quot;upload dir&quot;, as
2429 defined in <i>php.ini</i> by the variable <tt>upload_tmp_dir</tt> (usually
2430 the system default is <i>/tmp</i>).
2431 <br />
2432 We recommend the following setup for Apache servers running in safe mode,
2433 to enable uploads of files while being reasonably secure:
2434 </p>
2435 <ul>
2436 <li>create a separate directory for uploads:
2437 <tt>mkdir /tmp/php</tt></li>
2438 <li>give ownership to the Apache server's user.group:
2439 <tt>chown apache.apache /tmp/php</tt></li>
2440 <li>give proper permission: <tt>chmod 600 /tmp/php</tt></li>
2441 <li>put <tt>upload_tmp_dir = /tmp/php</tt> in <i>php.ini</i></li>
2442 <li>restart Apache</li>
2443 </ul>
2444  
2445 <a name="faq1_9"></a>
2446 <h4>
2447 [<a href="#faq1_9">1.9</a>] I'm having troubles when uploading files. In general file uploads
2448 don't work on my system and uploaded files have a <tt>Content-Type:</tt>
2449 header in the first line.
2450 </h4>
2451 <p>
2452 It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0
2453 and you updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't you?
2454 <br />
2455 So the problem is that this package has a serious bug that was corrected
2456 ages ago in PHP (2001-01-28: see
2457 <a href="http://www.php.net/bugs.php?id=8966">PHP's bug tracking system</a>
2458 for more details). The problem is that the bugged package is still
2459 available though it was corrected (see
2460 <a href="http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=24933">RedHat's BugZilla</a>
2461 for more details).
2462 <br />
2463 So please download
2464 <a href="http://www.redhat.com/swr/i386/php-4.0.4pl1-9.i386.html">the fixed package (4.0.4pl1-9)</a>
2465 and the problem should go away.
2466 <br />
2467 And that fixes the \r\n problem with file uploads!
2468 </p>
2469  
2470 <a name="faq1_10"></a>
2471 <h4>
2472 [<a href="#faq1_10">1.10</a>] I'm having troubles when uploading files with phpMyAdmin running
2473 on a secure server. My browser is Internet Explorer and I'm using the
2474 Apache server.
2475 </h4>
2476 <p>
2477 As suggested by &quot;Rob M&quot; in the phpWizard forum, add this line to
2478 your <i>httpd.conf</i>:<br />
2479 &nbsp;&nbsp;&nbsp;&nbsp;<tt>SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown</tt><br />
2480 It seems to clear up many problems between Internet Explorer and SSL.
2481 </p>
2482  
2483 <a name="faq1_11"></a>
2484 <h4>
2485 [<a href="#faq1_11">1.11</a>] I get an 'open_basedir restriction' while uploading a file from
2486 the query box.
2487 </h4>
2488 <p>
2489 Since version 2.2.4, phpMyAdmin supports servers with open_basedir
2490 restrictions. Assuming that the restriction allows you to open files in the
2491 current directory ('.'), all you have to do is create a 'tmp' directory
2492 under the phpMyAdmin install directory, with permissions 777 and the same
2493 owner as the owner of your phpMyAdmin directory. The uploaded files will
2494 be moved there, and after execution of your SQL commands, removed.
2495 </p>
2496  
2497 <a name="faq1_12"></a>
2498 <h4>
2499 [<a href="#faq1_12">1.12</a>] I have lost my MySQL root password, what can I do?
2500 </h4>
2501 <p>
2502 The MySQL manual explains how to
2503 <a href="http://www.mysql.com/doc/R/e/Resetting_permissions.html">
2504 reset the permissions</a>.
2505 </p>
2506  
2507 <a name="faq1_13"></a>
2508 <h4>
2509 [<a href="#faq1_13">1.13</a>] I get an error 'No SQL query' when trying to execute a bookmark.
2510 </h4>
2511 <p>
2512 If PHP does not have read/write access to its <tt>upload_tmp_dir</tt>, it
2513 cannot access the uploaded query.
2514 </p>
2515  
2516 <a name="faq1_14"></a>
2517 <h4>
2518 [<a href="#faq1_14">1.14</a>] I get an error 'No SQL query' when trying to submit a query from
2519 the convenient text area.
2520 </h4>
2521 <p>
2522 Check the <tt>post_max_size</tt> directive from your PHP configuration file
2523 and try to increase it.
2524 </p>
2525  
2526 <a name="faq1_15"></a>
2527 <h4>
2528 [<a href="#faq1_15">1.15</a>] I have problems with <i>mysql.user</i> field names.
2529 </h4>
2530 <p>
2531 In older MySQL versions, the <tt>User</tt> and <tt>Password</tt> fields
2532 were named <tt>user</tt> and <tt>password</tt>. Please modify your field
2533 names to align with current standards.
2534 </p>
2535  
2536 <a name="faq1_16"></a>
2537 <h4>
2538 [<a href="#faq1_16">1.16</a>] I cannot upload big dump files (memory, http or timeout problems).
2539 </h4>
2540 <p> Starting with version 2.7.0, the import engine has been re&#8211;written and these
2541 problems should not occur. If possible, upgrade your phpMyAdmin to the latest version
2542 to take advantage of the new import features.
2543 </p>
2544 <p>
2545 The first things to check (or ask your host provider to check) are the
2546 values of <tt>upload_max_filesize</tt>, <tt>memory_limit</tt> and
2547 <tt>post_max_size</tt> in the <i>php.ini</i> configuration file.
2548 All of these three settings limit the maximum size of data that can be
2549 submitted and handled by PHP. One user also said that post_max_size
2550 and memory_limit need to be larger than upload_max_filesize.
2551 <br /> <br />
2552 There exist several workarounds if your upload is too big or your
2553 hosting provider is unwilling to change the settings:
2554 </p>
2555 <ul>
2556 <li>Look at the <tt>$cfg['UploadDir']</tt> feature. This allows one to
2557 upload a file to the server via scp, ftp, or your favorite file transfer
2558 method. PhpMyAdmin is then able to import the files from the temporary
2559 directory. More information is available in the <a href="#config">Configuration
2560 section</a> of this document.</li>
2561 <li>Using a utility (such as <a href="http://www.ozerov.de/bigdump.php">
2562 BigDump</a>) to split the files before uploading. We cannot support this
2563 or any third party applications, but are aware of users having success
2564 with it.</li>
2565 <li>If you have shell (command line) access, use MySQL to import the files
2566 directly. You can do this by issuing the &quot;source&quot; command from
2567 within MySQL: <tt>source <i>filename.sql</i></tt>.</li>
2568 </ul>
2569  
2570 <a name="faqmysqlversions"></a>
2571 <h4>
2572 [<a href="#faqmysqlversions">1.17</a>] Which MySQL versions does phpMyAdmin support?
2573 </h4>
2574 <p>
2575 All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are
2576 fully supported. Please note that the older your MySQL version is, the more
2577 limitations you will have to face.
2578 <br />
2579 phpMyAdmin may connect to your MySQL server using php's classic
2580 <a href="http://php.net/mysql">MySQL extension</a> as well as the
2581 <a href="http://php.net/mysqli">improved MySQL extension (MySQLi)</a> that
2582 is available in php 5.0.
2583 <br />
2584 Either way, the developers of both extensions recommend to use the classic
2585 extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.
2586 <br />
2587 When compiling php, we strongly recommend that you manually link the MySQL
2588 extension of your choice to a MySQL client library of at least the same
2589 minor version since the one that is bundled with some php distributions is
2590 rather old and might cause problems (see also FAQ 1.17a).
2591 If your webserver is running on a windows system, you might want to try
2592 MySQL's
2593 <a href="http://dev.mysql.com/downloads/connector/php/">Connector/PHP</a>
2594 instead of the MySQL / MySQLi extensions that are bundled with the official
2595 php Win32 builds.
2596 <br />
2597 MySQL&nbsp;5.1 is not yet supported.
2598 </p>
2599  
2600 <a name="faq1_17a"></a>
2601 <h4>
2602 [<a href="#faq1_17a">1.17a</a>] I cannot connect to the MySQL server. It always returns the error
2603 message, &quot;Client does not support authentication protocol requested
2604 by server; consider upgrading MySQL client&quot;
2605 </h4>
2606 <p>
2607 You tried to access MySQL with an old MySQL client library. The version of
2608 your MySQL client library can be checked in your phpinfo() output.
2609 In general, it should have at least the same minor version as your server
2610 - as mentioned in FAQ 1.17.
2611 <br /><br />
2612 This problem is generally caused by using MySQL version 4.1 or newer. MySQL
2613 changed the authentication hash and your PHP is trying to use the old method.
2614 The proper solution is to use the <a href="http://www.php.net/mysqli">mysqli extension</a>
2615 with the proper client library to match your MySQL installation. Your
2616 chosen extension is specified in <tt>$cfg['Servers'][$i]['extension']</tt>.
2617 More information (and several workarounds) are located in the
2618 <a href="http://dev.mysql.com/doc/mysql/en/old-client.html">MySQL Documentation</a>.
2619 </p>
2620  
2621 <a name="faq1_18"></a>
2622 <h4>
2623 [<a href="#faq1_18">1.18</a>] I'm running MySQL&nbsp;&lt;=&nbsp;4.0.1 having
2624 <tt>lower_case_table_names</tt> set to 1. If I create a new table with a
2625 capital letter in its name it is changed to lowercase as it should. But
2626 if I try to DROP this table MySQL is unable to find the corresponding
2627 file.
2628 </h4>
2629 <p>
2630 This is a bug of MySQL&nbsp;&lt;=&nbsp;4.0.1. Please upgrade to at least
2631 MySQL&nbsp;4.0.2 or turn off your <tt>lower_case_table_names</tt>
2632 directive.
2633 </p>
2634  
2635 <a name="faq1_19"></a>
2636 <h4>
2637 [<a href="#faq1_19">1.19</a>] I can't run the &quot;display relations&quot; feature because the
2638 script seems not to know the font face I'm using!
2639 </h4>
2640 <p>
2641 The &quot;FPDF&quot; library we're using for this feature requires some
2642 special files to use font faces.<br />
2643 Please refers to the
2644 <a href="http://www.fpdf.org/" target="_blank">FPDF manual</a> to build
2645 these files.
2646 </p>
2647  
2648 <a name="faqmysql"></a>
2649 <h4>
2650 [<a href="#faqmysql">1.20</a>] I receive the error &quot;cannot load MySQL extension, please
2651 check PHP Configuration&quot;.
2652 </h4>
2653 <p>
2654 To connect to a MySQL server, PHP needs a set of MySQL functions called
2655 &quot;MySQL extension&quot;.
2656 This extension may be part of the PHP distribution (compiled-in), otherwise
2657 it needs to be loaded dynamically. Its name is probably <i>mysql.so</i> or
2658 <i>php_mysql.dll</i>. phpMyAdmin tried to load the extension but failed.
2659 <br /><br />
2660 Usually, the problem is solved by installing a software package called
2661 &quot;PHP-MySQL&quot; or something similar.
2662 </p>
2663  
2664 <a name="faq1_21"></a>
2665 <h4>
2666 [<a href="#faq1_21">1.21</a>] I am running the CGI version of PHP under Unix, and I cannot
2667 login using cookie auth.
2668 </h4>
2669 <p>
2670 In <i>php.ini</i>, set <tt>mysql.max_links</tt> higher than 1.
2671 </p>
2672  
2673 <a name="faq1_22"></a>
2674 <h4>
2675 [<a href="#faq1_22">1.22</a>] I don't see the &quot;Location of text file&quot; field, so
2676 I cannot upload.
2677 </h4>
2678 <p>
2679 This is most likely because in <i>php.ini</i>, your <tt>file_uploads</tt>
2680 parameter is not set to &quot;on&quot;.
2681 </p>
2682  
2683 <a name="faq1_23"></a>
2684 <h4>
2685 [<a href="#faq1_23">1.23</a>] I'm running MySQL on a Win32 machine. Each time I create a new
2686 table the table and field names are changed to lowercase!
2687 </h4>
2688 <p>
2689 This happens because the MySQL directive <tt>lower_case_table_names</tt>
2690 defaults to 1 (<tt>ON</tt>) in the Win32 version of MySQL. You can change
2691 this behavior by simply changing the directive to 0 (<tt>OFF</tt>):<br />
2692 Just edit your <tt>my.ini</tt> file that should be located in your Windows
2693 directory and add the following line to the group [mysqld]:<br />
2694 <tt>set-variable = lower_case_table_names=0</tt><br />
2695 Next, save the file and restart the MySQL service. You can always check the
2696 value of this directive using the query<br />
2697 <tt>SHOW VARIABLES LIKE 'lower_case_table_names';</tt>
2698 </p>
2699  
2700 <a name="faq1_24"></a>
2701 <h4>
2702 [<a href="#faq1_24">1.24</a>] Some characters are being truncated in my queries, or I get
2703 characters randomly added. I am running PHP 4.2.3.
2704 </h4>
2705 <p>
2706 This is a
2707 <a href="http://bugs.php.net/bug.php?id=19404">PHP 4.2.3 bug</a>.
2708 </p>
2709  
2710 <a name="faq1_25"></a>
2711 <h4>
2712 [<a href="#faq1_25">1.25</a>] I am running Apache with mod_gzip-1.3.26.1a on Windows XP,
2713 and I get problems, such as undefined variables when I run a SQL query.
2714 </h4>
2715 <p>
2716 A tip from Jose Fandos: put a comment on the following two lines
2717 in httpd.conf, like this:<br />
2718 <tt># mod_gzip_item_include file \.php$</tt><br />
2719 <tt># mod_gzip_item_include mime "application/x-httpd-php.*"</tt><br />
2720 as this version of mod_gzip on Apache (Windows) has problems handling
2721 PHP scripts. Of course you have to restart Apache.
2722 </p>
2723  
2724 <a name="faq1_26"></a>
2725 <h4>
2726 [<a href="#faq1_26">1.26</a>] I just installed phpMyAdmin in my document root of IIS but
2727 I get the error &quot;No input file specified&quot; when trying to
2728 run phpMyAdmin.
2729 </h4>
2730 <p>
2731 This is a permission problem. Right-click on the phpmyadmin folder
2732 and choose properties. Under the tab Security, click on &quot;Add&quot;
2733 and select the user &quot;IUSR_machine&quot; from the list. Now set his
2734 permissions and it should work.
2735 </p>
2736  
2737 <a name="faq1_27"></a>
2738 <h4>
2739 [<a href="#faq1_27">1.27</a>] I get empty page when I want to view huge page (eg.
2740 db_details_structure.php with plenty of tables).
2741 </h4>
2742 <p>
2743 This is a <a href="http://bugs.php.net/21079">PHP bug</a> that occur when
2744 GZIP output buffering is enabled. If you turn off it (by <code>$cfg['OBGzip']
2745 = FALSE</code> in <i>config.inc.php</i>), it should work. This bug will be
2746 fixed in PHP 5.0.0.
2747 </p>
2748  
2749 <a name="faq1_28"></a>
2750 <h4>
2751 [<a href="#faq1_28">1.28</a>] My MySQL server sometimes refuses queries and returns the message
2752 'Errorcode: 13'. What does this mean?
2753 </h4>
2754 <p>
2755 This can happen due to a MySQL bug when having database / table names with
2756 upper case characters although <tt>lower_case_table_names</tt> is set to 1.
2757 To fix this, turn off this directive, convert all database and table names
2758 to lower case and turn it on again. Alternatively, there's a bug-fix
2759 available starting with MySQL&nbsp;3.23.56 / 4.0.11-gamma.
2760 </p>
2761  
2762 <a name="faq1_29"></a>
2763 <h4>
2764 [<a href="#faq1_29">1.29</a>] When I create a table or modify a field, I get an error
2765 and the fields are duplicated.
2766 </h4>
2767 <p>
2768 It is possible to configure Apache in such a way that PHP has problems
2769 interpreting .php files.
2770 <br /><br />
2771 The problems occur when two different (and conflicting) set of directives
2772 are used:
2773 <br /><br />
2774 <tt>
2775 SetOutputFilter PHP<br />
2776 SetInputFilter PHP<br />
2777 </tt>
2778 &amp;
2779 <br />
2780 <tt>
2781 AddType application/x-httpd-php .php
2782 </tt>
2783 <br /><br />
2784 In the case we saw, one set of directives was in
2785 <tt>/etc/httpd/conf/httpd.conf</tt>, while
2786 the other set was in <tt>/etc/httpd/conf/addon-modules/php.conf</tt>.<br />
2787 The recommended way is with <tt>AddType</tt>, so just comment out
2788 the first set of lines and restart Apache:
2789 <br /><br />
2790 <tt><b>
2791 #SetOutputFilter PHP<br />
2792 #SetInputFilter PHP<br /></b>
2793 </tt>
2794 </p>
2795  
2796 <a name="faq1_30"></a>
2797 <h4>
2798 [<a href="#faq1_30">1.30</a>] I get the error &quot;left.php: Missing hash&quot;.
2799 </h4>
2800 <p>
2801 This problem is known to happen when the server is running Turck MMCache
2802 but upgrading MMCache to version 2.3.21 solves the problem.
2803 </p>
2804  
2805 <a name="faq1_31"></a>
2806 <h4>
2807 [<a href="#faq1_31">1.31</a>] Does phpMyAdmin support php5?
2808 </h4>
2809 <p>
2810 Yes.
2811 <br />
2812 However, phpMyAdmin needs to be backwards compatible to php4. This is why
2813 phpMyAdmin disables the <tt>E_STRICT</tt> error_level in
2814 <tt>error_reporting</tt> settings.
2815 </p>
2816  
2817 <a name="faq1_32"></a>
2818 <h4>
2819 [<a href="#faq1_32">1.32</a>] Can I use HTTP authentication with IIS?
2820 </h4>
2821 <p>
2822 Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI
2823 mode under IIS 5.1.</p>
2824 <ol>
2825 <li>In your <tt>php.ini</tt> file, set <tt>cgi.rfc2616_headers = 0</tt></li>
2826  
2827 <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>
2828  
2829 <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>
2830 </ol>
2831  
2832 <a name="faq1_33"></a>
2833 <h4>
2834 [<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?
2835 </h4>
2836 <p>
2837 Yes. This problem affects phpMyAdmin (&quot;Call to undefined function pma_reloadnavigation&quot;), so upgrade your PHP to the next version.
2838 </p>
2839  
2840 <a name="faq1_34"></a>
2841 <h4>
2842 [<a href="#faq1_34">1.34</a>] Can I access directly to database or table pages?
2843 </h4>
2844 <p>
2845 Yes. Out of the box, you can use URLs like
2846 http://server/phpMyAdmin/index.php?db=database&amp;table=table&amp;target=script.
2847 Table and script parts are optional. If you want
2848 http://server/phpMyAdmin/database[/table][/script] URLs, you need to do
2849 some configuration. Following lines apply only for <a
2850 href="http://httpd.apache.org">Apache</a> web server. First make sure,
2851 that you have enabled some features within global configuration. You need
2852 <code>Options FollowSymLinks</code> and <code>AllowOverride
2853 FileInfo</code> enabled for directory where phpMyAdmin is installed and
2854 you need mod_rewrite to be enabled. Then you just need to create following
2855 <code>.htaccess</code> file in root folder of phpMyAdmin installation
2856 (don't forget to change directory name inside of it):
2857 </p>
2858  
2859 <pre>
2860 RewriteEngine On
2861 RewriteBase /path_to_phpMyAdmin
2862 RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&amp;table=$2&amp;target=$3 [R]
2863 RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&amp;target=$2 [R]
2864 RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&amp;table=$2 [R]
2865 RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
2866 </pre>
2867  
2868 <a name="faq1_35"></a>
2869 <h4>
2870 [<a href="#faq1_35">1.35</a>] Can I use HTTP authentication with Apache CGI?
2871 </h4>
2872 <p>
2873 Yes. However you need to pass authentication variable to CGI using
2874 following rewrite rule:
2875 </p>
2876 <pre>
2877 RewriteEngine On
2878 RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
2879 </pre>
2880  
2881 <a name="faq1_36"></a>
2882 <h4>
2883 [<a href="#faq1_36">1.36</a>] I get an error &quot;500 Internal Server
2884 Error&quot;.
2885 </h4>
2886 <p>
2887 There can be many explanations to this and a look at your server's
2888 error log file might give a clue.
2889 </p>
2890  
2891 <a name="faqconfig"></a><br />
2892 <h3>[2. Configuration]</h3>
2893  
2894 <a name="faq2_1"></a>
2895 <h4>
2896 [<a href="#faq2_1">2.1</a>] The error message &quot;Warning: Cannot add header information -
2897 headers already sent by ...&quot; is displayed, what's the problem?
2898 </h4>
2899 <p>
2900 Edit your <i>config.inc.php</i> file and ensure there is nothing
2901 (I.E. no blank lines, no spaces, no characters...) neither before the
2902 <tt>&lt;?php</tt> tag at the beginning, neither after the <tt>?&gt;</tt>
2903 tag at the end.
2904 </p>
2905  
2906 <a name="faq2_2"></a>
2907 <h4>
2908 [<a href="#faq2_2">2.2</a>] phpMyAdmin can't connect to MySQL. What's wrong?
2909 </h4>
2910 <p>
2911 Either there is an error with your PHP setup or your username/password is
2912 wrong. Try to make a small script which uses mysql_connect and see if it
2913 works. If it doesn't, it may be you haven't even compiled MySQL support
2914 into PHP.
2915 </p>
2916  
2917 <a name="faq2_3"></a>
2918 <h4>
2919 [<a href="#faq2_3">2.3</a>] The error message &quot;Warning: MySQL Connection Failed: Can't
2920 connect to local MySQL server through socket '/tmp/mysql.sock'
2921 (111)...&quot; is displayed. What can I do?
2922 </h4>
2923 <p><br />
2924 For RedHat users, Harald Legner suggests this on the mailing list:
2925 <br /><br />
2926 On my RedHat-Box the socket of MySQL is <i>/var/lib/mysql/mysql.sock</i>.
2927 In your <i>php.ini</i> you will find a line
2928 <br />
2929 &nbsp;&nbsp;&nbsp;&nbsp;<tt>mysql.default_socket = /tmp/mysql.sock</tt>
2930 <br />
2931 change it to
2932 <br />
2933 &nbsp;&nbsp;&nbsp;&nbsp;<tt>mysql.default_socket = /var/lib/mysql/mysql.sock</tt>
2934 <br />
2935 Then restart apache and it will work.
2936 <br /><br />
2937 Here is a fix suggested by Brad Ummer:
2938 </p>
2939 <ul>
2940 <li>
2941 First, you need to determine what socket is being used by MySQL.
2942 <br />
2943 To do this, telnet to your server and go to the MySQL bin directory. In
2944 this directory there should be a file named <i>mysqladmin</i>. Type
2945 <tt>./mysqladmin variables</tt>, and this should give you a bunch of
2946 info about your MySQL server, including the socket
2947 (<i>/tmp/mysql.sock</i>, for example).
2948 </li>
2949 <li>
2950 Then, you need to tell PHP to use this socket.<br /> To do this in
2951 phpMyAdmin, you need to complete the socket information in the
2952 <i>config.inc.php</i>.<br />
2953 For example:
2954 <tt>$cfg['Servers'][$i]['socket']&nbsp;=&nbsp;'/tmp/mysql.sock';</tt><br /><br />
2955 Please also make sure that the permissions of this file allow to be readable
2956 by your webserver (i.e. '0755').
2957 </li>
2958 </ul>
2959 <p>
2960 Have also a look at the
2961 <a href="http://www.mysql.com/doc/C/a/Can_not_connect_to_server.html" target="_blank">
2962 corresponding section of the MySQL documentation</a>.
2963 </p>
2964  
2965 <a name="faq2_4"></a>
2966 <h4>
2967 [<a href="#faq2_4">2.4</a>] Nothing is displayed by my browser when I try to run phpMyAdmin,
2968 what can I do?
2969 </h4>
2970 <p>
2971 Try to set the <tt>$cfg['OBGZip']</tt> directive to <tt>FALSE</tt> in the
2972 phpMyAdmin configuration file. It helps sometime.<br />
2973 Also have a look at your PHP version number: if it contains
2974 &quot;4.0b...&quot; it means you're running a beta version of PHP. That's
2975 not a so good idea, please upgrade to a plain revision.
2976 </p>
2977  
2978 <a name="faq2_5"></a>
2979 <h4>
2980 [<a href="#faq2_5">2.5</a>] Each time I want to insert or change a record or drop a database
2981 or a table, an error 404 (page not found) is displayed or, with HTTP or
2982 cookie authentication, I'm asked to login again. What's wrong?
2983 </h4>
2984 <p>
2985 Check the value you set for the <tt>$cfg['PmaAbsoluteUri']</tt> directive
2986 in the phpMyAdmin configuration file.
2987 </p>
2988  
2989 <a name="faq2_6"></a>
2990 <h4>
2991 [<a href="#faq2_6">2.6</a>] I get an &quot;Access denied for user: 'root@localhost' (Using
2992 password: YES)&quot;-error when trying to access a MySQL-Server on a
2993 host which is port-forwarded for my localhost.
2994 </h4>
2995 <p>
2996 When you are using a port on your localhost, which you redirect via
2997 port-forwarding to another host, MySQL is not resolving the localhost
2998 as expected.<br />
2999 Erik Wasser explains: The solution is: if your host is &quot;localhost&quot;
3000 MySQL (the commandline tool 'mysql' as well) always tries to use the socket
3001 connection for speeding up things. And that doesn't work in this configuration
3002 with port forwarding.<br />
3003 If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the
3004 TCP connection.
3005 </p>
3006  
3007 <a name="faqthemes"></a>
3008 <h4>
3009 [<a href="#faqthemes">2.7</a>] Using and creating themes
3010 </h4>
3011 <p>
3012 Themes are configured with <tt>$cfg['ThemePath']</tt>,
3013 <tt>$cfg['ThemeManager']</tt> and <tt>$cfg['ThemeDefault']</tt>.<br />
3014 <br />
3015 Under <tt>$cfg['ThemePath']</tt>, you should not delete the directory
3016 &quot;original&quot; or its underlying structure, because this is
3017 the system theme used by phpMyAdmin. &quot;original&quot; contains all
3018 images and styles, for backwards compatibility and for all themes that
3019 would not include images or css-files.<br />
3020 <br />
3021 If <tt>$cfg['ThemeManager']</tt> is enabled, you can select your
3022 favorite theme on the main page. Your selected theme will be stored
3023 in a cookie.<br />
3024 <br />
3025 </p>
3026 <p>
3027 To create a theme:
3028 </p>
3029 <ul>
3030 <li>make a new subdirectory (for example &quot;your_theme_name&quot;) under <tt>$cfg['ThemePath']</tt> (by default <tt>themes</tt>)</li>
3031 <li>copy the files and directories from &quot;original&quot; to &quot;your_theme_name&quot;</li>
3032 <li>edit the css-files in &quot;your_theme_name/css&quot;</li>
3033 <li>put your new images in &quot;your_theme_name/img&quot;</li>
3034 <li>edit <tt>layout.inc.php</tt> in &quot;your_theme_name&quot;</li>
3035 <li>edit <tt>info.inc.php</tt> in &quot;your_theme_name&quot; to
3036 contain your chosen theme name, that will be visible in user interface</li>
3037 <li>make a new screenshot of your theme and save it under &quot;your_theme_name/screen.png&quot;</li>
3038 </ul>
3039  
3040 <p>
3041 In theme directory there is file <tt>info.inc.php</tt> which contains
3042 theme verbose name, theme generation and theme version. These versions and
3043 generations are enumerated from 1 and do not have any direct dependence on
3044 phpMyAdmin version. Themes within same generation should be backwards
3045 compatible - theme with version 2 should work in phpMyAdmin requiring
3046 version 1. Themes with different generation are incompatible.
3047 </p>
3048 <p>
3049 If you do not want to use your own symbols and buttons, remove the
3050 directory &quot;img&quot; in &quot;your_theme_name&quot;. phpMyAdmin will
3051 use the default icons and buttons (from the system-theme &quot;original&quot;).
3052 </p>
3053  
3054 <a name="faqmissingparameters"></a>
3055 <h4>
3056 [<a href="#faqmissingparameters">2.8</a>] I get &quot;Missing parameters&quot; errors, what can I do?
3057 </h4>
3058 <p>
3059 Here are a few points to check:</p>
3060 <ul>
3061 <li>
3062 In <tt>config.inc.php</tt>, try to leave the
3063 <tt>$cfg['PmaAbsoluteUri']</tt>directive empty. See also FAQ 4.7.
3064 </li>
3065 <li>
3066 Maybe you have a broken PHP installation or you need to upgrade
3067 your Zend Optimizer. See
3068 <a href="http://bugs.php.net/bug.php?id=31134">
3069 http://bugs.php.net/bug.php?id=31134</a>.
3070 </li>
3071 <li>
3072 If you are using Hardened PHP with the ini directive <tt>varfilter.max_request_variables</tt>
3073 set to the default (200) or another low value, you could get this
3074 error if your table has a high number of columns. Adjust this setting
3075 accordingly. (Thanks to Klaus Dorninger for the hint).
3076 </li>
3077 <li>
3078 In the <tt>php.ini</tt> directive <tt>arg_separator.input</tt>, a value
3079 of &quot;;&quot; will cause this error. Replace it with &quot;&amp;;&quot;.
3080 </li>
3081 </ul>
3082  
3083 <a name="faqlimitations"></a><br />
3084 <h3>[3. Known limitations]</h3>
3085  
3086 <a name="login_bug"></a>
3087 <h4>
3088 [<a href="#login_bug">3.1</a>] When using HTTP authentication, an user who logged out can not
3089 relogin in with the same nick.
3090 </h4>
3091 <p>
3092 This is related to the authentication mechanism (protocol) used by
3093 phpMyAdmin. To bypass this problem: just close all the opened
3094 browser windows and then go back to phpMyAdmin. You should be able to
3095 log in again.
3096 </p>
3097  
3098 <a name="faq3_2"></a>
3099 <h4>
3100 [<a href="#faq3_2">3.2</a>] When dumping a large table in compressed mode, I get a memory
3101 limit error or a time limit error.
3102 </h4>
3103 <p>
3104 Compressed dumps are built in memory and because of this are limited to
3105 php's memory limit. For GZip/BZip2 exports this can be overcome since
3106 2.5.4 using <tt>$cfg['CompressOnFly']</tt> (enabled by default). Zip
3107 exports can not be handled this way, so if you need Zip files for larger
3108 dump, you have to use another way.
3109 </p>
3110  
3111 <a name="faq3_3"></a>
3112 <h4>
3113 [<a href="#faq3_3">3.3</a>] With InnoDB tables, I lose foreign key relationships when I rename
3114 or alter a table.
3115 </h4>
3116 <p>
3117 This seems to be a InnoDB bug (fixed in MySQL 3.23.50?).
3118 </p>
3119  
3120 <a name="faq3_4"></a>
3121 <h4>
3122 [<a href="#faq3_4">3.4</a>] I am unable to import dumps I created with the mysqldump tool
3123 bundled with the MySQL server distribution.
3124 </h4>
3125 <p>
3126 The problem is that mysqldump creates invalid comments like this:
3127 </p>
3128  
3129 <pre>
3130 -- MySQL dump 8.22
3131 --
3132 -- Host: localhost Database: database
3133 ---------------------------------------------------------
3134 -- Server version 3.23.54
3135 </pre>
3136 <p>
3137 The invalid part of the code is the horizontal line made of dashes that
3138 appears once in every dump created with mysqldump. If you want to run your
3139 dump you have to turn it into valid MySQL. This means, you have to add a
3140 whitespace after the first two dashes of the line or add a # before it:
3141 <br />
3142 <code>
3143 -- -------------------------------------------------------<br />
3144 </code>
3145 or<br />
3146 <code>
3147 #---------------------------------------------------------
3148 </code>
3149 </p>
3150  
3151 <a name="faq3_5"></a>
3152 <h4>
3153 [<a href="#faq3_5">3.5</a>] When using nested folders ($cfg['LeftFrameTableSeparator']) there
3154 are some multiple hierarchies displayed in a wrong manner?!
3155 </h4>
3156 <p>
3157 Please note that you should not use the separating string multiple times
3158 without any characters between them, or at the beginning/end of your table
3159 name. If you have to, think about using another TableSeparator or disabling
3160 that feature
3161 </p>
3162  
3163 <a name="faq3_6"></a>
3164 <h4>
3165 [<a href="#faq3_6">3.6</a>] What is currently not supported in phpMyAdmin about InnoDB?
3166 </h4>
3167 <p>
3168 In Relation view, being able to choose a table in another database,
3169 or having more than one index field in the foreign key.<br /><br/>
3170 In Query-by-example (Query), automatic generation of the query
3171 LEFT JOIN from the foreign table.<br /><br/>
3172 In PDF schema editing, automatic layout.
3173 </p>
3174  
3175 <a name="faq3_7"></a>
3176 <h4>
3177 [<a href="#faq3_7">3.7</a>] I have table with many (100+) fields and when I try to browse table
3178 I get series of errors like &quot;Warning: unable to parse url&quot;. How
3179 can this be fixed?
3180 </h4>
3181 <p>
3182 Your table neither have a primary key nor an unique one, so we must use a
3183 long expression to identify this row. This causes problems to parse_url
3184 function. The workaround is to create a primary or unique key.
3185 <br />
3186 </p>
3187  
3188 <a name="faq3_8"></a>
3189 <h4>
3190 [<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!
3191 </h4>
3192 <p>
3193 Due to a surrounding form-container (for multi-row delete checkboxes), no nested forms can be put inside the table where
3194 phpMyAdmin displays the results. You can, however, use any form inside of a table if keep the parent form-container with
3195 the target to tbl_row_delete.php and just put your own input-elements inside. If you use a custom submit input field, the
3196 form will submit itself to the displaying page again, where you can validate the $HTTP_POST_VARS in a transformation.
3197  
3198 For a tutorial on how to effectively use transformations, see our <a href="http://www.phpmyadmin.net/home_page/docs.php">Link section</a>
3199 on the official phpMyAdmin-homepage.
3200 </p>
3201  
3202 <a name="faq3_9"></a>
3203 <h4>
3204 [<a href="#faq3_9">3.9</a>] I get error messages when using "--sql_mode=ANSI" for the MySQL server
3205 </h4>
3206 <p>
3207 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&amp;aid=816858&amp;group_id=23067&amp;atid=377408">#816858</a>
3208 </p>
3209  
3210 <a name="faq3_10"></a>
3211 <h4>
3212 [<a href="#faq3_10">3.10</a>] Homonyms and no primary key: When the results of a SELECT display
3213 more that one column with the same value
3214 (for example <tt>SELECT lastname from employees where firstname like 'A%'</tt> and two &quot;Smith&quot; values are displayed),
3215 if I click Edit I cannot be sure that I am editing the intended row.
3216 </h4>
3217 <p>
3218 Please make sure that your table has a primary key, so that phpMyAdmin
3219 can use it for the Edit and Delete links.
3220 </p>
3221  
3222 <a name="faq3_11"></a>
3223 <h4>
3224 [<a href="#faq3_11">3.11</a>] The number of records for InnoDB tables is not correct.
3225 </h4>
3226 <p>
3227 phpMyAdmin uses a quick method to get the row count, and this method
3228 only returns an approximate count in the case of InnoDB tables. See
3229 <tt>$cfg['MaxExactCount']</tt> for a way to modify those results, but
3230 this could have a serious impact on performance.
3231 </p>
3232  
3233 <a name="faq3_12"></a>
3234 <h4>
3235 [<a href="#faq3_12">3.12</a>] What are the phpMyAdmin limitations for MySQL 3?
3236 </h4>
3237 <p>
3238 The number of records in queries containing COUNT and GROUP BY is
3239 not correctly calculated. Also, sorting results of a query like
3240 &quot;SELECT * from table GROUP BY&quot; ... is problematic.
3241 </p>
3242  
3243 <a name="faq3_13"></a>
3244 <h4>
3245 [<a href="#faq3_13">3.13</a>] I get an error when entering <tt>USE</tt> followed by a db name
3246 containing an hyphen.
3247 </h4>
3248 <p>
3249 The tests I have made with current MySQL 4.1.11 API shows that the
3250 API does not accept this syntax for the USE command. Enclosing the
3251 db name with backquotes works. For further confusion, no backquotes
3252 are needed with command-line mysql.
3253 </p>
3254  
3255 <a name="faqmultiuser"></a><br />
3256 <h3>[4. ISPs, multi-user installations ]</h3>
3257  
3258 <a name="faq4_1"></a>
3259 <h4>
3260 [<a href="#faq4_1">4.1</a>] I'm an ISP. Can I setup one central copy of phpMyAdmin or do I
3261 need to install it for each customer.
3262 </h4>
3263 <p>
3264 Since version 2.0.3, you can setup a central copy of phpMyAdmin for all
3265 your users. The development of this feature was kindly sponsored by
3266 NetCologne GmbH.
3267 This requires a properly setup MySQL user management and phpMyAdmin
3268 HTTP or cookie authentication. See the install section on
3269 &quot;Using HTTP authentication&quot;.
3270 </p>
3271  
3272 <a name="faq4_2"></a>
3273 <h4>
3274 [<a href="#faq4_2">4.2</a>] What's the preferred way of making phpMyAdmin secure against evil
3275 access.
3276 </h4>
3277 <p>
3278 This depends on your system.<br />
3279 If you're running a server which cannot be accessed by other people, it's
3280 sufficient to use the directory protection bundled with your webserver
3281 (with Apache you can use <i>.htaccess</i> files, for example).<br />
3282 If other people have telnet access to your server, you should use
3283 phpMyAdmin's HTTP or cookie authentication features.
3284 <br /><br />
3285 Suggestions:
3286 </p>
3287 <ul>
3288 <li>
3289 Your <i>config.inc.php</i> file should be <tt>chmod 660</tt>.
3290 </li>
3291 <li>
3292 All your phpMyAdmin files should be chown -R phpmy.apache, where phpmy
3293 is a user whose password is only known to you, and apache is the
3294 group under which Apache runs.
3295 </li>
3296 <li>
3297 You should use PHP safe mode, to protect from other users that try
3298 to include your <i>config.inc.php</i> in their scripts.
3299 </li>
3300 </ul>
3301  
3302 <a name="faq4_3"></a>
3303 <h4>
3304 [<a href="#faq4_3">4.3</a>] I get errors about not being able to include a file in
3305 <i>/lang</i> or in <i>/libraries</i>.
3306 </h4>
3307 <p>
3308 Check <i>php.ini</i>, or ask your sysadmin to check it. The
3309 <tt>include_path</tt> must contain &quot;.&quot; somewhere in it, and
3310 <tt>open_basedir</tt>, if used, must contain &quot;.&quot; and
3311 &quot;./lang&quot; to allow normal operation of phpMyAdmin.
3312 </p>
3313  
3314 <a name="faq4_4"></a>
3315 <h4>
3316 [<a href="#faq4_4">4.4</a>] phpMyAdmin always gives &quot;Access denied&quot; when using HTTP
3317 authentication.
3318 </h4>
3319 <p>
3320 This could happen for several reasons:
3321 </p>
3322 <ul>
3323 <li>
3324 <tt>$cfg['Servers'][$i]['controluser']</tt> and/or
3325 <tt>$cfg['Servers'][$i]['controlpass']</tt> are wrong.
3326 </li>
3327 <li>
3328 The username/password you specify in the login-dialog are invalid.
3329 </li>
3330 <li>
3331 You have already setup a security mechanism for the
3332 phpMyAdmin-directory, eg. a .htaccess file. This would interfere with
3333 phpMyAdmin's authentication, so remove it.
3334 </li>
3335 </ul>
3336  
3337 <a name="faq4_5"></a>
3338 <h4>
3339 [<a href="#faq4_5">4.5</a>] Is it possible to let users create their own databases?
3340 </h4>
3341 <p>
3342 Starting with 2.2.5, in the user management page, you can enter a wildcard
3343 database name for a user (for example &quot;joe%&quot;),
3344 and put the privileges you want. For example,
3345 adding <tt>SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER</tt>
3346 would let a user create/manage his/her database(s).
3347 </p>
3348  
3349 <a name="faq4_6"></a>
3350 <h4>
3351 [<a href="#faq4_6">4.6</a>] How can I use the Host-based authentication additions?
3352 </h4>
3353 <p>
3354 If you have existing rules from an old .htaccess file, you can take them
3355 and add a username between the <tt>'deny'</tt>/<tt>'allow'</tt> and
3356 <tt>'from'</tt> strings. Using the username wildcard of <tt>'%'</tt> would
3357 be a major benefit here if your installation is suited to using it. Then
3358 you can just add those updated lines into the
3359 <tt>$cfg['Servers'][$i]['AllowDeny']['rules']</tt> array.
3360 <br /><br />
3361 If you want a pre-made sample, you can try this fragment. It stops the
3362 'root' user from logging in from any networks other than the private
3363 network IP blocks.
3364 <br />
3365 <tt>
3366 &nbsp;&nbsp;&nbsp;&nbsp;//block root from logging in except from the private networks<br />
3367 &nbsp;&nbsp;&nbsp;&nbsp;$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';<br />
3368 &nbsp;&nbsp;&nbsp;&nbsp;$cfg['Servers'][$i]['AllowDeny']['rules'] = array(<br />
3369 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'deny root from all',<br />
3370 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allow root from localhost',<br />
3371 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allow root from 10.0.0.0/8',<br />
3372 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allow root from 192.168.0.0/16',<br />
3373 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allow root from 172.16.0.0/12',<br />
3374 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);
3375 </tt>
3376 </p>
3377  
3378 <a name="faq4_7"></a>
3379 <h4>
3380 [<a href="#faq4_7">4.7</a>] Authentication window is displayed more than once, why?
3381 </h4>
3382 <p>
3383 This happens if you are using a URL to start phpMyAdmin which is
3384 different than the one set in your <tt>$cfg['PmaAbsoluteUri']</tt>.
3385 For example, a missing &quot;www&quot;, or entering with an IP address
3386 while a domain name is defined in the config file.
3387 </p>
3388  
3389 <a name="faqbrowsers"></a><br />
3390 <h3>[5. Browsers or client OS]</h3>
3391  
3392 <a name="faq5_1"></a>
3393 <h4>
3394 [<a href="#faq5_1">5.1</a>] I get an out of memory error, and my controls are non-functional,
3395 when trying to create a table with more than 14 fields.
3396 </h4>
3397 <p>
3398 We could reproduce this problem only under Win98/98SE. Testing under
3399 WinNT4 or Win2K, we could easily create more than 60 fields.
3400 <br />
3401 A workaround is to create a smaller number of fields, then come back to
3402 your table properties and add the other fields.
3403 </p>
3404  
3405 <a name="faq5_2"></a>
3406 <h4>
3407 [<a href="#faq5_2">5.2</a>] With Xitami 2.5b4, phpMyAdmin won't process form fields.
3408 </h4>
3409 <p>
3410 This is not a phpMyAdmin problem but a Xitami known bug: you'll face it
3411 with each script/website that use forms.<br />
3412 Upgrade or downgrade your Xitami server.
3413 </p>
3414  
3415 <a name="faq5_3"></a>
3416 <h4>
3417 [<a href="#faq5_3">5.3</a>] I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).
3418 </h4>
3419 <p>
3420 With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that
3421 the proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps
3422 don't seem to work.<br />
3423  
3424 With Konqueror 2.2.1: plain dumps work; zip dumps are placed into
3425 the user's temporary directory, so they must be moved before closing
3426 Konqueror, or else they disappear. GZip dumps give an error message.<br />
3427  
3428 Testing needs to be done for Konqueror 2.2.2.<br />
3429 </p>
3430  
3431 <a name="faq5_4"></a>
3432 <h4>
3433 [<a href="#faq5_4">5.4</a>] I can't use the cookie authentication mode because Internet
3434 Explorer never stores the cookies.
3435 </h4>
3436 <p>
3437 MS Internet Explorer seems to be really buggy about cookies, at least till
3438 version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1 bug
3439 in this area!
3440 <br />
3441 Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may
3442 work!
3443 </p>
3444  
3445 <a name="faq5_5"></a>
3446 <h4>
3447 [<a href="#faq5_5">5.5</a>] In Internet Explorer 5.0, I get JavaScript errors when browsing my
3448 rows.
3449 </h4>
3450 <p>
3451 Upgrade to at least Internet Explorer 5.5 SP2.<br />
3452 </p>
3453  
3454 <a name="faq5_6"></a>
3455 <h4>
3456 [<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")
3457 when trying to modify a row in a table with many fields, or with a text field
3458 </h4>
3459 <p>
3460 Your table neither have a primary key nor an unique one, so we must use a
3461 long URL to identify this row. There is a limit on the length of the URL in
3462 those browsers, and this not happen in Netscape, for example. The
3463 workaround is to create a primary or unique key, or use another browser.
3464 <br />
3465 </p>
3466  
3467 <a name="faq5_7"></a>
3468 <h4>
3469 [<a href="#faq5_7">5.7</a>] I refresh (reload) my browser, and come back to the welcome
3470 page.
3471 </h4>
3472 <p>
3473 Some browsers support right-clicking into the frame you want to refresh,
3474 just do this in the right frame.<br />
3475 </p>
3476  
3477 <a name="faq5_8"></a>
3478 <h4>
3479 [<a href="#faq5_8">5.8</a>] With Mozilla 0.9.7 I have problems sending a query modified in the
3480 query box.
3481 </h4>
3482 <p>
3483 Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future
3484 Mozilla versions.<br />
3485 </p>
3486  
3487 <a name="faq5_9"></a>
3488 <h4>
3489 [<a href="#faq5_9">5.9</a>] With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a
3490 whitespace in the SQL-Query edit area: the page scrolls down.
3491 </h4>
3492 <p>
3493 This is a Mozilla bug (see bug #26882 at
3494 <a href="http://bugzilla.mozilla.org/" target="_blank">BugZilla</a>).<br />
3495 </p>
3496  
3497 <a name="faq5_10"></a>
3498 <h4>
3499 [<a href="#faq5_10">5.10</a>] With Netscape 4.75 I get empty rows between each row of data in a
3500 CSV exported file.
3501 </h4>
3502 <p>
3503 This is a known Netscape 4.75 bug: it adds some line feeds when exporting
3504 data in octet-stream mode. Since we can't detect the specific Netscape
3505 version, we cannot workaround this bug.
3506 </p>
3507  
3508 <a name="faq5_11"></a>
3509 <h4>
3510 [<a href="#faq5_11">5.11</a>] Extended-ASCII characters like German umlauts are displayed
3511 wrong.
3512 </h4>
3513 <p>
3514 Please ensure that you have set your browser's character set to the one of the
3515 language file you have selected on phpMyAdmin's start page.
3516 Alternatively, you can try the auto detection mode that is supported by the
3517 recent versions of the most browsers.
3518 </p>
3519  
3520 <a name="faq5_12"></a>
3521 <h4>
3522 [<a href="#faq5_12">5.12</a>] Apple OS X: Safari browser changes special characters to
3523 &quot;?&quot;.
3524 </h4>
3525 <p>
3526 This issue has been reported by a OS X user, who adds that Chimera,
3527 Netscape and Mozilla do not have this problem.
3528 </p>
3529  
3530 <a name="faq5_13"></a>
3531 <h4>
3532 [<a href="#faq5_13">5.13</a>] With Internet Explorer 5.5 or 6, and HTTP authentication type,
3533 I cannot manage two servers: I login to the first one, then the other one,
3534 but if I switch back to the first, I have to login on each operation.
3535 </h4>
3536 <p>
3537 This is a bug in Internet Explorer, other browsers do not behave this way.
3538 </p>
3539  
3540 <a name="faq5_14"></a>
3541 <h4>
3542 [<a href="#faq5_14">5.14</a>] Using Opera6, I can manage to get to the authentication, but nothing
3543 happens after that, only a blank screen.
3544 </h4>
3545 <p>
3546 Having $cfg['QueryFrameJS'] set to <tt>TRUE</tt>, this leads to a bug in Opera6, because it
3547 is not able to interpret frameset definitions written by JavaScript. Please upgrade
3548 to Opera7 at least.
3549 </p>
3550  
3551 <a name="faq5_15"></a>
3552 <h4>
3553 [<a href="#faq5_15">5.15</a>] I have display problems with Safari.
3554 </h4>
3555 <p>
3556 Please upgrade to at least version 1.2.3.
3557 </p>
3558  
3559 <a name="faq5_16"></a>
3560 <h4>
3561 [<a href="#faq5_16">5.16</a>] With Internet Explorer, I get &quot;Access is denied&quot;
3562 Javascript errors. Or I cannot make phpMyAdmin work under Windows.
3563 </h4>
3564 <p>
3565 Please check the following points:</p>
3566 <ul>
3567 <li>
3568 Maybe you have defined your <tt>PmaAbsoluteUri</tt> setting
3569 in <tt>config.inc.php</tt> to an IP address and you are starting
3570 phpMyAdmin with a URL containing a domain name, or the reverse situation.
3571 </li>
3572 <li>
3573 Security settings in IE and/or Microsoft Security Center are
3574 too high, thus blocking scripts execution.
3575 </li>
3576 <li>
3577 The Windows Firewall is blocking Apache and MySQL. You must
3578 allow http ports (80 or 443) and MySQL port (usually 3306)
3579 in the &quot;in&quot; and &quot;out&quot; directions.
3580 </li>
3581 </ul>
3582  
3583 <a name="faq5_17"></a>
3584 <h4>
3585 [<a href="#faq5_17">5.17</a>] With Firefox, I cannot delete rows of data or drop a database.
3586 </h4>
3587 <p> Many users have confirmed that the Tabbrowser Extensions plugin they
3588 installed in their Firefox is causing the problem.
3589 </p>
3590  
3591 <a name="faqusing"></a><br />
3592 <h3>[6. Using phpMyAdmin]</h3>
3593  
3594 <a name="faq6_1"></a>
3595 <h4>
3596 [<a href="#faq6_1">6.1</a>] I can't insert new rows into a table / I can't create a table
3597 - MySQL brings up a SQL-error.
3598 </h4>
3599 <p>
3600 Examine the SQL error with care. Often the problem is caused by
3601 specifying a wrong field-type.<br />
3602 Common errors include:
3603 </p>
3604 <ul>
3605 <li>Using <tt>VARCHAR</tt> without a size argument</li>
3606 <li>Using <tt>TEXT</tt> or <tt>BLOB</tt> with a size argument</li>
3607 </ul>
3608 <p>
3609 Also, look at the syntax chapter in the MySQL manual to confirm that your
3610 syntax is correct.
3611 </p>
3612  
3613 <a name="faq6_2"></a>
3614 <h4>
3615 [<a href="#faq6_2">6.2</a>] When I create a table, I click the Index checkbox for 2 fields and
3616 phpMyAdmin generates only one index with those 2 fields.
3617 </h4>
3618 <p>
3619 In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields
3620 index. If you want two indexes, create the first one when creating the
3621 table, save, then display the table properties and click the Index link to
3622 create the other index.
3623 </p>
3624  
3625 <a name="faq6_3"></a>
3626 <h4>
3627 [<a href="#faq6_3">6.3</a>] How can I insert a null value into my table?
3628 </h4>
3629 <p>
3630 Since version 2.2.3, you have a checkbox for each field that can be null.
3631 Before 2.2.3, you had to enter &quot;null&quot;, without the quotes, as the
3632 field's value. Since version 2.5.5, you have to use the checkbox to get
3633 a real NULL value, so if you enter &quot;NULL&quot; this means you want
3634 a literal NULL in the field, and not a NULL value (this works in PHP4).
3635 </p>
3636  
3637 <a name="faq6_4"></a>
3638 <h4>
3639 [<a href="#faq6_4">6.4</a>] How can I backup my database or table?
3640 </h4>
3641 <p>
3642 Click on a database or table name in the left frame, the properties will be
3643 displayed. Then on the menu, click &quot;Export&quot;, you can dump
3644 the structure, the data, or both. This will generate standard SQL
3645 statements that can be used to recreate your database/table.
3646 <br /><br />
3647 You will need to choose &quot;Save as file&quot;, so that phpMyAdmin can
3648 transmit the resulting dump to your station. Depending on your PHP
3649 configuration, you will see options to compress the dump. See also the
3650 <tt>$cfg['ExecTimeLimit']</tt> configuration variable.
3651 <br /><br />
3652 For additional help on this subject, look for the word &quot;dump&quot; in
3653 this document.
3654 </p>
3655  
3656 <a name="faq6_5"></a>
3657 <h4>
3658 [<a href="#faq6_5">6.5</a>] How can I restore (upload) my database or table using a dump?
3659 How can I run a &quot;.sql&quot; file?
3660 </h4>
3661 <p>
3662 Click on a database name in the left frame, the properties will be
3663 displayed. Select &quot;Import&quot; from the list
3664 of tabs in the right&#8211;hand frame (or &quot;SQL&quot; if your phpMyAdmin
3665 version is older than 2.7.0). In the &quot;Location of the text file&quot; section, type in
3666 the path to your dump filename, or use the Browse button. Then click Go.
3667 <br /><br />
3668 With version 2.7.0, the import engine has been re&#8211;written, if possible it is suggested
3669 that you upgrade to take advantage of the new features.
3670 <br /><br />
3671 For additional help on this subject, look for the word &quot;upload&quot;
3672 in this document.
3673 </p>
3674  
3675 <a name="faq6_6"></a>
3676 <h4>
3677 [<a href="#faq6_6">6.6</a>] How can I use the relation table in Query-by-example?
3678 </h4>
3679 <p>
3680 Here is an example with the tables persons, towns and countries, all
3681 located in the database mydb. If you don't have a <tt>pma_relation</tt>
3682 table, create it as explained in the configuration section. Then create the
3683 example tables:
3684 <br /><br />
3685 <tt>
3686 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE REL_countries (<br />
3687 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country_code char(1) NOT NULL default '',<br />
3688 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description varchar(10) NOT NULL default '',<br />
3689 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (country_code)<br />
3690 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM;<br />
3691 <br />
3692 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_countries VALUES ('C', 'Canada');<br />
3693 <br />
3694 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE REL_persons (<br />
3695 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id tinyint(4) NOT NULL auto_increment,<br />
3696 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person_name varchar(32) NOT NULL default '',<br />
3697 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;town_code varchar(5) default '0',<br />
3698 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country_code char(1) NOT NULL default '',<br />
3699 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (id)<br />
3700 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM;<br />
3701 <br />
3702 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');<br />
3703 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');<br />
3704 <br />
3705 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE REL_towns (<br />
3706 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;town_code varchar(5) NOT NULL default '0',<br />
3707 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description varchar(30) NOT NULL default '',<br />
3708 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (town_code)<br />
3709 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM;<br />
3710 <br />
3711 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');<br />
3712 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_towns VALUES ('M', 'Montr&eacute;al');<br />
3713 <br />
3714 </tt>
3715 To setup appropriate links and display information:
3716 </p>
3717 <ul>
3718 <li>on table &quot;REL_persons&quot; click Structure, then Relation view</li>
3719 <li>in Links, for &quot;town_code&quot; choose &quot;REL_towns-&gt;code&quot;</li>
3720 <li>in Links, for &quot;country_code&quot; choose &quot;REL_countries-&gt;country_code&quot;</li>
3721 <li>on table &quot;REL_towns&quot; click Structure, then Relation view</li>
3722 <li>in &quot;Choose field to display&quot;, choose &quot;description&quot;</li>
3723 <li>repeat the two previous steps for table &quot;REL_countries&quot;</li>
3724 </ul>
3725  
3726 <p>
3727 Then test like this:
3728 </p>
3729 <ul>
3730 <li>Click on your db name in the left frame</li>
3731 <li>Choose &quot;Query&quot;</li>
3732 <li>Use tables: persons, towns, countries</li>
3733 <li>Click &quot;Update query&quot;</li>
3734 <li>In the fields row, choose persons.person_name and click the
3735 &quot;Show&quot; tickbox </li>
3736 <li>Do the same for towns.description and countries.descriptions in the
3737 other 2 columns</li>
3738 <li>Click &quot;Update query&quot; and you will see in the query box that
3739 the correct joins have been generated</li>
3740 <li>Click &quot;Submit query&quot;</li>
3741 </ul>
3742  
3743  
3744 <a name="faqdisplay"></a>
3745 <h4>
3746 [<a href="#faqdisplay">6.7</a>] How can I use the &quot;display field&quot; feature?
3747 </h4>
3748 <p>
3749 Starting from the previous example, create the pma_table_info as explained
3750 in the configuration section, then browse your persons table,
3751 and move the mouse over a town code or country code.
3752 <br /><br />
3753 See also <a href="#faq6_21">FAQ 6.21</a> for an additional feature that &quot;display field&quot;
3754 enables: drop-down list of possible values.
3755 </p>
3756  
3757 <a name="faqpdf"></a>
3758 <h4>
3759 [<a href="#faqpdf">6.8</a>] How can I produce a PDF schema of my database?
3760 </h4>
3761 <p>
3762 First the configuration variables &quot;relation&quot;,
3763 &quot;table_coords&quot; and &quot;pdf_pages&quot; have to be filled in.
3764 <br /><br />
3765 Then you need to think about your schema layout. Which tables will go on
3766 which pages?
3767 </p>
3768 <ul>
3769 <li>Select your database in the left frame.</li>
3770 <li>Choose &quot;Operations&quot; in the navigation bar at the top.</li>
3771 <li>Choose &quot;Edit PDF Pages&quot; near the bottom of the page.</li>
3772 <li>Enter a name for the first PDF page and click Go. If you like, you
3773 can use the &quot;automatic layout,&quot; which will put all your
3774 linked tables onto the new page.</li>
3775 <li>Select the name of the new page (making sure the Edit radio button
3776 is selected) and click Go.</li>
3777 <li>Select a table from the list, enter its coordinates and click Save.<br />
3778 Coordinates are relative; your diagram will
3779 be automatically scaled to fit the page. When initially placing tables
3780 on the page, just pick any coordinates -- say, 50x50. After clicking
3781 Save, you can then use the <a href="#wysiwyg">graphical editor</a> to
3782 position the element correctly.</li>
3783 <li>When you'd like to look at your PDF, first be sure to click the Save
3784 button beneath the list of tables and coordinates, to save any changes
3785 you made there. Then scroll all the way down, select the PDF options
3786 you want, and click Go.</li>
3787 <li>Internet Explorer for Windows may suggest an incorrect filename when
3788 you try to save a generated PDF. When saving a generated PDF, be
3789 sure that the filename ends in &quot;.pdf&quot;, for example
3790 &quot;schema.pdf&quot;. Browsers on other operating systems, and other
3791 browsers on Windows, do not have this problem.</li>
3792 </ul>
3793  
3794 <a name="faq6_9"></a>
3795 <h4>
3796 [<a href="#faq6_9">6.9</a>] phpMyAdmin is changing the type of one of my columns!
3797 </h4>
3798 <p>
3799 No, it's MySQL that is doing
3800 <a href="http://www.mysql.com/doc/S/i/Silent_column_changes.html">silent column type changing</a>.
3801 </p>
3802  
3803 <a name="underscore"></a>
3804 <h4>
3805 [<a href="#underscore">6.10</a>] When creating a privilege, what happens with underscores in
3806 the database name?
3807 </h4>
3808 <p>
3809 If you do not put a backslash before the underscore, this is a wildcard
3810 grant, and the underscore means &quot;any character&quot;. So, if the
3811 database name is &quot;john_db&quot;, the user would get rights to john1db,
3812 john2db...<br /><br />
3813 If you put a backslash before the underscore, it means that the database
3814 name will have a real underscore.
3815 </p>
3816  
3817 <a name="faq6_11"></a>
3818 <h4>
3819 [<a href="#faq6_11">6.11</a>] What is the curious symbol &oslash; in the statistics pages?
3820 </h4>
3821 <p>
3822 It means &quot;average&quot;.
3823 </p>
3824  
3825 <a name="faqexport"></a>
3826 <h4>
3827 [<a href="#faqexport">6.12</a>] I want to understand some Export options.
3828 </h4>
3829 <p><b>Structure:</b></p>
3830 <ul>
3831 <li>&quot;Add DROP TABLE&quot; will add a line telling MySQL to
3832 <a href="http://dev.mysql.com/doc/mysql/en/drop-table.html">drop the table</a>,
3833 if it already exists during the import. It does NOT drop the table after
3834 your export, it only affects the import file.</li>
3835 <li>&quot;If Not Exists&quot; will only create the table if it doesn't exist. Otherwise,
3836 you may get an error if the table name exists but has a different structure.</li>
3837 <li>&quot;Add AUTO_INCREMENT value&quot; ensures that AUTO_INCREMENT value
3838 (if any) will be included in backup.</li>
3839 <li>&quot;Enclose table and field names with backquotes&quot; ensures that
3840 field and table names formed with special characters are protected.</li>
3841 <li>&quot;Add into comments&quot; includes column comments, relations, and MIME
3842 types set in the pmadb in the dump as SQL comments (<i>/* xxx */</i>).</li>
3843 </ul>
3844 <p><b>Data:</b></p>
3845 <ul>
3846 <li>&quot;Complete inserts&quot; adds the column names on every INSERT command,
3847 for better documentation (but resulting file is bigger).</li>
3848 <li>&quot;Extended inserts&quot; provides a shorter dump file by using only
3849 once the INSERT verb and the table name.</li>
3850 <li>&quot;Delayed inserts&quot; are best explained in the
3851 <a href="http://dev.mysql.com/doc/mysql/en/insert-delayed.html">MySQL manual</a>.</li>
3852 <li>&quot;Ignore inserts&quot; treats errors as a warning instead. Again, more info
3853 is provided in the <a href="http://dev.mysql.com/doc/mysql/en/insert.html">MySQL
3854 manual</a>, but basically with this selected, invalid values are adjusted and inserted
3855 rather than causing the entire statement to fail.</li>
3856 </ul>
3857  
3858 <a name="faq6_13"></a>
3859 <h4>
3860 [<a href="#faq6_13">6.13</a>] I would like to create a database with a dot in its name.
3861 </h4>
3862 <p>
3863 This is a bad idea, because in MySQL the syntax &quot;database.table&quot;
3864 is the normal way to reference a database and table name. Worse, MySQL
3865 will usually let you create a database with a dot, but then you cannot
3866 work with it, nor delete it.<br />
3867 </p>
3868  
3869 <a name="faqsqlvalidator"></a>
3870 <h4>
3871 [<a href="#faqsqlvalidator">6.14</a>] How do I set up the SQL Validator?
3872 </h4>
3873 <p>
3874 To use it, you need a very recent version of PHP, 4.3.0 recommended, with
3875 XML, PCRE and PEAR support. On your system command line, run
3876 <tt>"pear install Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME
3877 SOAP"</tt> to get the necessary PEAR modules for usage.
3878 <br />
3879 On a more recent pear version, I had problems with the state of Net_DIME
3880 being beta, so this single command
3881 <tt>"pear -d preferred_state=beta install -a SOAP"</tt> installed
3882 all the needed modules.
3883 <br />
3884 If you use the Validator, you should be aware that any SQL statement you
3885 submit will be stored anonymously (database/table/column names,
3886 strings, numbers replaced with generic values). The Mimer SQL
3887 Validator itself, is &copy; 2001 Upright Database Technology.
3888 We utilize it as free SOAP service.
3889 </p>
3890  
3891 <a name="faq6_15"></a>
3892 <h4>
3893 [<a href="#faq6_15">6.15</a>] I want to add a BLOB field and put an index on it, but MySQL
3894 says &quot;BLOB column '...' used in key specification without a key
3895 length&quot;.
3896 </h4>
3897 <p>
3898 The right way to do this, is to create the field without any indexes,
3899 then display the table structure and use the &quot;Create an index&quot;
3900 dialog. On this page, you will be able to choose your BLOB field, and
3901 set a size to the index, which is the condition to create an index on
3902 a BLOB field.
3903 <br />
3904 </p>
3905  
3906 <a name="faq6_16"></a>
3907 <h4>
3908 [<a href="#faq6_16">6.16</a>] How can I simply move in page with plenty editing fields?
3909 </h4>
3910 <p>
3911 You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most pages
3912 with many editing fields (table structure changes, row editing, etc.)
3913 (must be enabled in configuration - see.
3914 <a href="#CtrlArrowsMoving">$cfg['CtrlArrowsMoving']</a>). You can also have
3915 a look at the directive
3916 <a href="#DefaultPropDisplay">$cfg['DefaultPropDisplay']</a> ('vertical') and
3917 see if this eases up editing for you.
3918 <br />
3919 </p>
3920  
3921 <a name="faq6_17"></a>
3922 <h4>
3923 [<a href="#faq6_17">6.17</a>] Transformations: I can't enter my own mimetype! WTF is this feature
3924 then useful for?
3925 </h4>
3926 <p>
3927 Slow down :). Defining mimetypes is of no use, if you can't put transformations on them.
3928 Otherwise you could just put a comment on the field. Because entering your own mimetype will
3929 cause serious syntax checking issues and validation, this introduces a high-risk false-user-input
3930 situation. Instead you have to initialize mimetypes using functions or empty mimetype definitions.
3931 <br />
3932 Plus, you have a whole overview of available mimetypes. Who knows all those mimetypes by heart so
3933 he/she can enter it at will?
3934 <br />
3935 </p>
3936  
3937 <a name="faqbookmark"></a>
3938 <h4>
3939 [<a href="#faqbookmark">6.18</a>] Bookmarks: Where can I store bookmarks? Why can't I see any bookmarks below the query box?
3940 What is this variable for?
3941 </h4>
3942 <p>
3943 Any query you have executed can be stored as a bookmark on the page where the results are displayed.
3944 You will find a button labeled 'Bookmark this query' just at the end of the page.<br />
3945 As soon as you have stored a bookmark, it is related to the database you run the query on. You can
3946 now access a bookmark dropdown on each page, the query box appears on for that database.<br />
3947 <br />
3948 Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks. Just use the string
3949 <b>/*[VARIABLE]*/</b> anywhere in your query. Everything which is put into the <i>value</i> input
3950 box on the query box page will replace the string &quot;/*[VARIABLE]*/&quot; in your stored query.
3951 Just be aware of that you HAVE to create a valid query, otherwise your query won't be even able to be
3952 stored in the database.<br />
3953 Also remember, that everything else inside the <b>/*[VARIABLE]*/</b> string for your query will remain
3954 the way it is, but will be stripped of the /**/ chars. So you can use:<br /><br />
3955 <code>/*, [VARIABLE] AS myname */</code><br /><br />
3956 which will be expanded to<br /><br />
3957 <code>, VARIABLE as myname</code><br /><br />
3958 in your query, where VARIABLE is the string you entered in the input box. If an empty string is
3959 provided, no replacements are made.<br />
3960 <br />
3961 A more complex example. Say you have stored this query:<br /><br />
3962 <code>SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */</code><br /><br />
3963 Say, you now enter &quot;phpMyAdmin&quot; as the variable for the stored query, the full query will
3964 be:<br /><br />
3965 <code>SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'</code>
3966 <br />
3967 <br />
3968 You can use multiple occurrences of <b>/*[VARIABLE]*/</b> in a single query.<br />
3969 <b>NOTE THE ABSENCE OF SPACES</b> inside the &quot;/**/&quot; construct. Any spaces inserted there
3970 will be later also inserted as spaces in your query and may lead to unexpected results especially when
3971 using the variable expansion inside of a &quot;LIKE ''&quot; expression.<br />
3972 Your initial query which is going to be stored as a bookmark has to yield at least one result row so
3973 you can store the bookmark. You may have that to work around using well positioned &quot;/**/&quot;
3974 comments.<br />
3975 </p>
3976  
3977 <a name="faq6_19"></a>
3978 <h4>
3979 [<a href="#faq6_19">6.19</a>] How can I create simple LaTeX document to include exported table?
3980 </h4>
3981 <p>
3982 You can simply include table in your LaTeX documents, minimal sample
3983 document should look like following one (assuming you have table
3984 exported in file <code>table.tex</code>):
3985 </p>
3986  
3987 <pre>
3988 \documentclass{article} % or any class you want
3989 \usepackage{longtable} % for displaying table
3990 \begin{document} % start of document
3991 \include{table} % including exported table
3992 \end{document} % end of document
3993 </pre>
3994  
3995 <a name="faq6_20"></a>
3996 <h4>
3997 [<a href="#faq6_20">6.20</a>] In MySQL 4, I see a lot of databases which are not mine, and cannot
3998 access them.
3999 </h4>
4000 <p>
4001 Upgrading to MySQL 4 usually gives users those global privileges: CREATE
4002 TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also
4003 enable users to see all the database names.
4004 See this <a href="http://bugs.mysql.com/179">bug report</a>. <br /><br />
4005 So if your users do not need those privileges, you can remove them and their
4006 databases list will shorten.
4007 </p>
4008  
4009 <a name="faq6_21"></a>
4010 <h4>
4011 [<a href="#faq6_21">6.21</a>] In edit/insert mode, how can I see a list of possible values for
4012 a field, based on some foreign table?
4013 </h4>
4014 <p>
4015 You have to setup appropriate links between the tables, and also
4016 setup the &quot;display field&quot; in the foreign table. See <a href="#faq6_6">FAQ
4017 6.6</a> for an example. Then, if there are 200 values or less in the
4018 foreign table, a drop-down list of values will be available.
4019 You will see two lists of values, the first list containing the key
4020 and the display field, the second list containing the display field
4021 and the key. The reason for this is to be able to type the first
4022 letter of either the key or the display field.
4023 <br /><br />
4024 For 200 values or more, a distinct window will appear, to browse foreign
4025 key values and choose one.
4026  
4027 </p>
4028  
4029 <a name="faq6_22"></a>
4030 <h4>
4031 [<a href="#faq6_22">6.22</a>] Bookmarks: Can I execute a default bookmark automatically
4032 when entering Browse mode for a table?
4033 </h4>
4034 <p>
4035 Yes. If a bookmark has the same label as a table name, it will be
4036 executed.
4037 </p>
4038  
4039 <a name="faq6_23"></a>
4040 <h4>
4041 [<a href="#faq6_23">6.23</a>] Export: I heard phpMyAdmin can export Microsoft Excel files, how
4042 can I enable that?
4043 </h4>
4044 <p>
4045 Current version does support direct export to Microsoft Excel and Word
4046 versions 2000 and newer. If you need export older versions, you can use
4047 CSV suitable for Microsoft Excel, which works out of the box or you can
4048 try native <b>experimental</b> MS Excel exporter. <b>This export has
4049 several problems, most important are limitation of cell content to 255
4050 chars and no support for charsets, so think carefully whether you want to
4051 enable this.</b>. For enabling this you need to set $cfg['TempDir'] to
4052 place where web server user can write (for example <tt>'./tmp'</tt>) and
4053 install PEAR module Spreadsheet_Excel_Writer into php include path. The
4054 installation can be done by following command:
4055 </p>
4056 <pre>
4057 pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer
4058 </pre>
4059 <p>
4060 First part of switches set we want to install beta version of that module
4061 (no stable version available yet) and then we tell pear we want to satisfy
4062 dependencies.
4063 </p>
4064 <p>
4065 If you are running in PHP safe mode, you will have to set
4066 in <tt>php.ini</tt> the <tt>safe_mode_include_dir</tt> to the directory
4067 where your PEAR modules are located, for example:
4068 </p>
4069 <pre>
4070 safe_mode_include_dir = /usr/local/lib/php
4071 </pre>
4072 <p>
4073 To create the temporary directory on a UNIX-based system, you can do:
4074 </p>
4075 <pre>
4076 cd phpMyAdmin
4077 mkdir tmp
4078 chmod o+rwx tmp
4079 </pre>
4080  
4081 <a name="faq6_24"></a>
4082 <h4>
4083 [<a href="#faq6_24">6.24</a>] Now that phpMyAdmin supports native MySQL 4.1.x column comments,
4084 what happens to my column comments stored in pmadb?
4085 </h4>
4086 <p> Automatic migration of a table's pmadb-style column comments to the native
4087 ones is done whenever you enter Structure page for this table.
4088 </p>
4089 <a name="faqproject"></a><br />
4090 <h3>[7. phpMyAdmin project]</h3>
4091  
4092 <a name="faq7_1"></a>
4093 <h4>
4094 [<a href="#faq7_1">7.1</a>] I have found a bug. How do I inform developers?
4095 </h4>
4096 <p>
4097 Our Bug Tracker is located at
4098 <a href="http://sourceforge.net/projects/phpmyadmin/">http://sourceforge.net/projects/phpmyadmin/</a>
4099 under the Bugs section.
4100 <br /><br />
4101 But please first discuss your bug with other users:
4102 <br />
4103 <a href="http://sourceforge.net/projects/phpmyadmin/">
4104 http://sourceforge.net/projects/phpmyadmin/</a> (and choose Forums)
4105 </p>
4106  
4107 <a name="faq7_2"></a>
4108 <h4>
4109 [<a href="#faq7_2">7.2</a>] I want to translate the messages to a new language or upgrade an
4110 existing language, where do I start?
4111 </h4>
4112 <p>
4113 Always use the current CVS version of your language file.
4114 For a new language, start from <i>english-iso-8859-1.inc.php</i>. If you
4115 don't know how to get the CVS version, please ask one of the developers.
4116 <br />
4117 Please note that we try not to use HTML entities like &amp;eacute; in
4118 the translations, since we define the right character set in the file.
4119 With HTML entities, the text on JavaScript messages would not
4120 display correctly.
4121 However there are some entities that need to be there, for quotes
4122 ,non-breakable spaces, ampersands, less than, greater than.
4123 <br />
4124 You can then put your translations, as a zip file to avoid losing special
4125 characters, on the sourceforge.net translation tracker.
4126 <br />
4127 It would be a good idea to subscribe to the phpmyadmin-translators mailing
4128 list, because this is where we ask for translations of new messages.
4129 <br />
4130 </p>
4131  
4132 <a name="faq7_3"></a>
4133 <h4>
4134 [<a href="#faq7_3">7.3</a>] I would like to help out with the development of phpMyAdmin. How
4135 should I proceed?
4136 </h4>
4137 <p>
4138 The following method is preferred for new developers:
4139 </p>
4140 <ol>
4141 <li>
4142 fetch the current CVS tree over anonymous CVS:<br />
4143 <tt>cvs -d:pserver:anonymous@phpmyadmin.cvs.sourceforge.net:/cvsroot/phpmyadmin login</tt><br />
4144 [Password: simply press the Enter key]<br />
4145 <tt>cvs -z3 -d:pserver:anonymous@phpmyadmin.cvs.sourceforge.net:/cvsroot/phpmyadmin checkout phpMyAdmin</tt><br />
4146 [This will create a new sub-directory named phpMyAdmin]
4147 </li>
4148 <li>
4149 add your stuff
4150 </li>
4151 <li>
4152 put the modified files (tar'ed and gzip'ed) inside the patch tracker of
4153 the
4154 <a href="http://sourceforge.net/projects/phpmyadmin/" target="_blank">phpMyAdmin SourceForge account</a>.
4155 </li>
4156 </ol>
4157 <p>
4158 Write access to the CVS tree is granted only to experienced developers who
4159 have already contributed something useful to phpMyAdmin.<br />
4160 Also, have a look at the
4161 <a href="#developers">Developers section</a>.
4162 </p>
4163 <a name="faqsecurity"></a><br />
4164 <h3>[8. Security ]</h3>
4165  
4166 <a name="faq8_1"></a>
4167 <h4>
4168 [<a href="#faq8_1">8.1</a>] Security alert, dated 2003-06-18.
4169 </h4>
4170 <p>
4171 Last update of this FAQ: 2003-07-22.
4172 <br /><br />
4173 The phpMyAdmin development team received notice of this security alert:
4174 <a href="http://www.securityfocus.com/archive/1/325641" target="_blank">http://www.securityfocus.com/archive/1/325641.</a>
4175 <br /><br />
4176  
4177 The team regrets that the author did not communicate with us before
4178 sending this alert. However, here is our current reply to the points mentioned:
4179 </p>
4180  
4181 <ul>
4182 <li>&quot;Directory transversal attack&quot;
4183 <br /><br />
4184  
4185 This problem had been fixed in version 2.5.0, even if the author reports
4186 the 2.5.2 development version as vulnerable, which we could not reproduce.
4187 <br /><br />
4188 </li>
4189 <li>&quot;Remote local file retrieving&quot;
4190 <br /><br />
4191 This is a misleading title, as the author tells in his text:
4192 &quot;Note that you can't request files ( only dirs )&quot;.
4193 <br /><br />
4194 </li>
4195  
4196 <li>&quot;Remote internal directory listing&quot;
4197 <br /><br />
4198 It was possible to retrieve the list of phpMyAdmin's directory (which we
4199 doubt can cause any damage), but we fixed this in the
4200 2.5.2 version.
4201 <br /><br />
4202 </li>
4203  
4204 <li>&quot;XSS and Path disclosures&quot;
4205 <br /><br />
4206 Most of the XSS problems have been fixed in version 2.5.0. The rest
4207 have been fixed in the 2.5.2 version.
4208 <br /><br />
4209 We believe that the Path disclosures problems have also been fixed
4210 in version 2.5.2.
4211 <br /><br />
4212 </li>
4213 <li>&quot;Information encoding weakness&quot;
4214 <br /><br />
4215 We believe that an exploit for this weakness would be difficult
4216 to achieve. However version 2.5.2 now encrypts the password
4217 with the well-known blowfish algorithm.
4218 <br /><br />
4219 </li>
4220 </ul>
4221  
4222 <a name="faq8_2"></a>
4223 <h4>
4224 [<a href="#faq8_2">8.2</a>] Security alert, dated 2004-06-29.
4225 </h4>
4226 <p>
4227 Last update of this FAQ: 2004-06-30.
4228 <br /><br />
4229 The phpMyAdmin development team received notice of this security alert:
4230 <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>
4231 <br /><br />
4232 We would like to put emphasis on the disappointment we feel when a
4233 bugreporter does not contact the authors of a software first, before
4234 posting any exploits. The common way to report this, is to give the
4235 developers a reasonable amount of time to respond to an exploit before
4236 it is made public.
4237 <br /><br />
4238 We acknowledge that phpMyAdmin versions 2.5.1 to 2.5.7 are vulnerable
4239 to this problem, if each of the following conditions are met:
4240 </p>
4241 <ul>
4242 <li>
4243 The Web server hosting phpMyAdmin is not running in safe mode.
4244 </li>
4245 <li>
4246 In config.inc.php, <tt>$cfg['LeftFrameLight']</tt> is set to FALSE
4247 (the default value of this parameter is <tt>TRUE</tt>).
4248 </li>
4249 <li>
4250 There is no firewall blocking requests from the Web server to the
4251 attacking host.
4252 </li>
4253 </ul>
4254 <p>
4255 <br />
4256 Version 2.5.7-pl1 was released with a fix for this vulnerability.
4257 </p>
4258  
4259 <a name="faq8_3"></a>
4260 <h4>
4261 [<a href="#faq8_3">8.3</a>] About new security alerts
4262 </h4>
4263 <p>
4264 Please refer to
4265 <a href="http://www.phpmyadmin.net">http://www.phpmyadmin.net</a>
4266 for the complete list of security alerts.
4267 </p>
4268  
4269 <!-- DEVELOPERS -->
4270 <a name="developers"></a><br />
4271 <h2>Developers Information</h2>
4272  
4273 <p>
4274 phpMyAdmin is Open Source, so you're invited to contribute to it. Many
4275 great features have been written by other people and you too can help to
4276 make phpMyAdmin a useful tool.
4277 </p>
4278  
4279 <p>
4280 If you're planning to contribute source, please read the following
4281 information:
4282 </p>
4283 <ul>
4284 <li>
4285 All files include <i>libraries/header.inc.php</i> (layout),.
4286 <i>libraries/common.lib.php</i> (common functions) and
4287 <i>config.inc.php</i>.
4288 <br />
4289 Only configuration data should go in <i>config.inc.php</i>. Please keep
4290 it free from other code.
4291 <br />
4292 Commonly used functions should be added to
4293 <i>libraries/common.lib.php</i> and more specific ones may be added
4294 within a library stored into the <i>libraries</i> sub-directory.
4295 </li>
4296 <li>
4297 Obviously, you're free to use whatever coding style you want. But
4298 please try to keep your code as simple as possible: beginners are
4299 using phpMyAdmin as an example application.<br />
4300 As far as possible, we want the scripts to be XHTML1.0 and CSS2
4301 compliant on one hand, they fit the
4302 <a href="http://pear.php.net/" target="_blank">PEAR coding standards</a>
4303 on the other hand. Please pay attention to this.
4304 </li>
4305 <li>
4306 Please try to keep up the file-naming conventions. Table-related stuff
4307 goes to <i>tbl_*.php</i>, db-related code to <i>db_*.php</i>,
4308 server-related tools to <i>server_*.php</i> and so on.
4309 </li>
4310 <li>
4311 Please don't use verbose strings in your code, instead add the string
4312 (at least) to <i>english-iso-8859-1.inc.php</i> and print() it out.
4313 </li>
4314 <li>
4315 If you want to be really helpful, write an entry for the ChangeLog.
4316 </li>
4317 <li id="developersdbg">
4318 The DBG extension (<a href="http://dd.cron.ru/dbg/" target="_blank">PHP
4319 Debugger DBG</a>) is now supported by phpMyAdmin for developers to
4320 better debug and profile their code.<br />
4321 Please see the <tt>$cfg['DBG']*</tt> configuration options for more
4322 information.<br />
4323 This is in memoriam of the Space Shuttle Columbia (STS-107) which was
4324 lost during its re-entry into Earth's atmosphere and in memory of the
4325 brave men and women who gave their lives for the people of Earth.
4326 </li>
4327  
4328 </ul>
4329  
4330 <!-- CREDITS -->
4331 <a name="credits"></a><br />
4332 <h2>Credits</h2>
4333  
4334 <pre>
4335  
4336 phpMyAdmin - Credits
4337 ====================
4338  
4339 CREDITS, in chronological order
4340 -------------------------------
4341  
4342 - Tobias Ratschiller &lt;tobias_at_ratschiller.com&gt;
4343 * creator of the phpmyadmin project
4344 * maintainer from 1998 to summer 2000
4345  
4346 - Marc Delisle &lt;Marc.Delisle_at_cegepsherbrooke.qc.ca&gt;
4347 * multi-language version
4348 * various fixes and improvements
4349 * SQL analyser (most of it)
4350 * current project maintainer
4351  
4352 - Olivier M&uuml;ller &lt;om_at_omnis.ch&gt;
4353 * started SourceForge phpMyAdmin project in March 2001
4354 * sync'ed different existing CVS trees with new features and bugfixes
4355 * multi-language improvements, dynamic language selection
4356 * current project maintainer
4357 * many bugfixes and improvements
4358  
4359 - Lo&iuml;c Chapeaux &lt;lolo_at_phpheaven.net&gt;
4360 * rewrote and optimized javascript, DHTML and DOM stuff
4361 * rewrote the scripts so they fit the PEAR coding standards and
4362 generate XHTML1.0 and CSS2 compliant codes
4363 * improved the language detection system
4364 * many bugfixes and improvements
4365  
4366 - Robin Johnson &lt;robbat2_at_users.sourceforge.net&gt;
4367 * database maintenance controls
4368 * table type code
4369 * Host authentication IP Allow/Deny
4370 * DB-based configuration (Not completed)
4371 * SQL parser and pretty-printer
4372 * SQL validator
4373 * many bugfixes and improvements
4374  
4375 - Armel Fauveau &lt;armel.fauveau_at_globalis-ms.com&gt;
4376 * bookmarks feature
4377 * multiple dump feature
4378 * gzip dump feature
4379 * zip dump feature
4380  
4381 - Geert Lund &lt;glund_at_silversoft.dk&gt;
4382 * various fixes
4383 * moderator of the phpMyAdmin former users forum at phpwizard.net
4384  
4385 - Korakot Chaovavanich &lt;korakot_at_iname.com&gt;
4386 * &quot;insert as new row&quot; feature
4387  
4388 - Pete Kelly &lt;webmaster_at_trafficg.com&gt;
4389 * rewrote and fix dump code
4390 * bugfixes
4391  
4392 - Steve Alberty &lt;alberty_at_neptunlabs.de&gt;
4393 * rewrote dump code for PHP4
4394 * mySQL table statistics
4395 * bugfixes
4396  
4397 - Benjamin Gandon &lt;gandon_at_isia.cma.fr&gt;
4398 * main author of the version 2.1.0.1
4399 * bugfixes
4400  
4401 - Alexander M. Turek &lt;me_at_derrabus.de&gt;
4402 * MySQL 4.0 / 4.1 / 5.0 compatibility
4403 * abstract database interface (PMA_DBI) with MySQLi support
4404 * privileges administration
4405 * XML exports
4406 * various features and fixes
4407 * German language file updates
4408  
4409 - Mike Beck &lt;mike.beck_at_web.de&gt;
4410 * automatic joins in QBE
4411 * links column in printview
4412 * Relation view
4413  
4414 - Michal &#268;iha&#345; &lt;michal_at_cihar.com&gt;
4415 * enhanced index creation/display feature
4416 * feature to use a different charset for HTML than for MySQL
4417 * improvements of export feature
4418 * various features and fixes
4419 * Czech language file updates
4420  
4421 - Christophe Gesch&eacute; from the &quot;MySQL Form Generator for PHPMyAdmin&quot;
4422 (http://sourceforge.net/projects/phpmysqlformgen/)
4423 * suggested the patch for multiple table printviews
4424  
4425 - Garvin Hicking &lt;me_at_supergarv.de&gt;
4426 * built the patch for vertical display of table rows
4427 * built the Javascript based Query window + SQL history
4428 * Improvement of column/db comments
4429 * (MIME)-Transformations for columns
4430 * Use custom alias names for Databases in left frame
4431 * hierarchical/nested table display
4432 * PDF-scratchboard for WYSIWYG-distribution of PDF relations
4433 * new icon sets
4434 * vertical display of column properties page
4435 * some bugfixes, features, support, German language additions
4436  
4437 - Yukihiro Kawada &lt;kawada_at_den.fujifilm.co.jp&gt;
4438 * japanese kanji encoding conversion feature
4439  
4440 - Piotr Roszatycki &lt;d3xter_at_users.sourceforge.net&gt; and Dan Wilson
4441 * the Cookie authentication mode
4442  
4443 - Axel Sander &lt;n8falke_at_users.sourceforge.net&gt;
4444 * table relation-links feature
4445  
4446 - Maxime Delorme &lt;delorme.maxime_at_free.fr&gt;
4447 * PDF schema output, thanks also to Olivier Plathey for the
4448 &quot;FPDF&quot; library (see <a href="http://www.fpdf.org/">http://www.fpdf.org/</a>) and Steven Wittens
4449 for the &quot;UFPDF&quot; library (see <a href="http://www.acko.net/node/56">http://www.acko.net/node/56</a>).
4450  
4451 - Olof Edlund &lt;olof.edlund_at_upright.se&gt;
4452 * SQL validator server
4453  
4454 - Ivan R. Lanin &lt;ivanlanin_at_users.sourceforge.net&gt;
4455 * phpMyAdmin logo (until June 2004)
4456  
4457 - Mike Cochrane &lt;mike_at_graftonhall.co.nz&gt;
4458 * blowfish library from the Horde project
4459  
4460 - Marcel Tschopp &lt;ne0x_at_users.sourceforge.net&gt;
4461 * mysqli support
4462 * many bugfixes and improvements
4463  
4464 - Michael Keck &lt;mkkeck_at_users.sourceforge.net&gt;
4465 * redesign for 2.6.0
4466 * phpMyAdmin sailboat logo (June 2004)
4467  
4468 - Mathias Landh&auml;u&szlig;er
4469 * Representation at conferences
4470  
4471 - Sebastian Mendel &lt;cybot_tm_at_users.sourceforge.net&gt;
4472 * interface improvements
4473 * various bugfixes
4474  
4475 And also to the following people who have contributed minor changes,
4476 enhancements, bugfixes or support for a new language since version 2.1.0:
4477  
4478 Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
4479 P&eacute;ter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
4480 Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kl&auml;ger,
4481 Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
4482 Bernard M. Piller, Laurent Haas, &quot;Sakamoto&quot;, Yuval Sarna,
4483 www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec,
4484 Michael Tacelosky, Rachim Tamsjadi, Kositer Uros,
4485 Lu&iacute;s V., Martijn W. van der Lee,
4486 Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
4487 Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, &quot;Manuzhai&quot;.
4488  
4489  
4490 Original Credits of Version 2.1.0
4491 ---------------------------------
4492  
4493 This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
4494 to create a web-based interface to MySQL using PHP3. Although I have not
4495 used any of his source-code, there are some concepts I've borrowed from
4496 him. phpMyAdmin was created because Peter told me he wasn't going to
4497 further develop his (great) tool.
4498 Thanks go to
4499 - Amalesh Kempf &lt;ak-lsml_at_living-source.com&gt; who contributed the
4500 code for the check when dropping a table or database. He also suggested
4501 that you should be able to specify the primary key on tbl_create.php3. To
4502 version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
4503 well as a bug-report. Plus many smaller improvements.
4504 - Jan Legenhausen &lt;jan_at_nrw.net&gt;: He made many of the changes that
4505 were introduced in 1.3.0 (including quite significant ones like the
4506 authentication). For 1.4.1 he enhanced the table-dump feature. Plus
4507 bug-fixes and help.
4508 - Marc Delisle &lt;DelislMa_at_CollegeSherbrooke.qc.ca&gt; made phpMyAdmin
4509 language-independent by outsourcing the strings to a separate file. He
4510 also contributed the French translation.
4511 - Alexandr Bravo &lt;abravo_at_hq.admiral.ru&gt; who contributed
4512 tbl_select.php3, a feature to display only some fields from a table.
4513 - Chris Jackson &lt;chrisj_at_ctel.net&gt; added support for MySQL
4514 functions in tbl_change.php3. He also added the
4515 &quot;Query by Example&quot; feature in 2.0.
4516 - Dave Walton &lt;walton_at_nordicdms.com&gt; added support for multiple
4517 servers and is a regular contributor for bug-fixes.
4518 - Gabriel Ash &lt;ga244_at_is8.nyu.edu&gt; contributed the random access
4519 features for 2.0.6.
4520 The following people have contributed minor changes, enhancements, bugfixes
4521 or support for a new language:
4522 Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
4523 Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
4524 Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
4525 G. Wieggers.
4526  
4527 And thanks to everyone else who sent me email with suggestions, bug-reports
4528 and or just some feedback.
4529 </pre>
4530  
4531  
4532  
4533 <a name="bottom"></a><br />
4534 <p align="right">
4535 <a href="http://validator.w3.org/check/referer" target="w3c">
4536 <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" border="0" height="31" width="88" /></a>
4537 &nbsp;&nbsp;&nbsp;&nbsp;
4538 <a href="http://jigsaw.w3.org/css-validator/" target="w3c">
4539 <img src="http://www.w3.org/Icons/valid-css" alt="Valid CSS!" border="0" width="88" height="31" /></a>
4540 </p>
4541  
4542 </body>
4543 </html>