14
phpMyAdmin 2.10.1 Documentation
17
* SourceForge phpMyAdmin project page
18
* Official phpMyAdmin wiki
20
+ Version history: ChangeLog
21
+ General notes: README
23
* Documentation version: $Id: Documentation.html 10319 2007-04-24 04:04:17Z
29
+ You need PHP 4.1.0 or newer, with session support (see FAQ 1.31)
30
+ You need GD2 support in PHP to display inline thumbnails of JPEGs
31
("image/jpeg: inline") with their original aspect ratio
32
+ You need PHP 4.3.0 or newer to use the "text/plain: external"
33
MIME-based transformation
34
* MySQL 3.23.32 or newer (details);
35
* Not really a requirement but a strong suggestion: if you are using the
36
"cookie" authentication method, having the mcrypt PHP extension on your web
37
server accelerates not only the login phase but every other action that you
39
* Web browser with cookies enabled.
43
phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as a
44
single database. To accomplish the latter you'll need a properly set up MySQL
45
user who can read/write only the desired database. It's up to you to look up
46
the appropriate part in the MySQL manual.
48
Currently phpMyAdmin can:
50
* browse and drop databases, tables, views, fields and indexes
51
* create, copy, drop, rename and alter databases, tables, fields and indexes
52
* maintenance server, databases and tables, with proposals on server
54
* execute, edit and bookmark any SQL-statement, even batch-queries
55
* load text files into tables
56
* create^1 and read dumps of tables
57
* export^1 data to various formats: CSV, XML, PDF, ISO/IEC 26300 -
58
OpenDocument Text and Spreadsheet, Word, Excel and L^AT[E]X formats
59
* administer multiple servers
60
* manage MySQL users and privileges
61
* check referential integrity in MyISAM tables
62
* using Query-by-example (QBE), create complex queries automatically
63
connecting required tables
64
* create PDF graphics of your Database layout
65
* search globally in a database or a subset of it
66
* transform stored data into any format using a set of predefined functions,
67
like displaying BLOB-data as image or download-link
68
* support InnoDB tables and foreign keys (see FAQ 3.6)
69
* support mysqli, the improved MySQL extension (see FAQ 1.17)
70
* communicate in 50 different languages
74
Many people have difficulty understanding the concept of user management with
75
regards to phpMyAdmin. When a user logs in to phpMyAdmin, that username and
76
password are passed directly to MySQL. phpMyAdmin does no account management on
77
its own (other than allowing one to manipulate the MySQL user account
78
information); all users must be valid MySQL users.
80
^1) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dumps and
81
CSV exports if you use PHP with Zlib support (--with-zlib) and/or Bzip2 support
82
(--with-bz2). Proper support may also need changes in php.ini.
88
3. Linked-tables infrastructure
89
4. Upgrading from an older version
90
5. Using authentication modes
92
phpMyAdmin does not apply any special security methods to the MySQL database
93
server. It is still the system administrator's job to grant permissions on the
94
MySQL databases properly. phpMyAdmin's "Privileges" page can be used for this.
96
Warning for Mac users:
97
if you are on a Mac OS version before OS X, StuffIt unstuffs with Mac formats.
98
So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts
99
before uploading them to your server, as PHP seems not to like Mac-style end of
100
lines character ("\r").
104
1. Choose an appropriate distribution kit from the phpmyadmin.net Downloads
105
page. Some kits contain only the English messages, others contain all
106
languages in UTF-8 format (this should be fine in most situations), others
107
contain all languages and all character sets. We'll assume you chose a kit
108
whose name looks like phpMyAdmin-x.x.x-all-languages.tar.gz.
109
2. Untar or unzip the distribution (be sure to unzip the subdirectories): tar
110
-xzvf phpMyAdmin_x.x.x-all-languages.tar.gz in your webserver's document
111
root. If you don't have direct access to your document root, put the files
112
in a directory on your local machine, and, after step 4, transfer the
113
directory on your web server using, for example, ftp.
114
3. Ensure that all the scripts have the appropriate owner (if PHP is running
115
in safe mode, having some scripts with an owner different from the owner of
116
other scripts will be a problem). See FAQ 4.2 and FAQ 1.26 for suggestions.
117
4. Now you must configure your installation. There are two methods that can be
118
used. Traditionally, users have hand-edited a copy of config.inc.php, but
119
now a wizard-style setup script is provided for those who prefer a
120
graphical installation. Creating a config.inc.php is still a quick way to
121
get started and needed for some advanced features.
122
+ To manually create the file, simply use your text editor to create the
123
file config.inc.php (you can copy config.sample.inc.php to get minimal
124
configuration file) in the main (top-level) phpMyAdmin directory (the
125
one that contains index.php). phpMyAdmin first loads libraries/
126
config.default.php and then overrides those values with anything found
127
in config.inc.php. If the default value is okay for a particular
128
setting, there is no need to include it in config.inc.php. You'll need
129
a few directives to get going, a simple configuration may look like
133
$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
137
$cfg['Servers'][$i]['auth_type'] = 'cookie';
140
Or, if you prefer to not be prompted every time you log in:
146
$cfg['Servers'][$i]['user'] = 'root';
147
$cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password
150
For a full explanation of possible configuration values, see the
151
Configuration Section of this document.
152
+ Instead of manually editing config.inc.php, you can use the Setup
153
Script. First you must manually create a folder config in the
154
phpMyAdmin directory. This is a security measure. On a Linux/Unix
155
system you can use the following commands:
158
mkdir config # create directory for saving
159
chmod o+rw config # give it world writable permissions
161
And to edit an existing configuration, copy it over first:
163
cp config.inc.php config/ # copy current configuration for editing
164
chmod o+w config/config.inc.php # give it world writable permissions
166
On other platforms, simply create the folder and ensure that your web
167
server has read and write access to it. FAQ 1.26 can help with this.
169
Next, open scripts/setup.php in your browser. Note that changes are not
170
saved to disk until explicitly choose Save from the Configuration area
171
of the screen. Normally the script saves the new config.inc.php to the
172
config/ directory, but if the webserver does not have the proper
173
permissions you may see the error "Cannot load or save configuration."
174
Ensure that the config/ directory exists and has the proper permissions
175
- or use the Download link to save the config file locally and upload
176
(via FTP or some similar means) to the proper location.
178
Once the file has been saved, it must be moved out of the config/
179
directory and the permissions must be reset, again as a security
182
mv config/config.inc.php . # move file to current directory
183
chmod o-rw config.inc.php # remove world read and write permissions
185
Now the file is ready to be used. You can choose to review or edit the
186
file with your favorite editor, if you prefer to set some advanced
187
options which the setup script does not provide.
188
5. If you are using the auth_type "config", it is suggested that you protect
189
the phpMyAdmin installation directory because using config does not require
190
a user to enter a password to access the phpMyAdmin installation. Use of an
191
alternate authentication method is recommended, for example with HTTP?AUTH
192
in a .htaccess file or switch to using auth_type cookie or http. See the
193
multi?user sub?section of this FAQ for additional information, especially
195
6. Open the main phpMyAdmin directory in your browser. phpMyAdmin should now
196
display a welcome screen and your databases, or a login dialog if using
197
HTTP or cookie authentication mode.
198
7. You should deny access to the ./libraries subfolder in your webserver
199
configuration. For Apache you can use supplied .htaccess file in that
200
folder, for other webservers, you should configure this yourself. Such
201
configuration prevents from possible path exposure and cross side scripting
202
vulnerabilities that might happen to be found in that code.
204
Linked-tables infrastructure
206
For a whole set of new features (bookmarks, comments, SQL-history,
207
PDF-generation, field contents transformation, etc.) you need to create a set
208
of special tables. Those tables can be located in your own database, or in a
209
central database for a multi-user installation (this database would then be
210
accessed by the controluser, so no other user should have rights to it).
212
Please look at your ./scripts/ directory, where you should find a file called
213
create_tables.sql. (If you are using a Windows server, pay special attention to
216
If your MySQL server's version is 4.1.2 or later, please use ./scripts/
217
create_tables_mysql_4_1_2+.sql instead, for a new installation.
219
If you already had this infrastructure and upgraded to MySQL 4.1.2 or later,
220
please use ./scripts/upgrade_tables_mysql_4_1_2+.sql.
222
You can use your phpMyAdmin to create the tables for you. Please be aware that
223
you may need special (administrator) privileges to create the database and
224
tables, and that the script may need some tuning, depending on the database
227
After having imported the ./scripts/create_tables.sql file, you should specify
228
the table names in your ./config.inc.php file. The directives used for that can
229
be found in the Configuration section. You will also need to have a controluser
230
with the proper rights to those tables (see section Using authentication modes
233
Upgrading from an older version
235
Simply copy ./config.inc.php from your previous installation into the newly
236
unpacked one. Configuration files from very old versions (2.3.0 or older) may
237
require some tweaking as some options have been changed or removed.
239
You should not copy libraries/config.default.php over config.inc.php because
240
the default configuration file is version-specific.
242
If you have upgraded your MySQL server from a version older than 4.1.2 to
243
version 4.1.2 or newer and if you use the pmadb/linked table infrastructure,
244
you should run the SQL script found in scripts/upgrade_tables_mysql_4_1_2+.sql.
246
Using authentication modes
248
* HTTP and cookie authentication modes are recommended in a multi-user
249
environment where you want to give users access to their own database and
250
don't want them to play around with others.
251
Nevertheless be aware that MS Internet Explorer seems to be really buggy
252
about cookies, at least till version 6, and PHP 4.1.1 is also a bit buggy
254
Even in a single-user environment, you might prefer to use HTTP or cookie
255
mode so that your user/password pair are not in clear in the configuration
257
* HTTP and cookie authentication modes are more secure: the MySQL login
258
information does not need to be set in the phpMyAdmin configuration file
259
(except possibly for the controluser).
260
However, keep in mind that the password travels in plain text, unless you
261
are using the HTTPS protocol.
262
In cookie mode, the password is stored, encrypted with the blowfish
263
algorithm, in a temporary cookie.
264
* Note: starting with phpMyAdmin 2.6.1, this section is only applicable if
265
your MySQL server is older than 4.1.2, or is running with
266
--skip-show-database.
268
For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has only
269
the SELECT privilege on the `mysql`.`user` (all columns except `Password`),
270
`mysql`.`db` (all columns), `mysql`.`host` (all columns) and `mysql`.
271
`tables_priv` (all columns except `Grantor` and `Timestamp`) tables.
272
You must specify the details for the controluser in the config.inc.php file
273
under the $cfg['Servers'][$i]['controluser'] and $cfg['Servers'][$i]
274
['controlpass'] settings.
275
The following example assumes you want to use pma as the controluser and
276
pmapass as the controlpass, but this is only an example: use something else
277
in your file! Input these statements from the phpMyAdmin SQL Query window
278
or mysql command?line client.
279
Of course you have to replace localhost with the webserver's host if it's
280
not the same as the MySQL server's one.
282
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
284
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
285
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
286
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
287
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
288
Execute_priv, Repl_slave_priv, Repl_client_priv
289
) ON mysql.user TO 'pma'@'localhost';
290
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
291
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
292
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
293
ON mysql.tables_priv TO 'pma'@'localhost';
295
If you are using an old MySQL version (below 4.0.2), please replace the
296
first GRANT SELECT query by this one:
299
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
300
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
301
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
302
) ON mysql.user TO 'pma'@'localhost';
304
... and if you want to use the many new relation and bookmark features:
306
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
308
(this of course requires that your linked-tables infrastructure be set up).
309
Of course, the above queries only work if your MySQL version supports the
310
GRANT command. This is the case since 3.22.11.
311
* Then each of the true users should be granted a set of privileges on a set
312
of particular databases. Normally you shouldn't give global privileges to
313
an ordinary user, unless you understand the impact of those privileges (for
314
example, you are creating a superuser).
315
For example, to grant the user real_user with all privileges on the
318
GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';
320
What the user may now do is controlled entirely by the MySQL user
322
With HTTP or cookie authentication mode, you don't need to fill the user/
323
password fields inside the $cfg['Servers'] array.
325
'HTTP' authentication mode
327
* Uses HTTP Basic authentication method and allows you to log in as any valid
329
* Is supported with most PHP configurations. For IIS (ISAPI) support using
330
CGI PHP see FAQ 1.32, for using with Apache CGI see FAQ 1.35.
331
* See also FAQ 4.4 about not using the .htaccess mechanism along with 'HTTP'
334
'cookie' authentication mode
336
* You can use this method as a replacement for the HTTP authentication (for
337
example, if you're running IIS).
338
* Obviously, the user must enable cookies in the browser, but this is now a
339
requirement for all authentication modes.
340
* With this mode, the user can truly log out of phpMyAdmin and log in back
341
with the same username.
342
* If you want to log in to arbitrary server see $cfg['AllowArbitraryServer']
344
* As mentioned in the requirements section, having the mcrypt extension will
345
speed up access considerably, but is not required.
347
'config' authentication mode
349
* This mode is the less secure one because it requires you to fill the $cfg
350
['Servers'][$i]['user'] and $cfg['Servers'][$i]['password'] fields (and as
351
a result, anyone who can read your config.inc.php can discover your
352
username and password).
353
But you don't need to setup a "controluser" here: using the $cfg['Servers']
354
[$i]['only_db'] might be enough.
355
* In the ISP FAQ section, there is an entry explaining how to protect your
357
* For additional security in this mode, you may wish to consider the Host
358
authentication $cfg['Servers'][$i]['AllowDeny']['order'] and $cfg
359
['Servers'][$i]['AllowDeny']['rules'] configuration directives.
360
* Unlike cookie and http, does not require a user to log in when first
361
loading the phpMyAdmin site. This is by design but could allow any user to
362
access your installation. Use of some restriction method is suggested,
363
perhaps a .htaccess file with the HTTP-AUTH directive or disallowing
364
incoming HTTP requests at one?s router or firewall will suffice (both of
365
which are beyond the scope of this manual but easily searchable with
370
Warning for Mac users: PHP does not seem to like Mac end of lines character ("\
371
r"). So ensure you choose the option that allows to use the *nix end of line
372
character ("\n") in your text editor before saving a script you have modified.
374
Configuration note: Almost all configurable data is placed in config.inc.php.
375
If this file does not exist, please refer to the Quick install section to
376
create one. This file only needs to contain the parameters you want to change
377
from their corresponding default value in libraries/config.default.php.
379
The parameters which relate to design (like colors) are placed in themes/
380
themename/layout.inc.php. You might also want to create config.footer.inc.php
381
and config.header.inc.php files to add your site specific code to be included
382
on start and end of each page.
384
$cfg['PmaAbsoluteUri'] string
385
Sets here the complete URL (with full path) to your phpMyAdmin
386
installation's directory. E.g. http://www.your_web.net/
387
path_to_your_phpMyAdmin_directory/. Note also that the URL on some web
388
servers are case?sensitive. Don?t forget the trailing slash at the end.
390
Starting with version 2.3.0, it is advisable to try leaving this blank. In
391
most cases phpMyAdmin automatically detects the proper setting. Users of
392
port forwarding will need to set PmaAbsoluteUri (more info). A good test is
393
to browse a table, edit a row and save it. There should be an error message
394
if phpMyAdmin is having trouble auto?detecting the correct value. If you
395
get an error that this must be set or if the autodetect code fails to
396
detect your path, please post a bug report on our bug tracker so we can
398
$cfg['PmaNoRelation_DisableWarning'] boolean
399
Starting with version 2.3.0 phpMyAdmin offers a lot of features to work
400
with master / foreign ? tables (see $cfg['Servers'][$i]['pmadb']).
401
If you tried to set this up and it does not work for you, have a look on
402
the "Structure" page of one database where you would like to use it. You
403
will find a link that will analyze why those features have been disabled.
404
If you do not want to use those features set this variable to TRUE to stop
405
this message from appearing.
406
$cfg['blowfish_secret'] string
407
The "cookie" auth_type uses blowfish algorithm to encrypt the password.
408
If you are using the "cookie" auth_type, enter here a random passphrase of
409
your choice. It will be used internally by the blowfish algorithm: you
410
won?t be prompted for this passphrase. The maximum number of characters for
411
this parameter seems to be 46.
412
$cfg['Servers'] array
413
Since version 1.4.2, phpMyAdmin supports the administration of multiple
414
MySQL servers. Therefore, a $cfg['Servers']-array has been added which
415
contains the login information for the different servers. The first $cfg
416
['Servers'][$i]['host'] contains the hostname of the first server, the
417
second $cfg['Servers'][$i]['host'] the hostname of the second server, etc.
418
In ./libraries/config.default.php, there is only one section for server
419
definition, however you can put as many as you need in ./config.inc.php,
420
copy that block or needed parts (you don't have to define all settings,
421
just those you need to change).
422
$cfg['Servers'][$i]['host'] string
423
The hostname or IP address of your $i-th MySQL-server. E.g. localhost.
424
$cfg['Servers'][$i]['port'] string
425
The port-number of your $i-th MySQL-server. Default is 3306 (leave blank).
426
If you use "localhost" as the hostname, MySQL ignores this port number and
427
connects with the socket, so if you want to connect to a port different
428
from the default port, use "127.0.0.1" or the real hostname in $cfg
429
['Servers'][$i]['host'].
430
$cfg['Servers'][$i]['socket'] string
431
The path to the socket to use. Leave blank for default.
432
To determine the correct socket, check your MySQL configuration or, using
433
the mysql command?line client, issue the status command. Among the
434
resulting information displayed will be the socket used.
435
$cfg['Servers'][$i]['ssl'] boolean
436
Whether to enable SSL for connection to MySQL server.
437
$cfg['Servers'][$i]['connect_type'] string
438
What type connection to use with the MySQL server. Your options are
439
'socket' and 'tcp'. It defaults to 'tcp' as that is nearly guaranteed to be
440
available on all MySQL servers, while sockets are not supported on some
443
To use the socket mode, your MySQL server must be on the same machine as
445
$cfg['Servers'][$i]['extension'] string
446
What php MySQL extension to use for the connection. Valid options are:
448
mysql : The classic MySQL extension. This is the recommended and default
451
mysqli : The improved MySQL extension. This extension became available with
452
php 5.0.0 and is the recommended way to connect to a server running MySQL
454
$cfg['Servers'][$i]['compress'] boolean
455
Whether to use a compressed protocol for the MySQL server connection or not
457
This feature requires PHP >= 4.3.0.
458
$cfg['Servers'][$i]['controluser'] string
459
$cfg['Servers'][$i]['controlpass'] string
460
This special account is used for 2 distinct purposes: to make possible all
461
relational features (see $cfg['Servers'][$i]['pmadb']) and, for a MySQL
462
server older than 4.1.2 or running with --skip-show-database, to enable a
463
multi-user installation (HTTP or cookie authentication mode).
465
When using HTTP or cookie authentication modes (or 'config' authentication
466
mode since phpMyAdmin 2.2.1), you need to supply the details of a MySQL
467
account that has SELECT privilege on the mysql.user (all columns except
468
"Password"), mysql.db (all columns) and mysql.tables_priv (all columns
469
except "Grantor" and "Timestamp") tables. This account is used to check
470
what databases the user will see at login.
471
Please see the install section on "Using authentication modes" for more
474
In phpMyAdmin versions before 2.2.5, those were called "stduser/stdpass".
475
$cfg['Servers'][$i]['auth_type'] string ['HTTP'|'http'|'cookie'|'config'|
477
Whether config or cookie or HTTP or signon authentication should be used
479
+ 'config' authentication ($auth_type = 'config') is the plain old way:
480
username and password are stored in config.inc.php.
481
+ 'cookie' authentication mode ($auth_type = 'cookie') as introduced in
482
2.2.3 allows you to log in as any valid MySQL user with the help of
483
cookies. Username and password are stored in cookies during the session
484
and password is deleted when it ends. This can also allow you to log in
485
in arbitrary server if $cfg['AllowArbitraryServer'] enabled.
486
+ 'HTTP' authentication (was called 'advanced' in older versions and can
487
be written also as 'http') ($auth_type = 'HTTP') as introduced in 1.3.0
488
allows you to log in as any valid MySQL user via HTTP-Auth.
489
+ 'signon' authentication mode ($auth_type = 'signon') as introduced in
490
2.10.0 allows you to log in from prepared PHP session data. This is
491
useful for implementing single signon from another application. Sample
492
way how to seed session is in signon example: scripts/signon.php. You
493
need to configure session name and signon URL to use this
494
authentication method.
495
Please see the install section on "Using authentication modes" for more
497
$cfg['Servers'][$i]['user'] string
498
$cfg['Servers'][$i]['password'] string
499
When using auth_type = 'config', this is the user/password-pair which
500
phpMyAdmin will use to connect to the MySQL server. This user/password pair
501
is not needed when HTTP or cookie authentication is used and should be
503
$cfg['Servers'][$i]['nopassword'] boolean
504
Allow attempt to log in without password when a login with password fails.
505
This can be used together with http authentication, when authentication is
506
done some other way and phpMyAdmin gets user name from auth and uses empty
507
password for connecting to MySQL. Password login is still tried first, but
508
as fallback, no password method is tried.
509
$cfg['Servers'][$i]['only_db'] string or array
510
If set to a (an array of) database name(s), only this (these) database(s)
511
will be shown to the user. Since phpMyAdmin 2.2.1, this/these database(s)
512
name(s) may contain MySQL wildcards characters ("_" and "%"): if you want
513
to use literal instances of these characters, escape them (I.E. use 'my\
514
_db' and not 'my_db').
515
This setting is an efficient way to lower the server load since the latter
516
does not need to send MySQL requests to build the available database list.
517
But it does not replace the privileges rules of the MySQL database server.
518
If set, it just means only these databases will be displayed but not that
519
all other databases can't be used.
521
An example of using more that one database: $cfg['Servers'][$i]['only_db']
522
= array('db1', 'db2');
524
As of phpMyAdmin 2.5.5 the order inside the array is used for sorting the
525
databases in the left frame, so that you can individually arrange your
527
If you want to have certain databases at the top, but don't care about the
528
others, you do not need to specify all other databases. Use: $cfg
529
['Servers'][$i]['only_db'] = array('db3', 'db4', '*'); instead to tell
530
phpMyAdmin that it should display db3 and db4 on top, and the rest in
532
$cfg['Servers'][$i]['hide_db'] string
533
Regular expression for hiding some databases. This only hides them from
534
listing, but a user is still able to access them (using, for example, the
535
SQL query area). To limit access, use the MySQL privilege system.
537
For example, to hide all databases starting with the letter "a", use
539
$cfg['Servers'][$i]['hide_db'] = '^a';
541
and to hide both "db1" and "db2" use
543
$cfg['Servers'][$i]['hide_db'] = '(db1|db2)';
545
More information on regular expressions can be found in the PCRE pattern
546
syntax portion of the PHP reference manual.
547
$cfg['Servers'][$i]['verbose'] string
548
Only useful when using phpMyAdmin with multiple server entries. If set,
549
this string will be displayed instead of the hostname in the pull-down menu
550
on the main page. This can be useful if you want to show only certain
551
databases on your system, for example.
552
$cfg['Servers'][$i]['pmadb'] string
553
The name of the database containing the linked-tables infrastructure.
555
See the Linked-tables infrastructure section in this document to see the
556
benefits of this infrastructure, and for a quick way of creating this
557
database and the needed tables.
559
If you are the only user of this phpMyAdmin installation, you can use your
560
current database to store those special tables; in this case, just put your
561
current database name in $cfg['Servers'][$i]['pmadb']. For a multi-user
562
installation, set this parameter to the name of your central database
563
containing the linked-tables infrastructure.
564
$cfg['Servers'][$i]['bookmarktable'] string
565
Since release 2.2.0 phpMyAdmin allows users to bookmark queries. This can
566
be useful for queries you often run.
568
To allow the usage of this functionality:
569
+ set up pmadb and the linked-tables infrastructure
570
+ enter the table name in $cfg['Servers'][$i]['bookmarktable']
571
$cfg['Servers'][$i]['relation'] string
572
Since release 2.2.4 you can describe, in a special 'relation' table, which
573
field is a key in another table (a foreign key). phpMyAdmin currently uses
575
+ make clickable, when you browse the master table, the data values that
576
point to the foreign table;
577
+ display in an optional tool-tip the "display field" when browsing the
578
master table, if you move the mouse to a column containing a foreign
579
key (use also the 'table_info' table);
581
+ in edit/insert mode, display a drop-down list of possible foreign keys
582
(key value and "display field" are shown)
584
+ display links on the table properties page, to check referential
585
integrity (display missing foreign keys) for each described key;
586
+ in query-by-example, create automatic joins (see FAQ 6.6)
587
+ enable you to get a PDF schema of your database (also uses the
589
The keys can be numeric or character.
591
To allow the usage of this functionality:
592
+ set up pmadb and the linked-tables infrastructure
593
+ put the relation table name in $cfg['Servers'][$i]['relation']
594
+ now as normal user open phpMyAdmin and for each one of your tables
595
where you want to use this feature, click "Structure/Relation view/"
596
and choose foreign fields.
597
Please note that in the current version, master_db must be the same as
598
foreign_db. Those fields have been put in future development of the
600
$cfg['Servers'][$i]['table_info'] string
601
Since release 2.3.0 you can describe, in a special 'table_info' table,
602
which field is to be displayed as a tool-tip when moving the cursor over
603
the corresponding key.
604
This configuration variable will hold the name of this special table. To
605
allow the usage of this functionality:
606
+ set up pmadb and the linked-tables infrastructure
607
+ put the table name in $cfg['Servers'][$i]['table_info']
608
+ then for each table where you want to use this feature, click
609
"Structure/Relation view/Choose field to display" to choose the field.
610
Usage tip: Display field.
611
$cfg['Servers'][$i]['table_coords'] string
612
$cfg['Servers'][$i]['pdf_pages'] string
613
Since release 2.3.0 you can have phpMyAdmin create PDF pages showing the
614
relations between your tables. To do this it needs two tables "pdf_pages"
615
(storing information about the available PDF pages) and "table_coords"
616
(storing coordinates where each table will be placed on a PDF schema
619
You must be using the "relation" feature.
621
To allow the usage of this functionality:
622
+ set up pmadb and the linked-tables infrastructure
623
+ put the correct table names in $cfg['Servers'][$i]['table_coords'] and
624
$cfg['Servers'][$i]['pdf_pages']
625
Usage tips: PDF output.
626
$cfg['Servers'][$i]['column_info'] string
627
Since release 2.3.0 you can store comments to describe each column for each
628
table. These will then be shown on the "printview".
630
Starting with release 2.5.0, comments are consequently used on the table
631
property pages and table browse view, showing up as tool-tips above the
632
column name (properties page) or embedded within the header of table in
633
browse view. They can also be shown in a table dump. Please see the
634
relevant configuration directives later on.
636
Also new in release 2.5.0 is a MIME-transformation system which is also
637
based on the following table structure. See Transformations for further
638
information. To use the MIME-transformation system, your column_info table
639
has to have the three new fields 'mimetype', 'transformation',
640
'transformation_options'.
642
To allow the usage of this functionality:
643
+ set up pmadb and the linked-tables infrastructure
644
+ put the table name in $cfg['Servers'][$i]['column_info']
645
+ to update your PRE-2.5.0 Column_comments Table use this:
647
ALTER TABLE `pma_column_comments`
648
ADD `mimetype` VARCHAR( 255 ) NOT NULL,
649
ADD `transformation` VARCHAR( 255 ) NOT NULL,
650
ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
652
and remember that the Variable in config.inc.php has been renamed from
653
$cfg['Servers'][$i]['column_comments'] to $cfg['Servers'][$i]
655
$cfg['Servers'][$i]['history'] string
656
Since release 2.5.0 you can store your SQL history, which means all queries
657
you entered manually into the phpMyAdmin interface. If you don't want to
658
use a table-based history, you can use the JavaScript-based history. Using
659
that, all your history items are deleted when closing the window.
661
Using $cfg['QueryHistoryMax'] you can specify an amount of history items
662
you want to have on hold. On every login, this list gets cut to the maximum
665
The query history is only available if JavaScript is enabled in your
668
To allow the usage of this functionality:
669
+ set up pmadb and the linked-tables infrastructure
670
+ put the table name in $cfg['Servers'][$i]['history']
671
$cfg['Servers'][$i]['designer_coords'] string
672
Since release 2.10.0 a Designer interface is available; it permits to
673
visually manage the relations.
675
To allow the usage of this functionality:
676
+ set up pmadb and the linked-tables infrastructure
677
+ put the table name in $cfg['Servers'][$i]['designer_coords']
678
$cfg['Servers'][$i]['verbose_check'] boolean
679
Because release 2.5.0 introduced the new MIME-transformation support, the
680
column_info table got enhanced with three new fields. If the above variable
681
is set to TRUE (default) phpMyAdmin will check if you have the latest table
682
structure available. If not, it will emit a warning to the superuser.
684
You can disable this checking behavior by setting the variable to false,
685
which should offer a performance increase.
687
Recommended to set to FALSE, when you are sure, your table structure is up
689
$cfg['Servers'][$i]['AllowRoot'] boolean
690
Whether to allow root access. This is just simplification of rules below.
691
$cfg['Servers'][$i]['AllowDeny']['order'] string
692
If your rule order is empty, then IP authentication is disabled.
694
If your rule order is set to 'deny,allow' then the system applies all deny
695
rules followed by allow rules. Access is allowed by default. Any client
696
which does not match a Deny command or does match an Allow command will be
697
allowed access to the server.
699
If your rule order is set to 'allow,deny' then the system applies all allow
700
rules followed by deny rules. Access is denied by default. Any client which
701
does not match an Allow directive or does match a Deny directive will be
702
denied access to the server.
704
If your rule order is set to 'explicit', the authentication is performed in
705
a similar fashion to rule order 'deny,allow', with the added restriction
706
that your host/username combination must be listed in the allow rules, and
707
not listed in the deny rules. This is the most secure means of using Allow/
708
Deny rules, and was available in Apache by specifying allow and deny rules
709
without setting any order.
711
Please also see $cfg['TrustedProxies'] for detecting IP address behind
713
$cfg['Servers'][$i]['AllowDeny']['rules'] array of strings
714
The general format for the rules is as such:
716
<'allow' | 'deny'> <username> [from] <ipmask>
718
If you wish to match all users, it is possible to use a '%' as a wildcard
719
in the username field.
720
There are a few shortcuts you can use in the ipmask field as well (please
721
note that those containing SERVER_ADDRESS might not be available on all
725
'localhost' -> 127.0.0.1/8
726
'localnetA' -> SERVER_ADDRESS/8
727
'localnetB' -> SERVER_ADDRESS/16
728
'localnetC' -> SERVER_ADDRESS/24
730
Having an empty rule list is equivalent to either using 'allow % from all'
731
if your rule order is set to 'deny,allow' or 'deny % from all' if your rule
732
order is set to 'allow,deny' or 'explicit'.
734
For the IP matching system, the following work:
735
xxx.xxx.xxx.xxx (an exact IP address)
736
xxx.xxx.xxx.[yyy-zzz] (an IP address range)
737
xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP addresses)
738
But the following does not work:
739
xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range)
740
$cfg['Servers'][$i]['SignonSession'] string
741
Name of session which will be used for signon authentication method.
742
$cfg['Servers'][$i]['SignonURL'] string
743
URL where user will be redirected to log in for signon authentication
744
method. Should be absolute including protocol.
745
$cfg['Servers'][$i]['LogoutURL'] string
746
URL where user will be redirected after logout (doesn't affect config
747
authentication method). Should be absolute including protocol.
748
$cfg['ServerDefault'] integer
749
If you have more than one server configured, you can set $cfg
750
['ServerDefault'] to any one of them to autoconnect to that server when
751
phpMyAdmin is started, or set it to 0 to be given a list of servers without
753
If you have only one server configured, $cfg['ServerDefault'] MUST be set
755
$cfg['OBGzip'] string/boolean
756
Defines whether to use GZip output buffering for increased speed in HTTP
758
Set to true/false for enabling/disabling. When set to 'auto' (string),
759
phpMyAdmin tries to enable output buffering and will automatically disable
760
it if your browser has some problems with buffering. IE6 with a certain
761
patch is known to cause data corruption when having enabled buffering.
762
$cfg['PersistentConnections'] boolean
763
Whether persistent connections should be used or not (mysql_connect or
765
$cfg['ForceSSL'] boolean
766
Whether to force using https while accessing phpMyAdmin.
767
$cfg['ExecTimeLimit'] integer [number of seconds]
768
Set the number of seconds a script is allowed to run. If seconds is set to
769
zero, no time limit is imposed.
770
This setting is used while importing/exporting dump files but has no effect
771
when PHP is running in safe mode.
772
$cfg['MemoryLimit'] integer [number of bytes]
773
Set the number of bytes a script is allowed to allocate. If number set to
774
zero, no limit is imposed.
775
This setting is used while importing/exporting dump files but has no effect
776
when PHP is running in safe mode.
777
You can also use any string as in php.ini, eg. '16M'.
778
$cfg['SkipLockedTables'] boolean
779
Mark used tables and make it possible to show databases with locked tables
780
(since MySQL 3.23.30).
781
$cfg['ShowSQL'] boolean
782
Defines whether SQL queries generated by phpMyAdmin should be displayed or
784
$cfg['AllowUserDropDatabase'] boolean
785
Defines whether normal users (non-administrator) are allowed to delete
786
their own database or not. If set as FALSE, the link "Drop Database" will
787
not be shown, and even a "DROP DATABASE mydatabase" will be rejected. Quite
788
practical for ISP's with many customers.
789
Please note that this limitation of SQL queries is not as strict as when
790
using MySQL privileges. This is due to nature of SQL queries which might be
791
quite complicated. So this choice should be viewed as help to avoid
792
accidental dropping rather than strict privilege limitation.
793
$cfg['Confirm'] boolean
794
Whether a warning ("Are your really sure...") should be displayed when
795
you're about to lose data.
796
$cfg['LoginCookieRecall'] boolean
797
Define whether the previous login should be recalled or not in cookie
799
$cfg['LoginCookieValidity'] integer [number of seconds]
800
Define how long is login cookie valid.
801
$cfg['LoginCookieStore'] integer [number of seconds]
802
Define how long is login cookie should be stored in browser. Default 0
803
means that it will be kept for existing session. This is recommended for
804
not trusted environments.
805
$cfg['LoginCookieDeleteAll'] boolean
806
If enabled (default), logout deletes cookies for all servers, otherwise
807
only for current one. Setting this to false makes it easy to forget to log
808
out from other server, when you are using more of them.
809
$cfg['UseDbSearch'] boolean
810
Define whether the "search string inside database" is enabled or not.
811
$cfg['IgnoreMultiSubmitErrors'] boolean
812
Define whether phpMyAdmin will continue executing a multi-query statement
813
if one of the queries fails. Default is to abort execution.
814
$cfg['VerboseMultiSubmit'] boolean
815
Define whether phpMyAdmin will output the results of each query of a
816
multi-query statement embedded into the SQL output as inline comments.
818
$cfg['AllowArbitraryServer'] boolean
819
If enabled allows you to log in to arbitrary servers using cookie auth.
821
NOTE: Please use this carefully, as this may allow users access to MySQL
822
servers behind the firewall where your HTTP server is placed.
823
$cfg['LeftFrameLight'] boolean
824
Defines whether to use a select-based menu and display only the current
825
tables in the left frame (smaller page). Only in Non-Lightmode you can use
826
the feature to display nested folders using $cfg['LeftFrameTableSeparator']
827
$cfg['LeftFrameDBTree'] boolean
828
In light mode, defines whether to display the names of databases (in the
829
selector) using a tree, see also $cfg['LeftFrameDBSeparator'].
830
$cfg['LeftFrameDBSeparator'] string
831
The string used to separate the parts of the database name when showing
833
$cfg['LeftFrameTableSeparator'] string
834
Defines a string to be used to nest table spaces. Defaults to '__'. This
835
means if you have tables like 'first__second__third' this will be shown as
836
a three-level hierarchy like: first > second > third. If set to FALSE or
837
empty, the feature is disabled. NOTE: You should not use this separator at
838
the beginning or end of a table name or multiple times after another
839
without any other characters in between.
840
$cfg['LeftFrameTableLevel'] string
841
Defines how many sublevels should be displayed when splitting up tables by
843
$cfg['ShowTooltip'] boolean
844
Defines whether to display table comment as tool-tip in left frame or not.
845
$cfg['ShowTooltipAliasDB'] boolean
846
If tool-tips are enabled and a DB comment is set, this will flip the
847
comment and the real name. That means that if you have a table called
848
'user0001' and add the comment 'MyName' on it, you will see the name
849
'MyName' used consequently in the left frame and the tool-tip shows the
851
$cfg['ShowTooltipAliasTB'] boolean/string
852
Same as $cfg['ShowTooltipAliasDB'], except this works for table names. When
853
setting this to 'nested', the Alias of the Tablename is only used to split/
854
nest the tables according to the $cfg['LeftFrameTableSeparator'] directive.
855
So only the folder is called like the Alias, the tablename itself stays the
857
$cfg['LeftDisplayLogo'] boolean
858
Defines whether or not to display the phpMyAdmin logo at the top of the
859
left frame. Defaults to TRUE.
860
$cfg['LeftLogoLink'] string
861
Enter URL where logo in the navigation frame will point to. For use
862
especially with self made theme which changes this. The default value for
864
$cfg['LeftLogoLinkWindow'] string
865
Whether to open the linked page in the main window (main) or in a new one
867
$cfg['LeftDisplayServers'] boolean
868
Defines whether or not to display a server choice at the top of the left
869
frame. Defaults to FALSE.
870
$cfg['DisplayServersList'] boolean
871
Defines whether to display this server choice as links instead of in a
872
drop-down. Defaults to FALSE (drop-down).
873
$cfg['DisplayDatabasesList'] boolean
874
Defines whether to display database choice in light navigation frame as
875
links instead of in a drop-down. Defaults to FALSE (drop-down).
876
$cfg['ShowStats'] boolean
877
Defines whether or not to display space usage and statistics about
878
databases and tables.
879
Note that statistics requires at least MySQL 3.23.3 and that, at this date,
880
MySQL doesn't return such information for Berkeley DB tables.
881
$cfg['ShowServerInfo'] boolean
882
Defines whether to display detailed server information on main page. You
883
can additionally hide more information by using $cfg['Servers'][$i]
885
$cfg['ShowPhpInfo'] boolean
886
$cfg['ShowChgPassword'] boolean
887
$cfg['ShowCreateDb'] boolean
888
Defines whether to display the "PHP information" and "Change password "
889
links and form for creating database or not at the starting main (right)
890
frame. This setting does not check MySQL commands entered directly.
892
Please note that to block the usage of phpinfo() in scripts, you have to
893
put this in your php.ini:
895
disable_functions = phpinfo()
897
Also note that enabling the "Change password " link has no effect with
898
"config" authentication mode: because of the hard coded password value in
899
the configuration file, end users can't be allowed to change their
901
$cfg['SuggestDBName'] boolean
902
Defines whether to suggest a database name on the "Create Database" form or
903
to keep the textfield empty.
904
$cfg['ShowBlob'] boolean
905
Defines whether or not BLOB fields are shown when browsing a table's
907
$cfg['NavigationBarIconic'] string
908
Defines whether navigation bar buttons and the right panel top menu contain
909
text or symbols only. A value of TRUE displays icons, FALSE displays text
910
and 'both' displays both icons and text.
911
$cfg['ShowAll'] boolean
912
Defines whether a user should be displayed a "show all (records)" button in
914
$cfg['MaxRows'] integer
915
Number of rows displayed when browsing a result set. If the result set
916
contains more rows, "Previous" and "Next" links will be shown.
917
$cfg['Order'] string [DESC|ASC|SMART]
918
Defines whether fields are displayed in ascending (ASC) order, in
919
descending (DESC) order or in a "smart" (SMART) order - I.E. descending
920
order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending
921
order else- by default.
922
$cfg['ProtectBinary'] boolean or string
923
Defines whether BLOB or BINARY fields are protected from editing when
924
browsing a table's content. Valid values are:
925
+ FALSE to allow editing of all fields;
926
+ 'blob' to allow editing of all fields except BLOBS;
927
+ 'all' to disallow editing of all BINARY or BLOB fields.
928
$cfg['ShowFunctionFields'] boolean
929
Defines whether or not MySQL functions fields should be initially displayed
930
in edit/insert mode. Since version 2.10, the user can toggle this setting
932
$cfg['CharEditing'] string
933
Defines which type of editing controls should be used for CHAR and VARCHAR
934
fields. Possible values are:
935
+ input - this allows to limit size of text to size of field in MySQL,
936
but has problems with newlines in fields
937
+ textarea - no problems with newlines in fields, but also no length
939
Default is old behavior so input.
940
$cfg['InsertRows'] integer
941
Defines the maximum number of concurrent entries for the Insert page.
942
$cfg['ForeignKeyMaxLimit'] integer
943
If there are fewer items than this in the set of foreign keys, then a
944
drop-down box of foreign keys is presented, in the style described by the
945
$cfg['ForeignKeyDropdownOrder'] setting.
946
$cfg['ForeignKeyDropdownOrder'] array
947
For the foreign key drop-down fields, there are several methods of display,
948
offering both the key and value data. The contents of the array should be
949
one or both of the following strings: 'content-id', 'id-content'.
950
$cfg['ZipDump'] boolean
951
$cfg['GZipDump'] boolean
952
$cfg['BZipDump'] boolean
953
Defines whether to allow the use of zip/GZip/BZip2 compression when
955
$cfg['CompressOnFly'] boolean
956
Defines whether to allow on the fly compression for GZip/BZip2 compressed
957
exports. This doesn't affect smaller dumps and allows users to create
958
larger dumps that won't otherwise fit in memory due to php memory limit.
959
Produced files contain more GZip/BZip2 headers, but all normal programs
960
handle this correctly.
961
$cfg['LightTabs'] boolean
962
If set to TRUE, use less graphically intense tabs on the top of the
964
$cfg['PropertiesIconic'] string
965
If set to TRUE, will display icons instead of text for db and table
966
properties links (like 'Browse', 'Select', 'Insert', ...).
967
Can be set to 'both' if you want icons AND text.
968
When set to FALSE, will only show text.
969
$cfg['PropertiesNumColumns'] integer
970
How many columns will be utilized to display the tables on the database
971
property view? Default is 1 column. When setting this to a value larger
972
than 1, the type of the database will be omitted for more display space.
973
$cfg['DefaultTabServer'] string
974
Defines the tab displayed by default on server view. Possible values:
975
"main.php" (recommended for multi-user setups), "server_databases.php",
976
"server_status.php", "server_variables.php", "server_privileges.php" or
977
"server_processlist.php".
978
$cfg['DefaultTabDatabase'] string
979
Defines the tab displayed by default on database view. Possible values:
980
"db_structure.php", "db_sql.php" or "db_search.php".
981
$cfg['DefaultTabTable'] string
982
Defines the tab displayed by default on table view. Possible values:
983
"tbl_structure.php", "tbl_sql.php", "tbl_select.php", "tbl_change.php" or
985
$cfg['MySQLManualBase'] string
986
If set to an URL which points to the MySQL documentation (type depends on
987
$cfg['MySQLManualType']), appropriate help links are generated.
988
See MySQL Documentation page for more information about MySQL manuals and
990
$cfg['MySQLManualType'] string
991
Type of MySQL documentation:
992
+ viewable - "viewable online", current one used on MySQL website
993
+ searchable - "Searchable, with user comments"
994
+ chapters - "HTML, one page per chapter"
995
+ big - "HTML, all on one page"
996
+ none - do not show documentation links
997
$cfg['DefaultLang'] string
998
Defines the default language to use, if not browser-defined or
1000
See the select_lang.lib.php script to know the valid values for this
1002
$cfg['DefaultConnectionCollation'] string
1003
Defines the default connection collation to use, if not user-defined.
1004
See the MySQL documentation for list of possible values.
1006
Force: always use this language (must be defined in the select_lang.lib.php
1008
$cfg['FilterLanguages'] string
1009
Limit list of available languages to those matching the given regular
1010
expression. For example if you want only Czech and English, you should set
1011
filter to '^(cs|en)'.
1012
$cfg['DefaultCharset'] string
1013
Default character set to use for recoding of MySQL queries. This must be
1014
enabled and it's described by $cfg['AllowAnywhereRecoding'] option.
1015
You can give here any character set which is in $cfg['AvailableCharsets']
1016
array and this is just default choice, user can select any of them.
1017
$cfg['AllowAnywhereRecoding'] boolean
1018
Allow character set recoding of MySQL queries. You need recode or iconv
1019
support (compiled in or module) in PHP to allow MySQL queries recoding and
1020
used language file must have it enabled (by default only these which are in
1021
Unicode, just to avoid losing some characters).
1023
Setting this to TRUE also activates a pull-down menu in the Export page, to
1024
choose the character set when exporting a file.
1025
$cfg['RecodingEngine'] string
1026
You can select here which functions will be used for character set
1027
conversion. Possible values are:
1028
+ auto - automatically use available one (first is tested iconv, then
1030
+ iconv - use iconv or libiconv functions
1031
+ recode - use recode_string function
1033
$cfg['IconvExtraParams'] string
1034
Specify some parameters for iconv used in charset conversion. See iconv
1035
documentation for details. By default //TRANSLIT is used, so that invalid
1036
characters will be transliterated.
1037
$cfg['AvailableCharsets'] array
1038
Available character sets for MySQL conversion. You can add your own (any of
1039
supported by recode/iconv) or remove these which you don't use. Character
1040
sets will be shown in same order as here listed, so if you frequently use
1041
some of these move them to the top.
1042
$cfg['TrustedProxies'] array
1043
Lists proxies and HTTP headers which are trusted for IP Allow/Deny. This
1044
list is by default empty, you need to fill in some trusted proxy servers if
1045
you want to use rules for IP addresses behind proxy.
1047
The following example specifies that phpMyAdmin should trust a
1048
HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy
1051
$cfg['TrustedProxies'] =
1052
array('1.2.3.4' => 'HTTP_X_FORWARDED_FOR');
1054
The $cfg['Servers'][$i]['AllowDeny']['rules'] directive uses the client's
1055
IP address as usual.
1056
$cfg['GD2Available'] string
1057
Specifies whether GD >= 2 is available. If yes it can be used for MIME
1059
Possible values are:
1060
+ auto - automatically detect, this is a bit expensive operation for php
1061
< 4.3.0 so it is preferred to change this according to your server real
1063
+ yes - GD 2 functions can be used
1064
+ no - GD 2 function cannot be used
1066
$cfg['NaviWidth'] integer
1067
Navi frame width in pixels. See themes/themename/layout.inc.php.
1068
$cfg['NaviBackground'] string [valid css code for background]
1069
$cfg['MainBackground'] string [valid css code for background]
1070
The background styles used for both the frames. See themes/themename/
1072
$cfg['NaviPointerBackground'] string [valid css code for background]
1073
$cfg['NaviPointerColor'] string [valid css color]
1074
The style used for the pointer in the navi frame. See themes/themename/
1076
$cfg['LeftPointerEnable'] boolean
1077
A value of TRUE activates the navi pointer (when LeftFrameLight is FALSE).
1078
$cfg['Border'] integer
1079
The size of a table's border. See themes/themename/layout.inc.php.
1080
$cfg['ThBackground'] string [valid css code for background]
1081
$cfg['ThColor'] string [valid css color]
1082
The style used for table headers. See themes/themename/layout.inc.php.
1083
$cfg['BgOne'] string [HTML color]
1084
The color (HTML) #1 for table rows. See themes/themename/layout.inc.php.
1085
$cfg['BgTwo'] string [HTML color]
1086
The color (HTML) #2 for table rows. See themes/themename/layout.inc.php.
1087
$cfg['BrowsePointerBackground'] string [HTML color]
1088
$cfg['BrowsePointerColor'] string [HTML color]
1089
$cfg['BrowseMarkerBackground'] string [HTML color]
1090
$cfg['BrowseMarkerColor'] string [HTML color]
1091
The colors (HTML) uses for the pointer and the marker in browse mode.
1092
The former feature highlights the row over which your mouse is passing and
1093
the latter lets you visually mark/unmark rows by clicking on them.
1094
See themes/themename/layout.inc.php.
1095
$cfg['FontFamily'] string
1096
You put here a valid CSS font family value, for example arial, sans-serif.
1097
See themes/themename/layout.inc.php.
1098
$cfg['FontFamilyFixed'] string
1099
You put here a valid CSS font family value, for example monospace. This one
1100
is used in textarea.
1101
See themes/themename/layout.inc.php.
1102
$cfg['BrowsePointerEnable'] boolean
1103
Whether to activate the browse pointer or not.
1104
$cfg['BrowseMarkerEnable'] boolean
1105
Whether to activate the browse marker or not.
1106
$cfg['TextareaCols'] integer
1107
$cfg['TextareaRows'] integer
1108
$cfg['CharTextareaCols'] integer
1109
$cfg['CharTextareaRows'] integer
1110
Number of columns and rows for the textareas.
1111
This value will be emphasized (*2) for SQL query textareas and (*1.25) for
1112
SQL textareas inside the query window.
1113
The Char* values are used for CHAR and VARCHAR editing (if configured via
1114
$cfg['CharEditing']).
1115
$cfg['LongtextDoubleTextarea'] boolean
1116
Defines whether textarea for LONGTEXT fields should have double size.
1117
$cfg['TextareaAutoSelect'] boolean
1118
Defines if the whole textarea of the query box will be selected on click.
1119
$cfg['CtrlArrowsMoving'] boolean
1120
Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when
1122
$cfg['LimitChars'] integer
1123
Maximum number of characters showen in any non-numeric field on browse
1124
view. Can be turned off by a toggle button on the browse page.
1125
$cfg['ModifyDeleteAtLeft'] boolean $cfg['ModifyDeleteAtRight'] boolean
1126
Defines the place where modify and delete links would be put when tables
1127
contents are displayed (you may have them displayed both at the left and at
1128
the right). "Left" and "right" are parsed as "top" and "bottom" with
1129
vertical display mode.
1130
$cfg['DefaultDisplay'] string $cfg['HeaderFlipType'] string
1131
There are 3 display modes: horizontal, horizontalflipped and vertical.
1132
Define which one is displayed by default. The first mode displays each row
1133
on a horizontal line, the second rotates the headers by 90 degrees, so you
1134
can use descriptive headers even though fields only contain small values
1135
and still print them out. The vertical mode sorts each row on a vertical
1138
The HeaderFlipType can be set to 'css' or 'fake'. When using 'css' the
1139
rotation of the header for horizontalflipped is done via CSS. If set to
1140
'fake' PHP does the transformation for you, but of course this does not
1141
look as good as CSS.
1142
$cfg['DefaultPropDisplay'] string or integer
1143
When editing/creating new columns in a table all fields normally get lined
1144
up one field a line. (default: 'horizontal'). If you set this to 'vertical'
1145
you can have each field lined up vertically beneath each other. You can
1146
save up a lot of place on the horizontal direction and no longer have to
1147
scroll. If you set this to integer, editing of fewer columns will appear in
1148
'vertical' mode, while editing of more fields still in 'horizontal' mode.
1149
This way you can still effectively edit large number of fields, while
1150
having full view on few of them.
1151
$cfg['ShowBrowseComments'] boolean
1152
$cfg['ShowPropertyComments'] boolean
1153
By setting the corresponding variable to TRUE you can enable the display of
1154
column comments in Browse or Property display. In browse mode, the comments
1155
are shown inside the header. In property mode, comments are displayed using
1156
a CSS-formatted dashed-line below the name of the field. The comment is
1157
shown as a tool-tip for that field.
1158
$cfg['SQLQuery']['Edit'] boolean
1159
Whether to display an edit link to change a query in any SQL Query box.
1160
$cfg['SQLQuery']['Explain'] boolean
1161
Whether to display a link to explain a SELECT query in any SQL Query box.
1162
$cfg['SQLQuery']['ShowAsPHP'] boolean
1163
Whether to display a link to wrap a query in PHP code in any SQL Query box.
1164
$cfg['SQLQuery']['Validate'] boolean
1165
Whether to display a link to validate a query in any SQL Query box. See
1166
also $cfg_SQLValidator.
1167
$cfg['SQLQuery']['Refresh'] boolean
1168
Whether to display a link to refresh a query in any SQL Query box.
1169
$cfg['UploadDir'] string
1170
The name of the directory where
1171
$cfg['UploadDir'] string
1172
The name of the directory where SQL files have been uploaded by other means
1173
than phpMyAdmin (for example, ftp). Those files are available under a
1174
drop-down box when you click the database name, then the SQL tab.
1176
If you want different directory for each user, %u will be replaced with
1179
Please note that the file names must have the suffix ".sql" (or ".sql.bz2"
1180
or ".sql.gz" if support for compressed formats is enabled).
1182
This feature is useful when your file is too big to be uploaded via HTTP,
1183
or when file uploads are disabled in PHP.
1185
Please note that if PHP is running in safe mode, this directory must be
1186
owned by the same user as the owner of the phpMyAdmin scripts.
1188
See also FAQ 1.16 for alternatives.
1189
$cfg['SaveDir'] string
1190
The name of the directory where dumps can be saved.
1192
If you want different directory for each user, %u will be replaced with
1195
Please note that the directory has to be writable for user running
1198
Please note that if PHP is running in safe mode, this directory must be
1199
owned by the same user as the owner of the phpMyAdmin scripts.
1200
$cfg['TempDir'] string
1201
The name of the directory where temporary files can be stored.
1203
This is needed for native MS Excel export, see FAQ 6.23
1204
$cfg['Export'] array
1205
In this array are defined default parameters for export, names of items are
1206
similar to texts seen on export page, so you can easily identify what they
1208
$cfg['Import'] array
1209
In this array are defined default parameters for import, names of items are
1210
similar to texts seen on import page, so you can easily identify what they
1212
$cfg['RepeatCells'] integer
1213
Repeat the headers every X cells, or 0 to deactivate.
1214
$cfg['EditInWindow'] boolean
1215
$cfg['QueryWindowWidth'] integer
1216
$cfg['QueryWindowHeight'] integer
1217
$cfg['QueryHistoryDB'] boolean
1218
$cfg['QueryWindowDefTab'] string
1219
$cfg['QueryHistoryMax'] integer
1220
All those variables affect the query window feature. A SQL link or icon is
1221
always displayed on the left panel. If JavaScript is enabled in your
1222
browser, a click on this opens a distinct query window, which is a direct
1223
interface to enter SQL queries. Otherwise, the right panel changes to
1224
display a query box.
1226
The size of this query window can be customized with $cfg
1227
['QueryWindowWidth'] and $cfg['QueryWindowWidth'] - both integers for the
1228
size in pixels. Note that normally, those parameters will be modified in
1229
layout.inc.php for the theme you are using.
1231
If $cfg['EditInWindow'] is set to true, a click on [Edit] from the results
1232
page (in the "Showing Rows" section) opens the query window and puts the
1233
current query inside it. If set to false, clicking on the link puts the SQL
1234
query in the right panel's query box.
1236
The usage of the JavaScript query window is recommended if you have a
1237
JavaScript enabled browser. Basic functions are used to exchange quite a
1238
few variables, so most 4th generation browsers should be capable to use
1239
that feature. It currently is only tested with Internet Explorer 6 and
1242
If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged to a
1243
table, which has to be created by you (see $cfg['Servers'][$i]['history']).
1244
If set to FALSE, all your queries will be appended to the form, but only as
1245
long as your window is opened they remain saved.
1247
When using the JavaScript based query window, it will always get updated
1248
when you click on a new table/db to browse and will focus if you click on
1249
"Edit SQL" after using a query. You can suppress updating the query window
1250
by checking the box "Do not overwrite this query from outside the window"
1251
below the query textarea. Then you can browse tables/databases in the
1252
background without losing the contents of the textarea, so this is
1253
especially useful when composing a query with tables you first have to look
1254
in. The checkbox will get automatically checked whenever you change the
1255
contents of the textarea. Please uncheck the button whenever you definitely
1256
want the query window to get updated even though you have made alterations.
1258
If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount of
1259
saved history items using $cfg['QueryHistoryMax'].
1261
The query window also has a custom tabbed look to group the features. Using
1262
the variable $cfg['QueryWindowDefTab'] you can specify the default tab to
1263
be used when opening the query window. It can be set to either 'sql',
1264
'files', 'history' or 'full'.
1265
$cfg['BrowseMIME'] boolean
1266
Enable MIME-transformations.
1267
$cfg['MaxExactCount'] integer
1268
For InnoDB tables, determines for how large tables phpMyAdmin should get
1269
the exact row count using SELECT COUNT. If the approximate row count as
1270
returned by SHOW TABLE STATUS is smaller than this value, SELECT COUNT will
1271
be used, otherwise the approximate count will be used.
1272
$cfg['MaxExactCountViews'] integer
1273
For VIEWs, since obtaining the exact count could have an impact on
1274
performance, this value is the maximum to be displayed, using a SELECT
1275
COUNT ... LIMIT. The default value of 0 bypasses any row counting.
1276
$cfg['WYSIWYG-PDF'] boolean
1277
Utilizes a WYSIWYG editing control to easily place elements of a PDF page.
1278
By clicking on the button 'toggle scratchboard' on the page where you edit
1279
x/y coordinates of those elements you can activate a scratchboard where all
1280
your elements are placed. By clicking on an element, you can move them
1281
around in the pre-defined area and the x/y coordinates will get updated
1282
dynamically. Likewise, when entering a new position directly into the input
1283
field, the new position in the scratchboard changes after your cursor
1284
leaves the input field.
1285
You have to click on the 'OK'-button below the tables to save the new
1286
positions. If you want to place a new element, first add it to the table of
1287
elements and then you can drag the new element around.
1288
By changing the paper size and the orientation you can change the size of
1289
the scratchboard as well. You can do so by just changing the dropdown field
1290
below, and the scratchboard will resize automatically, without interfering
1291
with the current placement of the elements.
1292
If ever an element gets out of range you can either enlarge the paper size
1293
or click on the 'reset' button to place all elements below each other.
1294
NOTE: You have to use a recent browser like IE6 or Mozilla to get this
1295
control to work. The basic Drag&Drop script functionality was kindly
1296
borrowed from www.youngpup.net and is underlying so specific license.
1297
$cfg['NaturalOrder'] boolean
1298
Sorts database and table names according to natural order (for example, t1,
1299
t2, t10). Currently implemented in the left panel (Light mode) and in
1300
Database view, for the table list.
1301
$cfg['TitleTable'] string
1302
$cfg['TitleDatabase'] string
1303
$cfg['TitleServer'] string
1304
$cfg['TitleDefault'] string
1305
Allows you to specify window's title bar. Following magic string can be
1306
used to get special values:
1309
HTTP host that runs phpMyAdmin
1313
Verbose MySQL server name as defined in server configuration
1315
Verbose MySQL server name if set, otherwise normal
1317
Currently opened database
1319
Currently opened table
1321
phpMyAdmin with version
1323
$cfg['ErrorIconic'] boolean
1324
Uses icons for warnings, errors and informations.
1325
$cfg['MainPageIconic'] boolean
1326
Uses icons on main page in lists and menu tabs.
1327
$cfg['ReplaceHelpImg'] boolean
1328
Shows a help button instead of the "Documentation" message.
1329
$cfg['ThemePath'] string
1330
If theme manager is active, use this as the path of the subdirectory
1331
containing all the themes.
1332
$cfg['ThemeManager'] boolean
1333
Enables user-selectable themes. See FAQ 2.7.
1334
$cfg['ThemeDefault'] string
1335
The default theme (a subdirectory under cfg['ThemePath']).
1336
$cfg['ThemePerServer'] boolean
1337
Whether to allow different theme for each server.
1338
$cfg['DefaultQueryTable'] string
1339
$cfg['DefaultQueryDatabase'] string
1340
Default queries that will be displayed in query boxes when user didn't
1341
specify any. Use %d for database name, %t for table name and %f for a comma
1342
separated list of field names. Note that %t and %f are only applicable to
1343
$cfg['DefaultQueryTable'].
1344
$cfg['SQP']['fmtType'] string [html|none]
1345
The main use of the new SQL Parser is to pretty-print SQL queries. By
1346
default we use HTML to format the query, but you can disable this by
1347
setting this variable to 'none'.
1348
$cfg['SQP']['fmtInd'] float
1349
$cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex]
1350
For the pretty-printing of SQL queries, under some cases the part of a
1351
query inside a bracket is indented. By changing $cfg['SQP']['fmtInd'] you
1352
can change the amount of this indent.
1353
Related in purpose is $cfg['SQP']['fmtIndUnit'] which specifies the units
1354
of the indent amount that you specified. This is used via stylesheets.
1355
$cfg['SQP']['fmtColor'] array of string tuples
1356
This array is used to define the colours for each type of element of the
1357
pretty-printed SQL queries. The tuple format is
1358
class => [HTML colour code | empty string]
1359
If you specify an empty string for the color of a class, it is ignored in
1360
creating the stylesheet. You should not alter the class names, only the
1363
+ comment Applies to all comment sub-classes
1364
+ comment_mysql Comments as "#...\n"
1365
+ comment_ansi Comments as "-- ...\n"
1366
+ comment_c Comments as "/*...*/"
1367
+ digit Applies to all digit sub-classes
1368
+ digit_hex Hexadecimal numbers
1369
+ digit_integer Integer numbers
1370
+ digit_float Floating point numbers
1371
+ punct Applies to all punctuation sub-classes
1372
+ punct_bracket_open_round Opening brackets"("
1373
+ punct_bracket_close_round Closing brackets ")"
1374
+ punct_listsep List item Separator ","
1375
+ punct_qualifier Table/Column Qualifier "."
1376
+ punct_queryend End of query marker ";"
1377
+ alpha Applies to all alphabetic classes
1378
+ alpha_columnType Identifiers matching a column type
1379
+ alpha_columnAttrib Identifiers matching a database/table/column
1381
+ alpha_functionName Identifiers matching a MySQL function name
1382
+ alpha_reservedWord Identifiers matching any other reserved word
1383
+ alpha_variable Identifiers matching a SQL variable "@foo"
1384
+ alpha_identifier All other identifiers
1385
+ quote Applies to all quotation mark classes
1386
+ quote_double Double quotes "
1387
+ quote_single Single quotes '
1388
+ quote_backtick Backtick quotes `
1389
$cfg['SQLValidator'] boolean
1391
$cfg['SQLValidator']['use'] boolean
1392
phpMyAdmin now supports use of the Mimer SQL Validator service, as
1393
originally published on Slashdot.
1394
For help in setting up your system to use the service, see the FAQ 6.14
1396
$cfg['SQLValidator']['username'] string
1397
$cfg['SQLValidator']['password'] string
1398
The SOAP service allows you to log in with anonymous and any password,
1399
so we use those by default. Instead, if you have an account with them,
1400
you can put your login details here, and it will be used in place of
1401
the anonymous login.
1405
$cfg['DBG']['enable'] boolean
1407
Enable the DBG extension for debugging phpMyAdmin. Required for profiling
1409
For help in setting up your system to this, see the Developers section.
1410
$cfg['DBG']['profile']['enable'] boolean
1412
Enable profiling support for phpMyAdmin. This will append a chunk of data
1413
to the end of every page displayed in the main window with profiling
1414
statistics for that page.
1415
You may need to increase the maximum execution time for this to complete
1416
successfully.Profiling was removed from the code for version 2.9.0 due to
1418
$cfg['DBG']['profile']['threshold'] float (units in milliseconds)
1420
When profiling data is displayed, this variable controls the threshold of
1421
display for any profiling data, based on the average time each time has
1422
taken. If it is over the threshold it is displayed, otherwise it is not
1423
displayed. This takes a value in milliseconds. In most cases you don't need
1425
$cfg['ColumnTypes'] array
1426
All possible types of a MySQL column. In most cases you don't need to edit
1428
$cfg['AttributeTypes'] array
1429
Possible attributes for fields. In most cases you don't need to edit this.
1430
$cfg['Functions'] array
1431
A list of functions MySQL supports. In most cases you don't need to edit
1433
$cfg['RestrictColumnTypes'] array
1434
Mapping of column types to meta types used for preferring displayed
1435
functions. In most cases you don't need to edit this.
1436
$cfg['RestrictFunctions'] array
1437
Functions preferred for column meta types as defined in $cfg
1438
['RestrictColumnTypes']. In most cases you don't need to edit this.
1439
$cfg['DefaultFunctions'] array
1440
Functions selected by default when inserting/changing row, Functions are
1441
defined for meta types from $cfg['RestrictColumnTypes'] and for
1442
first_timestamp, which is used for first timestamp column in table.
1443
$cfg['NumOperators'] array
1444
Operators available for search operations on numeric and date fields.
1445
$cfg['TextOperators'] array
1446
Operators available for search operations on character fields. Note that we
1447
put LIKE by default instead of LIKE %...%, to avoid unintended performance
1448
problems in case of huge tables.
1449
$cfg['EnumOperators'] array
1450
Operators available for search operations on enum fields.
1451
$cfg['NullOperators'] array
1452
Additional operators available for search operations when the field can be
1463
To enable transformations, you have to setup the column_info table and the
1464
proper directives. Please see the Configuration section on how to do so.
1466
You can apply different transformations to the contents of each field. The
1467
transformation will take the content of each field and transform it with
1468
certain rules defined in the selected transformation.
1470
Say you have a field 'filename' which contains a filename. Normally you would
1471
see in phpMyAdmin only this filename. Using transformations you can transform
1472
that filename into a HTML link, so you can click inside of the phpMyAdmin
1473
structure on the field's link and will see the file displayed in a new browser
1474
window. Using transformation options you can also specify strings to append/
1475
prepend to a string or the format you want the output stored in.
1477
For a general overview of all available transformations and their options, you
1478
can consult your <www.your-host.com>/<your-install-dir>/
1479
transformation_overview.php installation.
1481
For a tutorial on how to effectively use transformations, see our Link section
1482
on the official phpMyAdmin homepage.
1486
Go to your tbl_structure.php page (i.e. reached through clicking on the
1487
'Structure' link for a table). There click on "Change" (or change icon) and
1488
there you will see three new fields at the end of the line. They are called
1489
'MIME-type', 'Browser transformation' and 'Transformation options'.
1491
* The field 'MIME-type' is a dropdown field. You have the options to leave
1492
that field empty or to use 'auto' [this feature is not yet available].
1493
Please note that transformations are inactive as long as no MIME-type is
1495
* The field 'Browser transformation' is a drop-down field. You can choose
1496
from a hopefully growing amount of pre-defined transformations. See below
1497
for information on how to build your own transformation.
1498
There are global transformations and mimetype-bound transformations. Global
1499
transformations can be used for any mimetype. They will take the mimetype,
1500
if necessary, into regard. Mimetype-bound transformations usually only
1501
operate on a certain mimetype. There are transformations which operate on
1502
the main mimetype (like 'image'), which will most likely take the subtype
1503
into regard, and those who only operate on a specific subtype (like 'image/
1505
You can use transformations on mimetypes for which the function was not
1506
defined for. There is no security check for you selected the right
1507
transformation, so take care of what the output will be like.
1508
* The field 'Transformation options' is a free-type textfield. You have to
1509
enter transform-function specific options here. Usually the transforms can
1510
operate with default options, but it is generally a good idea to look up
1511
the overview to see which options are necessary.
1512
Much like the ENUM/SET-Fields, you have to split up several options using
1513
the format 'a','b','c',...(NOTE THE MISSING BLANKS). This is because
1514
internally the options will be parsed as an array, leaving the first value
1515
the first element in the array, and so forth.
1516
If you want to specify a MIME character set you can define it in the
1517
transformation_options. You have to put that outside of the pre-defined
1518
options of the specific mime-transform, as the last value of the set. Use
1519
the format "'; charset=XXX'". If you use a transform, for which you can
1520
specify 2 options and you want to append a character set, enter "'first
1521
parameter','second parameter','charset=us-ascii'". You can, however use the
1522
defaults for the parameters: "'','','charset=us-ascii'".
1526
All mimetypes and their transformations are defined through single files in the
1527
directory 'libraries/transformations/'.
1529
They are stored in files to ease up customization and easy adding of new
1532
Because the user cannot enter own mimetypes, it is kept sure that
1533
transformations always work. It makes no sense to apply a transformation to a
1534
mimetype, the transform-function doesn't know to handle.
1536
One can, however, use empty mime-types and global transformations which should
1537
work for many mimetypes. You can also use transforms on a different mimetype
1538
they where built for, but pay attention to option usage as well as what the
1539
transformation does to your field.
1541
There is a basic file called 'global.inc.php'. This function can be included by
1542
any other transform function and provides some basic functions.
1544
There are 5 possible file names:
1546
1. A mimetype+subtype transform:
1548
[mimetype]_[subtype]__[transform].inc.php
1550
Please not that mimetype and subtype are separated via '_', which shall not
1551
be contained in their names. The transform function/filename may contain
1552
only characters which cause no problems in the file system as well as the
1553
PHP function naming convention.
1555
The transform function will the be called 'PMA_transform_[mimetype]_
1556
[subtype]__[transform]()'.
1560
text_html__formatted.inc.php
1561
PMA_transform_text_html__formatted()
1562
2. A mimetype (w/o subtype) transform:
1564
[mimetype]__[transform].inc.php
1566
Please note that there are no single '_' characters. The transform function
1567
/filename may contain only characters which cause no problems in the file
1568
system as well as the PHP function naming convention.
1570
The transform function will the be called 'PMA_transform_[mimetype]__
1575
text__formatted.inc.php
1576
PMA_transform_text__formatted()
1577
3. A mimetype+subtype without specific transform function
1579
[mimetype]_[subtype].inc.php
1581
Please note that there are no '__' characters in the filename. Do not use
1582
special characters in the filename causing problems with the file system.
1584
No transformation function is defined in the file itself.
1590
4. A mimetype (w/o subtype) without specific transform function
1594
Please note that there are no '_' characters in the filename. Do not use
1595
special characters in the filename causing problems with the file system.
1597
No transformation function is defined in the file itself.
1603
5. A global transform function with no specific mimetype
1605
global__[transform].inc.php
1607
The transform function will the be called 'PMA_transform_global__
1613
PMA_transform_global__formatted()
1615
So generally use '_' to split up mimetype and subtype, and '__' to provide a
1618
All filenames containing no '__' in themselves are not shown as valid transform
1619
functions in the dropdown.
1621
Please see the libraries/transformations/TEMPLATE file for adding your own
1622
transform function. See the libraries/transformations/TEMPLATE_MIMETYPE for
1623
adding a mimetype without a transform function. Also note the introduction of a
1624
function description in the language files. For each function a
1625
$strTransformation_[filename without .inc.php] has to exist.
1627
You can use the template generator to generate new functions and entries in the
1630
To create a new transform function please see libraries/transformations/
1631
template_generator.sh. To create a new, empty mimetype please see libraries/
1632
transformations/template_generator_mimetype.sh.
1634
A transform function always gets passed three variables:
1636
1. $buffer - Contains the text inside of the column. This is the text, you
1638
2. $options - Contains any user-passed options to a transform function as an
1640
3. $meta - Contains an object with field information to your column. The data
1641
is drawn from the output of the mysql_fetch_field() function. This means,
1642
all object properties described on the manual page are available in this
1643
variable and can be used to transform a field accordingly to unsigned/
1644
zerofill/not_null/... properties.
1645
The $meta->mimetype variable contains the original MIME-type of the field
1646
(i.e. 'text/plain', 'image/jpeg' etc.)
1648
FAQ - Frequently Asked Questions
1652
3. Known limitations
1653
4. ISPs, multi-user installations
1654
5. Browsers or client OS
1656
7. phpMyAdmin project
1659
Please have a look at our Link section on the official phpMyAdmin homepage for
1660
in-depth coverage of phpMyAdmin's features and or interface.
1664
1.1 I'm running PHP 4+ and my server is crashing each time a specific action is
1665
required or phpMyAdmin sends a blank page or a page full of cryptic characters
1666
to my browser, what can I do?
1668
There are some known PHP bugs with output buffering and compression.
1669
Try to set the $cfg['OBGzip'] directive to FALSE in your config.inc.php file
1670
and the zlib.output_compression directive to Off in your php configuration
1672
Furthermore, we know about such problems connected to the release candidates of
1673
PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with MS Internet
1674
Explorer. Please upgrade to the release version PHP 4.2.0.
1676
1.2 My Apache server crashes when using phpMyAdmin.
1678
You should first try the latest versions of Apache (and possibly MySQL).
1679
See also the FAQ 1.1 entry about PHP bugs with output buffering.
1680
If your server keeps crashing, please ask for help in the various Apache
1683
1.3 I'm running phpMyAdmin with "cookie" authentication mode under PHP 4.2.0 or
1684
4.2.1 loaded as an Apache 2 module but can't enter the script: I'm always
1685
displayed the login screen.
1687
This is a known PHP bug (see this bug report) from the official PHP bug
1688
database. It means there is and won't be any phpMyAdmin fix against it because
1689
there is no way to code a fix.
1691
1.4 Using phpMyAdmin on IIS, I'm displayed the error message: "The specified
1692
CGI application misbehaved by not returning a complete set of HTTP headers
1695
You just forgot to read the install.txt file from the php distribution. Have a
1696
look at the last message in this bug report from the official PHP bug database.
1698
1.5 Using phpMyAdmin on IIS, I'm facing crashes and/or many error messages with
1699
the HTTP or advanced authentication mode.
1701
This is a known problem with the PHP ISAPI filter: it's not so stable. Please
1702
use instead the cookie authentication mode.
1704
1.6 I can't use phpMyAdmin on PWS: nothing is displayed!
1706
This seems to be a PWS bug. Filippo Simoncini found a workaround (at this time
1707
there is no better fix): remove or comment the DOCTYPE declarations (2 lines)
1708
from the scripts libraries/header.inc.php, libraries/header_printview.inc.php,
1709
index.php, navigation.php and libraries/common.lib.php.
1711
1.7 How can I GZip or Bzip a dump or a CSV export? It does not seem to work.
1713
These features are based on the gzencode() and bzcompress() PHP functions to be
1714
more independent of the platform (Unix/Windows, Safe Mode or not, and so on).
1715
So, you must have PHP4 >= 4.0.4 and Zlib/Bzip2 support (--with-zlib and
1717
We faced PHP crashes when trying to download a dump with MS Internet Explorer
1718
when phpMyAdmin is run with a release candidate of PHP 4.2.0. In this case you
1719
should switch to the release version of PHP 4.2.0.
1721
1.8 I cannot insert a text file in a table, and I get an error about safe mode
1724
Your uploaded file is saved by PHP in the "upload dir", as defined in php.ini
1725
by the variable upload_tmp_dir (usually the system default is /tmp).
1726
We recommend the following setup for Apache servers running in safe mode, to
1727
enable uploads of files while being reasonably secure:
1729
* create a separate directory for uploads: mkdir /tmp/php
1730
* give ownership to the Apache server's user.group: chown apache.apache /tmp/
1732
* give proper permission: chmod 600 /tmp/php
1733
* put upload_tmp_dir = /tmp/php in php.ini
1736
1.9 I'm having troubles when uploading files. In general file uploads don't
1737
work on my system and uploaded files have a Content-Type: header in the first
1740
It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0 and
1741
you updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't you?
1742
So the problem is that this package has a serious bug that was corrected ages
1743
ago in PHP (2001-01-28: see PHP's bug tracking system for more details). The
1744
problem is that the bugged package is still available though it was corrected
1745
(see RedHat's BugZilla for more details).
1746
So please download the fixed package (4.0.4pl1-9) and the problem should go
1748
And that fixes the \r\n problem with file uploads!
1750
1.10 I'm having troubles when uploading files with phpMyAdmin running on a
1751
secure server. My browser is Internet Explorer and I'm using the Apache server.
1753
As suggested by "Rob M" in the phpWizard forum, add this line to your
1756
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
1758
It seems to clear up many problems between Internet Explorer and SSL.
1760
1.11 I get an 'open_basedir restriction' while uploading a file from the query
1763
Since version 2.2.4, phpMyAdmin supports servers with open_basedir
1764
restrictions. Assuming that the restriction allows you to open files in the
1765
current directory ('.'), all you have to do is create a 'tmp' directory under
1766
the phpMyAdmin install directory, with permissions 777 and the same owner as
1767
the owner of your phpMyAdmin directory. The uploaded files will be moved there,
1768
and after execution of your SQL commands, removed.
1770
1.12 I have lost my MySQL root password, what can I do?
1772
The MySQL manual explains how to reset the permissions.
1774
1.13 I get an error 'No SQL query' when trying to execute a bookmark.
1776
If PHP does not have read/write access to its upload_tmp_dir, it cannot access
1779
1.14 I get an error 'No SQL query' when trying to submit a query from the
1780
convenient text area.
1782
Check the post_max_size directive from your PHP configuration file and try to
1785
1.15 I have problems with mysql.user field names.
1787
In older MySQL versions, the User and Password fields were named user and
1788
password. Please modify your field names to align with current standards.
1790
1.16 I cannot upload big dump files (memory, HTTP or timeout problems).
1792
Starting with version 2.7.0, the import engine has been re?written and these
1793
problems should not occur. If possible, upgrade your phpMyAdmin to the latest
1794
version to take advantage of the new import features.
1796
The first things to check (or ask your host provider to check) are the values
1797
of upload_max_filesize, memory_limit and post_max_size in the php.ini
1798
configuration file. All of these three settings limit the maximum size of data
1799
that can be submitted and handled by PHP. One user also said that post_max_size
1800
and memory_limit need to be larger than upload_max_filesize.
1802
There exist several workarounds if your upload is too big or your hosting
1803
provider is unwilling to change the settings:
1805
* Look at the $cfg['UploadDir'] feature. This allows one to upload a file to
1806
the server via scp, ftp, or your favorite file transfer method. PhpMyAdmin
1807
is then able to import the files from the temporary directory. More
1808
information is available in the Configuration section of this document.
1809
* Using a utility (such as BigDump) to split the files before uploading. We
1810
cannot support this or any third party applications, but are aware of users
1811
having success with it.
1812
* If you have shell (command line) access, use MySQL to import the files
1813
directly. You can do this by issuing the "source" command from within
1814
MySQL: source filename.sql.
1816
1.17 Which MySQL versions does phpMyAdmin support?
1818
All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are fully
1819
supported. Please note that the older your MySQL version is, the more
1820
limitations you will have to face.
1821
phpMyAdmin may connect to your MySQL server using php's classic MySQL extension
1822
as well as the improved MySQL extension (MySQLi) that is available in php 5.0.
1823
Either way, the developers of both extensions recommend to use the classic
1824
extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.
1825
When compiling php, we strongly recommend that you manually link the MySQL
1826
extension of your choice to a MySQL client library of at least the same minor
1827
version since the one that is bundled with some php distributions is rather old
1828
and might cause problems (see FAQ 1.17a). If your webserver is running on a
1829
windows system, you might want to try MySQL's Connector/PHP instead of the
1830
MySQL / MySQLi extensions that are bundled with the official php Win32 builds.
1831
MySQL 5.1 is not yet supported.
1833
1.17a I cannot connect to the MySQL server. It always returns the error
1834
message, "Client does not support authentication protocol requested by server;
1835
consider upgrading MySQL client"
1837
You tried to access MySQL with an old MySQL client library. The version of your
1838
MySQL client library can be checked in your phpinfo() output. In general, it
1839
should have at least the same minor version as your server - as mentioned in
1842
This problem is generally caused by using MySQL version 4.1 or newer. MySQL
1843
changed the authentication hash and your PHP is trying to use the old method.
1844
The proper solution is to use the mysqli extension with the proper client
1845
library to match your MySQL installation. Your chosen extension is specified in
1846
$cfg['Servers'][$i]['extension']. More information (and several workarounds)
1847
are located in the MySQL Documentation.
1849
1.18 I'm running MySQL <= 4.0.1 having lower_case_table_names set to 1. If I
1850
create a new table with a capital letter in its name it is changed to lowercase
1851
as it should. But if I try to DROP this table MySQL is unable to find the
1854
This is a bug of MySQL <= 4.0.1. Please upgrade to at least MySQL 4.0.2 or turn
1855
off your lower_case_table_names directive.
1857
1.19 I can't run the "display relations" feature because the script seems not
1858
to know the font face I'm using!
1860
The "FPDF" library we're using for this feature requires some special files to
1862
Please refers to the FPDF manual to build these files.
1864
1.20 I receive the error "cannot load MySQL extension, please check PHP
1867
To connect to a MySQL server, PHP needs a set of MySQL functions called "MySQL
1868
extension". This extension may be part of the PHP distribution (compiled-in),
1869
otherwise it needs to be loaded dynamically. Its name is probably mysql.so or
1870
php_mysql.dll. phpMyAdmin tried to load the extension but failed.
1872
Usually, the problem is solved by installing a software package called
1873
"PHP-MySQL" or something similar.
1875
1.21 I am running the CGI version of PHP under Unix, and I cannot log in using
1878
In php.ini, set mysql.max_links higher than 1.
1880
1.22 I don't see the "Location of text file" field, so I cannot upload.
1882
This is most likely because in php.ini, your file_uploads parameter is not set
1885
1.23 I'm running MySQL on a Win32 machine. Each time I create a new table the
1886
table and field names are changed to lowercase!
1888
This happens because the MySQL directive lower_case_table_names defaults to 1
1889
(ON) in the Win32 version of MySQL. You can change this behavior by simply
1890
changing the directive to 0 (OFF):
1891
Just edit your my.ini file that should be located in your Windows directory and
1892
add the following line to the group [mysqld]:
1894
set-variable = lower_case_table_names=0
1896
Next, save the file and restart the MySQL service. You can always check the
1897
value of this directive using the query
1899
SHOW VARIABLES LIKE 'lower_case_table_names';
1901
1.24 Some characters are being truncated in my queries, or I get characters
1902
randomly added. I am running PHP 4.2.3.
1904
This is a PHP 4.2.3 bug.
1906
1.25 I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get
1907
problems, such as undefined variables when I run a SQL query.
1909
A tip from Jose Fandos: put a comment on the following two lines in httpd.conf,
1912
# mod_gzip_item_include file \.php$
1913
# mod_gzip_item_include mime "application/x-httpd-php.*"
1915
as this version of mod_gzip on Apache (Windows) has problems handling PHP
1916
scripts. Of course you have to restart Apache.
1918
1.26 I just installed phpMyAdmin in my document root of IIS but I get the error
1919
"No input file specified" when trying to run phpMyAdmin.
1921
This is a permission problem. Right-click on the phpmyadmin folder and choose
1922
properties. Under the tab Security, click on "Add" and select the user
1923
"IUSR_machine" from the list. Now set his permissions and it should work.
1925
1.27 I get empty page when I want to view huge page (eg. db_structure.php with
1928
This is a PHP bug that occur when GZIP output buffering is enabled. If you turn
1929
off it (by $cfg['OBGzip'] = false in config.inc.php), it should work. This bug
1930
will be fixed in PHP 5.0.0.
1932
1.28 My MySQL server sometimes refuses queries and returns the message
1933
'Errorcode: 13'. What does this mean?
1935
This can happen due to a MySQL bug when having database / table names with
1936
upper case characters although lower_case_table_names is set to 1. To fix this,
1937
turn off this directive, convert all database and table names to lower case and
1938
turn it on again. Alternatively, there's a bug-fix available starting with
1939
MySQL 3.23.56 / 4.0.11-gamma.
1941
1.29 When I create a table or modify a field, I get an error and the fields are
1944
It is possible to configure Apache in such a way that PHP has problems
1945
interpreting .php files.
1947
The problems occur when two different (and conflicting) set of directives are
1955
AddType application/x-httpd-php .php
1957
In the case we saw, one set of directives was in /etc/httpd/conf/httpd.conf,
1958
while the other set was in /etc/httpd/conf/addon-modules/php.conf.
1959
The recommended way is with AddType, so just comment out the first set of lines
1962
#SetOutputFilter PHP
1965
1.30 I get the error "navigation.php: Missing hash".
1967
This problem is known to happen when the server is running Turck MMCache but
1968
upgrading MMCache to version 2.3.21 solves the problem.
1970
1.31 Does phpMyAdmin support php5?
1973
However, phpMyAdmin needs to be backwards compatible to php4. This is why
1974
phpMyAdmin disables the E_STRICT error_level in error_reporting settings.
1976
1.32 Can I use HTTP authentication with IIS?
1978
Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI mode
1981
1. In your php.ini file, set cgi.rfc2616_headers = 0
1982
2. In Web Site Properties -> File/Directory Security -> Anonymous Access
1983
dialog box, check the Anonymous access checkbox and uncheck any other
1984
checkboxes (i.e. uncheck Basic authentication, Integrated Windows
1985
authentication, and Digest if it's enabled.) Click OK.
1986
3. In Custom Errors, select the range of 401;1 through 401;5 and click the Set
1989
1.33 Is there a problem with the mysqli extension when running PHP 5.0.4 on
1992
Yes. This problem affects phpMyAdmin ("Call to undefined function
1993
pma_reloadnavigation"), so upgrade your PHP to the next version.
1995
1.34 Can I access directly to database or table pages?
1997
Yes. Out of the box, you can use URLs like http://server/phpMyAdmin/index.php?
1998
db=database&table=table&target=script. Table and script parts are optional. If
1999
you want http://server/phpMyAdmin/database[/table][/script] URLs, you need to
2000
do some configuration. Following lines apply only for Apache web server. First
2001
make sure, that you have enabled some features within global configuration. You
2002
need Options FollowSymLinks and AllowOverride FileInfo enabled for directory
2003
where phpMyAdmin is installed and you need mod_rewrite to be enabled. Then you
2004
just need to create following .htaccess file in root folder of phpMyAdmin
2005
installation (don't forget to change directory name inside of it):
2008
RewriteBase /path_to_phpMyAdmin
2009
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
2010
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
2011
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
2012
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
2014
1.35 Can I use HTTP authentication with Apache CGI?
2016
Yes. However you need to pass authentication variable to CGI using following
2020
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
2022
1.36 I get an error "500 Internal Server Error".
2024
There can be many explanations to this and a look at your server's error log
2025
file might give a clue.
2027
1.37 I run phpMyAdmin on cluster of different machines and password encryption
2028
in cookie auth doesn't work.
2030
If your cluster consist of different architectures, PHP code used for
2031
encryption/decryption won't work correct. This is caused by use of pack/unpack
2032
functions in code. Only solution is to use mcrypt extension which works fine in
2037
2.1 The error message "Warning: Cannot add header information - headers already
2038
sent by ..." is displayed, what's the problem?
2040
Edit your config.inc.php file and ensure there is nothing (I.E. no blank lines,
2041
no spaces, no characters...) neither before the <?php tag at the beginning,
2042
neither after the ?> tag at the end.
2044
2.2 phpMyAdmin can't connect to MySQL. What's wrong?
2046
Either there is an error with your PHP setup or your username/password is
2047
wrong. Try to make a small script which uses mysql_connect and see if it works.
2048
If it doesn't, it may be you haven't even compiled MySQL support into PHP.
2050
2.3 The error message "Warning: MySQL Connection Failed: Can't connect to local
2051
MySQL server through socket '/tmp/mysql.sock' (111) ..." is displayed. What can
2054
For RedHat users, Harald Legner suggests this on the mailing list:
2056
On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In your
2057
php.ini you will find a line
2059
mysql.default_socket = /tmp/mysql.sock
2063
mysql.default_socket = /var/lib/mysql/mysql.sock
2065
Then restart apache and it will work.
2067
Here is a fix suggested by Brad Ummer:
2069
* First, you need to determine what socket is being used by MySQL.
2070
To do this, telnet to your server and go to the MySQL bin directory. In
2071
this directory there should be a file named mysqladmin. Type ./mysqladmin
2072
variables, and this should give you a bunch of info about your MySQL
2073
server, including the socket (/tmp/mysql.sock, for example).
2074
* Then, you need to tell PHP to use this socket.
2075
To do this in phpMyAdmin, you need to complete the socket information in
2077
For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
2079
Please also make sure that the permissions of this file allow to be
2080
readable by your webserver (i.e. '0755').
2082
Have also a look at the corresponding section of the MySQL documentation.
2084
2.4 Nothing is displayed by my browser when I try to run phpMyAdmin, what can I
2087
Try to set the $cfg['OBGZip'] directive to FALSE in the phpMyAdmin
2088
configuration file. It helps sometime.
2089
Also have a look at your PHP version number: if it contains "4.0b..." it means
2090
you're running a beta version of PHP. That's not a so good idea, please upgrade
2091
to a plain revision.
2093
2.5 Each time I want to insert or change a record or drop a database or a
2094
table, an error 404 (page not found) is displayed or, with HTTP or cookie
2095
authentication, I'm asked to log in again. What's wrong?
2097
Check the value you set for the $cfg['PmaAbsoluteUri'] directive in the
2098
phpMyAdmin configuration file.
2100
2.6 I get an "Access denied for user: 'root@localhost' (Using password: YES)
2101
"-error when trying to access a MySQL-Server on a host which is port-forwarded
2104
When you are using a port on your localhost, which you redirect via
2105
port-forwarding to another host, MySQL is not resolving the localhost as
2107
Erik Wasser explains: The solution is: if your host is "localhost" MySQL (the
2108
commandline tool 'mysql' as well) always tries to use the socket connection for
2109
speeding up things. And that doesn't work in this configuration with port
2111
If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the
2114
2.7 Using and creating themes
2116
Themes are configured with $cfg['ThemePath'], $cfg['ThemeManager'] and $cfg
2119
Under $cfg['ThemePath'], you should not delete the directory "original" or its
2120
underlying structure, because this is the system theme used by phpMyAdmin.
2121
"original" contains all images and styles, for backwards compatibility and for
2122
all themes that would not include images or css-files.
2124
If $cfg['ThemeManager'] is enabled, you can select your favorite theme on the
2125
main page. Your selected theme will be stored in a cookie.
2130
* make a new subdirectory (for example "your_theme_name") under $cfg
2131
['ThemePath'] (by default themes)
2132
* copy the files and directories from "original" to "your_theme_name"
2133
* edit the css-files in "your_theme_name/css"
2134
* put your new images in "your_theme_name/img"
2135
* edit layout.inc.php in "your_theme_name"
2136
* edit info.inc.php in "your_theme_name" to contain your chosen theme name,
2137
that will be visible in user interface
2138
* make a new screenshot of your theme and save it under "your_theme_name/
2141
In theme directory there is file info.inc.php which contains theme verbose
2142
name, theme generation and theme version. These versions and generations are
2143
enumerated from 1 and do not have any direct dependence on phpMyAdmin version.
2144
Themes within same generation should be backwards compatible - theme with
2145
version 2 should work in phpMyAdmin requiring version 1. Themes with different
2146
generation are incompatible.
2148
If you do not want to use your own symbols and buttons, remove the directory
2149
"img" in "your_theme_name". phpMyAdmin will use the default icons and buttons
2150
(from the system-theme "original").
2152
2.8 I get "Missing parameters" errors, what can I do?
2154
Here are a few points to check:
2156
* In config.inc.php, try to leave the $cfg['PmaAbsoluteUri'] directive empty.
2158
* Maybe you have a broken PHP installation or you need to upgrade your Zend
2159
Optimizer. See http://bugs.php.net/bug.php?id=31134.
2160
* If you are using Hardened PHP with the ini directive
2161
varfilter.max_request_variables set to the default (200) or another low
2162
value, you could get this error if your table has a high number of columns.
2163
Adjust this setting accordingly. (Thanks to Klaus Dorninger for the hint).
2164
* In the php.ini directive arg_separator.input, a value of ";" will cause
2165
this error. Replace it with "&;".
2166
* If you are using Hardened-PHP, you might want to increase request limits.
2167
* The directory specified in the php.ini directive session.save_path does not
2168
exist or is read-only.
2172
3.1 When using HTTP authentication, an user who logged out can not log in again
2173
in with the same nick.
2175
This is related to the authentication mechanism (protocol) used by phpMyAdmin.
2176
To bypass this problem: just close all the opened browser windows and then go
2177
back to phpMyAdmin. You should be able to log in again.
2179
3.2 When dumping a large table in compressed mode, I get a memory limit error
2180
or a time limit error.
2182
Compressed dumps are built in memory and because of this are limited to php's
2183
memory limit. For GZip/BZip2 exports this can be overcome since 2.5.4 using
2184
$cfg['CompressOnFly'] (enabled by default). Zip exports can not be handled this
2185
way, so if you need Zip files for larger dump, you have to use another way.
2187
3.3 With InnoDB tables, I lose foreign key relationships when I rename or alter
2190
This seems to be a InnoDB bug (fixed in MySQL 3.23.50?).
2192
3.4 I am unable to import dumps I created with the mysqldump tool bundled with
2193
the MySQL server distribution.
2195
The problem is that older versions of mysqldump created invalid comments like
2200
-- Host: localhost Database: database
2201
---------------------------------------------------------
2202
-- Server version 3.23.54
2204
The invalid part of the code is the horizontal line made of dashes that appears
2205
once in every dump created with mysqldump. If you want to run your dump you
2206
have to turn it into valid MySQL. This means, you have to add a whitespace
2207
after the first two dashes of the line or add a # before it:
2208
-- -------------------------------------------------------
2210
#---------------------------------------------------------
2212
3.5 When using nested folders there are some multiple hierarchies displayed in
2213
a wrong manner?! ($cfg['LeftFrameTableSeparator'])
2215
Please note that you should not use the separating string multiple times
2216
without any characters between them, or at the beginning/end of your table
2217
name. If you have to, think about using another TableSeparator or disabling
2220
3.6 What is currently not supported in phpMyAdmin about InnoDB?
2222
In Relation view, being able to choose a table in another database, or having
2223
more than one index field in the foreign key.
2225
In Query-by-example (Query), automatic generation of the query LEFT JOIN from
2229
3.7 I have table with many (100+) fields and when I try to browse table I get
2230
series of errors like "Warning: unable to parse url". How can this be fixed?
2232
Your table neither have a primary key nor an unique one, so we must use a long
2233
expression to identify this row. This causes problems to parse_url function.
2234
The workaround is to create a primary or unique key.
2236
3.8 I cannot use (clickable) HTML-forms in fields where I put a
2237
MIME-Transformation onto!
2239
Due to a surrounding form-container (for multi-row delete checkboxes), no
2240
nested forms can be put inside the table where phpMyAdmin displays the results.
2241
You can, however, use any form inside of a table if keep the parent
2242
form-container with the target to tbl_row_delete.php and just put your own
2243
input-elements inside. If you use a custom submit input field, the form will
2244
submit itself to the displaying page again, where you can validate the
2245
$HTTP_POST_VARS in a transformation. For a tutorial on how to effectively use
2246
transformations, see our Link section on the official phpMyAdmin-homepage.
2248
3.9 I get error messages when using "--sql_mode=ANSI" for the MySQL server
2250
When MySQL is running in ANSI-compatibility mode, there are some major
2251
differences in how SQL is structured (see http://dev.mysql.com/doc/mysql/en/
2252
ANSI_mode.html). Most important of all, the quote-character (") is interpreted
2253
as an identifier quote character and not as a string quote character, which
2254
makes many internal phpMyAdmin operations into invalid SQL statements. There is
2255
no workaround to this behaviour. News to this item will be posted in Bug report
2258
3.10 Homonyms and no primary key: When the results of a SELECT display more
2259
that one column with the same value (for example SELECT lastname from employees
2260
where firstname like 'A%' and two "Smith" values are displayed), if I click
2261
Edit I cannot be sure that I am editing the intended row.
2263
Please make sure that your table has a primary key, so that phpMyAdmin can use
2264
it for the Edit and Delete links.
2266
3.11 The number of records for InnoDB tables is not correct.
2268
phpMyAdmin uses a quick method to get the row count, and this method only
2269
returns an approximate count in the case of InnoDB tables. See $cfg
2270
['MaxExactCount'] for a way to modify those results, but this could have a
2271
serious impact on performance.
2273
3.12 What are the phpMyAdmin limitations for MySQL 3?
2275
The number of records in queries containing COUNT and GROUP BY is not correctly
2276
calculated. Also, sorting results of a query like "SELECT * from table GROUP
2277
BY" ... is problematic.
2279
3.13 I get an error when entering USE followed by a db name containing an
2282
The tests I have made with current MySQL 4.1.11 API shows that the API does not
2283
accept this syntax for the USE command. Enclosing the db name with backquotes
2284
works. For further confusion, no backquotes are needed with command-line mysql.
2286
ISPs, multi-user installations
2288
4.1 I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to
2289
install it for each customer.
2291
Since version 2.0.3, you can setup a central copy of phpMyAdmin for all your
2292
users. The development of this feature was kindly sponsored by NetCologne GmbH.
2293
This requires a properly setup MySQL user management and phpMyAdmin HTTP or
2294
cookie authentication. See the install section on "Using HTTP authentication".
2296
4.2 What's the preferred way of making phpMyAdmin secure against evil access.
2298
This depends on your system.
2299
If you're running a server which cannot be accessed by other people, it's
2300
sufficient to use the directory protection bundled with your webserver (with
2301
Apache you can use .htaccess files, for example).
2302
If other people have telnet access to your server, you should use phpMyAdmin's
2303
HTTP or cookie authentication features.
2307
* Your config.inc.php file should be chmod 660.
2308
* All your phpMyAdmin files should be chown -R phpmy.apache, where phpmy is a
2309
user whose password is only known to you, and apache is the group under
2311
* You should use PHP safe mode, to protect from other users that try to
2312
include your config.inc.php in their scripts.
2314
4.3 I get errors about not being able to include a file in /lang or in /
2317
Check php.ini, or ask your sysadmin to check it. The include_path must contain
2318
"." somewhere in it, and open_basedir, if used, must contain "." and "./lang"
2319
to allow normal operation of phpMyAdmin.
2321
4.4 phpMyAdmin always gives "Access denied" when using HTTP authentication.
2323
This could happen for several reasons:
2325
* $cfg['Servers'][$i]['controluser'] and/or $cfg['Servers'][$i]
2326
['controlpass'] are wrong.
2327
* The username/password you specify in the login dialog are invalid.
2328
* You have already setup a security mechanism for the phpMyAdmin-directory,
2329
eg. a .htaccess file. This would interfere with phpMyAdmin's
2330
authentication, so remove it.
2332
4.5 Is it possible to let users create their own databases?
2334
Starting with 2.2.5, in the user management page, you can enter a wildcard
2335
database name for a user (for example "joe%"), and put the privileges you want.
2336
For example, adding SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
2337
would let a user create/manage his/her database(s).
2339
4.6 How can I use the Host-based authentication additions?
2341
If you have existing rules from an old .htaccess file, you can take them and
2342
add a username between the 'deny'/'allow' and 'from' strings. Using the
2343
username wildcard of '%' would be a major benefit here if your installation is
2344
suited to using it. Then you can just add those updated lines into the $cfg
2345
['Servers'][$i]['AllowDeny']['rules'] array.
2347
If you want a pre-made sample, you can try this fragment. It stops the 'root'
2348
user from logging in from any networks other than the private network IP
2351
//block root from logging in except from the private networks
2352
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
2353
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
2354
'deny root from all',
2355
'allow root from localhost',
2356
'allow root from 10.0.0.0/8',
2357
'allow root from 192.168.0.0/16',
2358
'allow root from 172.16.0.0/12',
2361
4.7 Authentication window is displayed more than once, why?
2363
This happens if you are using a URL to start phpMyAdmin which is different than
2364
the one set in your $cfg['PmaAbsoluteUri']. For example, a missing "www", or
2365
entering with an IP address while a domain name is defined in the config file.
2367
4.8 Which parameters can I use in the URL that starts phpMyAdmin?
2369
When starting phpMyAdmin, you can use the db, pma_username, pma_password and
2370
server parameters. This last one can contain either the numeric host index
2371
(from $i of the configuration file) or one of the host names present in the
2372
configuration file. Using pma_username and pma_password has been tested along
2373
with the usage of 'cookie' auth_type.
2375
Browsers or client OS
2377
5.1 I get an out of memory error, and my controls are non-functional, when
2378
trying to create a table with more than 14 fields.
2380
We could reproduce this problem only under Win98/98SE. Testing under WinNT4 or
2381
Win2K, we could easily create more than 60 fields.
2382
A workaround is to create a smaller number of fields, then come back to your
2383
table properties and add the other fields.
2385
5.2 With Xitami 2.5b4, phpMyAdmin won't process form fields.
2387
This is not a phpMyAdmin problem but a Xitami known bug: you'll face it with
2388
each script/website that use forms.
2389
Upgrade or downgrade your Xitami server.
2391
5.3 I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).
2393
With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that the
2394
proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps don't
2396
With Konqueror 2.2.1: plain dumps work; zip dumps are placed into the user's
2397
temporary directory, so they must be moved before closing Konqueror, or else
2398
they disappear. GZip dumps give an error message.
2399
Testing needs to be done for Konqueror 2.2.2.
2401
5.4 I can't use the cookie authentication mode because Internet Explorer never
2404
MS Internet Explorer seems to be really buggy about cookies, at least till
2405
version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1 bug in
2407
Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may work!
2409
5.5 In Internet Explorer 5.0, I get JavaScript errors when browsing my rows.
2411
Upgrade to at least Internet Explorer 5.5 SP2.
2413
5.6 In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not
2414
found") when trying to modify a row in a table with many fields, or with a text
2417
Your table neither have a primary key nor an unique one, so we must use a long
2418
URL to identify this row. There is a limit on the length of the URL in those
2419
browsers, and this not happen in Netscape, for example. The workaround is to
2420
create a primary or unique key, or use another browser.
2422
5.7 I refresh (reload) my browser, and come back to the welcome page.
2424
Some browsers support right-clicking into the frame you want to refresh, just
2425
do this in the right frame.
2427
5.8 With Mozilla 0.9.7 I have problems sending a query modified in the query
2430
Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future Mozilla
2433
5.9 With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a whitespace in
2434
the SQL-Query edit area: the page scrolls down.
2436
This is a Mozilla bug (see bug #26882 at BugZilla).
2438
5.10 With Netscape 4.75 I get empty rows between each row of data in a CSV
2441
This is a known Netscape 4.75 bug: it adds some line feeds when exporting data
2442
in octet-stream mode. Since we can't detect the specific Netscape version, we
2443
cannot workaround this bug.
2445
5.11 Extended-ASCII characters like German umlauts are displayed wrong.
2447
Please ensure that you have set your browser's character set to the one of the
2448
language file you have selected on phpMyAdmin's start page. Alternatively, you
2449
can try the auto detection mode that is supported by the recent versions of the
2452
5.12 Mac OS X: Safari browser changes special characters to "?".
2454
This issue has been reported by a OS X user, who adds that Chimera, Netscape
2455
and Mozilla do not have this problem.
2457
5.13 With Internet Explorer 5.5 or 6, and HTTP authentication type, I cannot
2458
manage two servers: I log in to the first one, then the other one, but if I
2459
switch back to the first, I have to log in on each operation.
2461
This is a bug in Internet Explorer, other browsers do not behave this way.
2463
5.14 Using Opera6, I can manage to get to the authentication, but nothing
2464
happens after that, only a blank screen.
2466
Having $cfg['QueryFrameJS'] set o TRUE, this leads to a bug in Opera6, because
2467
it is not able to interpret frameset definitions written by JavaScript. Please
2468
upgrade your phpMyAdmin installtion or to Opera7 at least.
2470
5.15 I have display problems with Safari.
2472
Please upgrade to at least version 1.2.3.
2474
5.16 With Internet Explorer, I get "Access is denied" Javascript errors. Or I
2475
cannot make phpMyAdmin work under Windows.
2477
Please check the following points:
2479
* Maybe you have defined your PmaAbsoluteUri setting in config.inc.php to an
2480
IP address and you are starting phpMyAdmin with a URL containing a domain
2481
name, or the reverse situation.
2482
* Security settings in IE and/or Microsoft Security Center are too high, thus
2483
blocking scripts execution.
2484
* The Windows Firewall is blocking Apache and MySQL. You must allow HTTP
2485
ports (80 or 443) and MySQL port (usually 3306) in the "in" and "out"
2488
5.17 With Firefox, I cannot delete rows of data or drop a database.
2490
Many users have confirmed that the Tabbrowser Extensions plugin they installed
2491
in their Firefox is causing the problem.
2495
6.1 I can't insert new rows into a table / I can't create a table - MySQL
2496
brings up a SQL-error.
2498
Examine the SQL error with care. Often the problem is caused by specifying a
2500
Common errors include:
2502
* Using VARCHAR without a size argument
2503
* Using TEXT or BLOB with a size argument
2505
Also, look at the syntax chapter in the MySQL manual to confirm that your
2508
6.2 When I create a table, I click the Index checkbox for 2 fields and
2509
phpMyAdmin generates only one index with those 2 fields.
2511
In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields index.
2512
If you want two indexes, create the first one when creating the table, save,
2513
then display the table properties and click the Index link to create the other
2516
6.3 How can I insert a null value into my table?
2518
Since version 2.2.3, you have a checkbox for each field that can be null.
2519
Before 2.2.3, you had to enter "null", without the quotes, as the field's
2520
value. Since version 2.5.5, you have to use the checkbox to get a real NULL
2521
value, so if you enter "NULL" this means you want a literal NULL in the field,
2522
and not a NULL value (this works in PHP4).
2524
6.4 How can I backup my database or table?
2526
Click on a database or table name in the left frame, the properties will be
2527
displayed. Then on the menu, click "Export", you can dump the structure, the
2528
data, or both. This will generate standard SQL statements that can be used to
2529
recreate your database/table.
2531
You will need to choose "Save as file", so that phpMyAdmin can transmit the
2532
resulting dump to your station. Depending on your PHP configuration, you will
2533
see options to compress the dump. See also the $cfg['ExecTimeLimit']
2534
configuration variable.
2536
For additional help on this subject, look for the word "dump" in this document.
2538
6.5 How can I restore (upload) my database or table using a dump? How can I run
2541
Click on a database name in the left frame, the properties will be displayed.
2542
Select "Import" from the list of tabs in the right?hand frame (or "SQL" if your
2543
phpMyAdmin version is older than 2.7.0). In the "Location of the text file"
2544
section, type in the path to your dump filename, or use the Browse button. Then
2547
With version 2.7.0, the import engine has been re?written, if possible it is
2548
suggested that you upgrade to take advantage of the new features.
2550
For additional help on this subject, look for the word "upload" in this
2553
6.6 How can I use the relation table in Query-by-example?
2555
Here is an example with the tables persons, towns and countries, all located in
2556
the database mydb. If you don't have a pma_relation table, create it as
2557
explained in the configuration section. Then create the example tables:
2559
CREATE TABLE REL_countries (
2560
country_code char(1) NOT NULL default '',
2561
description varchar(10) NOT NULL default '',
2562
PRIMARY KEY (country_code)
2565
INSERT INTO REL_countries VALUES ('C', 'Canada');
2567
CREATE TABLE REL_persons (
2568
id tinyint(4) NOT NULL auto_increment,
2569
person_name varchar(32) NOT NULL default '',
2570
town_code varchar(5) default '0',
2571
country_code char(1) NOT NULL default '',
2575
INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
2576
INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
2578
CREATE TABLE REL_towns (
2579
town_code varchar(5) NOT NULL default '0',
2580
description varchar(30) NOT NULL default '',
2581
PRIMARY KEY (town_code)
2584
INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
2585
INSERT INTO REL_towns VALUES ('M', 'Montr?al');
2587
To setup appropriate links and display information:
2589
* on table "REL_persons" click Structure, then Relation view
2590
* in Links, for "town_code" choose "REL_towns->code"
2591
* in Links, for "country_code" choose "REL_countries->country_code"
2592
* on table "REL_towns" click Structure, then Relation view
2593
* in "Choose field to display", choose "description"
2594
* repeat the two previous steps for table "REL_countries"
2596
Then test like this:
2598
* Click on your db name in the left frame
2600
* Use tables: persons, towns, countries
2601
* Click "Update query"
2602
* In the fields row, choose persons.person_name and click the "Show" tickbox
2603
* Do the same for towns.description and countries.descriptions in the other 2
2605
* Click "Update query" and you will see in the query box that the correct
2606
joins have been generated
2607
* Click "Submit query"
2609
6.7 How can I use the "display field" feature?
2611
Starting from the previous example, create the pma_table_info as explained in
2612
the configuration section, then browse your persons table, and move the mouse
2613
over a town code or country code.
2615
See also FAQ 6.21 for an additional feature that "display field" enables:
2616
drop-down list of possible values.
2618
6.8 How can I produce a PDF schema of my database?
2620
First the configuration variables "relation", "table_coords" and "pdf_pages"
2621
have to be filled in.
2623
Then you need to think about your schema layout. Which tables will go on which
2626
* Select your database in the left frame.
2627
* Choose "Operations" in the navigation bar at the top.
2628
* Choose "Edit PDF Pages" near the bottom of the page.
2629
* Enter a name for the first PDF page and click Go. If you like, you can use
2630
the "automatic layout," which will put all your linked tables onto the new
2632
* Select the name of the new page (making sure the Edit radio button is
2633
selected) and click Go.
2634
* Select a table from the list, enter its coordinates and click Save.
2635
Coordinates are relative; your diagram will be automatically scaled to fit
2636
the page. When initially placing tables on the page, just pick any
2637
coordinates -- say, 50x50. After clicking Save, you can then use the
2638
graphical editor to position the element correctly.
2639
* When you'd like to look at your PDF, first be sure to click the Save button
2640
beneath the list of tables and coordinates, to save any changes you made
2641
there. Then scroll all the way down, select the PDF options you want, and
2643
* Internet Explorer for Windows may suggest an incorrect filename when you
2644
try to save a generated PDF. When saving a generated PDF, be sure that the
2645
filename ends in ".pdf", for example "schema.pdf". Browsers on other
2646
operating systems, and other browsers on Windows, do not have this problem.
2648
6.9 phpMyAdmin is changing the type of one of my columns!
2650
No, it's MySQL that is doing silent column type changing.
2652
6.10 When creating a privilege, what happens with underscores in the database
2655
If you do not put a backslash before the underscore, this is a wildcard grant,
2656
and the underscore means "any character". So, if the database name is
2657
"john_db", the user would get rights to john1db, john2db ...
2659
If you put a backslash before the underscore, it means that the database name
2660
will have a real underscore.
2662
6.11 What is the curious symbol ? in the statistics pages?
2666
6.12 I want to understand some Export options.
2670
* "Add DROP TABLE" will add a line telling MySQL to drop the table, if it
2671
already exists during the import. It does NOT drop the table after your
2672
export, it only affects the import file.
2673
* "If Not Exists" will only create the table if it doesn't exist. Otherwise,
2674
you may get an error if the table name exists but has a different
2676
* "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any) will
2677
be included in backup.
2678
* "Enclose table and field names with backquotes" ensures that field and
2679
table names formed with special characters are protected.
2680
* "Add into comments" includes column comments, relations, and MIME types set
2681
in the pmadb in the dump as SQL comments (/* xxx */).
2685
* "Complete inserts" adds the column names on every INSERT command, for
2686
better documentation (but resulting file is bigger).
2687
* "Extended inserts" provides a shorter dump file by using only once the
2688
INSERT verb and the table name.
2689
* "Delayed inserts" are best explained in the MySQL manual.
2690
* "Ignore inserts" treats errors as a warning instead. Again, more info is
2691
provided in the MySQL manual, but basically with this selected, invalid
2692
values are adjusted and inserted rather than causing the entire statement
2695
6.13 I would like to create a database with a dot in its name.
2697
This is a bad idea, because in MySQL the syntax "database.table" is the normal
2698
way to reference a database and table name. Worse, MySQL will usually let you
2699
create a database with a dot, but then you cannot work with it, nor delete it.
2701
6.14 How do I set up the SQL Validator?
2703
To use it, you need a very recent version of PHP, 4.3.0 recommended, with XML,
2704
PCRE and PEAR support. On your system command line, run "pear install
2705
Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP" to get the necessary
2706
PEAR modules for usage.
2707
On a more recent pear version, I had problems with the state of Net_DIME being
2708
beta, so this single command "pear -d preferred_state=beta install -a SOAP"
2709
installed all the needed modules.
2710
If you use the Validator, you should be aware that any SQL statement you submit
2711
will be stored anonymously (database/table/column names, strings, numbers
2712
replaced with generic values). The Mimer SQL Validator itself, is ? 2001
2713
Upright Database Technology. We utilize it as free SOAP service.
2715
6.15 I want to add a BLOB field and put an index on it, but MySQL says "BLOB
2716
column '...' used in key specification without a key length".
2718
The right way to do this, is to create the field without any indexes, then
2719
display the table structure and use the "Create an index" dialog. On this page,
2720
you will be able to choose your BLOB field, and set a size to the index, which
2721
is the condition to create an index on a BLOB field.
2723
6.16 How can I simply move in page with plenty editing fields?
2725
You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most pages with
2726
many editing fields (table structure changes, row editing, etc.) (must be
2727
enabled in configuration - see. $cfg['CtrlArrowsMoving']). You can also have a
2728
look at the directive $cfg['DefaultPropDisplay'] ('vertical') and see if this
2729
eases up editing for you.
2731
6.17 Transformations: I can't enter my own mimetype! WTF is this feature then
2734
Slow down :). Defining mimetypes is of no use, if you can't put transformations
2735
on them. Otherwise you could just put a comment on the field. Because entering
2736
your own mimetype will cause serious syntax checking issues and validation,
2737
this introduces a high-risk false-user-input situation. Instead you have to
2738
initialize mimetypes using functions or empty mimetype definitions.
2739
Plus, you have a whole overview of available mimetypes. Who knows all those
2740
mimetypes by heart so he/she can enter it at will?
2742
6.18 Bookmarks: Where can I store bookmarks? Why can't I see any bookmarks
2743
below the query box? What is this variable for?
2745
Any query you have executed can be stored as a bookmark on the page where the
2746
results are displayed. You will find a button labeled 'Bookmark this query'
2747
just at the end of the page.
2748
As soon as you have stored a bookmark, it is related to the database you run
2749
the query on. You can now access a bookmark dropdown on each page, the query
2750
box appears on for that database.
2752
Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks.
2753
Just use the string /*[VARIABLE]*/ anywhere in your query. Everything which is
2754
put into the value input box on the query box page will replace the string "/*
2755
[VARIABLE]*/" in your stored query. Just be aware of that you HAVE to create a
2756
valid query, otherwise your query won't be even able to be stored in the
2758
Also remember, that everything else inside the /*[VARIABLE]*/ string for your
2759
query will remain the way it is, but will be stripped of the /**/ chars. So you
2762
/*, [VARIABLE] AS myname */
2764
which will be expanded to
2766
, VARIABLE as myname
2768
in your query, where VARIABLE is the string you entered in the input box. If an
2769
empty string is provided, no replacements are made.
2771
A more complex example. Say you have stored this query:
2773
SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */
2775
Say, you now enter "phpMyAdmin" as the variable for the stored query, the full
2778
SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'
2780
You can use multiple occurrences of /*[VARIABLE]*/ in a single query.
2781
NOTE THE ABSENCE OF SPACES inside the "/**/" construct. Any spaces inserted
2782
there will be later also inserted as spaces in your query and may lead to
2783
unexpected results especially when using the variable expansion inside of a
2784
"LIKE ''" expression.
2785
Your initial query which is going to be stored as a bookmark has to yield at
2786
least one result row so you can store the bookmark. You may have that to work
2787
around using well positioned "/**/" comments.
2789
6.19 How can I create simple L^AT[E]X document to include exported table?
2791
You can simply include table in your L^AT[E]X documents, minimal sample
2792
document should look like following one (assuming you have table exported in
2795
\documentclass{article} % or any class you want
2796
\usepackage{longtable} % for displaying table
2797
\begin{document} % start of document
2798
\include{table} % including exported table
2799
\end{document} % end of document
2801
6.20 In MySQL 4, I see a lot of databases which are not mine, and cannot access
2804
Upgrading to MySQL 4 usually gives users those global privileges: CREATE
2805
TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also enable
2806
users to see all the database names. See this bug report.
2808
So if your users do not need those privileges, you can remove them and their
2809
databases list will shorten.
2811
6.21 In edit/insert mode, how can I see a list of possible values for a field,
2812
based on some foreign table?
2814
You have to setup appropriate links between the tables, and also setup the
2815
"display field" in the foreign table. See FAQ 6.6 for an example. Then, if
2816
there are 200 values or less in the foreign table, a drop-down list of values
2817
will be available. You will see two lists of values, the first list containing
2818
the key and the display field, the second list containing the display field and
2819
the key. The reason for this is to be able to type the first letter of either
2820
the key or the display field.
2822
For 200 values or more, a distinct window will appear, to browse foreign key
2823
values and choose one.
2825
6.22 Bookmarks: Can I execute a default bookmark automatically when entering
2826
Browse mode for a table?
2828
Yes. If a bookmark has the same label as a table name, it will be executed.
2830
6.23 Export: I heard phpMyAdmin can export Microsoft Excel files, how can I
2833
Current version does support direct export to Microsoft Excel and Word versions
2834
2000 and newer. If you need export older versions, you can use CSV suitable for
2835
Microsoft Excel, which works out of the box or you can try native experimental
2836
MS Excel exporter. This export has several problems, most important are
2837
limitation of cell content to 255 chars and no support for charsets, so think
2838
carefully whether you want to enable this.. For enabling this you need to set
2839
$cfg['TempDir'] to place where web server user can write (for example './tmp')
2840
and install PEAR module Spreadsheet_Excel_Writer into php include path. The
2841
installation can be done by following command:
2843
pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer
2845
First part of switches set we want to install beta version of that module (no
2846
stable version available yet) and then we tell pear we want to satisfy
2849
If you are running in PHP safe mode, you will have to set in php.ini the
2850
safe_mode_include_dir to the directory where your PEAR modules are located, for
2853
safe_mode_include_dir = /usr/local/lib/php
2855
To create the temporary directory on a UNIX-based system, you can do:
2861
6.24 Now that phpMyAdmin supports native MySQL 4.1.x column comments, what
2862
happens to my column comments stored in pmadb?
2864
Automatic migration of a table's pmadb-style column comments to the native ones
2865
is done whenever you enter Structure page for this table.
2869
7.1 I have found a bug. How do I inform developers?
2871
Our Bug Tracker is located at http://sf.net/projects/phpmyadmin/ under the Bugs
2874
But please first discuss your bug with other users:
2875
http://sf.net/projects/phpmyadmin/ (and choose Forums)
2877
7.2 I want to translate the messages to a new language or upgrade an existing
2878
language, where do I start?
2880
Always use the current SVN version of your language file. For a new language,
2881
start from english-iso-8859-1.inc.php. If you don't know how to get the SVN
2882
version, please ask one of the developers.
2883
Please note that we try not to use HTML entities like é in the
2884
translations, since we define the right character set in the file. With HTML
2885
entities, the text on JavaScript messages would not display correctly. However
2886
there are some entities that need to be there, for quotes ,non-breakable
2887
spaces, ampersands, less than, greater than.
2888
You can then put your translations, as a zip file to avoid losing special
2889
characters, on the sourceforge.net translation tracker.
2890
It would be a good idea to subscribe to the phpmyadmin-translators mailing
2891
list, because this is where we ask for translations of new messages.
2893
7.3 I would like to help out with the development of phpMyAdmin. How should I
2896
The following method is preferred for new developers:
2898
1. fetch the current SVN tree over anonymous SVN:
2899
svn co https://svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin
2901
3. generate patch with your changes: svn diff
2902
4. put the patch inside the patch tracker of the phpMyAdmin project.
2904
Write access to the SVN tree is granted only to experienced developers who have
2905
already contributed something useful to phpMyAdmin.
2906
Also, have a look at the Developers section.
2910
8.1 Where can I get information about the security alerts issued for
2913
Please refer to http://www.phpmyadmin.net/home_page/security.php
2915
Developers Information
2917
phpMyAdmin is Open Source, so you're invited to contribute to it. Many great
2918
features have been written by other people and you too can help to make
2919
phpMyAdmin a useful tool.
2921
If you're planning to contribute source, please read the following information:
2923
* All files include libraries/header.inc.php (layout),. libraries/
2924
common.lib.php (common functions) and config.inc.php.
2925
Only configuration data should go in config.inc.php. Please keep it free
2927
Commonly used functions should be added to libraries/common.lib.php and
2928
more specific ones may be added within a library stored into the libraries
2930
* Obviously, you're free to use whatever coding style you want. But please
2931
try to keep your code as simple as possible: beginners are using phpMyAdmin
2932
as an example application.
2933
As far as possible, we want the scripts to be XHTML1.0 and CSS2 compliant
2934
on one hand, they fit the PEAR coding standards on the other hand. Please
2935
pay attention to this.
2936
* Please try to keep up the file-naming conventions. Table-related stuff goes
2937
to tbl_*.php, db-related code to db_*.php, server-related tools to
2938
server_*.php and so on.
2939
* Please don't use verbose strings in your code, instead add the string (at
2940
least) to english-iso-8859-1.inc.php and print() it out.
2941
* If you want to be really helpful, write an entry for the ChangeLog.
2942
* The DBG extension (PHP Debugger DBG) is now supported by phpMyAdmin for
2943
developers to better debug and profile their code.
2944
Please see the $cfg['DBG']* configuration options for more information.
2945
This is in memoriam of the Space Shuttle Columbia (STS-107) which was lost
2946
during its re-entry into Earth's atmosphere and in memory of the brave men
2947
and women who gave their lives for the people of Earth.
2951
phpMyAdmin - Credits
2952
====================
2954
CREDITS, in chronological order
2955
-------------------------------
2957
- Tobias Ratschiller <tobias_at_ratschiller.com>
2958
* creator of the phpmyadmin project
2959
* maintainer from 1998 to summer 2000
2961
- Marc Delisle <Marc.Delisle_at_cegepsherbrooke.qc.ca>
2962
* multi-language version
2963
* various fixes and improvements
2964
* SQL analyser (most of it)
2965
* current project maintainer
2967
- Olivier M?ller <om_at_omnis.ch>
2968
* started SourceForge phpMyAdmin project in March 2001
2969
* sync'ed different existing CVS trees with new features and bugfixes
2970
* multi-language improvements, dynamic language selection
2971
* current project maintainer
2972
* many bugfixes and improvements
2974
- Lo?c Chapeaux <lolo_at_phpheaven.net>
2975
* rewrote and optimized javascript, DHTML and DOM stuff
2976
* rewrote the scripts so they fit the PEAR coding standards and
2977
generate XHTML1.0 and CSS2 compliant codes
2978
* improved the language detection system
2979
* many bugfixes and improvements
2981
- Robin Johnson <robbat2_at_users.sourceforge.net>
2982
* database maintenance controls
2984
* Host authentication IP Allow/Deny
2985
* DB-based configuration (Not completed)
2986
* SQL parser and pretty-printer
2988
* many bugfixes and improvements
2990
- Armel Fauveau <armel.fauveau_at_globalis-ms.com>
2992
* multiple dump feature
2996
- Geert Lund <glund_at_silversoft.dk>
2998
* moderator of the phpMyAdmin former users forum at phpwizard.net
3000
- Korakot Chaovavanich <korakot_at_iname.com>
3001
* "insert as new row" feature
3003
- Pete Kelly <webmaster_at_trafficg.com>
3004
* rewrote and fix dump code
3007
- Steve Alberty <alberty_at_neptunlabs.de>
3008
* rewrote dump code for PHP4
3009
* mySQL table statistics
3012
- Benjamin Gandon <gandon_at_isia.cma.fr>
3013
* main author of the version 2.1.0.1
3016
- Alexander M. Turek <me_at_derrabus.de>
3017
* MySQL 4.0 / 4.1 / 5.0 compatibility
3018
* abstract database interface (PMA_DBI) with MySQLi support
3019
* privileges administration
3021
* various features and fixes
3022
* German language file updates
3024
- Mike Beck <mike.beck_at_web.de>
3025
* automatic joins in QBE
3026
* links column in printview
3029
- Michal ?iha? <michal_at_cihar.com>
3030
* enhanced index creation/display feature
3031
* feature to use a different charset for HTML than for MySQL
3032
* improvements of export feature
3033
* various features and fixes
3034
* Czech language file updates
3036
- Christophe Gesch? from the "MySQL Form Generator for PHPMyAdmin"
3037
(http://sf.net/projects/phpmysqlformgen/)
3038
* suggested the patch for multiple table printviews
3040
- Garvin Hicking <me_at_supergarv.de>
3041
* built the patch for vertical display of table rows
3042
* built the Javascript based Query window + SQL history
3043
* Improvement of column/db comments
3044
* (MIME)-Transformations for columns
3045
* Use custom alias names for Databases in left frame
3046
* hierarchical/nested table display
3047
* PDF-scratchboard for WYSIWYG-distribution of PDF relations
3049
* vertical display of column properties page
3050
* some bugfixes, features, support, German language additions
3052
- Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
3053
* japanese kanji encoding conversion feature
3055
- Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson
3056
* the Cookie authentication mode
3058
- Axel Sander <n8falke_at_users.sourceforge.net>
3059
* table relation-links feature
3061
- Maxime Delorme <delorme.maxime_at_free.fr>
3062
* PDF schema output, thanks also to Olivier Plathey for the
3063
"FPDF" library (see http://www.fpdf.org/) and Steven Wittens
3064
for the "UFPDF" library (see http://www.acko.net/node/56).
3066
- Olof Edlund <olof.edlund_at_upright.se>
3067
* SQL validator server
3069
- Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
3070
* phpMyAdmin logo (until June 2004)
3072
- Mike Cochrane <mike_at_graftonhall.co.nz>
3073
* blowfish library from the Horde project
3075
- Marcel Tschopp <ne0x_at_users.sourceforge.net>
3077
* many bugfixes and improvements
3079
- Michael Keck <mkkeck_at_users.sourceforge.net>
3080
* redesign for 2.6.0
3081
* phpMyAdmin sailboat logo (June 2004)
3083
- Mathias Landh?u?er
3084
* Representation at conferences
3086
- Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
3087
* interface improvements
3091
* new relations Designer
3093
And also to the following people who have contributed minor changes,
3094
enhancements, bugfixes or support for a new language since version 2.1.0:
3096
Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
3097
P?ter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
3098
Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kl?ger,
3099
Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
3100
Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna,
3101
www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec,
3102
Michael Tacelosky, Rachim Tamsjadi, Kositer Uros,
3103
Lu?s V., Martijn W. van der Lee,
3104
Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
3105
Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai".
3108
Original Credits of Version 2.1.0
3109
---------------------------------
3111
This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
3112
to create a web-based interface to MySQL using PHP3. Although I have not
3113
used any of his source-code, there are some concepts I've borrowed from
3114
him. phpMyAdmin was created because Peter told me he wasn't going to
3115
further develop his (great) tool.
3117
- Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the
3118
code for the check when dropping a table or database. He also suggested
3119
that you should be able to specify the primary key on tbl_create.php3. To
3120
version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
3121
well as a bug-report. Plus many smaller improvements.
3122
- Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that
3123
were introduced in 1.3.0 (including quite significant ones like the
3124
authentication). For 1.4.1 he enhanced the table-dump feature. Plus
3126
- Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin
3127
language-independent by outsourcing the strings to a separate file. He
3128
also contributed the French translation.
3129
- Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed
3130
tbl_select.php3, a feature to display only some fields from a table.
3131
- Chris Jackson <chrisj_at_ctel.net> added support for MySQL
3132
functions in tbl_change.php3. He also added the
3133
"Query by Example" feature in 2.0.
3134
- Dave Walton <walton_at_nordicdms.com> added support for multiple
3135
servers and is a regular contributor for bug-fixes.
3136
- Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access
3138
The following people have contributed minor changes, enhancements, bugfixes
3139
or support for a new language:
3140
Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
3141
Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
3142
Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
3145
And thanks to everyone else who sent me email with suggestions, bug-reports
3146
and or just some feedback.
3150
From Wikipedia, the free encyclopedia
3152
* .htaccess - the default name of Apache's directory-level configuration
3154
* Blowfish - a keyed, symmetric block cipher, designed in 1993 by Bruce
3156
* Browser (Web Browser) - a software application that enables a user to
3157
display and interact with text, images, and other information typically
3158
located on a web page at a website on the World Wide Web.
3159
* bzip2 - a free software/open source data compression algorithm and program
3160
developed by Julian Seward.
3161
* CGI (Common Gateway Interface) - an important World Wide Web technology
3162
that enables a client web browser to request data from a program executed
3164
* Changelog - a log or record of changes made to a project.
3165
* Client - a computer system that accesses a (remote) service on another
3166
computer by some kind of network.
3167
* column - a set of data values of a particular simple type, one for each row
3169
* Cookie - a packet of information sent by a server to a World Wide Web
3170
browser and then sent back by the browser each time it accesses that
3172
* CSV - Comma-seperated values
3173
* DB - look at Database.
3174
* database - an organized collection of data.
3175
* Engine - look at Storage Engines.
3176
* extension - a PHP module that extends PHP with additional functionality.
3177
* FAQ (Frequently Asked Questions) - a list of commonly asked question and
3179
* Field - one part of divided data/columns.
3180
* foreign key - a field or group of fields in a database record that point to
3181
a key field or group of fields forming a key of another database record in
3182
some (usually different) table.
3183
* FPDF (FreePDF) - the free PDF library
3184
* GD Graphics Library - a library by Thomas Boutell and others for
3185
dynamically manipulating images.
3186
* GD2 - look at GD Graphics Library.
3187
* gzip - gzip is short for GNU zip, a GNU free software file compression
3189
* host - any machine connected to a computer network, a node that has a
3191
* hostname - the unique name by which a network attached device is known on a
3193
* HTTP (HyperText Transfer Protocol) - the primary method used to transfer or
3194
convey information on the World Wide Web.
3195
* https - a HTTP-connection with additional security measures.
3196
* IIS (Internet Information Services) - a set of Internet-based services for
3197
servers using Microsoft Windows.
3198
* Index - a feature that allows quick access to the rows in a table.
3199
* IP (Internet Protocol) - a data-oriented protocol used by source and
3200
destination hosts for communicating data across a packet-switched
3202
* IP Address - a unique number that devices use in order to identify and
3203
communicate with each other on a network utilizing the Internet Protocol
3205
* ISAPI (Internet Server Application Programming Interface) - the API of
3206
Internet Information Services (IIS).
3207
* ISP (Internet service provider) - a business or organization that offers
3208
users access to the Internet and related services.
3209
* JPEG - a most commonly used standard method of lossy compression for
3210
photographic images.
3211
* JPG - look at JPEG.
3212
* Key - look at index.
3213
* L^AT[E]X - a document preparation system for the T[E]X typesetting program.
3214
* Mac (Apple Macintosh) - line of personal computers is designed, developed,
3215
manufactured, and marketed by Apple Computer.
3216
* Mac OS X - the operating system which is included with all currently
3217
shipping Apple Macintosh computers in the consumer and professional
3219
* MCrypt - a cryptographic library.
3220
* mcrypt - the MCrypt PHP extension.
3221
* MIME (Multipurpose Internet Mail Extensions) - an Internet Standard for the
3223
* module - some sort of extension for the Apache Webserver.
3224
* MySQL - a multithreaded, multi-user, SQL (Structured Query Language)
3225
Database Management System (DBMS).
3226
* mysqli - the improved MySQL client PHP extension.
3227
* mysql - the MySQL client PHP extension.
3228
* OpenDocument - open standard for office documents.
3229
* OS X - look at Mac OS X.
3230
* PDF (Portable Document Format) - a file format developed by Adobe Systems
3231
for representing two dimensional documents in a device independent and
3232
resolution independent format.
3233
* PEAR - the PHP Extension and Application Repository.
3234
* PCRE (Perl Compatible Regular Expressions) - the perl-compatible regular
3235
expression functions for PHP
3236
* PHP - short for "PHP: Hypertext Preprocessor", is an open-source,
3237
reflective programming language used mainly for developing server-side
3238
applications and dynamic web content, and more recently, a broader range of
3239
software applications.
3240
* port - a connection through which data is sent and received.
3241
* RFC - Request for Comments (RFC) documents are a series of memoranda
3242
encompassing new research, innovations, and methodologies applicable to
3243
Internet technologies.
3244
* RFC 1952 - GZIP file format specification version 4.3
3245
* Row (record, tulpel) - represents a single, implicitly structured data item
3247
* Server - a computer system that provides services to other computing
3248
systems over a network.
3249
* Storage Engines - handlers for different table types
3250
* socket - a form of inter-process communication.
3251
* SSL (Secure Sockets Layer) - a cryptographic protocol which provides secure
3252
communication on the Internet.
3253
* SQL - Structured Query Language
3254
* table - a set of data elements (cells) that is organized, defined and
3255
stored as horizontal rows and vertical columns where each item can be
3256
uniquely identified by a label or key or by it?s position in relation to
3259
* tar - a type of archive file format: the Tape ARchive format.
3260
* TCP (Transmission Control Protocol) - one of the core protocols of the
3261
Internet protocol suite.
3262
* UFPDF - Unicode/UTF-8 extension for FPDF
3263
* URL (Uniform Resource Locator) - a sequence of characters, conforming to a
3264
standardized format, that is used for referring to resources, such as
3265
documents and images on the Internet, by their location.
3266
* Webserver - A computer (program) that is responsible for accepting HTTP
3267
requests from clients and serving them Web pages.
3268
* XML (Extensible Markup Language) - a W3C-recommended general-purpose markup
3269
language for creating special-purpose markup languages, capable of
3270
describing many different kinds of data.
3271
* ZIP - a popular data compression and archival format.
3272
* zlib - an open-source, cross-platform data compression library by Jean-loup
3273
Gailly and Mark Adler.
3275
Valid XHTML 1.1 Valid CSS!