phpMyAdmin 2.2.0-final release
[phpmyadmin/crack.git] / Documentation.html
blob176e1b651aa32ba5cec37fdd047d213f151b1b55
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
3 <!-- $Id$ -->
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
7 <title>phpMyAdmin 2.2.0 - Documentation</title>
8 <style type="text/css">
9 <!--
10 .navigation {
11 font-family: Verdana, Arial, Helvetica, sans-serif;
12 text-decoration: none;
13 font-size: 10pt;
14 color:#000099;
15 font-weight: normal;
17 .navigation:hover {
18 background-color: #99CCFF;
19 font-weight: bolder
21 .navigation2 {
22 font-family: Verdana, Arial, Helvetica, sans-serif;
23 text-decoration: none;
24 font-size: 14pt;
25 color:#000099;
26 font-weight: normal;
28 .navigation2:hover {
29 background-color: #99CCFF;
30 font-weight: bolder
32 h1 {
33 font-family: Verdana, Arial, Helvetica, sans-serif;
34 font-size: x-large;
35 font-weight:bold;
36 color: #000066
38 .simple {
39 font-family: Arial, Helvetica, sans-serif;
40 font-size: smaller;
41 color: #000000
43 body {
44 font-family: Arial, Helvetica, sans-serif;
45 font-size: 10pt
47 td {
48 font-family: Arial, Helvetica, sans-serif;
49 font-size: 10pt
51 ul {
52 font-family: Arial, Helvetica, sans-serif;
53 font-size: 10pt
55 ol {
56 font-family: Arial, Helvetica, sans-serif;
57 font-size: 10pt
59 p {
60 font-family: Arial, Helvetica, sans-serif;
61 font-size: 10pt
63 h2 {
64 font-family: Verdana, Arial, Helvetica, sans-serif;
65 font-size:large;
66 font-weight:bold; color: #000066
68 -->
69 </style>
70 </head>
72 <body bgcolor="#FFFFFF">
73 <a name="top"></a>
74 <h1>phpMyAdmin 2.2.0 Documentation</h1>
77 <!-- TOP MENU -->
78 <ul>
79 <li><a class="navigation" href="http://www.phpwizard.net/projects/phpMyAdmin/">Official phpMyAdmin project homepage &nbsp;&nbsp;&nbsp;[ http://www.phpwizard.net/projects/phpMyAdmin/ ]</a></li>
80 <li><a class="navigation" href="http://phpmyadmin.sourceforge.net/">Sourceforge phpMyAdmin download page &nbsp;&nbsp;&nbsp;[ http://phpmyadmin.sourceforge.net/ ]</a></li>
81 <li>Local documents:
82 <ul>
83 <li>Version history: <a class="navigation" href="ChangeLog">ChangeLog</a></li>
84 <li>General notes: <a class="navigation" href="README">README</a></li>
85 <li>License: <a class="navigation" href="LICENSE">LICENSE</a></li>
86 </ul>
87 </li>
88 <li>Documentation version: <i>$Id$</i></li>
89 </ul>
92 <!-- REQUIREMENTS -->
93 <a name="require"></a><br />
94 <hr noshade="noshade" width="100%" />
95 <font size="+1">
96 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
97 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
98 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
99 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
100 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
101 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
102 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
103 <a class="navigation2" href="#credits">Credits</a>
104 </font>
105 <hr noshade="noshade" width="100%" />
107 <h2>Requirements</h2>
109 <ul>
110 <li>
111 PHP3 or PHP4: phpMyAdmin widely uses the 'str_replace()' php function
112 that was added in PHP&nbsp;3.0.6, but was buggy up until
113 PHP&nbsp;3.0.8.
114 Then <font color="#bb0000">you should not run this script with
115 PHP3&nbsp;&lt;&nbsp;3.0.8</font>.<br />
116 PHP also needs to be <font color="#bb0000">compiled with mysql
117 and PCRE support</font>;
118 </li>
119 <li>
120 MySQL (tested with 3.21.x, 3.22.x and 3.23.x);
121 </li>
122 <li>
123 a web-browser (doh!).
124 </li>
125 </ul>
128 <!-- INTRODUCTION -->
129 <a name="intro"></a><br />
130 <hr noshade="noshade" width="100%" />
131 <font size="+1">
132 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
133 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
134 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
135 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
136 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
137 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
138 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
139 <a class="navigation2" href="#credits">Credits</a>
140 </font>
141 <hr noshade="noshade" width="100%" />
143 <h2>Introduction</h2>
146 phpMyAdmin can administer a whole MySQL-server (needs a super-user)
147 but also a single database. To accomplish the latter you'll need
148 a properly set up MySQL-user who can read/write only the desired
149 database. It's up to you to look up the appropiate part in the
150 MySQL manual. Currently phpMyAdmin can:
151 </p>
153 <ul>
154 <li>create and drop databases</li>
155 <li>create, copy, drop and alter tables</li>
156 <li>delete, edit and add fields</li>
157 <li>execute any SQL-statement, even batch-queries</li>
158 <li>manage keys on fields</li>
159 <li>load text files into tables</li>
160 <li>create (*) and read dumps of tables</li>
161 <li>export (*) and import data to CSV values</li>
162 <li>administer multiple servers and single databases</li>
163 <li>communicate in more than 20 different languages</li>
164 </ul>
166 <table border="0" cellspacing="0" cellpadding="0">
167 <tr>
168 <td valign="top">(*)&nbsp;</td>
169 <td>
170 phpMyAdmin can compress (GZip format -RFC 1952- or Bzip2) dumps and CSV
171 exports if you use PHP4&nbsp;>=&nbsp;4.0.4 with Zlib support
172 (<tt>--with-zlib</tt>) and/or Bzip2 support (<tt>--with-bz2</tt>).
173 </td>
174 </tr>
175 </table>
178 <!-- INSTALLATION -->
179 <a name="setup"></a><br />
180 <hr noshade="noshade" width="100%" />
181 <font size="+1">
182 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
183 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
184 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
185 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
186 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
187 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
188 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
189 <a class="navigation2" href="#credits">Credits</a>
190 </font>
191 <hr noshade="noshade" width="100%" />
193 <h2>Installation</h2>
195 <p>Quick Install:</p>
196 <ol>
197 <li> Untar or unzip the distribution (be sure to unzip the subdirectories):
198 <tt>tar xzvf phpMyAdmin_x.x.x.tar.gz</tt></li>
199 <li> Open the file config.inc.php3 in your favourite editor and change
200 the values for host, user and password to fit your environment.
201 Have a look at <i>Documentation.html</i> for an explanation of all
202 values.</li>
203 <li> It is recommended that you protect the directory in which
204 you installed phpMyAdmin (unless it's on a closed intranet),
205 for example with HTTP-AUTH (in a <i>.htaccess</i> file). See the
206 <a class="navigation" href="#faq">FAQ section</a> for additional
207 information.</li>
208 <li> Open the file
209 <i>&lt;www.your-host.com&gt;/&lt;your-install-dir&gt;/index.php3</i>
210 in your browser. phpMyAdmin should now display a welcome screen
211 and your databases, or a login dialog if using advanced authentication.</li>
212 </ol>
214 <p>Upgrading from an older version:</p>
215 <ul>
216 <li> Please do not copy your older config.inc.php3 over the new one: it may offer new configuration variables, and the new version may depend on these for normal behavior. It is suggested instead to insert your site values in the new one.</li>
217 </ul>
220 <!-- CONFIGURATION -->
221 <a name="config"></a><br />
222 <hr noshade="noshade" width="100%" />
223 <font size="+1">
224 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
225 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
226 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
227 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
228 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
229 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
230 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
231 <a class="navigation2" href="#credits">Credits</a>
232 </font>
233 <hr noshade="noshade" width="100%" />
235 <h2>Configuration</h2>
237 <p>All configurable data is placed in <i>config.inc.php3</i>.</p>
238 <dl>
239 <dt><b>$cfgPmaAbsoluteUri</b> string</dt>
240 <dd>
241 Sets here the complete url (with full path) to your phpMyAdmin version.
242 E.g. <tt>http://www.your_web.net/path_to_your_phpMyAdmin_directory/</tt>.
243 <br />
244 Don't forget the slash at the end of your url.
245 <br /><br />
246 </dd>
248 <dt><b>$cfgServers</b> array</dt>
249 <dd>
250 Since version 1.4.2, phpMyAdmin supports the administration of multiple
251 MySQL servers.
252 Therefore, a $cfgServers-array has been added which contains the login
253 information for the different servers. <tt>$cfgServers[1]['host']</tt>
254 contains the hostname of the first server,
255 <tt>$cfgServers[2]['host']</tt> the hostname of the second server, etc.
256 If you have only one server to administer, simply leave free the
257 hostname of the other $cfgServer-entries.
258 <br /><br />
259 </dd>
261 <dt><b>$cfgServers[n]['host']</b> string</dt>
262 <dd>
263 The hostname of your n-th MySQL-server. E.g. localhost.
264 <br /><br />
265 </dd>
267 <dt><b>$cfgServers[n]['port']</b> string</dt>
268 <dd>
269 The port-number of your n-th MySQL-server. Default is 3306 (leave
270 blank).
271 <br /><br />
272 </dd>
274 <dt><b>$cfgServers[n]['socket']</b> string</dt>
275 <dd>
276 The path to the socket to use. Leave blank for default.
277 <br /><br />
278 </dd>
280 <dt><b>$cfgServers[n]['connect_type']</b> string</dt>
281 <dd>
282 What type connection to use with the MySQL server. Your options are
283 'socket' &amp; 'tcp'. It defaults to 'tcp' as that is nearly guarenteed
284 to be available on all MySQL servers, while sockets are not supported
285 on some platforms.
286 <br /><br />
287 </dd>
289 <dt><b>$cfgServers[n]['adv_auth']</b> boolean</dt>
290 <dd>
291 Whether basic or advanced authentication should be used for this
292 server.<br />
293 Basic authentication (<tt>$adv_auth&nbsp;=&nbsp;false</tt>) is the
294 plain old way: username and password are stored in
295 <i>config.inc.php3</i>.
296 Advanced authentication (<tt>$adv_auth&nbsp;=&nbsp;true</tt>) as
297 introduced in 1.3.0 allows you to log in as any valid MySQL user via
298 HTTP-Auth.<br />
299 Please note that this authentication mode is
300 <font color="#bb0000">only supported with PHP running as an Apache
301 module</font>, and not with cgi.<br /><br />
303 Using advanced authentication is recommended:
304 <ul>
305 <li>
306 when phpMyAdmin is running in a multi-user environment where
307 people have shell-access that you don't want to know the
308 username/password for MySQL.
309 </li>
310 <li>
311 when you want to give users access to their own database and
312 don't want them to play around with others.
313 <br /><br />
314 </li>
315 </ul>
317 Advanced authentication is secure as the standard user needs just
318 read-only-access to the mysql database.
319 <br /><br />
321 All you have to provide in config.inc is a standard user which can
322 connect to MySQL and read the mysql user/db table
323 (see <tt>$cfgServers[n]['stduser']</tt>).
324 <br /><br />
326 See also the FAQ section for more information about security.
327 <br /><br />
328 </dd>
330 <dt>
331 <b>$cfgServers[n]['stduser']</b> string<br />
332 <b>$cfgServers[n]['stdpass']</b> string
333 </dt>
334 <dd>
335 A user/password pair used to verify the real user/password pair when
336 using advanced authentication. This user must be able to connect to
337 MySQL and read the mysql user table.<br />
338 Not needed when using basic authentication.
339 <br /><br />
340 </dd>
342 <dt>
343 <b>$cfgServers[n]['user']</b> string<br />
344 <b>$cfgServers[n]['password']</b> string
345 </dt>
346 <dd>
347 The user/password-pair which phpMyAdmin will use to connect to this
348 MySQL-server when using basic authentication.<br />
349 Not needed when using advanced authentication.
350 <br /><br />
351 </dd>
353 <dt><b>$cfgServers[n]['only_db']</b> string or array</dt>
354 <dd>
355 If set to a(an array of) database name(s), only this(these) database(s)
356 will be shown to the user.
357 <br /><br />
358 </dd>
360 <dt><b>$cfgServers[n]['verbose']</b> string</dt>
361 <dd>
362 Only useful when using phpMyAdmin with multiple server entries. If set,
363 this string will be displayed instead of the hostname in the pulldown
364 menu on the main page. This can be useful if you want to show only
365 certain databases on your system, for example.
366 <br /><br />
367 </dd>
369 <dt>
370 <b>$cfgServers[n]['bookmarkdb']</b> string<br />
371 <b>$cfgServers[n]['bookmarktable']</b> string
372 </dt>
373 <dd>
374 Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can be
375 useful for queries you often run.<br /><br />
377 To use this functionality you have to:
378 <ul>
379 <li>
380 create a table following this scheme:<br />
381 <tt>
382 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE bookmark (<br />
383 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id int(11) DEFAULT '0' NOT NULL auto_increment,<br />
384 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbase varchar(255) NOT NULL,<br />
385 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user varchar(255) NOT NULL,<br />
386 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label varchar(255) NOT NULL,<br />
387 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query text NOT NULL,<br />
388 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (id)<br />
389 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);
390 </tt>
391 </li>
392 <li>
393 then complete the two variables
394 <tt>$cfgServers[n]['bookmarkdb']</tt> and
395 <tt>$cfgServers[n]['bookmarktable']</tt> so phpMyAdmin will be
396 able to find the bookmark table.
397 </li>
398 </ul><br />
400 If you are using advanced authentication, stduser must have
401 <tt>Select_Priv, Insert_Priv</tt> and <tt>Delete_Priv</tt> set to "Y"
402 in <i>mysql.db</i> table for the bookmark database.
403 <br /><br />
404 </dd>
406 <dt><b>$cfgServerDefault</b> integer</dt>
407 <dd>
408 If you have more than one server configured, you can set
409 $cfgServerDefault to any one of them to autoconnect to that server when
410 phpMyAdmin is started, or set it to 0 to be given a list of servers
411 without logging in.<br />
412 If you have only one server configured, <tt>$cfgServerDefault</tt> MUST
413 be set to that server.
414 <br /><br />
415 </dd>
417 <dt><b>$cfgConfirm </b>boolean</dt>
418 <dd>
419 Whether a warning (&quot;Are your really sure..&quot;) should be
420 displayed when you're about to loose data.
421 <br /><br />
422 </dd>
424 <dt><b>$cfgPersistentConnections </b>boolean</dt>
425 <dd>
426 Whether persistent connections should be used or not (mysql_connect or
427 mysql_pconnect).
428 <br /><br />
429 </dd>
431 <dt><b>$cfgShowBlob </b>boolean</dt>
432 <dd>
433 Defines whether <tt>BLOB</tt> fields are shown when browsing a table's
434 content or not.
435 <br /><br />
436 </dd>
438 <dt><b>$cfgProtectBlob </b>boolean</dt>
439 <dd>
440 Defines whether <tt>BLOB</tt> fields are protected from edition when
441 browsing a table's content or not.
442 <br /><br />
443 </dd>
445 <dt><b>$cfgAllowUserDropDatabase </b>boolean</dt>
446 <dd>
447 Defines whether standard users (non administrator) are allowed to
448 delete their own database or not. If set as FALSE, the link "Drop
449 Database" will not be shown, and even a "DROP DATABASE mydatabase"
450 will be rejected. Quite practical for ISP's with many customers.
451 <br /><br />
452 </dd>
454 <dt><b>$cfgShowSQL </b>boolean</dt>
455 <dd>
456 Defines whether sql-queries generated by phpMyAdmin should be displayed
457 or not.
458 <br /><br />
459 </dd>
461 <dt><b>$cfgSkipLockedTables </b>boolean</dt>
462 <dd>
463 Mark used tables and make it possible to show databases with locked
464 tables (since 3.23.30).
465 <br /><br />
466 </dd>
468 <dt><b>$cfgMaxRows </b>integer</dt>
469 <dd>
470 Number of rows displayed when browsing a resultset. If the resultset
471 contains more rows, Previous/Next links will be shown.
472 <br /><br />
473 </dd>
475 <dt><b>$cfgOrder </b>string [<tt>DESC</tt>|<tt>ASC</tt>|<tt>SMART</tt>]</dt>
476 <dd>
477 Defines whether fields are displayed in ascending (<tt>ASC</tt>) order,
478 in descending (<tt>DESC</tt>) order or in a "smart" (<tt>SMART</tt>)
479 order -ie descending order for fields of type TIME, DATE, DATETIME &
480 TIMESTAMP, ascending order else- by default.
481 <br /><br />
482 </dd>
484 <dt><b>$cfgOBGzip </b>boolean</dt>
485 <dd>
486 Defines whether to use gzip output buffering for increased
487 speed in HTTP transfers.
488 <br /><br />
489 </dd>
491 <dt>
492 <b>$cfgGZipDump </b>boolean<br />
493 <b>$cfgBZipDump </b>boolean
494 </dt>
495 <dd>
496 Defines whether to allow the use of gzip/bzip compression when creating
497 a dump file or not.
498 <br /><br />
499 </dd>
501 <dt><b>$cfgManualBase</b> string</dt>
502 <dd>
503 If set to an URL which points to the MySQL documentation, appropriate
504 help links are generated.
505 <br /><br />
506 </dd>
508 <dt><b>$cfgDefaultLang </b>string</dt>
509 <dd>
510 Defines the default language to use, if not browser-defined or
511 user-defined.<br />
512 See the <i>select_lang.inc.php3</i> script to know the valid values for
513 this setting.
514 <br /><br />
515 </dd>
517 <dt><b>$cfgLang </b>string</dt>
518 <dd>
519 Force: always use this language (must be defined in the
520 <i>select_lang.inc.php3</i> script).
521 <br /><br />
522 </dd>
524 <dt><b>$cfgBorder </b>integer</dt>
525 <dd>
526 The size of a table's border.
527 <br /><br />
528 </dd>
530 <dt><b>$cfgThBgcolor </b>string [HTML color]</dt>
531 <dd>
532 The color (HTML) used for table headers.
533 <br /><br />
534 </dd>
536 <dt><b>$cfgBgcolorOne </b>string [HTML color]</dt>
537 <dd>
538 The color (HTML) #1 for table rows.
539 <br /><br />
540 </dd>
542 <dt><b>$cfgBgcolorTwo </b>string [HTML color]</dt>
543 <dd>
544 The color (HTML) #2 for table rows.
545 <br /><br />
546 </dd>
548 <dt>
549 <b>$cfgTextareaCols </b>integer<br />
550 <b>$cfgTextareaRows </b>integer
551 </dt>
552 <dd>
553 Number of columns and rows for the textareas.
554 <br /><br />
555 </dd>
557 <dt><b>$cfgLimitChars </b>integer</dt>
558 <dd>
559 Maximal number of Chars showed in a TEXT field on browse view. Can be turned off by
560 a toggle button on the browse page.
561 <br /><br />
562 </dd>
564 <dt>
565 <b>$cfgModifyDeleteAtLeft </b>boolean<br />
566 <b>$cfgModifyDeleteAtRight </b>boolean
567 </dt>
568 <dd>
569 Defines the place where modify and delete links would be put when
570 tables contents are displayed (you may have them displayed both at the
571 left and at the right).
572 <br /><br />
573 </dd>
575 <dt><b>$cfgLeftWidth </b>integer</dt>
576 <dd>
577 Left frame width in pixel.
578 <br /><br />
579 </dd>
581 <dt><b>$cfgColumnTypes </b>array</dt>
582 <dd>
583 All possible types of a MySQL column. In most cases you don't need to
584 edit this.
585 <br /><br />
586 </dd>
588 <dt><b>$cfgAttributeTypes </b>array</dt>
589 <dd>
590 Possible attributes for fields. In most cases you don't need to edit
591 this.
592 </dd>
594 <dt><b>$cfgFunctions </b>array</dt>
595 <dd>
596 A list of functions MySQL supports. In most cases you don't need to
597 edit this.
598 <br /><br />
599 </dd>
600 </dl>
603 <!-- FAQ -->
604 <a name="faq"></a><br />
605 <hr noshade="noshade" width="100%" />
606 <font size="+1">
607 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
608 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
609 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
610 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
611 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
612 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
613 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
614 <a class="navigation2" href="#credits">Credits</a>
615 </font>
616 <hr noshade="noshade" width="100%" />
618 <h2>FAQ - Frequently Asked Questions</h2>
621 <b>The error message "Warning: Cannot add header information - headers
622 already sent by ..." is displayed, what's the problem?</b>
623 <br />
624 Look at the end of your <i>config.inc.php or .php3</i> file, there must be
625 no blank lines or spaces after the <tt>?></tt>.
626 </p>
629 <b>I can't insert new rows into a table - MySQL brings up a SQL-error.</b>
630 <br />
631 Examine the SQL error with care. I've found that many programmers
632 specifying a wrong field-type.<br />
633 Common errors include:
634 </p>
635 <ul>
636 <li>Using <tt>VARCHAR</tt> without a size argument</li>
637 <li>Using <tt>TEXT or</tt> BLOB with a size argument</li>
638 </ul>
640 Also, look at the syntax chapter in the MySQL manual to confirm that your
641 syntax is correct.
642 </p>
645 <b>phpMyAdmin can't connect to MySQL. What's wrong?</b>
646 <br />
647 Either there is an error with your PHP setup or your username/password is
648 wrong. Try to make a small script which uses mysql_connect and see if it
649 works. If it doesn't, it may be you haven't even compiled MySQL support
650 into PHP.
651 </p>
654 <b>The error message "Warning: MySQL Connection Failed: Can't connect to
655 local MySQL server through socket '/tmp/mysql.sock' (111)...") is
656 displayed. What can I do?</b>
657 <br />
658 Here is a fix suggested by Brad Ummer in the
659 <a class="navigation" href="http://www.phpwizard.net/phorum/list.php?f=1" target="_blank">
660 phpwizard forum</a>:
661 </p>
662 <ul>
663 <li>
664 First, you need to determine what socket is being used by MySQL.
665 <br />
666 To do this, telnet to your server and go to the MySQL bin directory. In
667 this directory there should be a file named <i>mysqladmin</i>. Type
668 <tt>./mysqladmin variables</tt>, and this should give you a bunch of
669 info about your MySQL server, including the socket
670 (<i>/tmp/mysql.sock</i>, for example).
671 </li>
672 <li>
673 Then, you need to tell PHP to use this socket.<br />Assuming you are
674 using PHP 3.0.10 or better, you can specify the socket to use when you
675 open the connection. To do this in phpMyAdmin, you need to complete the
676 socket information in the config.inc.php3.<br />
677 For example:
678 <tt>$cfgServers[n]['socket']&nbsp;=&nbsp;'/tmp/mysql.sock';</tt>
679 </li>
680 </ul>
683 <b>phpMyAdmin always gives "Access denied" when using advanced
684 authentication.</b>
685 <br />
686 This could happen for some reasons:
687 </p>
688 <ul>
689 <li>
690 <tt>$stduser/$stdpassword</tt> is wrong. Try to turn off $adv_auth and
691 use this username and password to connect to MySQL.
692 </li>
693 <li>
694 The username/password your specify in the login-dialog is wrong. Try
695 the same as above and see if it works.
696 </li>
697 <li>
698 You have already setup a security mechanism for the
699 phpMyAdmin-directory, eg. a .htaccess file. This would interfere with
700 phpMyAdmin's authentication, so remove it.
701 </li>
702 </ul>
704 <a name="login_bug"></a>
706 <b>When using advanced authentication, an user who logged out can not
707 relogs in with the same nick.</b>
708 <br />
709 This is related to the authentication mechanism (protocol) used by
710 phpMyAdmin. We plan to change it as soon as we may find enough free time
711 to do it, but you can bypass this problem: just close all the opened
712 browser windows and then go back to phpMyAdmin. You should be able to
713 logs in again.
714 </p>
717 <b>I would like to help out with the development of phpMyAdmin. How should
718 I proceed?</b>
719 <br />
720 The following method is preferred for new developers:
721 </p>
722 <ul>
723 <li>
724 fetch the current CVS tree over anonymous CVS:<br />
725 <tt>cvs -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin login</tt><br />
726 [Password: simply press the Enter key]<br />
727 <tt>cvs -z3 -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin checkout phpMyAdmin</tt><br />
728 [This will create a new sub-directory named phpMyAdmin]
729 </li>
730 <li>
731 add your stuff
732 </li>
733 <li>
734 put the modified files (tar'ed and gzip'ed) inside the patch tracker of
736 <a class="navigation" href="https://sourceforge.net/projects/phpmyadmin/" target="_blank">phpMyAdmin SourceForge account</a>.
737 </li>
738 </ul>
740 Write access to the CVS tree is granted only to experienced developers who
741 have already contributed something useful to phpMyAdmin.<br />
742 Also, have a look at the <a class="navigation" href="#developers">Developers section</a>.
743 </p>
746 <b>What's the preferred way of making phpMyAdmin secure against evil
747 access?</b>
748 <br />
749 This depends on your system.<br />
750 If you're running a server which cannot be accessed by other people, it's
751 sufficient to use the directory protection bundled with your webserver
752 (with Apache you can use <i>.htaccess</i> files, for example).<br />
753 If other people have telnet access to your server, you should use
754 phpMyAdmin's advanced authentication feature.
755 <br /><br />
756 Suggestions:
757 </p>
758 <ul>
759 <li>
760 Your <i>config.inc.php3</i> file should be <tt>chmod 660</tt>.
761 </li>
762 <li>
763 All your phpMyAdmin files should be chown phpmy.apache, where phpmy
764 is a user whose password is only known to you, and apache is the
765 group under which Apache runs.
766 </li>
767 <li>
768 You should use PHP safe mode, to protect from other users that try
769 to include your <i>config.inc.php3</i> in their scripts.
770 </li>
771 </ul>
774 <b>How can I insert a null value into my table?</b>
775 <br />
776 Enter &quot;null&quot;, without the quotes, as the field's value. This is
777 especially useful for <tt>Timestamp</tt> or <tt>AutoIncrement</tt> fields.
778 </p>
781 <b>I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to
782 install it for each customer?</b>
783 <br />
784 Since version 2.0.3, you can setup a central copy of phpMyAdmin for all
785 your users. The development of this feature was kindly sponsored by
786 NetCologne GmbH.
787 <br />
788 This requires a properly setup MySQL user management and phpMyAdmin's
789 advanced authentication. phpMyAdmin performs these steps, when
790 authenticating a user:
791 </p>
792 <ol>
793 <li>
794 Select all entries from the <i>mysql.user</i> table where the
795 username/password matches the challenging user. If no rows are
796 returned, the authentication has failed. Otherwise, phpMyAdmin
797 continues with step 2.
798 </li>
799 <li>
800 If the user's global <tt>Select_Priv</tt> is &quot;N&quot; (ie the user
801 is not allowed to access <b>all</b> databases), phpMyAdmin searches the
802 <i>mysql.db</i> table for entries with
803 <tt>Select_Priv&nbsp;=&nbsp;&quot;Y&quot;</tt> belonging to the user.
804 If no entries are found, the authentication has failed. Otherwise,
805 phpMyAdmin shows all databases the user is allowed to view.
806 <br />
807 If the user's global <tt>Select_Priv</tt> is <tt>&quot;Y&quot;</tt>,
808 all databases in the system are shown.
809 </li>
810 </ol>
812 This means that you need to add a user to the mysql database as
813 following:<br />
814 <tt>INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv,
815 Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
816 File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ('localhost',
817 'foo', PASSWORD('bar'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',
818 'N', 'N', 'N')</tt><br />
819 <tt>INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
820 Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv)
821 VALUES ('localhost', 'foo_db', 'foo', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '',
822 '', '')</tt><br />
823 Then only the &quot;foo_db&quot; database will be displayed to user
824 &quot;foo&quot;.
825 </p>
828 <b>How can I GZip or Bzip a dump or a CSV export. It seem to not work?</b>
829 <br />
830 These features are based on the <tt>gzencode()</tt> and
831 <tt>bzcompress()</tt> php functions to be more independent of the platform
832 (Unix/Windows, Safe Mode or not, and so on).
833 So, you must have PHP4&nbsp;>=&nbsp;4.0.4 and Zlib/Bzip2 support
834 (<tt>--with-zlib</tt> and <tt>--with-bz2</tt>).
835 </p>
838 <b>I try to insert a text file in a table, and I get: <br />
839 Error MySQL said: The file '/tmp/phpkvpp60' must be in the database
840 directory or be readable by all</b>
841 <br />
842 Your uploaded file is saved by PHP in the "upload dir", as defined in
843 <i>php.ini</i> by the variable <tt>upload_tmp_dir</tt> (usually the system
844 default is <i>/tmp</i>).
845 If this directory is not readable by all, the MySQL server (which must be
846 running on the same machine) cannot open the file (except if running as
847 root, which is not recommended).
848 <br />
849 The system administrator can do a "<tt>chmod 777 /tmp</tt>": then the MySQL
850 server will accept to read it. Also, the user must have File privilege.
852 </p>
854 <p>
855 <b>I'm having troubles when uploading files. In general file uploads don't
856 work on my system and uploaded files have a <tt>Content-Type:</tt> header
857 in the first line.</b>
858 <br />
860 It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0
861 and you updated your php rpm to php-4.0.4pl1-3.i386.rpm, didn't you?
862 <br />
863 So the problem is that this package has a serious bug that was corrected
864 ages ago in php (2001-01-28: see
865 <a href="http://www.php.net/bugs.php?id=8966">php's bug tracking system</a>
866 for more details). The problem is that the bugged package is still
867 available though it was corrected (see
868 <a href="http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=24933">redhat's bugzilla</a>
869 for more details).
870 <br />
871 So please download
872 <a href="http://people.redhat.com/nalin/test/php-4.0.4pl1-7.i386.rpm">the fixed package</a>
873 and the problem should go away.
874 <br />
876 And that fixes the \r\n problem with file uploads!
877 </p>
880 <b>When I create a table, I click the Index checkbox for 2 fields and
881 phpMyAdmin generates only one index with those 2 fields.</b>
882 <br />
883 In phpMyAdmin 2.2.0, this is the way to create a multi-fields index. If you
884 want two indexes, create the first one when creating the table, save, then
885 display the table properties and click the Index link to create the other
886 index.
887 </p>
890 <b>I get an out of memory error, and my controls are non-functional,
891 when trying to create a table with more than 14 fields.</b>
892 <br />
893 This is a problem under investigation. Seems to be OS and/or browser-
894 dependent. For now, create a smaller number of fields, then come back
895 to your table properties and add the other fields.
896 </p>
899 <b>I have found a bug. How do I inform developpers?</b>
900 <br />
901 Our Bug Tracker is located at <a href="http://sourceforge.net/projects/phpmyadmin">
902 http://sourceforge.net/projects/phpmyadmin</a> under the Bugs section.
903 <br /><br />
904 But please first discuss your bug with other users:
905 <br />
906 <a href="http://sourceforge.net/projects/phpmyadmin">
907 http://sourceforge.net/projects/phpmyadmin</a> (and choose Forums)
908 <br />
909 <a href="http://www.phpwizard.net/projects/phpMyAdmin">
910 http://www.phpwizard.net/projects/phpMyAdmin</a> (and choose Support
911 Forum)
912 </p>
915 <!-- DEVELOPERS -->
916 <a name="developers"></a><br />
917 <hr noshade="noshade" width="100%" />
918 <font size="+1">
919 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
920 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
921 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
922 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
923 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
924 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
925 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
926 <a class="navigation2" href="#credits">Credits</a>
927 </font>
928 <hr noshade="noshade" width="100%" />
930 <h2>Developers Information</h2>
933 phpMyAdmin is Open Source, so you're invited to contribute to it. Many
934 great features have been written by other people and you too can help to
935 make phpMyAdmin a useful tool.
936 </p>
938 <p>
939 If you're planning to contribute source, please read the following
940 information:
941 </p>
942 <ul>
943 <li>
944 All files include <i>header.inc.php3</i> (layout), <i>lib.inc.php3</i>
945 (common functions) and <i>config.inc.php3</i>.
946 <br />
947 All configuration data belongs in <i>config.inc.php3</i>. Please keep
948 it free from other code.
949 <br />
950 Commonly used functions should be added to <i>lib.inc.php3</i>.
951 </li>
952 <li>
953 Obviously, you're free to use whatever coding style you want. But
954 please try to keep your code as simple as possible: beginners are
955 using phpMyAdmin as an example application.<br />
956 By the way, we're currently updating all the scripts so they will be
957 XHTML1.0 and CSS2 compliant on one hand, they will fit
958 <a class="navigation" href="http://pear.php.net/" target="_blank">PEAR coding standards</a>
959 on the other hand. Please pay attention to this.
960 </li>
961 <li>
962 Please try to keep up the file-naming conventions. Table-related stuff
963 goes to <i>tbl_*.php3</i>, db-related code to <i>db_*.php3</i> and so
965 </li>
966 <li>
967 Please don't use verbose strings in your code, instead add the string
968 (at least) to <i>english.inc.php3</i> and print() it out.
969 </li>
970 <li>
971 If you want to be really helpful, write an entry for the ChangeLog.
972 </li>
973 </ul>
976 IMPORTANT: With 1.4.1, development has switched to CVS. The following
977 method is preferred for new developers:
978 </p>
979 <ul>
980 <li>
981 fetch the current CVS tree over anonymous CVS:<br />
982 <tt>cvs -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin login</tt><br />
983 [Password: simply press the Enter key]<br />
984 <tt>cvs -z3 -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin checkout phpMyAdmin</tt><br />
985 [This will create a new sub-directory named phpMyAdmin]
986 </li>
987 <li>
988 add your stuff
989 </li>
990 <li>
991 put the modified files (tar'ed and gzip'ed) inside the patch tracker
992 of the phpMyAdmin SourceForge account
993 (<a class="navigation" href="http://sourceforge.net/projects/phpmyadmin/" target="_blank">http://sourceforge.net/projects/phpmyadmin/</a>)
994 </li>
995 </ul>
997 Write access to the CVS tree is granted only to developers who have already
998 contributed something useful to phpMyAdmin. If you're interested in that,
999 please contact us using the phpmyadmin-devel mailing list.
1000 </p>
1003 <!-- CREDITS -->
1004 <a name="credits"></a><br />
1005 <hr noshade="noshade" width="100%" />
1006 <font size="+1">
1007 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
1008 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
1009 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
1010 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
1011 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
1012 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
1013 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
1014 <a class="navigation2" href="#credits">Credits</a>
1015 </font>
1016 <hr noshade="noshade" width="100%" />
1018 <h2>Credits</h2>
1020 <pre>
1022 phpMyAdmin - Credits
1023 ====================
1025 CREDITS, in chronological order
1026 -------------------------------
1028 [tr] - Tobias Ratschiller &lt;tobias_at_phpwizard.net&gt;
1029 * creator of the phpmyadmin project
1030 * maintainer from 1998 to summer 2000
1032 [md] - Marc Delisle &lt;DelislMa_at_CollegeSherbrooke.qc.ca&gt;
1033 * multi-language version
1034 * various fixes and improvements
1036 [om] - Olivier Müller &lt;om_at_omnis.ch&gt;
1037 * started SourceForge phpMyAdmin project in March 2001
1038 * sync'ed different existing CVS trees with new features and bugfixes
1039 * multi-language improvements, dynamic language selection
1040 * current project maintainer, with Marc and Loic
1042 [lc] - Loïc Chapeaux &lt;lolo_at_phpheaven.net&gt;
1043 * rewrote and optimized javascript, DHTML and DOM stuff
1044 * started to rewrite the scripts so they fit the PEAR coding standards
1045 and generate XHTML1.0 and CSS2 compliant codes
1046 * improved the language detection system
1047 * many bugfixes and improvements
1049 [rj] - Robin Johnson &lt;robbat2_at_users.sourceforge.net&gt;
1050 * database maintence controls
1051 * table type code
1053 [af] - Armel Fauveau &lt;armel.fauveau_at_globalis-ms.com&gt;
1054 * bookmarks feature
1055 * multiple dump feature
1056 * gzip dump feature
1058 [gl] - Geert Lund &lt;glund_at_silversoft.dk&gt;
1059 * various fixes
1060 * moderator of the phpMyAdmin users forum at phpwizard.net
1062 [kc] - Korakot Chaovavanich &lt;korakot_at_iname.com&gt;
1063 * "insert as new row" feature
1065 [pk] - Pete Kelly &lt;webmaster_at_trafficg.com&gt;
1066 * rewrote and fix dump code
1067 * bugfixes
1069 [sa] - Steve Alberty &lt;alberty_at_neptunlabs.de&gt;
1070 * rewrote dump code for PHP4
1071 * mySQL table statistics
1072 * bugfixes
1074 [bg] - Benjamin Gandon &lt;gandon_at_isia.cma.fr&gt;
1075 * main author of the version 2.1.0.1
1076 * bugfixes
1079 The following people have contributed minor changes, enhancements, bugfixes or
1080 or support for a new language since version 2.1.0:
1081 Ricardo ?, Sven-Erik Andersen, Alessandro Astarita, Borges Botelho,
1082 Olivier Bussier, Michal Cihar, Neil Darlow, Kristof Hamann, Thomas Kläger,
1083 Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg,
1084 Bernard M. Piller, Laurent Haas, "Sakamoto", www.securereality.com.au,
1085 Michael Tacelosky, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams,
1086 Chee Wai, Jakub Wilk, Thomas Michael Winningham.
1089 Original Credits of Version 2.1.0
1090 ---------------------------------
1092 This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
1093 to create a web-based interface to MySQL using PHP3. Although I have not
1094 used any of his source-code, there are some concepts I've borrowed from
1095 him. phpMyAdmin was created because Peter told me he wasn't going to
1096 further develop his (great) tool.
1097 Thanks go to
1098 - Amalesh Kempf &lt;ak-lsml_at_living-source.com&gt; who contributed the
1099 code for the check when dropping a table or database. He also suggested
1100 that you should be able to specify the primary key on tbl_create.php3. To
1101 version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
1102 well as a bug-report. Plus many smaller improvements.
1103 - Jan Legenhausen &lt;jan_at_nrw.net&gt;: He made many of the changes that
1104 were introduced in 1.3.0 (including quite significant ones like the
1105 authentication). For 1.4.1 he enhanced the table-dump feature. Plus
1106 bug-fixes and help.
1107 - Marc Delisle &lt;DelislMa_at_CollegeSherbrooke.qc.ca&gt; made phpMyAdmin
1108 language-independent by outsourcing the strings to a separate file. He
1109 also contributed the French translation.
1110 - Alexandr Bravo &lt;abravo_at_hq.admiral.ru&gt; who contributed
1111 tbl_select.php3, a feature to display only some fields from a table.
1112 - Chris Jackson &lt;chrisj_at_ctel.net&gt; added support for MySQL
1113 functions in tbl_change.php3. He also added the "Query by Example"
1114 feature in 2.0.
1115 - Dave Walton &lt;walton_at_nordicdms.com&gt; added support for multiple
1116 servers and is a regular contributor for bug-fixes.
1117 - Gabriel Ash &lt;ga244_at_is8.nyu.edu&gt; contributed the random access
1118 features for 2.0.6.
1119 The following people have contributed minor changes, enhancements, bugfixes
1120 or support for a new language:
1121 Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
1122 Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
1123 Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
1124 G. Wieggers.
1126 And thanks to everyone else who sent me email with suggestions, bug-reports
1127 and or just some feedback.
1128 </pre>
1132 <a name="bottom"></a><br />
1133 <hr noshade="noshade" width="100%" />
1134 <font size="+1">
1135 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
1136 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
1137 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
1138 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
1139 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
1140 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
1141 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
1142 <a class="navigation2" href="#credits">Credits</a>
1143 </font>
1144 <hr noshade="noshade" width="100%" />
1146 <p align="right">
1147 <a href="http://validator.w3.org/check/referer" target="w3c">
1148 <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" border="0" height="31" width="88" /></a>
1149 &nbsp;&nbsp;&nbsp;&nbsp;
1150 <a href="http://jigsaw.w3.org/css-validator/" target="w3c">
1151 <img src="http://www.w3.org/Icons/valid-css" alt="Valid CSS!" border="0" width="88" height="31" /></a>
1152 </p>
1154 </body>
1155 </html>