phpMyAdmin 3.4.10.

1 Documentation * * * * * * * * * * * * * * * * Top Requirements Introduction Installation Setup script Configuration Transformations FAQ Developers Copyright Credits Glossary phpMyAdmin homepage SourceForge phpMyAdmin project page Official phpMyAdmin wiki Local documents: + Version history: ChangeLog + License: LICENSE

Requirements * PHP + You need PHP 5.2.0 or newer, with session support (see FAQ 1.31) , the Standard PHP Library (SPL) extension and JSON support. + To support uploading of ZIP files, you need the PHP zip extension. + For proper support of multibyte strings (eg. UTF-8, which is currently the default), you should install the mbstring and ctype extensions. + You need GD2 support in PHP to display inline thumbnails of JPEGs ("image/jpeg: inline") with their original aspect ratio + When using the "cookie" authentication method, the mcrypt extension is strongly suggested for most users and is required for 64?bit machines. Not using mcrypt will cause phpMyAdmin to load pages significantly slower. + To support upload progress bars, see FAQ 2.9. + To support BLOB streaming, see PHP and MySQL requirements in FAQ 6.25. + To support XML and Open Document Spreadsheet importing, you need PHP 5.2.17 or newer and the libxml extension. * MySQL 5.0 or newer (details); * Web browser with cookies enabled. Introduction phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as a single database. To accomplish the latter you'll need a properly set up MySQL user who can read/write only the desired database. It's up to you to look up the appropriate part in the MySQL manual. Currently phpMyAdmin can: * browse and drop databases, tables, views, columns and indexes * create, copy, drop, rename and alter databases, tables, columns and indexes * maintenance server, databases and tables, with proposals on server configuration * execute, edit and bookmark any SQL-statement, even batch-queries * load text files into tables * create^1 and read dumps of tables * export^1 data to various formats: CSV, XML, PDF, ISO/IEC 26300 -

OpenDocument Text and Spreadsheet, Word, and L^AT[E]X formats * import data and MySQL structures from OpenDocument spreadsheets, as well as XML, CSV, and SQL files * administer multiple servers * manage MySQL users and privileges * check referential integrity in MyISAM tables * using Query-by-example (QBE), create complex queries automatically connecting required tables * create PDF graphics of your Database layout * search globally in a database or a subset of it * transform stored data into any format using a set of predefined functions, like displaying BLOB-data as image or download-link * track changes on databases, tables and views * support InnoDB tables and foreign keys (see FAQ 3.6) * support mysqli, the improved MySQL extension (see FAQ 1.17) * communicate in 62 different languages * synchronize two databases residing on the same as well as remote servers (see FAQ 9.1) A word about users: Many people have difficulty understanding the concept of user management with regards to phpMyAdmin. When a user logs in to phpMyAdmin, that username and password are passed directly to MySQL. phpMyAdmin does no account management on its own (other than allowing one to manipulate the MySQL user account information); all users must be valid MySQL users. ^1) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dumps and CSV exports if you use PHP with Zlib support (--with-zlib) and/or Bzip2 support (--with-bz2). Proper support may also need changes in php.ini. Installation 1. 2. 3. 4. 5. Quick Install Setup script usage phpMyAdmin configuration storage Upgrading from an older version Using authentication modes

phpMyAdmin does not apply any special security methods to the MySQL database server. It is still the system administrator's job to grant permissions on the MySQL databases properly. phpMyAdmin's "Privileges" page can be used for this. Warning for Mac users: if you are on a Mac OS version before OS X, StuffIt unstuffs with Mac formats. So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts before uploading them to your server, as PHP seems not to like Mac-style end of lines character ("\r"). Quick Install 1. Choose an appropriate distribution kit from the phpmyadmin.net Downloads page. Some kits contain only the English messages, others contain all languages in UTF-8 format (this should be fine in most situations), others contain all languages and all character sets. We'll assume you chose a kit whose name looks like phpMyAdmin-x.x.x-all-languages.tar.gz. 2. Untar or unzip the distribution (be sure to unzip the subdirectories): tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz in your webserver's document root. If you don't have direct access to your document root, put the files in a directory on your local machine, and, after step 4, transfer the

directory on your web server using, for example, ftp. 3. Ensure that all the scripts have the appropriate owner (if PHP is running in safe mode, having some scripts with an owner different from the owner of other scripts will be a problem). See FAQ 4.2 and FAQ 1.26 for suggestions. 4. Now you must configure your installation. There are two methods that can be used. Traditionally, users have hand-edited a copy of config.inc.php, but now a wizard-style setup script is provided for those who prefer a graphical installation. Creating a config.inc.php is still a quick way to get started and needed for some advanced features. + To manually create the file, simply use your text editor to create the file config.inc.php (you can copy config.sample.inc.php to get minimal configuration file) in the main (top-level) phpMyAdmin directory (the one that contains index.php). phpMyAdmin first loads libraries/ config.default.php and then overrides those values with anything found in config.inc.php. If the default value is okay for a particular setting, there is no need to include it in config.inc.php. You'll need a few directives to get going, a simple configuration may look like this: <?php $cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of yo ur choice $i=0; $i++; $cfg['Servers'][$i]['auth_type'] ?>

= 'cookie';

Or, if you prefer to not be prompted every time you log in: <?php $i=0; $i++; $cfg['Servers'][$i]['user'] $cfg['Servers'][$i]['password'] ord $cfg['Servers'][$i]['auth_type'] ?> = 'config';

= 'root'; = 'cbb74bc'; // use here your passw

For a full explanation of possible configuration values, see the Configuration Section of this document. + Instead of manually editing config.inc.php, you can use the Setup Script. First you must manually create a folder config in the phpMyAdmin directory. This is a security measure. On a Linux/Unix system you can use the following commands: cd phpMyAdmin mkdir config chmod o+rw config # create directory for saving # give it world writable permissions

And to edit an existing configuration, copy it over first: cp config.inc.php config/ ting chmod o+w config/config.inc.php # give it world writable permissions On other platforms, simply create the folder and ensure that your web server has read and write access to it. FAQ 1.26 can help with this. # copy current configuration for edi

You can do this using robots.sql.inc.1. or in a central database for a multi-user installation (this database would then be accessed by the controluser. for other webservers.htaccess file or switch to using auth_type cookie or http./libraries and ." Ensure that the config/ directory exists and has the proper permissions ./scripts/create_tables. pay special attention to FAQ 1. where you should find a file called create_tables.htaccess file in that folder. Those tables can be located in your own database. it is suggested that you protect the phpMyAdmin installation directory because using config does not require a user to enter a password to access the phpMyAdmin installation.Next. You can use your phpMyAdmin to create the tables for you.23). 8. again as a security measure: mv config/config.or use the Download link to save the config file locally and upload (via FTP or some similar means) to the proper location. Use of an alternate authentication method is recommended. so no other user should have rights to it).php ./scripts/upgrade_tables_mysql_4_1_2+./scripts/ directory. etc. tracking mechanism. You can choose to review or edit the file with your favorite editor.inc. PDF-generation. It is generally good idea to protect public phpMyAdmin installation against access by robots as they usually can not do anything good there. Please look at your .php ions rm -rf config # remove not needed directory Now the file is ready to be used. column contents transformation. For Apache you can use supplied . open setup/ in your browser. Normally the script saves the new config./setup/lib subfolders in your webserver configuration. phpMyAdmin configuration storage For a whole set of new features (bookmarks. or a login dialog if using HTTP or cookie authentication mode. you should configure this yourself. Note that changes are not saved to disk until explicitly choose Save from the Configuration area of the screen. comments.sql and then create new tables by importing . especially FAQ 4.txt file in root of your webserver or limit access by web server configuration. please use . Such configuration prevents from possible path exposure and cross side scripting vulnerabilities that might happen to be found in that code. 7.4. for example with HTTP?AUTH in a .sql. You should deny access to the . You can find example . See the multi?user sub?section of this FAQ for additional information. 6.htaccess file which can help you achieve this in contrib directory in phpMyAdmin. phpMyAdmin should now display a welcome screen and your databases.2 or newer.inc. Please be aware that . SQL-history. Once the file has been saved. it must be moved out of the config/ directory and the permissions must be reset. but if the webserver does not have the proper permissions you may see the error "Cannot load or save configuration. If you are using the auth_type "config".) you need to create a set of special tables. Open the main phpMyAdmin directory in your browser. (If you are using a Windows server. If you already had this infrastructure and upgraded to MySQL 4. if you prefer to set some advanced options which the setup script does not provide.php to the config/ directory. chmod o-rw config. # move file to current directory # remove world read and write permiss 5.

/config.2 to version 5. You should not copy libraries/config. `mysql`. you might prefer to use HTTP or cookie mode so that your user/password pair are not in clear in the configuration file. You must specify the details for the controluser in the config. For 'HTTP' and 'cookie' modes. Even in a single-user environment.php from your previous installation into the newly unpacked one. depending on the database name.x or newer and if you use the phpMyAdmin configuration storage. encrypted with the blowfish algorithm./config. the definition of $cfg['AttributeTypes'] has changed so you better remove it from your file and just use the default one. Upgrading from an older version Simply copy .inc. in a temporary cookie.sql.you may need special (administrator) privileges to create the database and tables. Configuration files from old versions may require some tweaking as some options have been changed or removed. * Note: this section is only applicable if your MySQL server is running with --skip-show-database. For compatibility with PHP 6.`db` (all columns).php file. at least till version 6. .`user` (all columns except `Password`). * HTTP and cookie authentication modes are more secure: the MySQL login information does not need to be set in the phpMyAdmin configuration file (except possibly for the controluser). but this is only an example: use something else in your file! Input these statements from the phpMyAdmin SQL Query window or mysql command?line client.sql file. After having imported the . in particular.`host` (all columns) and `mysql`.inc. and that the script may need some tuning.php because the default configuration file is version-specific.php over config. phpMyAdmin needs a controluser that has only the SELECT privilege on the `mysql`. statement that you might find near the end of your configuration file. Of course you have to replace localhost with the webserver's host if it's not the same as the MySQL server's one. The following example assumes you want to use pma as the controluser and pmapass as the controlpass. `tables_priv` (all columns except `Grantor` and `Timestamp`) tables.php file under the $cfg['Servers'][$i]['controluser'] and $cfg['Servers'][$i] ['controlpass'] settings. `mysql`. you should run the SQL script found in scripts/upgrade_tables_mysql_4_1_2+. Using authentication modes * HTTP and cookie authentication modes are recommended in a multi-user environment where you want to give users access to their own database and don't want them to play around with others. If you have upgraded your MySQL server from a version previous to 4. remove a set_magic_quotes_runtime(0). The directives used for that can be found in the Configuration section.inc.1. You will also need to have a controluser with the proper rights to those tables (see section Using authentication modes below). Nevertheless be aware that MS Internet Explorer seems to be really buggy about cookies. However. unless you are using the HTTPS protocol. you should specify the table names in your . the password is stored.default. In cookie mode./scripts/create_tables. keep in mind that the password travels in plain text.inc.

* Then each of the true users should be granted a set of privileges on a of particular databases.* TO 'real_user'@localhost IDENTIFIED BY ' real_password'. What the user may now do is controlled entirely by the MySQL user management system. If you want to use the many new relation and bookmark features: GRANT SELECT. 'signon' authentication mode * This mode is a convenient way of using credentials from another application . 'HTTP' authentication mode * Uses HTTP Basic authentication method and allows you to log in as any valid MySQL user.35. Repl_slave_priv. you are creating a superuser).htaccess mechanism along with 'HTTP' authentication mode. for using with Apache CGI see FAQ 1. Process_priv. Drop_priv. Index_priv. the user must enable cookies in the browser. With HTTP or cookie authentication mode. but this is now a requirement for all authentication modes. For example. Normally you shouldn't give global privileges an ordinary user. the user can truly log out of phpMyAdmin and log in back with the same username. Db. Super_priv. GRANT SELECT (Host. For IIS (ISAPI) support using CGI PHP see FAQ 1. * Is supported with most PHP configurations. References_priv. * Obviously. Create_tmp_table_priv.* TO 'pma'@'localhost'. Create_priv. UPDATE.4 about not using the . having the mcrypt extension will speed up access considerably. Table_priv. GRANT SELECT ( Host. Table_name. Grant_priv. Lock_tables_priv.host TO 'pma'@'localhost'. GRANT SELECT ON mysql. DELETE ON <pma_db>. INSERT. * With this mode. Select_priv. 'cookie' authentication mode * You can use this method as a replacement for the HTTP authentication (for example.GRANT USAGE ON mysql. User. (this of course requires that your phpMyAdmin configuration storage be up).db TO 'pma'@'localhost'. Shutdown_priv. if you're running IIS). User. Alter_priv.user TO 'pma'@'localhost'. Execute_priv. you don't need to fill the user/ password fields inside the $cfg['Servers'] array. Insert_priv. * See also FAQ 4. to grant the user real_user with all privileges on the database user_base: set set to (for GRANT ALL PRIVILEGES ON user_base.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass'. but is not required. * If you want to log in to arbitrary server see $cfg['AllowArbitraryServer'] directive. Show_db_priv. Column_priv) ON mysql. Update_priv. * As mentioned in the requirements section. Reload_priv. Repl_client_priv ) ON mysql. GRANT SELECT ON mysql. unless you understand the impact of those privileges example.tables_priv TO 'pma'@'localhost'. Delete_priv. File_priv.32.

does not require a user to log in when first loading the phpMyAdmin site. Feel free to use it with your own users' information. If this file does not exist. you may wish to consider the Host authentication $cfg['Servers'][$i]['AllowDeny']['order'] and $cfg ['Servers'][$i]['AllowDeny']['rules'] configuration directives. When Swekey authentication is activated. This file only needs to contain the parameters you want to change from their corresponding default value in libraries/config. To enable it. Use of some restriction method is suggested. Configuration note: Almost all configurable data is placed in config.to authenticate to phpMyAdmin. Configuration Warning for Mac users: PHP does not seem to like Mac end of lines character ("\ r"). The parameters which relate to design (like colors) are placed in themes/ themename/layout. You then have to create the swekey.htaccess file with the HTTP-AUTH directive or disallowing incoming HTTP requests at one?s router or firewall will suffice (both of which are beyond the scope of this manual but easily searchable with Google). A self documented sample file is provided in the contrib directory.net/auth_key since this link provides funding for phpMyAdmin.conf'.php. * Unlike cookie and http.default. phpMyAdmin requires the users's Swekey to be plugged before entering the login page (currently supported for cookie authentication mode only).php: $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey.php. * For additional security in this mode. * More details in the auth_type section. there is an entry explaining how to protect your configuration file.inc. 'config' authentication mode * This mode is the less secure one because it requires you to fill the $cfg ['Servers'][$i]['user'] and $cfg['Servers'][$i]['password'] fields (and as a result.php. perhaps a . If you want to purchase a Swekey please visit http://phpmyadmin.inc.inc. * The other application has to store login information into session data.inc. it is located in /etc).conf file that will associate each user with their Swekey Id. please refer to the Quick install section to create one.php . * In the ISP FAQ section. add the following line to config. Swekey Authentication is disabled by default. So ensure you choose the option that allows to use the *nix end of line character ("\n") in your text editor before saving a script you have modified. It is important to place this file outside of your web server's document root (in the example.inc.php can discover your username and password). You might also want to create config.footer. Swekey authentication The Swekey is a low cost authentication USB key that can be used in web applications. But you don't need to setup a "controluser" here: using the $cfg['Servers'] [$i]['only_db'] might be enough. anyone who can read your config. This is by design but could allow any user to access your installation.

/libraries/config. There is no maximum length for this secret. E. $cfg['PmaAbsoluteUri'] string Sets here the complete URL (with full path) to your phpMyAdmin installation's directory. Since version 3. edit a row and save it. localhost. http://www. the second $cfg['Servers'][$i]['host'] the hostname of the second server. If you get an error that this must be set or if the autodetect code fails to detect your path. $cfg['Servers'] array Since version 1. it is advisable to try leaving this blank.0 phpMyAdmin can generate this on the fly.php. $cfg['SuhosinDisableWarning'] boolean A warning is displayed on the main page if Suhosin is detected.1.3./config. In most cases phpMyAdmin automatically detects the proper setting.0 phpMyAdmin offers a lot of features to work with master / foreign ? tables (see $cfg['Servers'][$i]['pmadb']). copy that block or needed parts (you don't have to define all settings.php.php files to add your site specific code to be included on start and end of each page. E.2. A good test is to browse a table.0.inc. and is a potential security hole allowing cross-frame scripting attacks. Therefore. Don?t forget the trailing slash at the end. You will find a link that will analyze why those features have been disabled. If you are using the "cookie" auth_type. $cfg['blowfish_secret'] string The "cookie" auth_type uses blowfish algorithm to encrypt the password.inc. $cfg['McryptDisableWarning'] boolean Disable the default warning that is displayed if mcrypt is missing for cookie authentication. In .header. however you can put as many as you need in . phpMyAdmin supports the administration of multiple MySQL servers. but it makes a bit weaker security as this generated secret is stored in session and furthermore it makes impossible to recall user name from cookie.3. If you tried to set this up and it does not work for you. It will be used internally by the blowfish algorithm: you won?t be prompted for this passphrase.and config.g. just those you need to change). please post a bug report on our bug tracker so we can improve the code. If you do not want to use those features set this variable to TRUE to stop this message from appearing. $cfg['TranslationWarningThreshold'] integer Show warning about incomplete translations on certain threshold.default.net/ path_to_your_phpMyAdmin_directory/. enter here a random passphrase of your choice.4. $cfg['Servers'][$i]['host'] string The hostname or IP address of your $i-th MySQL-server. There should be an error message if phpMyAdmin is having trouble auto?detecting the correct value. etc. You can set this parameter to TRUE to stop this message from appearing. Starting with version 2. Users of port forwarding will need to set PmaAbsoluteUri (more info). have a look on the "Structure" page of one database where you would like to use it. You can set this parameter to TRUE to stop this message from appearing. there is only one section for server definition.your_web. $cfg['PmaNoRelation_DisableWarning'] boolean Starting with version 2. The first $cfg ['Servers'][$i]['host'] contains the hostname of the first server. a $cfg['Servers']-array has been added which contains the login information for the different servers. Note also that the URL on some web servers are case?sensitive.g. $cfg['AllowThirdPartyFraming'] boolean Setting this to true allows a page located on a different domain to call phpMyAdmin inside a frame. .

0. to enable a multi-user installation (HTTP or cookie authentication mode). Leave blank for default. This is the recommended and default method at this time. Default is 3306 (leave blank). while sockets are not supported on some platforms.2. $cfg['Servers'][$i]['auth_type'] string ['HTTP'|'http'|'cookie'|'config'| 'signon'] Whether config or cookie or HTTP or signon authentication should be used for this server.0.$cfg['Servers'][$i]['port'] string The port-number of your $i-th MySQL-server. mysqli : The improved MySQL extension. $cfg['Servers'][$i]['socket'] string The path to the socket to use. using the mysql command?line client. Among the resulting information displayed will be the socket used. This extension became available with php 5.5.db (all columns) and mysql. Please see the install section on "Using authentication modes" for more information. If you use "localhost" as the hostname. $cfg['Servers'][$i]['controluser'] string $cfg['Servers'][$i]['controlpass'] string This special account is used for 2 distinct purposes: to make possible all relational features (see $cfg['Servers'][$i]['pmadb']) and. your MySQL server must be on the same machine as the Web server. issue the status command. Username and password are stored in cookies during the session .0 and is the recommended way to connect to a server running MySQL 4.1.3. To determine the correct socket. MySQL ignores this port number and connects with the socket. This account is used to check what databases the user will see at login.2. In phpMyAdmin versions before 2. you need to supply the details of a MySQL account that has SELECT privilege on the mysql.3 allows you to log in as any valid MySQL user with the help of cookies. + 'config' authentication ($auth_type = 'config') is the plain old way: username and password are stored in config. $cfg['Servers'][$i]['extension'] string What php MySQL extension to use for the connection. Your options are 'socket' and 'tcp'.tables_priv (all columns except "Grantor" and "Timestamp") tables. check your MySQL configuration or.php. When using HTTP or cookie authentication modes (or 'config' authentication mode since phpMyAdmin 2. + 'cookie' authentication mode ($auth_type = 'cookie') as introduced in 2. those were called "stduser/stdpass".0. $cfg['Servers'][$i]['connect_type'] string What type connection to use with the MySQL server. for a MySQL server running with --skip-show-database. so if you want to connect to a port different from the default port.2.x or newer. This feature requires PHP >= 4. It defaults to 'tcp' as that is nearly guaranteed to be available on all MySQL servers. $cfg['Servers'][$i]['ssl'] boolean Whether to enable SSL for connection to MySQL server. To use the socket mode. mysql.inc.0.1" or the real hostname in $cfg ['Servers'][$i]['host']. use "127.user (all columns except "Password").1). Valid options are: mysql : The classic MySQL extension. $cfg['Servers'][$i]['compress'] boolean Whether to use a compressed protocol for the MySQL server connection or not (experimental).

no password method is tried. you do not need to specify all other databases. this is the user/password-pair which phpMyAdmin will use to connect to the MySQL server. An example of using more that one database: $cfg['Servers'][$i]['only_db'] = array('db1'. There is also alternative example using OpenID . As of phpMyAdmin 2. and the rest in alphabetic order. This .0 allows you to log in as any valid MySQL user via HTTP-Auth. + 'HTTP' authentication (was called 'advanced' in previous versions and can be written also as 'http') ($auth_type = 'HTTP') as introduced in 1. Please see the install section on "Using authentication modes" for more information. '*').0 allows you to log in from prepared PHP session data.php.2. This is useful for implementing single signon from another application. use 'my\ _db' and not 'my_db'). Password login is still tried first.scripts/openid. when authentication is done some other way and phpMyAdmin gets user name from auth and uses empty password for connecting to MySQL. + 'signon' authentication mode ($auth_type = 'signon') as introduced in 2. If not explicitly specified in your configuration. but as fallback. Sample way how to seed session is in signon example: scripts/signon. Use: $cfg ['Servers'][$i]['only_db'] = array('db3'. Leave empty to deactivate this feature.10. $cfg['Servers'][$i]['auth_http_realm'] string When using auth_type = 'HTTP'. but don't care about the others. instead to tell phpMyAdmin that it should display db3 and db4 on top. $cfg['Servers'][$i]['hide_db'] string Regular expression for hiding some databases from unprivileged users. But it does not replace the privileges rules of the MySQL database server. $cfg['Servers'][$i]['user'] string $cfg['Servers'][$i]['password'] string When using auth_type = 'config'. This can be used together with http authentication. This can also allow you to log in in arbitrary server if $cfg['AllowArbitraryServer'] enabled. escape them (I.and password is deleted when it ends.5 the order inside the array is used for sorting the databases in the left frame. this field allows to define a custom HTTP Basic Auth Realm which will be displayed to the user. Since phpMyAdmin 2. This setting is an efficient way to lower the server load since the latter does not need to send MySQL requests to build the available database list. it just means only these databases will be displayed but not that all other databases can't be used.5. this/these database(s) name(s) may contain MySQL wildcards characters ("_" and "%"): if you want to use literal instances of these characters.3.php. This user/password pair is not needed when HTTP or cookie authentication is used and should be empty. $cfg['Servers'][$i]['only_db'] string or array If set to a (an array of) database name(s). only this (these) database(s) will be shown to the user.1. If set. If you want to have certain databases at the top.E. 'db4'. so that you can individually arrange your databases. $cfg['Servers'][$i]['auth_swekey_config'] string The name of the file containing Swekey ids and login names for hardware authentication. 'db2'). You need to configure session name and signon URL to use this authentication method. $cfg['Servers'][$i]['nopassword'] boolean Allow attempt to log in without password when a login with password fails. a string combined of "phpMyAdmin " and either $cfg['Servers'][$i]['verbose'] or $cfg['Servers'][$i]['host'] will be used.

For example.2. create automatic joins (see FAQ 6. this string will be displayed instead of the hostname in the pull-down menu on the main page. To allow the usage of this functionality: + set up pmadb and the phpMyAdmin configuration storage + enter the table name in $cfg['Servers'][$i]['bookmarktable'] $cfg['Servers'][$i]['relation'] string Since release 2. to check referential integrity (display missing foreign keys) for each described key. to hide all databases starting with the letter "a". which column is a key in another table (a foreign key). $cfg['Servers'][$i]['pmadb'] string The name of the database containing the phpMyAdmin configuration storage. all non-US-ASCII characters will be stripped. use the MySQL privilege system.7) + in edit/insert mode. display a drop-down list of possible foreign keys (key value and "display column" are shown) (see FAQ 6. in this case. + in query-by-example. For HTTP auth. for example. you can use your current database to store those special tables. and to hide both "db1" and "db2" use $cfg['Servers'][$i]['hide_db'] = '^(db1|db2)$'.4 you can describe. when you browse the master table. For a multi-user installation. but a user is still able to access them (using. See the phpMyAdmin configuration storage section in this document to see the benefits of this feature. in a special 'relation' table. set this parameter to the name of your central database containing the phpMyAdmin configuration storage. More information on regular expressions can be found in the PCRE pattern syntax portion of the PHP reference manual.only hides them from listing. phpMyAdmin currently uses this to + make clickable. + display in an optional tool-tip the "display column" when browsing the master table. the SQL query area). This can be useful if you want to show only certain databases on your system. the data values that point to the foreign table. and for a quick way of creating this database and the needed tables. To limit access. just put your current database name in $cfg['Servers'][$i]['pmadb']. The keys can be numeric or character. (see FAQ 6. $cfg['Servers'][$i]['verbose'] string Only useful when using phpMyAdmin with multiple server entries. To allow the usage of this functionality: .2. If you are the only user of this phpMyAdmin installation. for example. This can be useful for queries you often run. use $cfg['Servers'][$i]['hide_db'] = '^a'.21) + display links on the table properties page. $cfg['Servers'][$i]['bookmarktable'] string Since release 2.6) + enable you to get a PDF schema of your database (also uses the table_coords table). If set.0 phpMyAdmin allows users to bookmark queries. if you move the mouse to a column containing a foreign key (use also the 'table_info' table).

0 you can describe.3. comments are consequently used on the table property pages and table browse view. Starting with release 2. 'pma_table_info') + then for each table where you want to use this feature. master_db must be the same as foreign_db. $cfg['Servers'][$i]['table_coords'] string $cfg['Servers'][$i]['pdf_pages'] string Since release 2.+ set up pmadb and the phpMyAdmin configuration storage + put the relation table name in $cfg['Servers'][$i]['relation'] + now as normal user open phpMyAdmin and for each one of your tables where you want to use this feature. To allow the usage of this functionality: + set up pmadb and the phpMyAdmin configuration storage + put the table name in $cfg['Servers'][$i]['table_info'] (e. 'transformation'. To do this it needs two tables "pdf_pages" (storing information about the available PDF pages) and "table_coords" (storing coordinates where each table will be placed on a PDF schema output).3. To allow the usage of this functionality: + set up pmadb and the phpMyAdmin configuration storage + put the correct table names in $cfg['Servers'][$i]['table_coords'] and $cfg['Servers'][$i]['pdf_pages'] Usage tips: PDF output. .0 Column_comments Table use this: ALTER TABLE `pma_column_comments` ADD `mimetype` VARCHAR( 255 ) NOT NULL. $cfg['Servers'][$i]['table_info'] string Since release 2. To use the MIME-transformation system.5. These will then be shown on the "printview". click "Structure/Relation view/Choose column to display" to choose the column.0 you can store comments to describe each column for each table.0. Please see the relevant configuration directives later on. Usage tip: Display column.0 you can have phpMyAdmin create PDF pages showing the relations between your tables.g. showing up as tool-tips above the column name (properties page) or embedded within the header of table in browse view.g.3. your column_info table has to have the three new columns 'mimetype'. This configuration variable will hold the name of this special table. Also new in release 2. 'pma_column_info') + to update your PRE-2.5. See Transformations for further information. 'transformation_options'.5. Those columns have been put in future development of the cross-db relations. Please note that in the current version. To allow the usage of this functionality: + set up pmadb and the phpMyAdmin configuration storage + put the table name in $cfg['Servers'][$i]['column_info'] (e. $cfg['Servers'][$i]['column_info'] string Since release 2.0 is a MIME-transformation system which is also based on the following table structure. You must be using the "relation" feature. click "Structure/Relation view/" and choose foreign columns. They can also be shown in a table dump. which column is to be displayed as a tool-tip when moving the cursor over the corresponding key. in a special 'table_info' table.

. Of course you can view the tracked changes. For the report you can use filters. 'pma_tracking') $cfg['Servers'][$i]['tracking_version_auto_create'] boolean Whether the tracking mechanism creates versions for tables and views automatically. + phpMyAdmin logs all commands which change the structure and/or data of the table and links these commands with the version number. It helps you to track every SQL command which is executed by phpMyAdmin. the mechanism will create a version for you automatically. you can use the JavaScript-based history.g.RENAME TABLE.php has been renamed from $cfg['Servers'][$i]['column_comments'] to $cfg['Servers'][$i] ['column_info'] $cfg['Servers'][$i]['history'] string Since release 2.. ADD `transformation_options` VARCHAR( 255 ) NOT NULL.ADD `transformation` VARCHAR( 255 ) NOT NULL.5. After enabling it you can create versions of tables. On the "Tracking" page a complete report is available for every version. this list gets cut to the maximum amount. 'pma_history') $cfg['Servers'][$i]['tracking'] string Since release 3.DROP TABLE. In addition you can export the (filtered) report to a file or to a temporary database..0 you can store your SQL history. Using $cfg['QueryHistoryMax'] you can specify an amount of history items you want to have on hold.inc. If you don't want to use a table-based history. . and no version exists for it. The creation of a version has two effects: + phpMyAdmin saves a snapshot of the table. Default value is CREATE TABLE.'. The mechanism supports logging of data manipulation and data definition statements.x a tracking mechanism is available. $cfg['Servers'][$i]['tracking_default_statements'] string Defines the list of statements the auto-creation uses for new versions. Default value is false. To allow the usage of this functionality: + set up pmadb and the phpMyAdmin configuration storage + put the table name in $cfg['Servers'][$i]['history'] (e. all your history items are deleted when closing the window. for example you can get a list of statements within a date range. Using that. which means all queries you entered manually into the phpMyAdmin interface.3. + CREATE VIEW .DROP INDEX. CREATE INDEX..g. On every login. including structure and indexes. and remember that the Variable in config.ALTER TABLE. To allow the usage of this functionality: + set up pmadb and the phpMyAdmin configuration storage + put the table name in $cfg['Servers'][$i]['tracking'] (e. The query history is only available if JavaScript is enabled in your browser. When you want to filter usernames you can enter * for all names or you enter a list of names separated by '. If this is set to true and you create a table or view with + CREATE TABLE .

your table structure is up to date. when you are sure. which should offer a performance increase. Access is allowed by default. until the end of session. 'pma_designer_coords') $cfg['Servers'][$i]['verbose_check'] boolean Because release 2. $cfg['Servers'][$i]['tracking_add_drop_table'] boolean Whether a DROP TABLE IF EXISTS statement will be added as first line to the log when creating a table. If your rule order is set to 'deny. $cfg['Servers'][$i]['AllowRoot'] boolean Whether to allow root access.INSERT. The default value of false for this parameter prevents unintended access to a MySQL server with was left with an empty password for root or on which an anonymous (blank) user is defined. You can disable this checking behavior by setting the variable to false. Any client . Recommended to set to FALSE.TRUNCATE.0 introduced the new MIME-transformation support.10.ALTER VIEW. then IP authorization is disabled. the column_info table got enhanced with three new columns.UPDATE.ALTER DATABASE.DELETE. but settings will be saved in browser's local storage.REPLACE. it will emit a warning to the superuser. $cfg['Servers'][$i]['AllowDeny']['order'] string If your rule order is empty. $cfg['Servers'][$i]['userconfig'] string Since release 3. This is just a shortcut for the AllowDeny rules below. If you don't allow for storing preferences in pmadb. If not.DROP VIEW. Default value is true. $cfg['Servers'][$i]['tracking_add_drop_database'] boolean Whether a DROP DATABASE IF EXISTS statement will be added as first line to the log when creating a database.4.0 a Designer interface is available. or. If the above variable is set to TRUE (default) phpMyAdmin will check if you have the latest table structure available. $cfg['Servers'][$i]['AllowNoPassword'] boolean Whether to allow logins without a password. users can still personalize phpMyAdmin. Default value is true.DROP DATABASE $cfg['Servers'][$i]['tracking_add_drop_view'] boolean Whether a DROP VIEW IF EXISTS statement will be added as first line to the log when creating a view. To allow the usage of this functionality: + set up pmadb and the phpMyAdmin configuration storage + put the table name in $cfg['Servers'][$i]['userconfig'] $cfg['Servers'][$i]['designer_coords'] string Since release 2. Default value is true. CREATE DATABASE. To allow the usage of this functionality: + set up pmadb and the phpMyAdmin configuration storage + put the table name in $cfg['Servers'][$i]['designer_coords'] (e.x phpMyAdmin allows users to set most preferences by themselves and store them in the database.allow' then the system applies all deny rules followed by allow rules. it is is unavailable.g.5. it permits to visually manage the relations. CREATE VIEW.

0. and not listed in the deny rules. There are a few shortcuts you can use in the ipmask field as well (please note that those containing SERVER_ADDRESS might not be available on all webservers): 'all' -> 0. If your rule order is set to 'allow. because of speed issues when many databases are present.0. the following work: xxx. $cfg['Servers'][$i]['ShowDatabasesCommand'] string On a server with a huge number of databases.deny' then the system applies all allow rules followed by deny rules. Please also see $cfg['TrustedProxies'] for detecting IP address behind proxies. Classless Inter-Domain Routing type IP addresses) But the following does not work: xxx. $cfg['Servers'][$i]['SignonSession'] string Name of session which will be used for signon authentication method. Any client which does not match an Allow directive or does match a Deny directive will be denied access to the server. $cfg['Servers'][$i]['AllowDeny']['rules'] array of strings The general format for the rules is as such: <'allow' | 'deny'> <username> [from] <ipmask> If you wish to match all users.xxx.allow'. This is the most secure means of using Allow/Deny rules. If your rule order is set to 'explicit'.0/0 'localhost' -> 127.which does not match a Deny command or does match an Allow command will be allowed access to the server. $cfg['Servers'][$i]['SignonURL'] string .xxx.0. Currently used in some parts of the code. the default SHOW DATABASES command used to fetch the name of available databases will probably be too slow. Access is denied by default.xxx.xxx. authorization is performed in a similar fashion to rule order 'deny.default. and was available in Apache by specifying allow and deny rules without setting any order.allow' or 'deny % from all' if your rule order is set to 'allow. it is possible to use a '%' as a wildcard in the username field.xxx (an exact IP address) xxx.xx[yyy-zzz] (partial IP address range) Also IPv6 addresses are not supported. $cfg['Servers'][$i]['DisableIS'] boolean Disable using INFORMATION_SCHEMA to retrieve information (use SHOW commands instead).xxx.deny' or 'explicit'. with the added restriction that your host/username combination must be listed in the allow rules. $cfg['Servers'][$i]['CountTables'] boolean Whether to count the number of tables for each database when preparing the list of databases for the navigation frame. For the IP matching system.xxx. more to come.php for examples).xxx.0. so it can be replaced by faster commands (see libraries/ config.[yyy-zzz] (an IP address range) xxx.xxx.1/8 'localnetA' -> SERVER_ADDRESS/8 'localnetB' -> SERVER_ADDRESS/16 'localnetC' -> SERVER_ADDRESS/24 Having an empty rule list is equivalent to either using 'allow % from all' if your rule order is set to 'deny.xxx/nn (CIDR.

$cfg['MaxTableList'] integer The maximum number of table names to be displayed in the main panel's list (except on the Export page). IE6 with a certain patch is known to cause data corruption when having enabled buffering. The default limit of 1000 should be correct to avoid the display of tons of hexadecimal codes that represent BLOBs. this query is not saved in the history. $cfg['OBGzip'] string/boolean Defines whether to use GZip output buffering for increased speed in HTTP transfers. Ensure you don't omit the suffix (16 means 16 bytes!) $cfg['SkipLockedTables'] boolean . If you have only one server configured. You can also use any string as in php.URL where user will be redirected to log in for signon authentication method. $cfg['Servers'][$i]['LogoutURL'] string URL where user will be redirected after logout (doesn't affect config authentication method). Also. '16M'. you can set $cfg ['ServerDefault'] to any one of them to autoconnect to that server when phpMyAdmin is started. for example. no time limit is imposed. if a query's length exceeds this limit. eg. Set to true/false for enabling/disabling. $cfg['ExecTimeLimit'] integer [number of seconds] Set the number of seconds a script is allowed to run. $cfg['SessionSavePath'] string Path for storing session data (session_save_path PHP parameter). but some users have real SQL queries that are longer than 1000 characters. It has no effect when PHP is running in safe mode. $cfg['ServerDefault'] integer If you have more than one server configured. $cfg['AjaxEnable'] boolean Defines whether to refresh only parts of certain pages using Ajax techniques. no limit is imposed. This setting is used while importing/exporting dump files and at some other places in phpMyAdmin so you definitely don't want to put here a too low value. $cfg['MaxDbList'] integer The maximum number of database names to be displayed in the navigation frame and the database list. This setting is used while importing/exporting dump files and in the Synchronize feature but has no effect when PHP is running in safe mode. phpMyAdmin tries to enable output buffering and will automatically disable it if your browser has some problems with buffering. When set to 'auto' (string). Should be absolute including protocol. or set it to 0 to be given a list of servers without logging in. Should be absolute including protocol. If set to zero. the Designer feature is Ajax-only so this directive does not apply to it. This limit is also enforced in the navigation panel when in Light mode. $cfg['ForceSSL'] boolean Whether to force using https while accessing phpMyAdmin. Applies only where a non-Ajax behavior is possible. $cfg['ServerDefault'] MUST be set to that server. $cfg['MaxCharactersInDisplayedSQL'] integer The maximum number of characters when a SQL query is displayed. $cfg['MemoryLimit'] string [number of bytes] Set the number of bytes a script is allowed to allocate. $cfg['PersistentConnections'] boolean Whether persistent connections should be used or not (mysql_connect or mysql_pconnect). If seconds is set to zero. $cfg['VersionCheck'] boolean Enables check for latest versions using javascript on main phpMyAdmin page.ini.

Defaults to TRUE. $cfg['Confirm'] boolean Whether a warning ("Are your really sure. $cfg['Error_Handler']['display'] boolean Whether to display errors from PHP or not. logout deletes cookies for all servers. allows you to log in to arbitrary servers using cookie auth and permits to specify servers of your choice in the Synchronize dialog. $cfg['Error_Handler']['gather'] boolean Whether to gather errors from PHP or not. This is recommended for not trusted environments. the link "Drop Database" will not be shown. when you are using more of them.. $cfg['AllowUserDropDatabase'] boolean Defines whether normal users (non-administrator) are allowed to delete their own database or not. $cfg['LeftFrameLight'] boolean Defines whether to use a select-based menu and display only the current tables in the left frame (smaller page). $cfg['AllowArbitraryServer'] boolean If enabled. $cfg['LoginCookieStore'] integer [number of seconds] Define how long login cookie should be stored in browser.Mark used tables and make it possible to show databases with locked tables (since MySQL 3. $cfg['LoginCookieDeleteAll'] boolean If enabled (default). Please note that php configuration option session. If set as FALSE.. Only in Non-Lightmode you can use the feature to display nested folders using $cfg['LeftFrameTableSeparator'] . Please note that this limitation of SQL queries is not as strict as when using MySQL privileges. Default is to abort execution. Quite practical for ISP's with many customers.gc_maxlifetime might limit session validity and if session is lost. So it is a good idea to set session. Default 0 means that it will be kept for existing session. So this choice should be viewed as help to avoid accidental dropping rather than strict privilege limitation. $cfg['IgnoreMultiSubmitErrors'] boolean Define whether phpMyAdmin will continue executing a multi-query statement if one of the queries fails. NOTE: Please use this carefully. $cfg['VerboseMultiSubmit'] boolean Define whether phpMyAdmin will output the results of each query of a multi-query statement embedded into the SQL output as inline comments. $cfg['LoginCookieValidity'] integer [number of seconds] Define how long is login cookie valid.23. This is automatically disabled if you do not have configured $cfg ['blowfish_secret']. as this may allow users access to MySQL servers behind the firewall where your HTTP server is placed.") should be displayed when you're about to lose data. This is due to nature of SQL queries which might be quite complicated. and even a "DROP DATABASE mydatabase" will be rejected. otherwise only for current one.gc_maxlifetime not lower than the value of $cfg ['LoginCookieValidity']. login cookie is also invalidated.30). $cfg['ShowSQL'] boolean Defines whether SQL queries generated by phpMyAdmin should be displayed or not. $cfg['LoginCookieRecall'] boolean Define whether the previous login should be recalled or not in cookie authentication mode. $cfg['UseDbSearch'] boolean Define whether the "search string inside database" is enabled or not. Setting this to false makes it easy to forget to log out from other server.

So only the folder is called like the Alias. Alternatively you can specify more strings in an array and all of them will be used as a separator. $cfg['LeftFrameTableSeparator'] string Defines a string to be used to nest table spaces. $cfg['LeftDisplayLogo'] boolean Defines whether or not to display the phpMyAdmin logo at the top of the left frame. Defaults to TRUE. "tbl_change.net. If set to FALSE or empty. This means if you have tables like 'first__second__third' this will be shown as a three-level hierarchy like: first > second > third. $cfg['LeftFrameTableLevel'] string Defines how many sublevels should be displayed when splitting up tables by the above separator. $cfg['DisplayServersList'] boolean Defines whether to display this server choice as links instead of in a drop-down. 9999) $cfg['LeftDisplayServers'] boolean Defines whether or not to display a server choice at the top of the left frame.on main page list is shown. the feature is disabled. Defaults to FALSE (drop-down).php.$cfg['LeftFrameDBTree'] boolean Defines whether to display the names of databases (in the selector) using a tree. you will see the name 'MyName' used consequently in the left frame and the tool-tip shows the real name of the DB.php" or "sql. Defaults to FALSE. except this works for table names. $cfg['ShowTooltipAliasTB'] boolean/string Same as $cfg['ShowTooltipAliasDB']. Note: use new if you are linking to phpmyadmin. $cfg['LeftDisplayTableFilterMinimum'] integer Defines the minimum number of tables to display a JavaScript filter box above the list of tables in the left frame. this will flip the comment and the real name. That means that if you have a table called 'user0001' and add the comment 'MyName' on it. $cfg['DisplayDatabasesList'] boolean or text Defines whether to display database choice in light navigation frame as links instead of in a drop-down. NOTE: You should not use this separator at the beginning or end of a table name or multiple times after another without any other characters in between. Defaults to '__'. $cfg['LeftDefaultTabTable'] string Defines the tab displayed by default when clicking the small icon next to each table name in the navigation panel. "tbl_sql. "tbl_select. Defaults to 'auto' . see also $cfg['LeftFrameDBSeparator']. the Alias of the Tablename is only used to split/ nest the tables according to the $cfg['LeftFrameTableSeparator'] directive. Possible values: "tbl_structure. The default value for this is main. the tablename itself stays the real tablename.g. $cfg['LeftFrameDBSeparator'] string or array The string used to separate the parts of the database name when showing them in a tree. $cfg['LeftLogoLink'] string Enter URL where logo in the navigation frame will point to. $cfg['ShowTooltipAliasDB'] boolean If tool-tips are enabled and a DB comment is set.php". $cfg['ShowTooltip'] boolean Defines whether to display table comment as tool-tip in left frame or not.php". When setting this to 'nested'. For use especially with self made theme which changes this.php". .php". only drop down is displayed. when database is selected. $cfg['LeftLogoLinkWindow'] string Whether to open the linked page in the main window (main) or in a new one (new). Defaults to 30. To disable the filter completely some high number can he used (e.

at this date. Note that statistics requires at least MySQL 3.by default. MySQL doesn't return such information for Berkeley DB tables. DATE. This setting does not check MySQL commands entered directly. $cfg['MaxRows'] integer Number of rows displayed when browsing a result set. the user can toggle this setting from the interface.E. A value of TRUE displays icons.I. FALSE displays text and 'both' displays both icons and text. You can additionally hide more information by using $cfg['Servers'][$i] ['verbose'].23. $cfg['SuggestDBName'] boolean Defines whether to suggest a database name on the "Create Database" form or to keep the textfield empty. $cfg['ProtectBinary'] boolean or string Defines whether BLOB or BINARY columns are protected from editing when browsing a table's content. $cfg['ShowServerInfo'] boolean Defines whether to display detailed server information on main page. descending order for columns of type TIME.3 and that. $cfg['CharEditing'] string . end users can't be allowed to change their passwords. $cfg['ShowAll'] boolean Defines whether a user should be displayed a "show all (records)" button in browse mode or not. $cfg['Order'] string [DESC|ASC|SMART] Defines whether columns are displayed in ascending (ASC) order. $cfg['DisplayBinaryAsHex'] boolean Defines whether the "Show binary contents as HEX" browse option is ticked by default. + 'all' to disallow editing of all BINARY or BLOB columns.ini: disable_functions = phpinfo() Also note that enabling the "Change password " link has no effect with "config" authentication mode: because of the hard coded password value in the configuration file. "Previous" and "Next" links will be shown. The user can toggle this setting from the interface. DATETIME and TIMESTAMP. $cfg['ShowFieldTypesInDataEditView'] boolean Defines whether or not type fields should be initially displayed in edit/ insert mode.10. $cfg['NavigationBarIconic'] string Defines whether navigation bar buttons and the right panel top menu contain text or symbols only. If the result set contains more rows. ascending order else. $cfg['ShowFunctionFields'] boolean Defines whether or not MySQL functions fields should be initially displayed in edit/insert mode. you have to put this in your php.$cfg['ShowStats'] boolean Defines whether or not to display space usage and statistics about databases and tables. Valid values are: + FALSE to allow editing of all columns. in descending (DESC) order or in a "smart" (SMART) order . Please note that to block the usage of phpinfo() in scripts. + 'blob' to allow editing of all columns except BLOBS. Since version 2. $cfg['ShowPhpInfo'] boolean $cfg['ShowChgPassword'] boolean $cfg['ShowCreateDb'] boolean Defines whether to display the "PHP information" and "Change password " links and form for creating database or not at the starting main (right) frame.

.php".). will display icons instead of text for db and table properties links (like 'Browse'. This doesn't affect smaller dumps and allows users to create larger dumps that won't otherwise fit in memory due to php memory limit. Can be set to 'both' if you want icons AND text.php". See MySQL Documentation page for more information about MySQL manuals and their types. When setting this to a value larger than 1. Possible values: "db_structure. appropriate help links are generated. "tbl_sql. there are several methods of display..Defines which type of editing controls should be used for CHAR and VARCHAR columns. "server_privileges. Produced files contain more GZip/BZip2 headers. "tbl_change. but all normal programs handle this correctly. Possible values: "main.php". use less graphically intense tabs on the top of the mainframe.php". When set to FALSE. "server_databases. $cfg['PropertiesIconic'] string If set to TRUE. "server_variables. "server_status. "tbl_select. 'Select'. but has problems with newlines in columns + textarea . $cfg['PropertiesNumColumns'] integer How many columns will be utilized to display the tables on the database property view? Default is 1 column. current one used on MySQL website .php" or "server_processlist."viewable online". then a drop-down box of foreign keys is presented. will only show text. Possible values: "tbl_structure. $cfg['DefaultTabDatabase'] string Defines the tab displayed by default on database view. . $cfg['MySQLManualType'] string Type of MySQL documentation: + viewable .php". $cfg['InsertRows'] integer Defines the maximum number of concurrent entries for the Insert page. offering both the key and value data.no problems with newlines in columns. $cfg['DefaultTabServer'] string Defines the tab displayed by default on server view.php". $cfg['ZipDump'] boolean $cfg['GZipDump'] boolean $cfg['BZipDump'] boolean Defines whether to allow the use of zip/GZip/BZip2 compression when creating a dump file $cfg['CompressOnFly'] boolean Defines whether to allow on the fly compression for GZip/BZip2 compressed exports. 'id-content'.php". but also no length limitations Default is old behavior so input. "db_sql. 'Insert'. $cfg['ForeignKeyMaxLimit'] integer If there are fewer items than this in the set of foreign keys. the type of the database will be omitted for more display space. Possible values are: + input .php" (recommended for multi-user setups). $cfg['ForeignKeyDropdownOrder'] array For the foreign key drop-down fields.php". $cfg['LightTabs'] boolean If set to TRUE. $cfg['DefaultTabTable'] string Defines the tab displayed by default on table view.php" or "sql.php". The contents of the array should be one or both of the following strings: 'content-id'. in the style described by the $cfg['ForeignKeyDropdownOrder'] setting.this allows to limit size of text to size of columns in MySQL.php". $cfg['MySQLManualBase'] string If set to an URL which points to the MySQL documentation (type depends on $cfg['MySQLManualType']).php" or "db_search.

"HTML.3. one page per chapter" + big . By default //TRANSLIT is used. Possible values are: + auto ."Searchable. The corresponding language file needs to be in locale/code/LC_MESSAGES/ phpmyadmin. all on one page" + none . $cfg['Lang'] string Force language to use.mo.use iconv or libiconv functions + recode . then recode) + iconv ."HTML. For example if you want only Czech and English. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1. if not user-defined. This list is by default empty. See iconv documentation for details. $cfg['TrustedProxies'] array Lists proxies and HTTP headers which are trusted for IP Allow/Deny.mo.3.4' => 'HTTP_X_FORWARDED_FOR').disable encoding conversion Default is auto. The $cfg['Servers'][$i]['AllowDeny']['rules'] directive uses the client's IP address as usual.4: $cfg['TrustedProxies'] = array('1. so if you frequently use some of these move them to the top. so that invalid characters will be transliterated. if not browser-defined or user-defined. to choose the character set when exporting a file. Possible values are: .automatically use available one (first is tested iconv. Enabled charset conversion activates a pull-down menu in the Export and Import pages.use recode_string function + none . $cfg['RecodingEngine'] string You can select here which functions will be used for character set conversion. $cfg['GD2Available'] string Specifies whether GD >= 2 is available. $cfg['DefaultConnectionCollation'] string Defines the default connection collation to use. $cfg['IconvExtraParams'] string Specify some parameters for iconv used in charset conversion. with user comments" + chapters .do not show documentation links $cfg['DefaultLang'] string Defines the default language to use. you need to fill in some trusted proxy servers if you want to use rules for IP addresses behind proxy. $cfg['AvailableCharsets'] array Available character sets for MySQL conversion. You can add your own (any of supported by recode/iconv) or remove these which you don't use. See the MySQL documentation for list of possible values.2. Character sets will be shown in same order as here listed. you should set filter to '^(cs|en)'. $cfg['FilterLanguages'] string Limit list of available languages to those matching the given regular expression. The default value in this menu comes from $cfg['Export']['charset'] and $cfg ['Import']['charset'].2. The corresponding language file needs to be in locale/code/LC_MESSAGES/ phpmyadmin.+ searchable . If yes it can be used for MIME transformations.

+ auto - automatically detect, this is a bit expensive operation for php < 4.3.0 so it is preferred to change this according to your server real possibilities + yes - GD 2 functions can be used + no - GD 2 function cannot be used Default is auto. $cfg['CheckConfigurationPermissions'] boolean We normally check the permissions on the configuration file to ensure it's not world writable. However, phpMyAdmin could be installed on a NTFS filesystem mounted on a non-Windows server, in which case the permissions seems wrong but in fact cannot be detected. In this case a sysadmin would set this parameter to FALSE. Default is TRUE. $cfg['LinkLengthLimit'] integer Limit for length of URL in links. When length would be above this limit, it is replaced by form with button. This is required as some web servers (IIS) have problems with long URLs. Default is 1000. $cfg['NaviWidth'] integer Navi frame width in pixels. See themes/themename/layout.inc.php. $cfg['NaviBackground'] string [CSS color for background] $cfg['MainBackground'] string [CSS color for background] The background styles used for both the frames. See themes/themename/ layout.inc.php. $cfg['NaviPointerBackground'] string [CSS color for background] $cfg['NaviPointerColor'] string [CSS color] The style used for the pointer in the navi frame. See themes/themename/ layout.inc.php. $cfg['LeftPointerEnable'] boolean A value of TRUE activates the navi pointer (when LeftFrameLight is FALSE). $cfg['Border'] integer The size of a table's border. See themes/themename/layout.inc.php. $cfg['ThBackground'] string [CSS color for background] $cfg['ThColor'] string [CSS color] The style used for table headers. See themes/themename/layout.inc.php. $cfg['BgOne'] string [CSS color] The color (HTML) #1 for table rows. See themes/themename/layout.inc.php. $cfg['BgTwo'] string [CSS color] The color (HTML) #2 for table rows. See themes/themename/layout.inc.php. $cfg['BrowsePointerBackground'] string [CSS color] $cfg['BrowsePointerColor'] string [CSS color] $cfg['BrowseMarkerBackground'] string [CSS color] $cfg['BrowseMarkerColor'] string [CSS color] The colors (HTML) uses for the pointer and the marker in browse mode. The former feature highlights the row over which your mouse is passing and the latter lets you visually mark/unmark rows by clicking on them. Highlighting / marking a column is done by hovering over / clicking the column's header (outside of the text). See themes/themename/layout.inc.php. $cfg['FontFamily'] string You put here a valid CSS font family value, for example arial, sans-serif. See themes/themename/layout.inc.php. $cfg['FontFamilyFixed'] string You put here a valid CSS font family value, for example monospace. This one is used in textarea. See themes/themename/layout.inc.php. $cfg['BrowsePointerEnable'] boolean Whether to activate the browse pointer or not. $cfg['BrowseMarkerEnable'] boolean Whether to activate the browse marker or not. $cfg['TextareaCols'] integer $cfg['TextareaRows'] integer

$cfg['CharTextareaCols'] integer $cfg['CharTextareaRows'] integer Number of columns and rows for the textareas. This value will be emphasized (*2) for SQL query textareas and (*1.25) for SQL textareas inside the query window. The Char* values are used for CHAR and VARCHAR editing (if configured via $cfg['CharEditing']). $cfg['LongtextDoubleTextarea'] boolean Defines whether textarea for LONGTEXT columns should have double size. $cfg['TextareaAutoSelect'] boolean Defines if the whole textarea of the query box will be selected on click. $cfg['LimitChars'] integer Maximum number of characters shown in any non-numeric field on browse view. Can be turned off by a toggle button on the browse page. $cfg['ModifyDeleteAtLeft'] boolean $cfg['ModifyDeleteAtRight'] boolean Defines the place where table row links (Edit, Inline edit, Copy, Delete) would be put when tables contents are displayed (you may have them displayed both at the left and at the right). "Left" and "right" are parsed as "top" and "bottom" with vertical display mode. $cfg['DefaultDisplay'] string There are 3 display modes: horizontal, horizontalflipped and vertical. Define which one is displayed by default. The first mode displays each row on a horizontal line, the second rotates the headers by 90 degrees, so you can use descriptive headers even though columns only contain small values and still print them out. The vertical mode sorts each row on a vertical lineup. $cfg['HeaderFlipType'] string The HeaderFlipType can be set to 'auto', 'css' or 'fake'. When using 'css' the rotation of the header for horizontalflipped is done via CSS. The CSS transformation currently works only in Internet Explorer.If set to 'fake' PHP does the transformation for you, but of course this does not look as good as CSS. The 'auto' option enables CSS transformation when browser supports it and use PHP based one otherwise. $cfg['DefaultPropDisplay'] string or integer When editing/creating new columns in a table all fields normally get lined up one field a line. (default: 'horizontal'). If you set this to 'vertical' you can have each field lined up vertically beneath each other. You can save up a lot of place on the horizontal direction and no longer have to scroll. If you set this to integer, editing of fewer columns will appear in 'vertical' mode, while editing of more columns still in 'horizontal' mode. This way you can still effectively edit large number of columns, while having full view on few of them. $cfg['ShowBrowseComments'] boolean $cfg['ShowPropertyComments'] boolean By setting the corresponding variable to TRUE you can enable the display of column comments in Browse or Property display. In browse mode, the comments are shown inside the header. In property mode, comments are displayed using a CSS-formatted dashed-line below the name of the column. The comment is shown as a tool-tip for that column. $cfg['SQLQuery']['Edit'] boolean Whether to display an edit link to change a query in any SQL Query box. $cfg['SQLQuery']['Explain'] boolean Whether to display a link to explain a SELECT query in any SQL Query box. $cfg['SQLQuery']['ShowAsPHP'] boolean Whether to display a link to wrap a query in PHP code in any SQL Query box. $cfg['SQLQuery']['Validate'] boolean Whether to display a link to validate a query in any SQL Query box. See also $cfg_SQLValidator. $cfg['SQLQuery']['Refresh'] boolean Whether to display a link to refresh a query in any SQL Query box.

$cfg['UploadDir'] string The name of the directory where SQL files have been uploaded by other means than phpMyAdmin (for example, ftp). Those files are available under a drop-down box when you click the database or table name, then the Import tab. If you want different directory for each user, %u will be replaced with username. Please note that the file names must have the suffix ".sql" (or ".sql.bz2" or ".sql.gz" if support for compressed formats is enabled). This feature is useful when your file is too big to be uploaded via HTTP, or when file uploads are disabled in PHP. Please note that if PHP is running in safe mode, this directory must be owned by the same user as the owner of the phpMyAdmin scripts. See also FAQ 1.16 for alternatives. $cfg['SaveDir'] string The name of the directory where dumps can be saved. If you want different directory for each user, %u will be replaced with username. Please note that the directory must exist and has to be writable for the user running webserver. Please note that if PHP is running in safe mode, this directory must be owned by the same user as the owner of the phpMyAdmin scripts. $cfg['TempDir'] string The name of the directory where temporary files can be stored. This is needed to work around limitations of open_basedir for uploaded files, see FAQ 1.11. If the directory where phpMyAdmin is installed is subject to an open_basedir restriction, you need to create a temporary directory in some directory accessible by the web server. However for security reasons, this directory should be outside the tree published by webserver. If you cannot avoid having this directory published by webserver, place at least an empty index.html file there, so that directory listing is not possible. This directory should have as strict permissions as possible as the only user required to access this directory is the one who runs the webserver. If you have root privileges, simply make this user owner of this directory and make it accessible only by it: chown www-data:www-data tmp chmod 700 tmp If you cannot change owner of the directory, you can achieve a similar setup using ACL: chmod 700 tmp setfacl -m "g:www-data:rwx" tmp setfacl -d -m "g:www-data:rwx" tmp If neither of above works for you, you can still make the directory chmod

The size of this query window can be customized with $cfg ['QueryWindowWidth'] and $cfg['QueryWindowHeight'] . If set to FALSE. It currently is only tested with Internet Explorer 6 and Mozilla 1. clicking on the link puts the SQL query in the right panel's query box. $cfg['RepeatCells'] integer Repeat the headers every X cells.777. which is a direct interface to enter SQL queries. so you can easily identify what they mean. $cfg['Export'] array In this array are defined default parameters for export. names of items are similar to texts seen on export page. the right panel changes to display a query box. Basic functions are used to exchange quite a few variables. so most 4th generation browsers should be capable to use that feature. Then you can browse tables/databases in the background without losing the contents of the textarea. The usage of the JavaScript query window is recommended if you have a JavaScript enabled browser. or 0 to deactivate.x. all your Queries are logged to a table. The checkbox will get automatically checked whenever you change the contents of the textarea. a click on [Edit] from the results page (in the "Showing Rows" section) opens the query window and puts the current query inside it. a click on this opens a distinct query window. $cfg['Export']['method'] string Defines how the export form is displayed when it loads.php for the theme you are using. When using the JavaScript based query window. all your queries will be appended to the form. so this is especially useful when composing a query with tables you first have to look in. You can suppress updating the query window by checking the box "Do not overwrite this query from outside the window" below the query textarea. Otherwise. it will always get updated when you click on a new table/db to browse and will focus if you click on "Edit SQL" after using a query.both integers for the size in pixels. but only as long as your window is opened they remain saved. If $cfg['QueryHistoryDB'] is set to TRUE. so you can easily identify what they mean. names of items are similar to texts seen on import page. Please uncheck the button whenever you definitely . A SQL link or icon is always displayed on the left panel. but it might impose risk of other users on system reading and writing data in this directory. Valid values are: + quick to display the minimum number of options to configure + custom to display every available option to configure + custom-no-form same as custom but does not display the option of using quick export $cfg['Import'] array In this array are defined default parameters for import. If set to false. those parameters will be modified in layout. Note that normally. If JavaScript is enabled in your browser. $cfg['EditInWindow'] boolean $cfg['QueryWindowWidth'] integer $cfg['QueryWindowHeight'] integer $cfg['QueryHistoryDB'] boolean $cfg['QueryWindowDefTab'] string $cfg['QueryHistoryMax'] integer All those variables affect the query window feature. If $cfg['EditInWindow'] is set to true. which has to be created by you (see $cfg['Servers'][$i]['history']).inc.

$cfg['InitialSlidersState'] string If set to 'closed'. this value is the maximum to be displayed. $cfg['NaturalOrder'] boolean Sorts database and table names according to natural order (for example. determines for how large tables phpMyAdmin should get the exact row count using SELECT COUNT. . use 'disabled'. $cfg['DefaultQueryTable'] string $cfg['DefaultQueryDatabase'] string Default queries that will be displayed in query boxes when user didn't specify any. To completely disable all visual sliders. For possible values.forms. $cfg['MaxExactCountViews'] integer For VIEWs. the visual sliders are initially in a closed state. $cfg['MaxExactCount'] integer For InnoDB tables. $cfg['ThemePerServer'] boolean Whether to allow different theme for each server. See FAQ 2.. for the table list. Using the variable $cfg['QueryWindowDefTab'] you can specify the default tab to be used when opening the query window. A value of 'open' does the reverse. If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount of saved history items using $cfg['QueryHistoryMax']. You can use standard format string expansion. 'history' or 'full'. $cfg['ErrorIconic'] boolean Uses icons for warnings. Currently implemented in the left panel (Light mode) and in Database view. $cfg['ThemePath'] string If theme manager is active. $cfg['BrowseMIME'] boolean Enable MIME-transformations. The default value of 0 bypasses any row counting. It can be set to either 'sql'. $cfg['UserprefsDisallow'] array Contains names of configuration options (keys in $cfg array) that users can't set through user preferences. $cfg['ThemeManager'] boolean Enables user-selectable themes.php. $cfg['ThemeDefault'] string The default theme (a subdirectory under cfg['ThemePath']). t2. 'files'. using a SELECT COUNT .. since obtaining the exact count could have an impact on performance. refer to libraries /config/user_preferences. $cfg['MainPageIconic'] boolean Uses icons on main page in lists and menu tabs. The query window also has a custom tabbed look to group the features. otherwise the approximate count will be used. use this as the path of the subdirectory containing all the themes. LIMIT. t1. $cfg['ReplaceHelpImg'] boolean Shows a help button instead of the "Documentation" message. SELECT COUNT will be used. t10). errors and informations. $cfg['UserprefsDeveloperTab'] boolean Activates in the user preferences a tab containing options for developers of phpMyAdmin. You can use format string expansion. $cfg['TitleTable'] string $cfg['TitleDatabase'] string $cfg['TitleServer'] string $cfg['TitleDefault'] string Allows you to specify window's title bar.7.want the query window to get updated even though you have made alterations. If the approximate row count as returned by SHOW TABLE STATUS is smaller than this value.

." + alpha Applies to all alphabetic classes + alpha_columnType Identifiers matching a column type + alpha_columnAttrib Identifiers matching a database/table/column attribute + alpha_functionName Identifiers matching a MySQL function name + alpha_reservedWord Identifiers matching any other reserved word + alpha_variable Identifiers matching a SQL variable "@foo" + alpha_identifier All other identifiers + quote Applies to all quotation mark classes + quote_double Double quotes " + quote_single Single quotes ' + quote_backtick Backtick quotes ` $cfg['SQLValidator'] boolean $cfg['SQLValidator']['use'] boolean phpMyAdmin now supports use of the Mimer SQL Validator service. as originally published on Slashdot. You should not alter the class names. Related in purpose is $cfg['SQP']['fmtIndUnit'] which specifies the units of the indent amount that you specified. but you can disable this by setting this variable to 'none'. $cfg['SQP']['fmtInd'] float $cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex] For the pretty-printing of SQL queries.14 . The tuple format is class => [HTML colour code | empty string] If you specify an empty string for the color of a class. Class name key: + comment Applies to all comment sub-classes + comment_mysql Comments as "#. it is ignored in creating the stylesheet..*/" + digit Applies to all digit sub-classes + digit_hex Hexadecimal numbers + digit_integer Integer numbers + digit_float Floating point numbers + punct Applies to all punctuation sub-classes + punct_bracket_open_round Opening brackets"(" + punct_bracket_close_round Closing brackets ")" + punct_listsep List item Separator ".\n" + comment_c Comments as "/*. $cfg['SQP']['fmtColor'] array of string tuples This array is used to define the colours for each type of element of the pretty-printed SQL queries. and it will be used in place of the anonymous login.. you can put your login details here....\n" + comment_ansi Comments as "-.$cfg['SQP']['fmtType'] string [html|none] The main use of the new SQL Parser is to pretty-print SQL queries. This is used via stylesheets. For help in setting up your system to use the service. $cfg['DBG'] ." + punct_queryend End of query marker ". By default we use HTML to format the query." + punct_qualifier Table/Column Qualifier ". under some cases the part of a query inside a bracket is indented. so we use those by default.. Instead. only the colour strings. By changing $cfg['SQP']['fmtInd'] you can change the amount of this indent. $cfg['SQLValidator']['username'] string $cfg['SQLValidator']['password'] string The SOAP service allows you to log in with anonymous and any password. see the FAQ 6. if you have an account with them.

you can consult your <www.. In most cases you don't need to edit this. In most cases you don't need to edit this. Please see the Configuration section on how to do so. Usage 3. Transformations 1. $cfg['NullOperators'] array Additional operators available for search operations when the column can be null. Introduction 2.. you have to setup the column_info table and the proper directives. $cfg['Functions'] array A list of functions MySQL supports. $cfg['AttributeTypes'] array Possible attributes for columns.com>/<your-install-dir>/ transformation_overview. $cfg['DefaultFunctions'] array Functions selected by default when inserting/changing row. Functions are defined for meta types from $cfg['RestrictColumnTypes'] and for first_timestamp. $cfg['TextOperators'] array Operators available for search operations on character columns. Introduction To enable transformations.%. Normally you would see in phpMyAdmin only this filename. . For a general overview of all available transformations and their options. File structure 1. Using transformation options you can also specify strings to append/ prepend to a string or the format you want the output stored in. Note that we put LIKE by default instead of LIKE %. Using transformations you can transform that filename into a HTML link. You can apply different transformations to the contents of each column. to avoid unintended performance problems in case of huge tables. $cfg['ColumnTypes'] array All possible types of a MySQL column. $cfg['RestrictFunctions'] array Functions preferred for column meta types as defined in $cfg ['RestrictColumnTypes'].php installation. In most cases you don't need to edit this. The transformation will take the content of each column and transform it with certain rules defined in the selected transformation.your-host. $cfg['RestrictColumnTypes'] array Mapping of column types to meta types used for preferring displayed functions. In most cases you don't need to edit this. which is used for first timestamp column in table. $cfg['NumOperators'] array Operators available for search operations on numeric and date columns. $cfg['EnumOperators'] array Operators available for search operations on ENUM columns. In most cases you don't need to edit this.DEVELOPERS ONLY! $cfg['DBG']['sql'] boolean DEVELOPERS ONLY! Enable logging queries and execution times to be displayed in the bottom of main page (right frame). so you can click inside of the phpMyAdmin structure on the column's link and will see the file displayed in a new browser window. Say you have a column 'filename' which contains a filename.

into regard. if necessary. 2. it is kept sure that transformations always work. leaving the first value the first element in the array. Global transformations can be used for any mimetype.''. There are global transformations and mimetype-bound transformations. You can also use transforms on a different mimetype than what they where built for.e. There is no security check for you selected the right transformation. Mimetype-bound transformations usually only operate on a certain mimetype. . You have to enter transform-function specific options here. You can. You can use transformations on mimetypes for which the function was not defined for.php page (i. One can. and so forth. which will most likely take the subtype into regard. and those who only operate on a specific subtype (like 'image/ jpeg'). * The field 'Transformation options' is a free-type textfield. Please note that transformations are inactive as long as no MIME-type is selected. File structure All mimetypes and their transformations are defined through single files in the directory 'libraries/transformations/'... You can choose from a hopefully growing amount of pre-defined transformations. 3. see our Link section on the official phpMyAdmin homepage. so take care of what the output will be like. however. you have to split up several options using the format 'a'.'charset=us-ascii'". for which you can specify 2 options and you want to append a character set. charset=XXX'". This is because internally the options will be parsed as an array. 'Browser transformation' and 'Transformation options'. however use the defaults for the parameters: "''.'charset=us-ascii'".'second parameter'.For a tutorial on how to effectively use transformations. See below for information on how to build your own transformation. but pay attention to option usage as well as what the transformation does to your column. use empty mime-types and global transformations which should work for many mimetypes. * The field 'MIME-type' is a drop-down field.(NOTE THE MISSING BLANKS). Select the MIME-type that corresponds to the column's contents.'b'. You have to put that outside of the pre-defined options of the specific mime-transform. Usage Go to your tbl_structure. If you use a transform. Because the user cannot enter own mimetypes.. but it is generally a good idea to look up the overview to see which options are necessary. If you want to specify a MIME character set you can define it in the transformation_options. They will take the mimetype. reached through clicking on the 'Structure' link for a table). * The field 'Browser transformation' is a drop-down field.'c'. Much like the ENUM/SET-Fields. There are transformations which operate on the main mimetype (like 'image'). Usually the transforms can operate with default options. enter "'first parameter'. It makes no sense to apply a transformation to a mimetype the transform-function doesn't know to handle. There click on "Change" (or change icon) and there you will see three new fields at the end of the line. as the last value of the set. They are stored in files to ease up customization and easy adding of new transformations. Use the format "'. They are called 'MIME-type'.

The transform function /filename may contain only characters which cause no problems in the file system as well as the PHP function naming convention. A mimetype (w/o subtype) transform: [mimetype]__[transform]. Do not use special characters in the filename causing problems with the file system. The transform function/filename may contain only characters which cause no problems in the file system as well as the PHP function naming convention.inc. This function can be included by any other transform function and provides some basic functions. No transformation function is defined in the file itself.php PMA_transform_text__formatted() 3. A mimetype+subtype transform: [mimetype]_[subtype]__[transform].inc. No transformation function is defined in the file itself.php (No function) 4.php Please not that mimetype and subtype are separated via '_'.There is a basic file called 'global. A mimetype (w/o subtype) without specific transform function [mimetype]. Example: . Do not use special characters in the filename causing problems with the file system.php Please note that there are no '__' characters in the filename.inc.inc.inc.php Please note that there are no single '_' characters. There are 5 possible file names: 1.inc.php Please note that there are no '_' characters in the filename.php PMA_transform_text_html__formatted() 2.php'. A mimetype+subtype without specific transform function [mimetype]_[subtype].inc. Example: text__formatted. The transform function will the be called 'PMA_transform_[mimetype]_ [subtype]__[transform]()'. Example: text_html__formatted. The transform function will the be called 'PMA_transform_[mimetype]__ [transform]()'. Example: text_plain.inc. which shall not be contained in their names.

This means. Please see the libraries/transformations/TEMPLATE file for adding your own transform function.Contains the text inside of the column. $buffer . All filenames containing no '__' in themselves are not shown as valid transform functions in the dropdown. To create a new. To create a new transform function please see libraries/transformations/ template_generator. See the libraries/transformations/TEMPLATE_MIMETYPE for adding a mimetype without a transform function. This is the text. Example: global__formatted PMA_transform_global__formatted() So generally use '_' to split up mimetype and subtype.. properties. 4. 2. Currently following keys can be used: info Long description of the transformation.Contains any user-passed options to a transform function as an array. you want to transform. Server Configuration Known limitations ISPs. 'image/jpeg' etc. 2.text. $meta .Contains an object with information about your column. This function accepts no parameters and returns array with information about the transformation. A transform function always gets passed three variables: 1.e.) Additionally you should also provide additional function to provide information about the transformation to the user..Frequently Asked Questions 1. FAQ . multi-user installations Browsers or client OS Using phpMyAdmin phpMyAdmin project . 3.inc. 7. and '__' to provide a transform function. empty mimetype please see libraries/ transformations/template_generator_mimetype.php The transform function will the be called 'PMA_transform_global__ [transform]()'. 'text/plain'. The data is drawn from the output of the mysql_fetch_field() function. The $meta->mimetype variable contains the original MIME-type of the column (i.php (No function) 5.sh. 6. 3. 5.inc. This function should have same name as transformation function just with appended _info suffix. $options .sh. all object properties described on the manual page are available in this variable and can be used to transform a column accordingly to unsigned/ zerofill/not_null/. A global transform function with no specific mimetype global__[transform].

So. See also the FAQ 1. Your uploaded file is saved by PHP in the "upload dir". to enable uploads of files while being reasonably secure: * create a separate directory for uploads: mkdir /tmp/php .8. Security 9. what can I do? Try to set the $cfg['OBGzip'] directive to FALSE in your config. I'm displayed the error message: "The specified CGI application misbehaved by not returning a complete set of HTTP headers .".php.1 My server is crashing each time a specific action is required or phpMyAdmin sends a blank page or a page full of cryptic characters to my browser. 1.4 Using phpMyAdmin on IIS. I'm facing crashes and/or many error messages with the HTTP.inc.php. please ask for help in the various Apache support groups. and I get an error about safe mode being in effect. Filippo Simoncini found a workaround (at this time there is no better fix): remove or comment the DOCTYPE declarations (2 lines) from the scripts libraries/header.inc. These features are based on the gzencode() and bzcompress() PHP functions to be more independent of the platform (Unix/Windows. 1.8 I cannot insert a text file in a table..3 (withdrawn).php and libraries/common.php. 1.7 How can I GZip or Bzip a dump or a CSV export? It does not seem to work.lib. This is a known problem with the PHP ISAPI filter: it's not so stable. 1.1 entry about PHP bugs with output buffering. Please use instead the cookie authentication mode. navigation.txt file from the php distribution. Safe Mode or not. 1.2 My Apache server crashes when using phpMyAdmin. If your server keeps crashing. libraries/header_printview. We recommend the following setup for Apache servers running in safe mode. 1.php. index.. Have a look at the last message in this bug report from the official PHP bug database. You should first try the latest versions of Apache (and possibly MySQL). Server 1.5 Using phpMyAdmin on IIS.inc. Synchronization Please have a look at our Link section on the official phpMyAdmin homepage for in-depth coverage of phpMyAdmin's features and or interface. as defined in php. 1. and so on).ini by the variable upload_tmp_dir (usually the system default is /tmp). You just forgot to read the install.6 I can't use phpMyAdmin on PWS: nothing is displayed! This seems to be a PWS bug. you must have Zlib/Bzip2 support (--with-zlib and --with-bz2).php file and the zlib.output_compression directive to Off in your php configuration file.

1. 1. There exist several workarounds if your upload is too big or your hosting provider is unwilling to change the settings: * Look at the $cfg['UploadDir'] feature.16 I cannot upload big dump files (memory. One user also said that post_max_size and memory_limit need to be larger than upload_max_filesize. and after execution of your SQL commands. removed. add this line to your httpd.7.9 (withdrawn).*" nokeepalive ssl-unclean-shutdown It seems to clear up many problems between Internet Explorer and SSL. The uploaded files will be moved there.4. 1. the import engine has been re?written and these problems should not occur. 1. Starting with version 2. HTTP or timeout problems). 1. * Using a utility (such as BigDump) to split the files before uploading. The first things to check (or ask your host provider to check) are the values of upload_max_filesize.ini * restart Apache 1.12 I have lost my MySQL root password. memory_limit and post_max_size in the php. or your favorite file transfer method.group: chown apache. More information is available in the Configuration section of this document.14 (withdrawn).*MSIE. My browser is Internet Explorer and I'm using the Apache server. ftp. Since version 2. Please modify your column names to align with current standards.apache /tmp/ php * give proper permission: chmod 600 /tmp/php * put upload_tmp_dir = /tmp/php in php.0. upgrade your phpMyAdmin to the latest version to take advantage of the new import features.11 I get an 'open_basedir restriction' while uploading a file from the query box.ini configuration file. what can I do? The MySQL manual explains how to reset the permissions.10 I'm having troubles when uploading files with phpMyAdmin running on a secure server. 1. 1. This allows one to upload a file to the server via scp.13 (withdrawn).user column names. PhpMyAdmin is then able to import the files from the temporary directory. As suggested by "Rob M" in the phpWizard forum. All of these three settings limit the maximum size of data that can be submitted and handled by PHP. We cannot support this or any third party applications. phpMyAdmin supports servers with open_basedir restrictions. the User and Passwordcolumns were named user and password. In previous MySQL versions.15 I have problems with mysql. but are aware of users .2.* give ownership to the Apache server's user. If possible.conf: SetEnvIf User-Agent ". However you need to create temporary directory and configure it as $cfg['TempDir'].

1.0.17. Your chosen extension is specified in $cfg['Servers'][$i]['extension'].so or php_mysql.17a I cannot connect to the MySQL server.1 or newer. 1.1 and newer are supported.17a).21 I am running the CGI version of PHP under Unix.x. MySQL changed the authentication hash and your PHP is trying to use the old method. Please refers to the FPDF manual to build these files.2 were tested).x branch. the problem is solved by installing a software package called "PHP-MySQL" or something similar. * If you have shell (command line) access. To connect to a MySQL server.18 (withdrawn). In general. PHP needs a set of MySQL functions called "MySQL extension". It always returns the error message. When compiling PHP.0.ini. Usually. More information (and several workarounds) are located in the MySQL Documentation. otherwise it needs to be loaded dynamically. "Client does not support authentication protocol requested by server. 1. The latter one should be used unless you have a good reason not to do so. 1.sql. . This problem is generally caused by using MySQL version 4. This extension may be part of the PHP distribution (compiled-in). we strongly recommend that you manually link the MySQL extension of your choice to a MySQL client library of at least the same minor version since the one that is bundled with some PHP distributions is rather old and might cause problems (see FAQ 1. phpMyAdmin can connect to your MySQL server using PHP's classic MySQL extension as well as the improved MySQL extension (MySQLi) that is available in php 5. only MySQL 5.as mentioned in FAQ 1. MariaDB is also supported (versions 5. The proper solution is to use the mysqli extension with the proper client library to match your MySQL installation.max_links higher than 1.17 Which MySQL versions does phpMyAdmin support? Since phpMyAdmin 3. use MySQL to import the files directly. Its name is probably mysql.having success with it. it should have at least the same minor version as your server . For older MySQL versions.dll. set mysql.1 and 5. 1. In php. 1.19 I can't run the "display relations" feature because the script seems not to know the font face I'm using! The "FPDF" library we're using for this feature requires some special files to use font faces. You can do this by issuing the "source" command from within MySQL: source filename. you need to use the latest 2. phpMyAdmin tried to load the extension but failed. please check PHP Configuration". consider upgrading MySQL client" You tried to access MySQL with an old MySQL client library. The version of your MySQL client library can be checked in your phpinfo() output.20 I receive the error "cannot load MySQL extension. and I cannot log in using cookie auth.0.

You can change this behavior by simply changing the directive to 0 (OFF): Just edit your my.0. 1. convert all database and table names to lower case and turn it on again. click on "Add" and select the user "IUSR_machine" from the list.29 When I create a table or modify a column. Of course you have to restart Apache. To fix this.php). Alternatively.23 I'm running MySQL on a Win32 machine.conf.0. This is most likely because in php. Under the tab Security. If you turn off it (by $cfg['OBGzip'] = false in config.inc. so I cannot upload. 1. Each time I create a new table the table and column names are changed to lowercase! This happens because the MySQL directive lower_case_table_names defaults to 1 (ON) in the Win32 version of MySQL. such as undefined variables when I run a SQL query.ini. Now set his permissions and it should work. What does this mean? This can happen due to a MySQL bug when having database / table names with upper case characters although lower_case_table_names is set to 1.11-gamma.28 My MySQL server sometimes refuses queries and returns the message 'Errorcode: 13'. your file_uploads parameter is not set to "on". there's a bug-fix available starting with MySQL 3. save the file and restart the MySQL service.1a on Windows XP. 1. A tip from Jose Fandos: put a comment on the following two lines in httpd.24 (withdrawn). This is a permission problem. This bug will be fixed in PHP 5.26. it should work. This is a PHP bug that occur when GZIP output buffering is enabled.23.*" as this version of mod_gzip on Apache (Windows) has problems handling PHP scripts. I get an error and the columns are duplicated.ini file that should be located in your Windows directory and add the following line to the group [mysqld]: set-variable = lower_case_table_names=0 Next. . like this: # mod_gzip_item_include file \.22 I don't see the "Location of text file" field.56 / 4. turn off this directive.php with plenty of tables). You can always check the value of this directive using the query SHOW VARIABLES LIKE 'lower_case_table_names'.3. and I get problems.27 I get empty page when I want to view huge page (eg. 1.php$ # mod_gzip_item_include mime "application/x-httpd-php.26 I just installed phpMyAdmin in my document root of IIS but I get the error "No input file specified" when trying to run phpMyAdmin.0. Right-click on the phpmyadmin folder and choose properties. db_structure. 1. 1.1.25 I am running Apache with mod_gzip-1. 1.

32 Can I use HTTP authentication with IIS? Yes. Table and script parts are optional. For older PHP versions 2.php? server=X&db=database&table=table&target=script. set cgi.1.ini file. and Digest if it's enabled. In your php. uncheck Basic authentication.6.0.1 through 401. 1. check the Anonymous access checkbox and uncheck any other checkboxes (i.3. Following .php files. If you want http://server/phpMyAdmin/ database[/table][/script] URLs.31 Does phpMyAdmin support php5? Yes.php In the case we saw.2 and newer.34 Can I access directly to database or table pages? Yes.e. 3. so upgrade your PHP to the next version. The problems occur when two different (and conflicting) set of directives are used: SetOutputFilter PHP SetInputFilter PHP and AddType application/x-httpd-php . 1. For server you use the server number which refers to the order of the server paragraph in config.php.rfc2616_headers = 0 2.php: Missing hash".21 solves the problem. you can use URLs like http://server/phpMyAdmin/index. 1.inc.9 in ISAPI mode under IIS 5.3. Since release 3.) Click OK. one set of directives was in /etc/httpd/conf/httpd.0 only PHP 5. Out of the box. The recommended way is with AddType. Integrated Windows authentication.33 Is there a problem with the mysqli extension when running PHP 5.30 I get the error "navigation.9 branch is still maintained. while the other set was in /etc/httpd/conf/addon-modules/php. you need to do some configuration. In Custom Errors. so just comment out the first set of lines and restart Apache: #SetOutputFilter PHP #SetInputFilter PHP 1.conf. 1.5 and click the Set to Default button.4 on 64-bit systems? Yes. select the range of 401. This procedure was tested with phpMyAdmin 2.It is possible to configure Apache in such a way that PHP has problems interpreting . This problem affects phpMyAdmin ("Call to undefined function pma_reloadnavigation").1. PHP 4. In Web Site Properties -> File/Directory Security -> Anonymous Access dialog box. This problem is known to happen when the server is running Turck MMCache but upgrading MMCache to version 2.conf. 1.

L] 1.php)$ index.* . suhosin. You need Options FollowSymLinks and AllowOverride FileInfo enabled for directory where phpMyAdmin is installed and you need mod_rewrite to be enabled. Only solution is to use mcrypt extension which works fine in this case.php)$ index. 256) suhosin. You can always find in your error logs which limit did cause dropping of variable. Generally all suhosin. However you need to pass authentication variable to CGI using following rewrite rule: RewriteEngine On RewriteRule . First make sure.[E=REMOTE_USER:%{HTTP:Authorization}.max_array_index_length should be increased (eg. that you have enabled some features within global configuration.request. 2048) suhosin.post.36 I get an error "500 Internal Server Error". however you might want to adjust at least following parameters: * * * * * * * suhosin. 1.post.35 Can I use HTTP authentication with Apache CGI? Yes. 2048) suhosin. 1024) .post.* and suhosin.max_vars should be increased (eg.max_array_index_length should be increased (eg.request. If your cluster consist of different architectures.38 Can I use phpMyAdmin on a server on which Suhosin is enabled? Yes but the default configuration values of Suhosin are known to cause problems with some operations.* directives can have negative effect on phpMyAdmin usability.max_totalname_length should be increased (eg.htaccess file in root folder of phpMyAdmin installation (don't forget to change directory name inside of it): RewriteEngine On RewriteBase /path_to_phpMyAdmin RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.max_vars should be increased (eg.php?db=$1&tab le=$2&target=$3 [R] RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php?db=$1 [R] 1. 256) suhosin.max_value_length should be increased (eg. The default values for most Suhosin configuration options will work in most scenarios. 8192) suhosin.request. PHP code used for encryption/decryption won't work correct.request.max_totalname_length should be increased (eg.*.post. Suhosin configuration might lead to malfunction in some cases and it can not be fully avoided as phpMyAdmin is kind of application which needs to transfer big amounts of columns in single HTTP request. what is something what Suhosin tries to prevent. for example editing a table with many columns and no primary key or with textual primary key. 8192) suhosin.lines apply only for Apache web server.37 I run phpMyAdmin on cluster of different machines and password encryption in cookie auth doesn't work.php?db=$1&target=$2 [R] RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R] RewriteRule ^([a-zA-Z0-9_]+)$ index. 1. Then you just need to create following . There can be many explanations to this and a look at your server's error log file might give a clue.get. so you can diagnose the problem and adjust matching configuration variable.get. This is caused by use of pack/unpack functions in code.

example. neither after the ?> tag at the end.headers already sent by . it may be you haven't even compiled MySQL support into PHP.php file and ensure there is nothing (I.2 phpMyAdmin can't connect to MySQL. We also got a report from a user under IIS. The MySQL server's privilege tables are not up to date. 1. If it doesn't. 1.com public. otherwise you get big slowdown You can also disable the warning using the SuhosinDisableWarning directive. 2. I get an error about an unknown column. what's the problem? Edit your config.* suhosin. you need to run the mysql_upgrade command on the server. ProxyPass /mirror/foo/ http://backend.40 When accessing phpMyAdmin via an Apache reverse proxy.* should not include SQL.org/docs/2.apache.com/ ProxyPassReverseCookieDomain backend..) neither before the <?php tag at the beginning.com ProxyPassReverseCookiePath / /mirror/foo/ Note: if the backend url looks like http://host/~user/phpmyadmin..html#ssloptions .inc.bailout_on_error needs to be disabled (the default) * suhosin.39 When I try to connect via https. Try to make a small script which uses mysql_connect and see if it works. What can cause this behavior? Be sure that you have enabled SSLOptions and StdEnvVars in your Apache configuration. See http://httpd. removing this character cleared his errors. I can log in.html for more details.log. This is not specific to phpmyadmin.2/mod/mod_proxy. no characters.org/docs/2. it's just the behavior of Apache.example.example. no spaces.apache.com/~user/phpmyadmin ProxyPassReverse /mirror/foo/ http://backend.example..1 The error message "Warning: Cannot add header information .php contained an end-of-line character (hex 0A) at the end." is displayed.com/%7Euser/phpmyadmin ProxyPassReverseCookiePath /%7Euser/phpmyadmin /mirror/foo See http://httpd. 1. that used a zipped distribution kit: the file libraries/Config.3 The error message "Warning: MySQL Connection Failed: Can't connect to local . 2. the tilde (~) must be url encoded as %7E in the ProxyPassReverse* lines. but then my connection is redirected back to http.0/mod/mod_ssl.class.example.41 When I view a database and ask to see its privileges. To be able to use cookie auth Apache must know that it has to rewrite the set-cookie headers.sql.example. no blank lines.E. Example from the Apache 2.com/ ProxyPassReverse /mirror/foo/ http://backend.2 documentation: ProxyPass /mirror/foo/ http://backend. Configuration 2. What's wrong? Either there is an error with your PHP setup or your username/password is wrong. cookie login does not work..

In your php../mysqladmin variables. Erik Wasser explains: The solution is: if your host is "localhost" MySQL (the command line tool mysql as well) always tries to use the socket connection for speeding up things.ini you will find a line mysql.php." is displayed. MySQL is not resolving the localhost as expected. .sock'. 2.5 Each time I want to insert or change a record or drop a database or a table. which you redirect via port-forwarding to another host.sock change it to mysql. with HTTP or cookie authentication. For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.6 I get an "Access denied for user: 'root@localhost' (Using password: YES) "-error when trying to access a MySQL-Server on a host which is port-forwarded for my localhost. * Then.sock. '0755').sock. I'm asked to log in again. you need to complete the socket information in the config. Please also make sure that the permissions of this file allow to be readable by your webserver (i.inc." it means you're running a beta version of PHP. you need to determine what socket is being used by MySQL. Harald Legner suggests this on the mailing list: On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql. 2.default_socket = /var/lib/mysql/mysql.. Type . To do this. an error 404 (page not found) is displayed or. And that doesn't work in this configuration with port forwarding. telnet to your server and go to the MySQL bin directory. What can I do? For RedHat users. you need to tell PHP to use this socket. What's wrong? Check the value you set for the $cfg['PmaAbsoluteUri'] directive in the phpMyAdmin configuration file. and this should give you a bunch of info about your MySQL server.MySQL server through socket '/tmp/mysql. Have also a look at the corresponding section of the MySQL documentation.e.default_socket = /tmp/mysql. 2. what can I do? Try to set the $cfg['OBGZip'] directive to FALSE in the phpMyAdmin configuration file. That's not a so good idea. To do this in phpMyAdmin.sock' (111) .. Here is a fix suggested by Brad Ummer: * First.4 Nothing is displayed by my browser when I try to run phpMyAdmin.0b. Also have a look at your PHP version number: if it contains "4. It helps sometime. including the socket (/tmp/mysql.sock Then restart apache and it will work. When you are using a port on your localhost. for example). In this directory there should be a file named mysqladmin. please upgrade to a plain revision..

you could get this error if your table has a high number of columns.inc.net/bug.ini directive session. * In the php. If $cfg['ThemeManager'] is enabled.max_request_variables set to the default (200) or another low value. Themes within same generation should be backwards compatible .png" In theme directory there is file info. everything is right and MySQL uses the TCP connection.0.1" as hostname. * Maybe you have a broken PHP installation or you need to upgrade your Zend Optimizer. See http://bugs. Under $cfg['ThemePath']. 2. * If you are using Hardened-PHP.9 Seeing an upload progress bar . Your selected theme will be stored in a cookie.7. theme generation and theme version. for backwards compatibility and for all themes that would not include images or css-files.php. Replace it with "&. To create a theme: * make a new subdirectory (for example "your_theme_name") under $cfg ['ThemePath'] (by default themes) * copy the files and directories from "original" to "your_theme_name" * edit the css-files in "your_theme_name/css" * put your new images in "your_theme_name/img" * edit layout. because this is the system theme used by phpMyAdmin.php in "your_theme_name" * edit info. you might want to increase request limits. you should not delete the directory "original" or its underlying structure. See also FAQ 4. what can I do? Here are a few points to check: * In config.". 2. Themes with different generation are incompatible.php.theme with version 2 should work in phpMyAdmin requiring version 1. try to leave the $cfg['PmaAbsoluteUri'] directive empty. $cfg['ThemeManager'] and $cfg ['ThemeDefault']. phpMyAdmin will use the default icons and buttons (from the system-theme "original").inc. If you do not want to use your own symbols and buttons.ini directive arg_separator.input. These versions and generations are enumerated from 1 and do not have any direct dependence on phpMyAdmin version. (Thanks to Klaus Dorninger for the hint).php in "your_theme_name" to contain your chosen theme name. a value of ".If you enter "127. * The directory specified in the php. "original" contains all images and styles.save_path does not exist or is read-only. that will be visible in user interface * make a new screenshot of your theme and save it under "your_theme_name/ screen.php?id=31134. 2. * If you are using Hardened PHP with the ini directive varfilter.0.php which contains theme verbose name. you can select your favorite theme on the main page.8 I get "Missing parameters" errors.7 Using and creating themes Themes are configured with $cfg['ThemePath']. Adjust this setting accordingly. remove the directory "img" in "your_theme_name".inc." will cause this error.inc.

a user who logged out can not log in again in with the same nick. think about using another TableSeparator or disabling that feature 3.1 When using HTTP authentication. 3.MySQL dump 8. For GZip/BZip2 exports this can be overcome since 2. I get a memory limit error or a time limit error. The problem is that older versions of mysqldump created invalid comments like this: -.4 using $cfg['CompressOnFly'] (enabled by default). This means. you must set apc.6 What is currently not supported in phpMyAdmin about InnoDB? In Relation view. Zip exports can not be handled this way. If you want to run your dump you have to turn it into valid MySQL.5 When using nested folders there are some multiple hierarchies displayed in a wrong manner?! ($cfg['LeftFrameTableSeparator']) Please note that you should not use the separating string multiple times without any characters between them. To bypass this problem: just close all the opened browser windows and then go back to phpMyAdmin. you have to use another way.23.com/bug. Moreover. If using APC. or having . Known limitations 3.ini.22 --. so if you need Zip files for larger dump. This is related to the authentication mechanism (protocol) used by phpMyAdmin.To be able to see a progress bar during your uploads.5.Server version 3.php?id=21704. 3. or at the beginning/end of your table name. This is an InnoDB bug. the JSON extension has to be enabled in your PHP.54 The invalid part of the code is the horizontal line made of dashes that appears once in every dump created with mysqldump. see http://bugs.------------------------------------------------------or #--------------------------------------------------------3. If you have to. I lose foreign key relationships when I rename a table or a column. your server must have either the APC extension or the uploadprogress one. You should be able to log in again. being able to choose a table in another database.mysql.rfc1867 to on in your php.3 With InnoDB tables. Compressed dumps are built in memory and because of this are limited to php's memory limit.2 When dumping a large table in compressed mode.Host: localhost Database: database ---------------------------------------------------------.4 I am unable to import dumps I created with the mysqldump tool bundled with the MySQL server distribution. 3. you have to add a whitespace after the first two dashes of the line or add a # before it: -.

49 shows that the API does not accept this syntax for the USE command. automatic generation of the query LEFT JOIN from the foreign table. The tests I have made with MySQL 5. See $cfg ['MaxExactCount'] for a way to modify those results. no nested forms can be put inside the table where phpMyAdmin displays the results.10 Homonyms and no primary key: When the results of a SELECT display more that one column with the same value (for example SELECT lastname from employees where firstname like 'A%' and two "Smith" values are displayed). Please make sure that your table has a primary key.7 I have table with many (100+) columns and when I try to browse table I get series of errors like "Warning: unable to parse url".14 I am not able to browse a table when I don't have the right to SELECT one of the columns. and this method only returns an approximate count in the case of InnoDB tables. . the quote-character (") is interpreted as an identifier quote character and not as a string quote character.9 I get error messages when using "--sql_mode=ANSI" for the MySQL server When MySQL is running in ANSI-compatibility mode. How can this be fixed? Your table neither have a primary key nor an unique one.13 I get an error when entering USE followed by a db name containing an hyphen. there are some major differences in how SQL is structured (see http://dev. For a tutorial on how to effectively use transformations. The workaround is to create a primary or unique key.8 I cannot use (clickable) HTML-forms in columns where I put a MIME-Transformation onto! Due to a surrounding form-container (for multi-row delete checkboxes). see our Link section on the official phpMyAdmin-homepage. News to this item will be posted in Bug report #816858 3. There is no workaround to this behaviour.1. If you use a custom submit input field. 3. if I click Edit I cannot be sure that I am editing the intended row. the form will submit itself to the displaying page again. where you can validate the $HTTP_POST_VARS in a transformation. 3.11 The number of records for InnoDB tables is not correct.php and just put your own input-elements inside.12 (withdrawn). use any form inside of a table if keep the parent form-container with the target to tbl_row_delete. but this could have a serious impact on performance.mysql. so we must use a long expression to identify this row. 3. so that phpMyAdmin can use it for the Edit and Delete links. You can. 3. 3. This causes problems to parse_url function. 3. phpMyAdmin uses a quick method to get the row count. Most important of all. In Query-by-example (Query).more than one index column in the foreign key.com/doc/mysql/en/ ansi-mode.html). 3. however. which makes many internal phpMyAdmin operations into invalid SQL statements.

multi-user installations 4. if used.16 (withdrawn). If you know you will be adding larger items to that column then you should manually adjust the column sizes accordingly.1 I'm an ISP. 3. Check php. 3. and open_basedir. See the install section on "Using HTTP authentication".inc. Suggestions: * Your config.htaccess files. Can I setup one central copy of phpMyAdmin or do I need to install it for each customer. more will likely be added but for the time being you will have to edit the structure to your liking post-import. This depends on your system.2 What's the preferred way of making phpMyAdmin secure against evil access.15 (withdrawn). you should use phpMyAdmin's HTTP or cookie authentication features. There is no reliable way to differetiate tables in CSV format. This is done for the sake of efficiency. where phpmy is a user whose password is only known to you. For the time being. Since version 2.3. and varchar types.This has been a known limitation of phpMyAdmin since the beginning and it's not likely to be solved in the future. for example). In future. 4." somewhere in it. it's sufficient to use the directory protection bundled with your webserver (with Apache you can use .19 When I import a file and have phpMyAdmin determine the appropriate data structure it only uses int.3 I get errors about not being able to include a file in /lang or in / libraries./lang" .php file should be chmod 660.apache.18 When I import a CSV file that contains multiple tables. the import type-detection system can only assign these MySQL types to columns. If you're running a server which cannot be accessed by other people. decimal. must contain ". Currently. you should note the fact that phpMyAdmin will use the size of the largest item in any given column as the column size for the appropriate type. you can setup a central copy of phpMyAdmin for all your users. 3. Also. 4. The development of this feature was kindly sponsored by NetCologne GmbH. This requires a properly setup MySQL user management and phpMyAdmin HTTP or cookie authentication. ISPs. If other people have telnet access to your server. * All your phpMyAdmin files should be chown -R phpmy.17 (withdrawn). * Follow security recommendations for PHP and your webserver. and apache is the group under which Apache runs. The include_path must contain ". 3. they are lumped together into a single table. or ask your sysadmin to check it." and ". 3.0.ini. you will have to break apart CSV files containing multiple tables.

4. so remove it.1 I get an out of memory error. you can enter a wildcard database name for a user (for example "joe%").0. 'allow root from 192. This last one can contain either the numeric host index (from $i of the configuration file) or one of the host names present in the configuration file. you can use the db.htaccess file. INSERT. 'allow root from 10.0/8'.16. 4. UPDATE. . 4. CREATE. when trying to create a table with more than 14 columns.to allow normal operation of phpMyAdmin. 'allow root from localhost'. a missing "www".6 How can I use the Host-based authentication additions? If you have existing rules from an old . * The username/password you specify in the login dialog are invalid. 'allow root from 172. or entering with an IP address while a domain name is defined in the config file. This could happen for several reasons: * $cfg['Servers'][$i]['controluser'] and/or $cfg['Servers'][$i] ['controlpass'] are wrong. * You have already setup a security mechanism for the phpMyAdmin-directory. For example.0/16'. pma_username. DELETE. and put the privileges you want. Using pma_username and pma_password has been tested along with the usage of 'cookie' auth_type. ). a .5 Is it possible to let users create their own databases? Starting with 2.2. This would interfere with phpMyAdmin's authentication. Using the username wildcard of '%' would be a major benefit here if your installation is suited to using it.0. pma_password and server parameters.8 Which parameters can I use in the URL that starts phpMyAdmin? When starting phpMyAdmin. 4.0. It stops the 'root' user from logging in from any networks other than the private network IP blocks.allow'. you can take them and add a username between the 'deny'/'allow' and 'from' strings.168. //block root from logging in except from the private networks $cfg['Servers'][$i]['AllowDeny']['order'] = 'deny. adding SELECT.7 Authentication window is displayed more than once.0. 4. INDEX. why? This happens if you are using a URL to start phpMyAdmin which is different than the one set in your $cfg['PmaAbsoluteUri']. Browsers or client OS 5. For example.4 phpMyAdmin always gives "Access denied" when using HTTP authentication.5.htaccess file. $cfg['Servers'][$i]['AllowDeny']['rules'] = array( 'deny root from all'. Then you can just add those updated lines into the $cfg ['Servers'][$i]['AllowDeny']['rules'] array. DROP. you can try this fragment. and my controls are non-functional.0/12'. in the user management page. eg. If you want a pre-made sample. ALTER would let a user create/manage his/her database(s).

9. Some browsers support right-clicking into the frame you want to refresh.8 With Mozilla 0. or use another browser. 5.4 I can't use the cookie authentication mode because Internet Explorer never stores the cookies. 5.9. or with a text column Your table neither have a primary key nor an unique one. for example.We could reproduce this problem only under Win98/98SE.php'. I get an error (like "Page not found") when trying to modify a row in a table with many columns.5 SP2. Looks like a Mozilla bug: 0.1: plain dumps.9.5 or 6. There is a limit on the length of the URL in those browsers. so they must be moved before closing Konqueror. or else they disappear. we could easily create more than 60 columns. Testing under WinNT4 or Win2K.0. . This is a Mozilla bug (see bug #26882 at BugZilla). zip and GZip dumps work ok.7 I refresh (reload) my browser. and come back to the welcome page. zip dumps are placed into the user's temporary directory.? to 1. The workaround is to create a primary or unique key. then come back to your table properties and add the other columns. This is not a phpMyAdmin problem but a Xitami known bug: you'll face it with each script/website that use forms. 5.2.5 In Internet Explorer 5.2 With Xitami 2.7 I have problems sending a query modified in the query box. 5.10 With Netscape 4. just do this in the right frame.2).1: plain dumps work.0. 5. MS Internet Explorer seems to be really buggy about cookies. With Konqueror 2. phpMyAdmin won't process form fields.75 I get empty rows between each row of data in a CSV exported file.2.6 In Internet Explorer 5. 5. With Konqueror 2.2. so we must use a long URL to identify this row. 5.3 I have problems dumping tables with Konqueror (phpMyAdmin 2. and this not happen in Netscape. I get JavaScript errors when browsing my rows. Upgrade or downgrade your Xitami server. except that the proposed file name for the dump is always 'tbl_dump. We will keep an eye on future Mozilla versions.1. 5. A workaround is to create a smaller number of columns. GZip dumps give an error message.9 With Mozilla 0. Upgrade to at least Internet Explorer 5.0-PR1 I can't type a whitespace in the SQL-Query edit area: the page scrolls down. Bzip2 dumps don't seem to work.6 was OK. Testing needs to be done for Konqueror 2.2. 5. 5.5b4.0 and Netscape 7.0. at least till version 6.

3.2. 5. Since we can't detect the specific Netscape version. Many users have confirmed that the Tabbrowser Extensions plugin they installed in their Firefox is causing the problem. * The Windows Firewall is blocking Apache and MySQL. 5.13 With Internet Explorer 5. Alternatively. This is a bug in Internet Explorer. 5. Using phpMyAdmin . I get "Access is denied" Javascript errors.18 With Konqueror 4.15 I have display problems with Safari. 5.inc. I have to log in on each operation. Or I cannot make phpMyAdmin work under Windows. This happens only when both of these conditions are met: using the http authentication mode and register_globals being set to On on the server. 5. meanwhile use the cookie authentication mode. you can try the auto detection mode that is supported by the recent versions of the most browsers.2.11 Extended-ASCII characters like German umlauts are displayed wrong.17 With Firefox. 5. Please upgrade to Opera7 at least. Please check the following points: * Maybe you have defined your PmaAbsoluteUri setting in config. other browsers do not behave this way. Please ensure that you have set your browser's character set to the one of the language file you have selected on phpMyAdmin's start page. Netscape and Mozilla do not have this problem.This is a known Netscape 4. It seems to be a browser-specific problem. thus blocking scripts execution. but if I switch back to the first. then the other one. only a blank screen. I cannot manage two servers: I log in to the first one.16 With Internet Explorer. who adds that Chimera.12 Mac OS X: Safari browser changes special characters to "?". 5. You must allow HTTP ports (80 or 443) and MySQL port (usually 3306) in the "in" and "out" directions. but nothing happens after that. This issue has been reported by a OS X user.14 Using Opera6.75 bug: it adds some line feeds when exporting data in octet-stream mode. * Security settings in IE and/or Microsoft Security Center are too high. and HTTP authentication type. Please upgrade to at least version 1. we cannot workaround this bug.php to an IP address and you are starting phpMyAdmin with a URL containing a domain name. 5. I can manage to get to the authentication.x an invalid LIMIT clause is generated when I browse a table. or the reverse situation. I cannot delete rows of data or drop a database.5 or 6.

Since version 2. look for the word "upload" in this document. Examine the SQL error with care. Common errors include: * Using VARCHAR without a size argument * Using TEXT or BLOB with a size argument Also. or both. the properties will be displayed. 6. See also the $cfg['ExecTimeLimit'] configuration variable. and not a NULL value (this works in PHP4).7. For additional help on this subject.2. Then on the menu.MySQL brings up a SQL-error. In the "Location of the text file" section. click "Export". Before 2. you have a checkbox for each column that can be null. With version 2.sql" file? Click on a database name in the left frame.2 When I create a table. If you want two indexes.7. 6. or use the Browse button.5. create the first one when creating the table.2. Select "Import" from the list of tabs in the right?hand frame (or "SQL" if your phpMyAdmin version is previous to 2. 6. save. Often the problem is caused by specifying a wrong column-type.6.3. so that phpMyAdmin can transmit the resulting dump to your station.0. I set an index for two columns and phpMyAdmin generates only one index with those two columns. This is the way to create a multi-columns index. You will need to choose "Save as file". you can dump the structure. all located in .5. 6. look at the syntax chapter in the MySQL manual to confirm that your syntax is correct.3 How can I insert a null value into my table? Since version 2.4 How can I backup my database or table? Click on a database or table name in the left frame. the properties will be displayed.0). Depending on your PHP configuration.6 How can I use the relation table in Query-by-example? Here is an example with the tables persons. you have to use the checkbox to get a real NULL value.3. you had to enter "null". This will generate standard SQL statements that can be used to recreate your database/table. if possible it is suggested that you upgrade to take advantage of the new features. so if you enter "NULL" this means you want a literal NULL in the column. type in the path to your dump filename. as the column's value. without the quotes. the data.1 I can't insert new rows into a table / I can't create a table . 6. For additional help on this subject. the import engine has been re?written. you will see options to compress the dump. Then click Go.5 How can I restore (upload) my database or table using a dump? How can I run a ". then display the table properties and click the Index link to create the other index. look for the word "dump" in this document. towns and countries.

INSERT INTO REL_towns VALUES ('S'. PRIMARY KEY (country_code) ) TYPE=MyISAM. 'Canada'). 'Montr?al'). country_code char(1) NOT NULL default ''. INSERT INTO REL_countries VALUES ('C'. CREATE TABLE REL_persons ( id tinyint(4) NOT NULL auto_increment. then Relation view in "Choose column to display". INSERT INTO REL_persons VALUES (11. then Relation view in Links. for "town_code" choose "REL_towns->code" in Links. INSERT INTO REL_persons VALUES (15.the database mydb.description and countries. countries Click "Update query" In the columns row. CREATE TABLE REL_towns ( town_code varchar(5) NOT NULL default '0'. choose persons. 'Marc'. town_code varchar(5) default '0'. PRIMARY KEY (id) ) TYPE=MyISAM. If you don't have a pma_relation table. ''). then browse your persons table.21 for an additional feature that "display column" enables: . 'C'). create it as explained in the configuration section.descriptions in the other 2 columns * Click "Update query" and you will see in the query box that the correct joins have been generated * Click "Submit query" 6.person_name and click the "Show" tickbox Do the same for towns. description varchar(30) NOT NULL default ''. person_name varchar(32) NOT NULL default ''. 'S'. To setup appropriate links and display information: * * * * * * on table "REL_persons" click Structure.7 How can I use the "display column" feature? Starting from the previous example. 'Paul'. for "country_code" choose "REL_countries->country_code" on table "REL_towns" click Structure. PRIMARY KEY (town_code) ) TYPE=MyISAM. description varchar(10) NOT NULL default ''. INSERT INTO REL_towns VALUES ('M'. choose "description" repeat the two previous steps for table "REL_countries" Then test like this: * * * * * * Click on your db name in the left frame Choose "Query" Use tables: persons. 'Sherbrooke'). Then create the example tables: CREATE TABLE REL_countries ( country_code char(1) NOT NULL default ''. and move the mouse over a town code or country code. towns. 'S'. See also FAQ 6. create the pma_table_info as explained in the configuration section.

it's MySQL that is doing silent column type changing. what happens with underscores in the database name? If you do not put a backslash before the underscore. "table_coords" and "pdf_pages" have to be filled in. Coordinates are relative.. Choose "Operations" in the navigation bar at the top. Select the name of the new page (making sure the Edit radio button is selected) and click Go. Enter a name for the first PDF page and click Go.8 How can I produce a PDF schema of my database? First the configuration variables "relation". Which tables will go on which pages? * * * * * * Select your database in the left frame. 6. you may get an error if the table name exists but has a different structure. your diagram will be automatically scaled to fit the page. john2db . enter its coordinates and click Save. this is a wildcard grant. if it already exists during the import. If you like. Choose "Edit PDF Pages" near the bottom of the page. Internet Explorer for Windows may suggest an incorrect filename when you try to save a generated PDF.say.11 What is the curious symbol ? in the statistics pages? It means "average". you can then use the graphical editor to position the element correctly. it only affects the import file.9 phpMyAdmin is changing the type of one of my columns! No. the user would get rights to john1db. and other browsers on Windows. and the underscore means "any character". When initially placing tables on the page. Then you need to think about your schema layout. you can use the "automatic layout. Structure: * "Add DROP TABLE" will add a line telling MySQL to drop the table. do not have this problem. When you'd like to look at your PDF. 6. and click Go.pdf". 6. Select a table from the list. Browsers on other operating systems. select the PDF options you want. . So. Otherwise. for example "schema. * "If Not Exists" will only create the table if it doesn't exist. When saving a generated PDF.pdf"." which will put all your linked tables onto the new page. If you put a backslash before the underscore. first be sure to click the Save button beneath the list of tables and coordinates. to save any changes you made there. it means that the database name will have a real underscore.12 I want to understand some Export options.. 6. Then scroll all the way down. * * 6.10 When creating a privilege. be sure that the filename ends in ".drop-down list of possible values. if the database name is "john_db". 50x50. just pick any coordinates -. After clicking Save. It does NOT drop the table after your export.

is to create the column without any indexes. Worse. nor delete it. * "Delayed inserts" are best explained in the MySQL manual. Again. To install PEAR SOAP module. In addition you need a SOAP support. The right way to do this. you will be able to choose your BLOB column. and MIME types set in the pmadb in the dump as SQL comments (/* xxx */). either as a PHP extension or as a PEAR SOAP module. is ? 2001 Upright Database Technology.* "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any) will be included in backup. This is a bad idea. 6. If you use the Validator. because in MySQL the syntax "database.17 Transformations: I can't enter my own mimetype! WTF is this feature then useful for? Slow down :). Instead you have to . etc. if you can't put transformations on them. which is the condition to create an index on a BLOB column.' used in key specification without a key length". numbers replaced with generic values). Data: * "Complete inserts" adds the column names on every INSERT command. * "Ignore inserts" treats errors as a warning instead.15 I want to add a BLOB column and put an index on it. * "Add into comments" includes column comments. row editing. and set a size to the index.. you should be aware that any SQL statement you submit will be stored anonymously (database/table/column names. you need PHP with XML. 6. but then you cannot work with it. invalid values are adjusted and inserted rather than causing the entire statement to fail.14 How do I set up the SQL Validator? To use SQL Validator. PCRE and PEAR support.13 I would like to create a database with a dot in its name. relations. for better documentation (but resulting file is bigger). On this page. 6.16 How can I simply move in page with plenty editing fields? You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most pages with many editing fields (table structure changes. this introduces a high-risk false-user-input situation. then display the table structure and use the "Create an index" dialog. The Mimer SQL Validator itself. Defining mimetypes is of no use. run "pear install Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP" to get the necessary PEAR modules for usage. strings. but MySQL says "BLOB column '.table" is the normal way to reference a database and table name. but basically with this selected. 6. * "Enclose table and column names with backquotes" ensures that column and table names formed with special characters are protected. 6. Otherwise you could just put a comment on the column.. more info is provided in the MySQL manual. You can also have a look at the directive $cfg['DefaultPropDisplay'] ('vertical') and see if this eases up editing for you. MySQL will usually let you create a database with a dot. * "Extended inserts" provides a shorter dump file by using only once the INSERT verb and the table name. Because entering your own mimetype will cause serious syntax checking issues and validation. We utilize it as free SOAP service.).

Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */ Say. You can now access a bookmark dropdown on each page.19 How can I create simple L^AT[E]X document to include exported table? You can simply include table in your L^AT[E]X documents. otherwise your query won't be even able to be stored in the database.18 Bookmarks: Where can I store bookmarks? Why can't I see any bookmarks below the query box? What is this variable for? Any query you have executed can be stored as a bookmark on the page where the results are displayed. NOTE THE ABSENCE OF SPACES inside the "/**/" construct. Plus. you now enter "phpMyAdmin" as the variable for the stored query. Everything which is put into the value input box on the query box page will replace the string "/* [VARIABLE]*/" in your stored query. the query box appears on for that database. but will be stripped of the /**/ chars.initialize mimetypes using functions or empty mimetype definitions. You may have that to work around using well positioned "/**/" comments. Your initial query which is going to be stored as a bookmark has to yield at least one result row so you can store the bookmark. You will find a button labeled 'Bookmark this query' just at the end of the page. that everything else inside the /*[VARIABLE]*/ string for your query will remain the way it is. you have a whole overview of available mimetypes.0 you are also able to store variables for the bookmarks. If an empty string is provided. minimal sample document should look like following one (assuming you have table exported in file table.5. As soon as you have stored a bookmark. multiple occurrences of the same variable). where VARIABLE is the string you entered in the input box. 6. Say you have stored this query: SELECT Name. no replacements are made. So you can use: /*. Who knows all those mimetypes by heart so he/she can enter it at will? 6. Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%' You can use multiple occurrences of /*[VARIABLE]*/ in a single query (that is. Also remember. the full query will be: SELECT Name. [VARIABLE] AS myname */ which will be expanded to . it is related to the database you run the query on. Since phpMyAdmin 2. VARIABLE as myname in your query. Just be aware of that you HAVE to create a valid query. Any spaces inserted there will be later also inserted as spaces in your query and may lead to unexpected results especially when using the variable expansion inside of a "LIKE ''" expression. Just use the string /*[VARIABLE]*/ anywhere in your query. A more complex example.tex): \documentclass{article} % or any class you want \usepackage{longtable} % for displaying table .

the second list containing the display column and the key. and also setup the "display column" in the foreign table. So if your users do not need those privileges. 6. 6. . If a bookmark has the same label as a table name and it's not a public bookmark. 6.org.php your host should be defined with a FQDN (fully qualified domain name) instead of "localhost". a distinct window will appear. you can remove them and their databases list will shorten.5. Then.11-6 or later) PBMS Client Library for MySQL (0.20 I see a lot of databases which are not mine.1. You will see two lists of values. what happens to my column comments stored in pmadb? Automatic migration of a table's pmadb-style column comments to the native ones is done whenever you enter Structure page for this table.5. and cannot access them. which works out of the box.22 Bookmarks: Can I execute a default bookmark automatically when entering Browse mode for a table? Yes. if there are 100 values or less in the foreign table.x column comments.6 for an example.21 In edit/insert mode.23 Export: I heard phpMyAdmin can export Microsoft Excel files? You can use CSV for Microsoft Excel.15 or later) PBMS PHP Extension for MySQL (0.4. based on some foreign table? You have to setup appropriate links between the tables. In config.0. You have one of these global privileges: CREATE TEMPORARY TABLES.\begin{document} \include{table} \end{document} % start of document % including exported table % end of document 6. visit blobstreaming.15 or later) Streaming enabled PBXT Storage engine for MySQL (1.1 or later) Here are details about configuration and operation: 1. a drop-down list of values will be available. The reason for this is to be able to type the first letter of either the key or the display column. See FAQ 6. the first list containing the key and the display column.25 How does BLOB streaming work in phpMyAdmin? For general information about BLOB streaming on MySQL. See this bug report. You need the following components: * * * * PBMS BLOB Streaming Daemon for MySQL (0.1. SHOW DATABASES. Those privileges also enable users to see all the database names. to browse foreign key values and choose one. how can I see a list of possible values for a column. 6. it will be executed.inc. To change the default limit of 100. Since phpMyAdmin 3. 6. LOCK TABLES. see $cfg ['ForeignKeyMaxLimit']. For 100 values or more.5 support for direct export to Microsoft Excel version 97 and newer was dropped.24 Now that phpMyAdmin supports native MySQL 4.

you can not get the table name).26 How can I select a range of rows? Click the first row of the range. Ensure that your target table is under the PBXT storage engine and has a LONGBLOB column (which must be nullable if you want to remove the BLOB reference from it). first add it to the table of elements and then you can drag the new element around. hold the shift key and click the last row of the range. without interfering with the current placement of the elements.28 How can I easily edit relational schema for export? By clicking on the button 'toggle scratchboard' on the page where you edit x/y coordinates of those elements you can activate a scratchboard where all your elements are placed. but the following variables can be used: @HTTP_HOST@ HTTP host that runs phpMyAdmin @SERVER@ MySQL server name @VERBOSE@ Verbose MySQL server name as defined in server configuration @VSERVER@ Verbose MySQL server name if set. Finally when you browse your table. 4. When you insert or update a row in this table. If you want to place a new element. put a checkmark on the "Upload to BLOB repository" optional choice. for example "View image". you can move them around in the pre-defined area and the x/y coordinates will get updated dynamically. 6. if you haven't chosen a table. you can use @VARIABLE@ expansion and strftime format strings. when entering a new position directly into the input field.27 What format strings can I use? In all places where phpMyAdmin accepts format strings. for example in Browse mode or on the Structure page. you'll see in your column a link to stream your data. The expanded variables depend on a context (for example. and the scratchboard will resize automatically.2. the new position in the scratchboard changes after your cursor leaves the input field. If ever an element gets out of range you can either enlarge the paper size or . 6. 3. this MIME-type was stored at upload time. You have to click on the 'OK'-button below the tables to save the new positions. Likewise. A header containing the correct MIME-type will be sent to your browser. You can do so by just changing the dropdown field below. This works everywhere you see rows. otherwise normal @DATABASE@ Currently opened database @TABLE@ Currently opened table @FIELDS@ Fields of currently opened table @PHPMYADMIN@ phpMyAdmin with version 6. By clicking on an element. otherwise. the upload will be done directly in your LONGBLOB column instead of the repository. By changing the paper size and the orientation you can change the size of the scratchboard as well.

sourceforge. greater than. non-breakable spaces. in the translations.net/projects/phpmyadmin/forums. You can then put your translations. generate patch with your changes: git diff > xxx.po for your language (you can use msginit -i po/phpmyadmin.po to do this) or ask on the mailing list to add the translation to the web interface. How do I inform developers? Our Bug Tracker is located at http://sf.click on the 'reset' button to place all elements below each other.diff 4.1 I have found a bug.pot and generate po/LANG_CODE.pot -l LANG_CODE --no-translator -o po/ LANG_CODE.29 Why can't I get a chart from my query result table? Not every table can be put to the chart. on the sourceforge. 7. submit your patch via the patch tracker of the phpMyAdmin project. the text on JavaScript messages would not display correctly. because this is where we ask for translations of new messages.2 I want to translate the messages to a new language or upgrade an existing language. Documentation is being translated using po4a and gettext (see documentation for existing translations). Currently supported formats can be found in the wiki. More details are available on our wiki. 7. less than. two or three columns can be visualised as a chart. as a zip file to avoid losing special characters. If your language is missing. It would be a good idea to subscribe to the phpmyadmin-translators mailing list.net/projects/phpmyadmin/ under the Bugs section. ampersands. To start. 6. However there are some entities that need to be there: quotes. But please first discuss your bug with other users: https://sourceforge. checkout localized_docs/po from Git. add your stuff 3. just contact Michal ?iha?. or just go to the translation server and translate it online.git. How should I proceed? The following method is preferred for new developers: 1. You can optionally translate online at our translation server where you can also get the latest po files and merge them with your translations. With HTML entities.3 I would like to help out with the development of phpMyAdmin. For creating a new translation simply use po/phpmyadmin. fetch the current git repository over anonymous git: git clone git://phpmyadmin. If you prefer to directly translate the po files. he will add it. . Please note that we try not to use HTML entities like &eacute. Only tables with one.net/gitroot/phpmyadmin/ phpmyadmin 2. where do I start? Always use latest Git version of the po file to translate. phpMyAdmin project 7. since we define the right character set in the file.net translation tracker. please put updated ones into our translation tracker. Moreover the table must be in a special format for chart script to understand it.

Synchronization 9. password. It will be a tabular representation. Therefore you can now synchronize your databases placed on the same server or some remote server. username. Also. Port is by default populated with 3306 (MySQL default port). Security 8.More details on git are available on our wiki. This requires you to enter server host name. Other than the full database. mysql-denied (MySQL denied user login).php 8.phpmyadmin. one of ok (user is logged in). certain tables of the databases can also be synchronized. root-denied (root is denied in configuration). empty-denied (empty password is denied).1 How can I synchronize two databases/tables in phpMyAdmin? You can now synchronize databases/tables in phpMyAdmin using the Synchronize feature. allow-denied (user denied by allow/ deny rules). port and the name of the database. This feature is helpful for developers who need to replicate their database?s structure as well as data. Then the name of the database should be mentioned at the end. You need to fill in the host name of the server. the username and password of an user account already there in MySQL. LogFormat directive for Apache can look like following: LogFormat "%h %l %u %t \"%r\" %>s %b \ \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n" pma_combined You can then use any log analyzing tools to detect possible break-in attempts. userStatus Status of currently active user. Moreover. Write access to the repository is granted only to experienced developers who have already contributed something useful to phpMyAdmin.1 Where can I get information about the security alerts issued for phpMyAdmin? Please refer to http://www. this feature not only helps replication but also facilitates the user to keep his/her database in sync with another database. It allows you to connect to local as well as remote servers.net/home_page/security. have a look at the Developers section. . Currently there are two variables available: userID User name of currently active user (he does not have to be logged in). All the information other than the port needs to be filled explicitly for the source as well as target servers. After successfully passing through the authentication phase. phpMyAdmin exports information about authentication to the Apache environment and it can be used in Apache logs. the source and target database table names will be displayed.2 How can I protect phpMyAdmin against brute force attacks? If you use Apache web server.

so you're invited to contribute to it. what means that they will be synchronized.php. If you're planning to contribute source. you're free to use whatever coding style you want. To translate them. Please keep it free from other code. indicating that either Structure or Data are not up to date.inc.inc. This means that these tables are to be created in target database in order to synchronize target database with source database. which generates binary files read by Gettext. * The DBG extension (PHP Debugger DBG) is now supported by phpMyAdmin for developers to better debug and profile their code. we want the scripts to be XHTML1. Only configuration data should go in config. As far as possible. Commonly used functions should be added to libraries/common.0 and CSS2 compliant on one hand. This shows that these tables are only present in source database and they need to be added to the target database in order to synchronize the target database. server-related tools to server_*.php. write an entry for the ChangeLog.com> Copyright (C) 2001-2010 Marc Delisle <marc_at_infomarc. are listed the source database table names. There are few table names that have (not present) appended after their names. This is in memoriam of the Space Shuttle Columbia (STS-107) which was lost during its re-entry into Earth's atmosphere and in memory of the brave men and women who gave their lives for the people of Earth. To use translated messages. * Obviously..php and so on. * If you want to be really helpful. The column in the middle shows the difference between the source and target corresponding tables. By clicking on them.minus sign preceding them. Some table names have a . you need to call scripts/ update-po script.inc.lib. are listed the target database table names. call scripts/generate-mo. Some of the names have a + plus sign preceding them. they will turn grey. libraries/ common. Many great features have been written by other people and you too can help to make phpMyAdmin a useful tool.On the left. Developers Information phpMyAdmin is Open Source.php and more specific ones may be added within a library stored into the libraries sub-directory.info> . * Please try to keep up the file-naming conventions.php (common functions) and config. Copyright Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller. Table-related stuff goes to tbl_*. This shows that these tables are only present in target database and they will remain unchanged in the target database. db-related code to db_*.php. The tables whose names are not preceded by a + sign are already present in the target database. But please try to keep your code as simple as possible: beginners are using phpMyAdmin as an example application. On the right.php (layout). please read the following information: * All files include libraries/header.lib. * Please use gettext wrappers around all messages (__('Some text') or _ngettext() function). Please pay attention to this.php. * Please enable showing PHP errors and warnings by the $cfg['Error_Handler'] ['display'] configuration directive. The difference is depicted by the red and green buttons with S and D letters. Please see the $cfg['DBG']* configuration options for more information. they fit the PEAR coding standards on the other hand.

you can redistribute it and/or modify it under the terms of the GNU General Public License version 2. 51 Franklin St. Fifth Floor. DHTML and DOM stuff + rewrote the scripts so they fit the PEAR coding standards and generate XHTML1. as published by the Free Software Foundation.net> [check credits for more details] This program is free software.com> + bookmarks feature + multiple dump feature + gzip dump feature + zip dump feature * Geert Lund <glund_at_silversoft. MA 02110-1301 USA Credits Credits. without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. but WITHOUT ANY WARRANTY.net> + rewrote and optimized javascript.sourceforge.ch> Robin Johnson <robbat2_at_users.info> + multi-language version in December 1998 + various fixes and improvements + SQL analyser (most of it) + current project maintainer * Olivier M?ller <om_at_omnis.fauveau_at_globalis-ms. This program is distributed in the hope that it will be useful. Inc. dynamic language selection + many bugfixes and improvements * Lo?c Chapeaux <lolo_at_phpheaven.com> + creator of the phpmyadmin project + maintainer from 1998 to summer 2000 * Marc Delisle <marc_at_infomarc.net> + database maintenance controls + table type code + Host authentication IP Allow/Deny + DB-based configuration (Not completed) + SQL parser and pretty-printer + SQL validator + many bugfixes and improvements * Armel Fauveau <armel.dk> + various fixes + moderator of the phpMyAdmin former users forum at phpwizard. write to the Free Software Foundation. if not.0 and CSS2 compliant codes + improved the language detection system + many bugfixes and improvements * Robin Johnson <robbat2_at_users.sourceforge.net> Sebastian Mendel <cybot_tm_at_users.ch> + started SourceForge phpMyAdmin project in March 2001 + sync'ed different existing CVS trees with new features and bugfixes + multi-language improvements.Olivier M?ller <om_at_omnis. See the GNU General Public License for more details.. Boston. You should have received a copy of the GNU General Public License along with this program.net .net> Alexander M.sourceforge.de> Michael Keck <mkkeck_at_users. in chronological order * Tobias Ratschiller <tobias_at_ratschiller.de> Michal ?iha? <michal_at_cihar. Turek <me_at_derrabus.sourceforge.com> Garvin Hicking <me_at_supergarv.

de> + rewrote dump code for PHP4 + mySQL table statistics + bugfixes * Benjamin Gandon <gandon_at_isia.net> + table relation-links feature * Maxime Delorme <delorme. Turek <me_at_derrabus.net/node/56). features.acko.1.sourceforge.com> + rewrote and fix dump code + bugfixes * Steve Alberty <alberty_at_neptunlabs.net> + phpMyAdmin logo (until June 2004) * Mike Cochrane <mike_at_graftonhall.fr> + PDF schema output.0 compatibility + abstract database interface (PMA_DBI) with MySQLi support + privileges administration + XML exports + various features and fixes + German language file updates * Mike Beck <mike.fujifilm.com> + "insert as new row" feature * Pete Kelly <webmaster_at_trafficg.0 / 4.1 + bugfixes * Alexander M. thanks also to Olivier Plathey for the "FPDF" library (see http://www.* Korakot Chaovavanich <korakot_at_iname.edlund_at_upright.co.sourceforge.de> + MySQL 4.nz> + blowfish library from the Horde project * Marcel Tschopp <ne0x_at_users.jp> + japanese kanji encoding conversion feature * Piotr Roszatycki <d3xter_at_users.sourceforge.de> + automatic joins in QBE + links column in printview + Relation view * Michal ?iha? <michal_at_cihar.com> + enhanced index creation/display feature + feature to use a different charset for HTML than for MySQL + improvements of export feature + various features and fixes + Czech language file updates * Christophe Gesch? from the "MySQL Form Generator for PHPMyAdmin" (http:// sf.org/) and Steven Wittens for the "UFPDF" library (see http://www.beck_at_web. German language additions * Yukihiro Kawada <kawada_at_den.cma.se> + SQL validator server * Ivan R.0.maxime_at_free. * Olof Edlund <olof.net> and Dan Wilson + the Cookie authentication mode * Axel Sander <n8falke_at_users.co.fpdf.1 / 5. Lanin <ivanlanin_at_users.net/projects/phpmysqlformgen/) + suggested the patch for multiple table printviews * Garvin Hicking <me_at_supergarv.fr> + main author of the version 2.sourceforge.net> .de> + built the patch for vertical display of table rows + built the Javascript based Query window + SQL history + Improvement of column/db comments + (MIME)-Transformations for columns + Use custom alias names for Databases in left frame + hierarchical/nested table display + PDF-scratchboard for WYSIWYG-distribution of PDF relations + new icon sets + vertical display of column properties page + some bugfixes. support.

Kristof Hamann. "Sakamoto".com) + TCPDF library (http://www. bugfixes or support for a new language since version 2..0 This work is based on Peter Kuppelwieser's MySQL-Webadmin. Laurent Haas. van der Lee. P?ter Bakondy.au. Yuval Sarna. Sven-Erik Andersen.com. Piller. www. enhancements. Ricardo ?.0: Bora Alioglu.securereality. Alexis Soulard. Andreas Pauley.sourceforge. Chee Wai. Thomas Kl?ger. Ignacio Vazquez-Abrams. Martijn W.6. Ian Davidson.org) Michael Keck <mkkeck_at_users. Martin Marconcini. Olivier Bussier. Alessandro Astarita. Vilius Zigmantas. Bernard M. "Manuzhai". Mats Engstrom.0 + phpMyAdmin sailboat logo (June 2004) Mathias Landh?u?er + Representation at conferences Sebastian Mendel <cybot_tm_at_users. Peter Svec. Original Credits of Version 2. Algis Vainauskas. David Nordenberg. Rachim Tamsjadi.sourceforge.net> + redesign for 2. Jakub Wilk. there are some concepts I've borrowed from him. Kositer Uros. Siu Sun. Lubos Klokner. Laurent Dhima. Girish Nair. Alvar Soome. Borges Botelho. Thomas Michael Winningham.* * * * * * * * * * * * * * * * * + mysqli support + many bugfixes and improvements Nicola Asuni (Tecnick. Vinay. Although I have not used any of his source-code. Neil Darlow. phpMyAdmin .1.net> + interface improvements + various bugfixes Ivan A Kirillov + new relations Designer Raj Kissu Rajandran (Google Summer of Code 2008) + BLOBstreaming support Piotr Przybylski (Google Summer of Code 2008 and 2010) + improved setup script + user preferences Derek Schaefer (Google Summer of Code 2009) + Improved the import system Alexander Rutkowski (Google Summer of Code 2009) + Tracking mechanism Zahra Naeem (Google Summer of Code 2009) + Synchronization feature Tom?? Srnka (Google Summer of Code 2009) + Replication support Muhammad Adnan (Google Summer of Code 2010) + Relation schema export to multiple formats Lori Lee (Google Summer of Code 2010) + User interface improvements + ENUM/SET editor + Simplified interface for export/import Ninad Pundalik (Google Summer of Code 2010) + AJAXifying the interface Martynas Mickevi?ius (Google Summer of Code 2010) + Charts Barrie Leslie + BLOBstreaming support with PBMS PHP extension Ankit Gupta (Google Summer of Code 2010) + Visual query builder And also to the following people who have contributed minor changes. Michael Tacelosky.1.tcpdf. Daniel Villanueva. It was his idea to create a web-based interface to MySQL using PHP3. Lu?s V.

For 1. Jannis Hermanns.a software application that enables a user to display and interact with text.the default name of Apache's directory-level configuration file.an important World Wide Web technology that enables a client web browser to request data from a program executed on the Web server. He also added the "Query by Example" feature in 2.admiral.a packet of information sent by a server to a World Wide Web browser and then sent back by the browser each time it accesses that server.0 (including quite significant ones like the authentication). He also suggested that you should be able to specify the primary key on tbl_create. Plus many smaller improvements. * Blowfish . symmetric block cipher. To version 1.0.6.a keyed. one for each row of the table.a computer system that accesses a (remote) service on another computer by some kind of network.a free software/open source data compression algorithm and program developed by Julian Seward.was created because Peter told me he wasn't going to further develop his (great) tool.php3-set (Import text-files) as well as a bug-report. Sascha Kettler. Daniel C. Alexander Leidinger. Plus bug-fixes and help. Mark Kronsbein. * Marc Delisle <DelislMa_at_CollegeSherbrooke. * Gabriel Ash <ga244_at_is8. Kiko Albiol. * Cookie .net>: He made many of the changes that were introduced in 1. The following people have contributed minor changes.net> added support for MySQL functions in tbl_change. bug-reports and or just some feedback. * Alexandr Bravo <abravo_at_hq. Thomas Kleemann. Wieggers. a feature to display only some columns from a table.htaccess . * Changelog .a set of data values of a particular simple type. * Client .1. and other information typically located on a web page at a website on the World Wide Web.a log or record of changes made to a project. * Chris Jackson <chrisj_at_ctel. * Dave Walton <walton_at_nordicdms.com> added support for multiple servers and is a regular contributor for bug-fixes. * column . .1 he enhanced the table-dump feature. enhancements. bugfixes or support for a new language: Jim Kraai.4. He also contributed the French translation. * Jan Legenhausen <jan_at_nrw.ca> made phpMyAdmin language-independent by outsourcing the strings to a separate file.qc.3. Glossary From Wikipedia.nyu. images. * Browser (Web Browser) . * bzip2 . * CGI (Common Gateway Interface) . Joe Pruett. G. Geert Lund. And thanks to everyone else who sent me email with suggestions.php3. Chao.php3.0.php3. Jordi Bruguera. the free encyclopedia * . Pavel Piankov. Thanks go to * Amalesh Kempf <ak-lsml_at_living-source.edu> contributed the random access features for 2. Miquel Obrador.com> who contributed the code for the check when dropping a table or database. Renato Lins.ru> who contributed tbl_select.1 he contributed the ldi_*. designed in 1993 by Bruce Schneier.

line of personal computers is designed. JPEG .one part of divided data/columns.look at Database. Mac OS X . mysql .a multithreaded.the MySQL client PHP extension. developed. multi-user. Key . GD2 .a field or group of fields in a database record that point to a key field or group of fields forming a key of another database record in some (usually different) table. FPDF (FreePDF) . ISP (Internet service provider) .a unique number that devices use in order to identify and communicate with each other on a network utilizing the Internet Protocol standard. ISAPI (Internet Server Application Programming Interface) .the improved MySQL client PHP extension. a node that has a hostname.the operating system which is included with all currently shipping Apple Macintosh computers in the consumer and professional markets.a PHP module that extends PHP with additional functionality. foreign key . PDF (Portable Document Format) . IIS (Internet Information Services) . database .look at Storage Engines. JPG .a business or organization that offers users access to the Internet and related services. hostname .Comma-separated values DB .a cryptographic library.the API of Internet Information Services (IIS). OpenDocument . MIME (Multipurpose Internet Mail Extensions) .an Internet Standard for the format of e-mail. Field .a library by Thomas Boutell and others for dynamically manipulating images.the free PDF library GD Graphics Library .the unique name by which a network attached device is known on a network.the primary method used to transfer or convey information on the World Wide Web. MCrypt .a list of commonly asked question and there answers. Engine . L^AT[E]X . HTTP (HyperText Transfer Protocol) . mysqli .look at JPEG. mcrypt . MySQL .look at Mac OS X. https .any machine connected to a computer network. Index . module .look at index.a most commonly used standard method of lossy compression for photographic images.gzip is short for GNU zip. host .a data-oriented protocol used by source and destination hosts for communicating data across a packet-switched internetwork. manufactured.the MCrypt PHP extension.look at GD Graphics Library. a GNU free software file compression program. extension .a document preparation system for the T[E]X typesetting program. IP (Internet Protocol) .an organized collection of data.some sort of extension for the Apache Webserver. gzip . and marketed by Apple Computer. IP Address .* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CSV .open standard for office documents. FAQ (Frequently Asked Questions) .a file format developed by Adobe Systems for representing two dimensional documents in a device independent and . Mac (Apple Macintosh) .a feature that allows quick access to the rows in a table.a set of Internet-based services for servers using Microsoft Windows. OS X . SQL (Structured Query Language) Database Management System (DBMS).a HTTP-connection with additional security measures.

one of the core protocols of the Internet protocol suite. * RFC .an open-source. defined and stored as horizontal rows and vertical columns where each item can be uniquely identified by a label or key or by it?s position in relation to other items. * SSL (Secure Sockets Layer) .a computer system that provides services to other computing systems over a network. by their location.A computer (program) that is responsible for accepting HTTP requests from clients and serving them Web pages.a sequence of characters. and methodologies applicable to Internet technologies.a set of data elements (cells) that is organized. * XML (Extensible Markup Language) .a form of inter-process communication.a popular data compression and archival format. conforming to a standardized format.represents a single. tulpel) . * ZIP . reflective programming language used mainly for developing server-side applications and dynamic web content. implicitly structured data item in a table.Request for Comments (RFC) documents are a series of memoranda encompassing new research.the PHP Extension and Application Repository. that is used for referring to resources.GZIP file format specification version 4. * * * * Copyright ? 2003 .a connection through which data is sent and received. * PEAR .a cryptographic protocol which provides secure communication on the Internet. * TCP (Transmission Control Protocol) .handlers for different table types * socket . * SQL . is an open-source. * zlib . * Table type * tar . * UFPDF . * RFC 1952 . * PCRE (Perl Compatible Regular Expressions) .Unicode/UTF-8 extension for FPDF * URL (Uniform Resource Locator) . * Server .resolution independent format. capable of describing many different kinds of data.short for "PHP: Hypertext Preprocessor". * Storage Engines . a broader range of software applications. innovations. * port .a W3C-recommended general-purpose markup language for creating special-purpose markup languages.the perl-compatible regular expression functions for PHP * PHP . cross-platform data compression library by Jean-loup Gailly and Mark Adler. such as documents and images on the Internet.a type of archive file format: the Tape ARchive format.Structured Query Language * table . and more recently. * Webserver .2010 phpMyAdmin devel team License Donate Valid HTML and CSS .3 * Row (record.