diff --git a/htdocs/sql/Documentation.txt b/htdocs/sql/Documentation.txt new file mode 100755 --- /dev/null +++ b/htdocs/sql/Documentation.txt @@ -0,0 +1,3328 @@ + * Top + * Requirements + * Introduction + * Installation + * Setup script + * Configuration + * Transformations + * FAQ + * Developers + * Credits + * Translators + * Glossary + +phpMyAdmin 2.11.9.5 Documentation + + * phpMyAdmin homepage + * SourceForge phpMyAdmin project page + * Official phpMyAdmin wiki + * Local documents: + + Version history: ChangeLog + + General notes: README + + License: LICENSE + * Documentation version: $Id: Documentation.html 12317 2009-03-24 21:04:18Z + lem9 $ + +Requirements + + * PHP + + You need PHP 4.2.0 or newer, with session support (see FAQ 1.31) + + You need GD2 support in PHP to display inline thumbnails of JPEGs + ("image/jpeg: inline") with their original aspect ratio + + You need PHP 4.3.0 or newer to use the "text/plain: external" + MIME-based transformation + + 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. + * MySQL 3.23.32 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, fields and indexes + * create, copy, drop, rename and alter databases, tables, fields 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, Excel and L^AT[E]X formats + * 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 + * support InnoDB tables and foreign keys (see FAQ 3.6) + * support mysqli, the improved MySQL extension (see FAQ 1.17) + * communicate in 54 different languages + +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. Quick Install + 2. Setup script usage + 3. Linked-tables infrastructure + 4. Upgrading from an older version + 5. 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 file 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: + + + + Or, if you prefer to not be prompted every time you log in: + + + + 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 # create directory for saving + chmod o+rw config # give it world writable permissions + + And to edit an existing configuration, copy it over first: + + cp config.inc.php config/ # copy current configuration for editing + 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. + + Next, open scripts/setup.php in your browser. Note that changes are not + saved to disk until explicitly choose Save from the Configuration area + of the screen. Normally the script saves the new config.inc.php to the + config/ directory, but if the webserver does not have the proper + permissions you may see the error "Cannot load or save configuration." + Ensure that the config/ directory exists and has the proper permissions + - or use the Download link to save the config file locally and upload + (via FTP or some similar means) to the proper location. + + Once the file has been saved, it must be moved out of the config/ + directory and the permissions must be reset, again as a security + measure: + + mv config/config.inc.php . # move file to current directory + chmod o-rw config.inc.php # remove world read and write permissions + + Now the file is ready to be used. You can choose to review or edit the + file with your favorite editor, if you prefer to set some advanced + options which the setup script does not provide. + 5. If you are using the auth_type "config", 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. Use of an + alternate authentication method is recommended, for example with HTTP?AUTH + in a .htaccess file or switch to using auth_type cookie or http. See the + multi?user sub?section of this FAQ for additional information, especially + FAQ 4.4. + 6. Open the main phpMyAdmin directory in your browser. phpMyAdmin should now + display a welcome screen and your databases, or a login dialog if using + HTTP or cookie authentication mode. + 7. You should deny access to the ./libraries subfolder in your webserver + configuration. For Apache you can use supplied .htaccess file in that + folder, for other webservers, you should configure this yourself. Such + configuration prevents from possible path exposure and cross side scripting + vulnerabilities that might happen to be found in that code. + +Linked-tables infrastructure + +For a whole set of new features (bookmarks, comments, SQL-history, +PDF-generation, field contents transformation, etc.) you need to create a set +of special tables. Those tables can be located in your own database, or in a +central database for a multi-user installation (this database would then be +accessed by the controluser, so no other user should have rights to it). + +Please look at your ./scripts/ directory, where you should find a file called +create_tables.sql. (If you are using a Windows server, pay special attention to +FAQ 1.23). + +If your MySQL server's version is 4.1.2 or later, please use ./scripts/ +create_tables_mysql_4_1_2+.sql instead, for a new installation. + +If you already had this infrastructure and upgraded to MySQL 4.1.2 or later, +please use ./scripts/upgrade_tables_mysql_4_1_2+.sql. + +You can use your phpMyAdmin to create the tables for you. Please be aware that +you may need special (administrator) privileges to create the database and +tables, and that the script may need some tuning, depending on the database +name. + +After having imported the ./scripts/create_tables.sql file, you should specify +the table names in your ./config.inc.php file. The directives used for that can +be found in the Configuration section. You will also need to have a controluser +with the proper rights to those tables (see section Using authentication modes +below). + +Upgrading from an older version + +Simply copy ./config.inc.php from your previous installation into the newly +unpacked one. Configuration files from very old versions (2.3.0 or before) may +require some tweaking as some options have been changed or removed. For +compatibility with PHP 6, remove a set_magic_quotes_runtime(0); statement that +you might find near the end of your configuration file. + +You should not copy libraries/config.default.php over config.inc.php because +the default configuration file is version-specific. + +If you have upgraded your MySQL server from a version previous to 4.1.2 to +version 4.1.2 or newer and if you use the pmadb/linked table infrastructure, +you should run the SQL script found in scripts/upgrade_tables_mysql_4_1_2+.sql. + +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. + Nevertheless be aware that MS Internet Explorer seems to be really buggy + about cookies, at least till version 6, and PHP 4.1.1 is also a bit buggy + in this area! + Even in a single-user environment, you might prefer to use HTTP or cookie + mode so that your user/password pair are not in clear in the configuration + file. + * 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). + However, keep in mind that the password travels in plain text, unless you + are using the HTTPS protocol. + In cookie mode, the password is stored, encrypted with the blowfish + algorithm, in a temporary cookie. + * Note: starting with phpMyAdmin 2.6.1, this section is only applicable if + your MySQL server is previous to 4.1.2, or is running with + --skip-show-database. + + For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has only + the SELECT privilege on the `mysql`.`user` (all columns except `Password`), + `mysql`.`db` (all columns), `mysql`.`host` (all columns) and `mysql`. + `tables_priv` (all columns except `Grantor` and `Timestamp`) tables. + You must specify the details for the controluser in the config.inc.php file + under the $cfg['Servers'][$i]['controluser'] and $cfg['Servers'][$i] + ['controlpass'] settings. + The following example assumes you want to use pma as the controluser and + pmapass as the controlpass, 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. + Of course you have to replace localhost with the webserver's host if it's + not the same as the MySQL server's one. + + GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass'; + GRANT SELECT ( + Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, + Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, + File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, + Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, + Execute_priv, Repl_slave_priv, Repl_client_priv + ) ON mysql.user TO 'pma'@'localhost'; + GRANT SELECT ON mysql.db TO 'pma'@'localhost'; + GRANT SELECT ON mysql.host TO 'pma'@'localhost'; + GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) + ON mysql.tables_priv TO 'pma'@'localhost'; + + If you are using an old MySQL version (below 4.0.2), please replace the + first GRANT SELECT query by this one: + + GRANT SELECT ( + Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, + Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, + File_priv, Grant_priv, References_priv, Index_priv, Alter_priv + ) ON mysql.user TO 'pma'@'localhost'; + + ... and if you want to use the many new relation and bookmark features: + + GRANT SELECT, INSERT, UPDATE, DELETE ON .* TO 'pma'@'localhost'; + + (this of course requires that your linked-tables infrastructure be set up). + Of course, the above queries only work if your MySQL version supports the + GRANT command. This is the case since 3.22.11. + * Then each of the true users should be granted a set of privileges on a set + of particular databases. Normally you shouldn't give global privileges to + an ordinary user, unless you understand the impact of those privileges (for + example, you are creating a superuser). + For example, to grant the user real_user with all privileges on the + database user_base: + + GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password'; + + What the user may now do is controlled entirely by the MySQL user + management system. + With HTTP or cookie authentication mode, you don't need to fill the user/ + password fields inside the $cfg['Servers'] array. + +'HTTP' authentication mode + + * Uses HTTP Basic authentication method and allows you to log in as any valid + MySQL user. + * Is supported with most PHP configurations. For IIS (ISAPI) support using + CGI PHP see FAQ 1.32, for using with Apache CGI see FAQ 1.35. + * See also FAQ 4.4 about not using the .htaccess mechanism along with 'HTTP' + authentication mode. + +'cookie' authentication mode + + * You can use this method as a replacement for the HTTP authentication (for + example, if you're running IIS). + * Obviously, the user must enable cookies in the browser, but this is now a + requirement for all authentication modes. + * With this mode, the user can truly log out of phpMyAdmin and log in back + with the same username. + * If you want to log in to arbitrary server see $cfg['AllowArbitraryServer'] + directive. + * As mentioned in the requirements section, having the mcrypt extension will + speed up access considerably, but is not required. + +'signon' authentication mode + + * This mode is a convenient way of using credentials from another application + to authenticate to phpMyAdmin. + * The other application has to store login information into session data. + * More details in the auth_type section. + +'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, anyone who can read your config.inc.php can discover your + username and password). + But you don't need to setup a "controluser" here: using the $cfg['Servers'] + [$i]['only_db'] might be enough. + * In the ISP FAQ section, there is an entry explaining how to protect your + configuration file. + * For additional security in this mode, you may wish to consider the Host + authentication $cfg['Servers'][$i]['AllowDeny']['order'] and $cfg + ['Servers'][$i]['AllowDeny']['rules'] configuration directives. + * Unlike cookie and http, does not require a user to log in when first + loading the phpMyAdmin site. This is by design but could allow any user to + access your installation. Use of some restriction method is suggested, + perhaps a .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). + +Configuration + +Warning for Mac users: PHP does not seem to like Mac end of lines character ("\ +r"). 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. + +Configuration note: Almost all configurable data is placed in config.inc.php. +If this file does not exist, please refer to the Quick install section to +create one. This file only needs to contain the parameters you want to change +from their corresponding default value in libraries/config.default.php. + +The parameters which relate to design (like colors) are placed in themes/ +themename/layout.inc.php. You might also want to create config.footer.inc.php +and config.header.inc.php files to add your site specific code to be included +on start and end of each page. + +$cfg['PmaAbsoluteUri'] string + Sets here the complete URL (with full path) to your phpMyAdmin + installation's directory. E.g. http://www.your_web.net/ + path_to_your_phpMyAdmin_directory/. Note also that the URL on some web + servers are case?sensitive. Don?t forget the trailing slash at the end. + + Starting with version 2.3.0, it is advisable to try leaving this blank. In + most cases phpMyAdmin automatically detects the proper setting. Users of + port forwarding will need to set PmaAbsoluteUri (more info). A good test is + to browse a table, edit a row and save it. There should be an error message + if phpMyAdmin is having trouble auto?detecting the correct value. If you + get an error that this must be set or if the autodetect code fails to + detect your path, please post a bug report on our bug tracker so we can + improve the code. +$cfg['PmaNoRelation_DisableWarning'] boolean + Starting with version 2.3.0 phpMyAdmin offers a lot of features to work + with master / foreign ? tables (see $cfg['Servers'][$i]['pmadb']). + If you tried to set this up and it does not work for you, have a look on + the "Structure" page of one database where you would like to use it. You + will find a link that will analyze why those features have been disabled. + If you do not want to use those features set this variable to TRUE to stop + this message from appearing. +$cfg['SuhosinDisableWarning'] boolean + A warning is displayed on the main page if Suhosin is detected. You can set + this parameter to TRUE to stop this message from appearing. +$cfg['AllowThirdPartyFraming'] boolean + Setting this to true allows a page located on a different domain to call + phpMyAdmin inside a frame, and is a potential security hole allowing + cross-frame scripting attacks. +$cfg['blowfish_secret'] string + The "cookie" auth_type uses blowfish algorithm to encrypt the password. + If you are using the "cookie" auth_type, enter here a random passphrase of + your choice. It will be used internally by the blowfish algorithm: you + won?t be prompted for this passphrase. The maximum number of characters for + this parameter seems to be 46. +$cfg['Servers'] array + Since version 1.4.2, phpMyAdmin supports the administration of multiple + MySQL servers. Therefore, a $cfg['Servers']-array has been added which + contains the login information for the different servers. The first $cfg + ['Servers'][$i]['host'] contains the hostname of the first server, the + second $cfg['Servers'][$i]['host'] the hostname of the second server, etc. + In ./libraries/config.default.php, there is only one section for server + definition, however you can put as many as you need in ./config.inc.php, + copy that block or needed parts (you don't have to define all settings, + just those you need to change). +$cfg['Servers'][$i]['host'] string + The hostname or IP address of your $i-th MySQL-server. E.g. localhost. +$cfg['Servers'][$i]['port'] string + The port-number of your $i-th MySQL-server. Default is 3306 (leave blank). + If you use "localhost" as the hostname, MySQL ignores this port number and + connects with the socket, so if you want to connect to a port different + from the default port, use "127.0.0.1" or the real hostname in $cfg + ['Servers'][$i]['host']. +$cfg['Servers'][$i]['socket'] string + The path to the socket to use. Leave blank for default. + To determine the correct socket, check your MySQL configuration or, using + the mysql command?line client, issue the status command. Among the + resulting information displayed will be the socket used. +$cfg['Servers'][$i]['ssl'] boolean + Whether to enable SSL for connection to MySQL server. +$cfg['Servers'][$i]['connect_type'] string + What type connection to use with the MySQL server. Your options are + 'socket' and 'tcp'. It defaults to 'tcp' as that is nearly guaranteed to be + available on all MySQL servers, while sockets are not supported on some + platforms. + + To use the socket mode, your MySQL server must be on the same machine as + the Web server. +$cfg['Servers'][$i]['extension'] string + What php MySQL extension to use for the connection. Valid options are: + + mysql : The classic MySQL extension. This is the recommended and default + method at this time. + + mysqli : The improved MySQL extension. This extension became available with + php 5.0.0 and is the recommended way to connect to a server running MySQL + 4.1.x. +$cfg['Servers'][$i]['compress'] boolean + Whether to use a compressed protocol for the MySQL server connection or not + (experimental). + This feature requires PHP >= 4.3.0. +$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, for a MySQL + server previous to 4.1.2 or running with --skip-show-database, to enable a + multi-user installation (HTTP or cookie authentication mode). + + When using HTTP or cookie authentication modes (or 'config' authentication + mode since phpMyAdmin 2.2.1), you need to supply the details of a MySQL + account that has SELECT privilege on the mysql.user (all columns except + "Password"), mysql.db (all columns) and mysql.tables_priv (all columns + except "Grantor" and "Timestamp") tables. This account is used to check + what databases the user will see at login. + Please see the install section on "Using authentication modes" for more + information. + + In phpMyAdmin versions before 2.2.5, those were called "stduser/stdpass". +$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. + + 'config' authentication ($auth_type = 'config') is the plain old way: + username and password are stored in config.inc.php. + + 'cookie' authentication mode ($auth_type = 'cookie') as introduced in + 2.2.3 allows you to log in as any valid MySQL user with the help of + cookies. Username and password are stored in cookies during the session + and password is deleted when it ends. This can also allow you to log in + in arbitrary server if $cfg['AllowArbitraryServer'] enabled. + + 'HTTP' authentication (was called 'advanced' in previous versions and + can be written also as 'http') ($auth_type = 'HTTP') as introduced in + 1.3.0 allows you to log in as any valid MySQL user via HTTP-Auth. + + 'signon' authentication mode ($auth_type = 'signon') as introduced in + 2.10.0 allows you to log in from prepared PHP session data. This is + useful for implementing single signon from another application. Sample + way how to seed session is in signon example: scripts/signon.php. You + need to configure session name and signon URL to use this + authentication method. + Please see the install section on "Using authentication modes" for more + information. +$cfg['Servers'][$i]['user'] string + $cfg['Servers'][$i]['password'] string + When using auth_type = 'config', this is the user/password-pair which + phpMyAdmin will use to connect to the MySQL server. This user/password pair + is not needed when HTTP or cookie authentication is used and should be + empty. +$cfg['Servers'][$i]['nopassword'] boolean + Allow attempt to log in without password when a login with password fails. + This can be used together with http authentication, when authentication is + done some other way and phpMyAdmin gets user name from auth and uses empty + password for connecting to MySQL. Password login is still tried first, but + as fallback, no password method is tried. +$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. Since phpMyAdmin 2.2.1, this/these database(s) + name(s) may contain MySQL wildcards characters ("_" and "%"): if you want + to use literal instances of these characters, escape them (I.E. use 'my\ + _db' and not 'my_db'). + This setting is an efficient way to lower the server load since the latter + does not need to send MySQL requests to build the available database list. + But it does not replace the privileges rules of the MySQL database server. + If set, it just means only these databases will be displayed but not that + all other databases can't be used. + + An example of using more that one database: $cfg['Servers'][$i]['only_db'] + = array('db1', 'db2'); + + As of phpMyAdmin 2.5.5 the order inside the array is used for sorting the + databases in the left frame, so that you can individually arrange your + databases. + If you want to have certain databases at the top, but don't care about the + others, you do not need to specify all other databases. Use: $cfg + ['Servers'][$i]['only_db'] = array('db3', 'db4', '*'); instead to tell + phpMyAdmin that it should display db3 and db4 on top, and the rest in + alphabetic order. +$cfg['Servers'][$i]['hide_db'] string + Regular expression for hiding some databases. This only hides them from + listing, but a user is still able to access them (using, for example, the + SQL query area). To limit access, use the MySQL privilege system. + + For example, to hide all databases starting with the letter "a", use + + $cfg['Servers'][$i]['hide_db'] = '^a'; + + and to hide both "db1" and "db2" use + + $cfg['Servers'][$i]['hide_db'] = '(db1|db2)'; + + More information on regular expressions can be found in the PCRE pattern + syntax portion of the PHP reference manual. +$cfg['Servers'][$i]['verbose'] string + Only useful when using phpMyAdmin with multiple server entries. If set, + this string will be displayed instead of the hostname in the pull-down menu + on the main page. This can be useful if you want to show only certain + databases on your system, for example. For HTTP auth, all non-US-ASCII + characters will be stripped. +$cfg['Servers'][$i]['pmadb'] string + The name of the database containing the linked-tables infrastructure. + + See the Linked-tables infrastructure section in this document to see the + benefits of this infrastructure, and for a quick way of creating this + database and the needed tables. + + If you are the only user of this phpMyAdmin installation, you can use your + current database to store those special tables; in this case, just put your + current database name in $cfg['Servers'][$i]['pmadb']. For a multi-user + installation, set this parameter to the name of your central database + containing the linked-tables infrastructure. +$cfg['Servers'][$i]['bookmarktable'] string + Since release 2.2.0 phpMyAdmin allows users to bookmark queries. This can + be useful for queries you often run. + + To allow the usage of this functionality: + + set up pmadb and the linked-tables infrastructure + + enter the table name in $cfg['Servers'][$i]['bookmarktable'] +$cfg['Servers'][$i]['relation'] string + Since release 2.2.4 you can describe, in a special 'relation' table, which + field is a key in another table (a foreign key). phpMyAdmin currently uses + this to + + make clickable, when you browse the master table, the data values that + point to the foreign table; + + display in an optional tool-tip the "display field" when browsing the + master table, if you move the mouse to a column containing a foreign + key (use also the 'table_info' table); + (see FAQ 6.7) + + in edit/insert mode, display a drop-down list of possible foreign keys + (key value and "display field" are shown) + (see FAQ 6.21) + + display links on the table properties page, to check referential + integrity (display missing foreign keys) for each described key; + + in query-by-example, create automatic joins (see FAQ 6.6) + + enable you to get a PDF schema of your database (also uses the + table_coords table). + The keys can be numeric or character. + + To allow the usage of this functionality: + + set up pmadb and the linked-tables infrastructure + + 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, click "Structure/Relation view/" + and choose foreign fields. + Please note that in the current version, master_db must be the same as + foreign_db. Those fields have been put in future development of the + cross-db relations. +$cfg['Servers'][$i]['table_info'] string + Since release 2.3.0 you can describe, in a special 'table_info' table, + which field is to be displayed as a tool-tip when moving the cursor over + the corresponding key. + This configuration variable will hold the name of this special table. To + allow the usage of this functionality: + + set up pmadb and the linked-tables infrastructure + + put the table name in $cfg['Servers'][$i]['table_info'] + + then for each table where you want to use this feature, click + "Structure/Relation view/Choose field to display" to choose the field. + Usage tip: Display field. +$cfg['Servers'][$i]['table_coords'] string + $cfg['Servers'][$i]['pdf_pages'] string + Since release 2.3.0 you can have phpMyAdmin create PDF pages showing the + relations between your tables. To do this it needs two tables "pdf_pages" + (storing information about the available PDF pages) and "table_coords" + (storing coordinates where each table will be placed on a PDF schema + output). + + You must be using the "relation" feature. + + To allow the usage of this functionality: + + set up pmadb and the linked-tables infrastructure + + put the correct table names in $cfg['Servers'][$i]['table_coords'] and + $cfg['Servers'][$i]['pdf_pages'] + Usage tips: PDF output. +$cfg['Servers'][$i]['column_info'] string + Since release 2.3.0 you can store comments to describe each column for each + table. These will then be shown on the "printview". + + Starting with release 2.5.0, comments are consequently used on the table + property pages and table browse view, showing up as tool-tips above the + column name (properties page) or embedded within the header of table in + browse view. They can also be shown in a table dump. Please see the + relevant configuration directives later on. + + Also new in release 2.5.0 is a MIME-transformation system which is also + based on the following table structure. See Transformations for further + information. To use the MIME-transformation system, your column_info table + has to have the three new fields 'mimetype', 'transformation', + 'transformation_options'. + + To allow the usage of this functionality: + + set up pmadb and the linked-tables infrastructure + + put the table name in $cfg['Servers'][$i]['column_info'] + + to update your PRE-2.5.0 Column_comments Table use this: + + ALTER TABLE `pma_column_comments` + ADD `mimetype` VARCHAR( 255 ) NOT NULL, + ADD `transformation` VARCHAR( 255 ) NOT NULL, + ADD `transformation_options` VARCHAR( 255 ) NOT NULL; + + and remember that the Variable in config.inc.php has been renamed from + $cfg['Servers'][$i]['column_comments'] to $cfg['Servers'][$i] + ['column_info'] +$cfg['Servers'][$i]['history'] string + Since release 2.5.0 you can store your SQL history, which means all queries + you entered manually into the phpMyAdmin interface. If you don't want to + use a table-based history, you can use the JavaScript-based history. Using + that, all your history items are deleted when closing the window. + + Using $cfg['QueryHistoryMax'] you can specify an amount of history items + you want to have on hold. On every login, this list gets cut to the maximum + amount. + + The query history is only available if JavaScript is enabled in your + browser. + + To allow the usage of this functionality: + + set up pmadb and the linked-tables infrastructure + + put the table name in $cfg['Servers'][$i]['history'] +$cfg['Servers'][$i]['designer_coords'] string + Since release 2.10.0 a Designer interface is available; it permits to + visually manage the relations. + + To allow the usage of this functionality: + + set up pmadb and the linked-tables infrastructure + + put the table name in $cfg['Servers'][$i]['designer_coords'] +$cfg['Servers'][$i]['verbose_check'] boolean + Because release 2.5.0 introduced the new MIME-transformation support, the + column_info table got enhanced with three new fields. If the above variable + is set to TRUE (default) phpMyAdmin will check if you have the latest table + structure available. If not, it will emit a warning to the superuser. + + You can disable this checking behavior by setting the variable to false, + which should offer a performance increase. + + Recommended to set to FALSE, when you are sure, your table structure is up + to date. +$cfg['Servers'][$i]['AllowRoot'] boolean + Whether to allow root access. This is just simplification of rules below. +$cfg['Servers'][$i]['AllowDeny']['order'] string + If your rule order is empty, then IP authentication is disabled. + + If your rule order is set to 'deny,allow' then the system applies all deny + rules followed by allow rules. Access is allowed by default. Any client + which does not match a Deny command or does match an Allow command will be + allowed access to the server. + + If your rule order is set to 'allow,deny' then the system applies all allow + rules followed by deny rules. Access is denied by default. Any client which + does not match an Allow directive or does match a Deny directive will be + denied access to the server. + + If your rule order is set to 'explicit', the authentication is performed in + a similar fashion to rule order 'deny,allow', with the added restriction + that your host/username combination must be listed in the allow rules, and + not listed in the deny rules. This is the most secure means of using Allow/ + Deny rules, and was available in Apache by specifying allow and deny rules + without setting any order. + + Please also see $cfg['TrustedProxies'] for detecting IP address behind + proxies. +$cfg['Servers'][$i]['AllowDeny']['rules'] array of strings + The general format for the rules is as such: + + <'allow' | 'deny'> [from] + + If you wish to match all users, it is possible to use a '%' as a wildcard + in the username field. + 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.0.0.0/0 + 'localhost' -> 127.0.0.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,allow' or 'deny % from all' if your rule + order is set to 'allow,deny' or 'explicit'. + + For the IP matching system, the following work: + xxx.xxx.xxx.xxx (an exact IP address) + xxx.xxx.xxx.[yyy-zzz] (an IP address range) + xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP addresses) + But the following does not work: + xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range) +$cfg['Servers'][$i]['SignonSession'] string + Name of session which will be used for signon authentication method. +$cfg['Servers'][$i]['SignonURL'] string + URL where user will be redirected to log in for signon authentication + method. Should be absolute including protocol. +$cfg['Servers'][$i]['LogoutURL'] string + URL where user will be redirected after logout (doesn't affect config + authentication method). Should be absolute including protocol. +$cfg['ServerDefault'] integer + If you have more than one server configured, you can set $cfg + ['ServerDefault'] to any one of them to autoconnect to that server when + phpMyAdmin is started, or set it to 0 to be given a list of servers without + logging in. + If you have only one server configured, $cfg['ServerDefault'] MUST be set + to that server. +$cfg['MaxDbList'] integer + The maximum number of database names to be displayed in the navigation + frame and the database list. +$cfg['MaxTableList'] integer + The maximum number of table names to be displayed in the main panel's list + (except on the Export page). This limit is also enforced in the navigation + panel when in Light mode. +$cfg['MaxCharactersInDisplayedSQL'] integer + The maximum number of characters when a SQL query is displayed. The default + limit of 1000 should be correct to avoid the display of tons of hexadecimal + codes that represent BLOBs, but some users have real SQL queries that are + longer than 1000 characters. Also, if a query's length exceeds this limit, + 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. + Set to true/false for enabling/disabling. When set to 'auto' (string), + phpMyAdmin tries to enable output buffering and will automatically disable + it if your browser has some problems with buffering. IE6 with a certain + patch is known to cause data corruption when having enabled buffering. +$cfg['PersistentConnections'] boolean + Whether persistent connections should be used or not (mysql_connect or + mysql_pconnect). +$cfg['ForceSSL'] boolean + Whether to force using https while accessing phpMyAdmin. +$cfg['ExecTimeLimit'] integer [number of seconds] + Set the number of seconds a script is allowed to run. If seconds is set to + zero, no time limit is imposed. + This setting is used while importing/exporting dump files but has no effect + when PHP is running in safe mode. +$cfg['MemoryLimit'] integer [number of bytes] + Set the number of bytes a script is allowed to allocate. If number set to + zero, no limit is imposed. + This setting is used while importing/exporting dump files but has no effect + when PHP is running in safe mode. + You can also use any string as in php.ini, eg. '16M'. +$cfg['SkipLockedTables'] boolean + Mark used tables and make it possible to show databases with locked tables + (since MySQL 3.23.30). +$cfg['ShowSQL'] boolean + Defines whether SQL queries generated by phpMyAdmin should be displayed or + not. +$cfg['AllowUserDropDatabase'] boolean + Defines whether normal users (non-administrator) are allowed to delete + their own database or not. If set as FALSE, the link "Drop Database" will + not be shown, and even a "DROP DATABASE mydatabase" will be rejected. Quite + practical for ISP's with many customers. + Please note that this limitation of SQL queries is not as strict as when + using MySQL privileges. This is due to nature of SQL queries which might be + quite complicated. So this choice should be viewed as help to avoid + accidental dropping rather than strict privilege limitation. +$cfg['Confirm'] boolean + Whether a warning ("Are your really sure...") should be displayed when + you're about to lose data. +$cfg['LoginCookieRecall'] boolean + Define whether the previous login should be recalled or not in cookie + authentication mode. +$cfg['LoginCookieValidity'] integer [number of seconds] + Define how long is login cookie valid. +$cfg['LoginCookieStore'] integer [number of seconds] + Define how long is login cookie should be stored in browser. Default 0 + means that it will be kept for existing session. This is recommended for + not trusted environments. +$cfg['LoginCookieDeleteAll'] boolean + If enabled (default), logout deletes cookies for all servers, otherwise + only for current one. Setting this to false makes it easy to forget to log + out from other server, when you are using more of them. +$cfg['UseDbSearch'] boolean + Define whether the "search string inside database" is enabled or not. +$cfg['IgnoreMultiSubmitErrors'] boolean + Define whether phpMyAdmin will continue executing a multi-query statement + if one of the queries fails. Default is to abort execution. +$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. + Defaults to TRUE. +$cfg['AllowArbitraryServer'] boolean + If enabled allows you to log in to arbitrary servers using cookie auth. + + NOTE: Please use this carefully, as this may allow users access to MySQL + servers behind the firewall where your HTTP server is placed. +$cfg['LeftFrameLight'] boolean + Defines whether to use a select-based menu and display only the current + tables in the left frame (smaller page). Only in Non-Lightmode you can use + the feature to display nested folders using $cfg['LeftFrameTableSeparator'] +$cfg['LeftFrameDBTree'] boolean + In light mode, defines whether to display the names of databases (in the + selector) using a tree, see also $cfg['LeftFrameDBSeparator']. +$cfg['LeftFrameDBSeparator'] string + The string used to separate the parts of the database name when showing + them in a tree. +$cfg['LeftFrameTableSeparator'] string + Defines a string to be used to nest table spaces. Defaults to '__'. This + means if you have tables like 'first__second__third' this will be shown as + a three-level hierarchy like: first > second > third. If set to FALSE or + empty, the feature is disabled. NOTE: You 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. +$cfg['LeftFrameTableLevel'] string + Defines how many sublevels should be displayed when splitting up tables by + the above separator. +$cfg['ShowTooltip'] boolean + Defines whether to display table comment as tool-tip in left frame or not. +$cfg['ShowTooltipAliasDB'] boolean + If tool-tips are enabled and a DB comment is set, 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, you will see the name + 'MyName' used consequently in the left frame and the tool-tip shows the + real name of the DB. +$cfg['ShowTooltipAliasTB'] boolean/string + Same as $cfg['ShowTooltipAliasDB'], except this works for table names. When + setting this to 'nested', the Alias of the Tablename is only used to split/ + nest the tables according to the $cfg['LeftFrameTableSeparator'] directive. + So only the folder is called like the Alias, the tablename itself stays the + real tablename. +$cfg['LeftDisplayLogo'] boolean + Defines whether or not to display the phpMyAdmin logo at the top of the + left frame. Defaults to TRUE. +$cfg['LeftLogoLink'] string + Enter URL where logo in the navigation frame will point to. For use + especially with self made theme which changes this. The default value for + this is main.php. +$cfg['LeftLogoLinkWindow'] string + Whether to open the linked page in the main window (main) or in a new one + (new). Note: use new if you are linking to phpmyadmin.net. +$cfg['LeftDisplayServers'] boolean + Defines whether or not to display a server choice at the top of the left + frame. Defaults to FALSE. +$cfg['DisplayServersList'] boolean + Defines whether to display this server choice as links instead of in a + drop-down. Defaults to FALSE (drop-down). +$cfg['DisplayDatabasesList'] boolean or text + Defines whether to display database choice in light navigation frame as + links instead of in a drop-down. Defaults to 'auto' - on main page list is + shown, when database is selected, only drop down is displayed. +$cfg['ShowStats'] boolean + Defines whether or not to display space usage and statistics about + databases and tables. + Note that statistics requires at least MySQL 3.23.3 and that, at this date, + MySQL doesn't return such information for Berkeley DB tables. +$cfg['ShowServerInfo'] boolean + Defines whether to display detailed server information on main page. You + can additionally hide more information by using $cfg['Servers'][$i] + ['verbose']. +$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. This setting does not check MySQL commands entered directly. + + Please note that to block the usage of phpinfo() in scripts, you have to + put this in your php.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, end users can't be allowed to change their + passwords. +$cfg['SuggestDBName'] boolean + Defines whether to suggest a database name on the "Create Database" form or + to keep the textfield empty. +$cfg['ShowBlob'] boolean + Defines whether or not BLOB fields are shown when browsing a table's + content. +$cfg['NavigationBarIconic'] string + Defines whether navigation bar buttons and the right panel top menu contain + text or symbols only. A value of TRUE displays icons, FALSE displays text + and 'both' displays both icons and text. +$cfg['ShowAll'] boolean + Defines whether a user should be displayed a "show all (records)" button in + browse mode or not. +$cfg['MaxRows'] integer + Number of rows displayed when browsing a result set. If the result set + contains more rows, "Previous" and "Next" links will be shown. +$cfg['Order'] string [DESC|ASC|SMART] + Defines whether fields are displayed in ascending (ASC) order, in + descending (DESC) order or in a "smart" (SMART) order - I.E. descending + order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending + order else- by default. +$cfg['ProtectBinary'] boolean or string + Defines whether BLOB or BINARY fields are protected from editing when + browsing a table's content. Valid values are: + + FALSE to allow editing of all fields; + + 'blob' to allow editing of all fields except BLOBS; + + 'all' to disallow editing of all BINARY or BLOB fields. +$cfg['ShowFunctionFields'] boolean + Defines whether or not MySQL functions fields should be initially displayed + in edit/insert mode. Since version 2.10, the user can toggle this setting + from the interface. +$cfg['CharEditing'] string + Defines which type of editing controls should be used for CHAR and VARCHAR + fields. Possible values are: + + input - this allows to limit size of text to size of field in MySQL, + but has problems with newlines in fields + + textarea - no problems with newlines in fields, but also no length + limitations + Default is old behavior so input. +$cfg['InsertRows'] integer + Defines the maximum number of concurrent entries for the Insert page. +$cfg['ForeignKeyMaxLimit'] integer + If there are fewer items than this in the set of foreign keys, then a + drop-down box of foreign keys is presented, in the style described by the + $cfg['ForeignKeyDropdownOrder'] setting. +$cfg['ForeignKeyDropdownOrder'] array + For the foreign key drop-down fields, there are several methods of display, + offering both the key and value data. The contents of the array should be + one or both of the following strings: 'content-id', 'id-content'. +$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. 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. + Produced files contain more GZip/BZip2 headers, but all normal programs + handle this correctly. +$cfg['LightTabs'] boolean + If set to TRUE, use less graphically intense tabs on the top of the + mainframe. +$cfg['PropertiesIconic'] string + If set to TRUE, will display icons instead of text for db and table + properties links (like 'Browse', 'Select', 'Insert', ...). + Can be set to 'both' if you want icons AND text. + When set to FALSE, will only show text. +$cfg['PropertiesNumColumns'] integer + How many columns will be utilized to display the tables on the database + property view? Default is 1 column. When setting this to a value larger + than 1, the type of the database will be omitted for more display space. +$cfg['DefaultTabServer'] string + Defines the tab displayed by default on server view. Possible values: + "main.php" (recommended for multi-user setups), "server_databases.php", + "server_status.php", "server_variables.php", "server_privileges.php" or + "server_processlist.php". +$cfg['DefaultTabDatabase'] string + Defines the tab displayed by default on database view. Possible values: + "db_structure.php", "db_sql.php" or "db_search.php". +$cfg['DefaultTabTable'] string + Defines the tab displayed by default on table view. Possible values: + "tbl_structure.php", "tbl_sql.php", "tbl_select.php", "tbl_change.php" or + "sql.php". +$cfg['MySQLManualBase'] string + If set to an URL which points to the MySQL documentation (type depends on + $cfg['MySQLManualType']), appropriate help links are generated. + See MySQL Documentation page for more information about MySQL manuals and + their types. +$cfg['MySQLManualType'] string + Type of MySQL documentation: + + viewable - "viewable online", current one used on MySQL website + + searchable - "Searchable, with user comments" + + chapters - "HTML, one page per chapter" + + big - "HTML, all on one page" + + none - do not show documentation links +$cfg['DefaultLang'] string + Defines the default language to use, if not browser-defined or + user-defined. + See the select_lang.lib.php script to know the valid values for this + setting. +$cfg['DefaultConnectionCollation'] string + Defines the default connection collation to use, if not user-defined. + See the MySQL documentation for list of possible values. +$cfg['Lang'] string + Force: always use this language (must be defined in the select_lang.lib.php + script). +$cfg['FilterLanguages'] string + Limit list of available languages to those matching the given regular + expression. For example if you want only Czech and English, you should set + filter to '^(cs|en)'. +$cfg['DefaultCharset'] string + Default character set to use for recoding of MySQL queries. This must be + enabled and it's described by $cfg['AllowAnywhereRecoding'] option. + You can give here any character set which is in $cfg['AvailableCharsets'] + array and this is just default choice, user can select any of them. +$cfg['AllowAnywhereRecoding'] boolean + Allow character set recoding of MySQL queries. You need recode or iconv + support (compiled in or module) in PHP to allow MySQL queries recoding and + used language file must have it enabled (by default only these which are in + Unicode, just to avoid losing some characters). + + Setting this to TRUE also activates a pull-down menu in the Export page, to + choose the character set when exporting a file. +$cfg['RecodingEngine'] string + You can select here which functions will be used for character set + conversion. Possible values are: + + auto - automatically use available one (first is tested iconv, then + recode) + + iconv - use iconv or libiconv functions + + recode - use recode_string function + Default is auto. +$cfg['IconvExtraParams'] string + Specify some parameters for iconv used in charset conversion. See iconv + documentation for details. By default //TRANSLIT is used, so that invalid + characters will be transliterated. +$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. Character + sets will be shown in same order as here listed, so if you frequently use + some of these move them to the top. +$cfg['TrustedProxies'] array + Lists proxies and HTTP headers which are trusted for IP Allow/Deny. This + list is by default empty, you need to fill in some trusted proxy servers if + you want to use rules for IP addresses behind proxy. + + The following example specifies that phpMyAdmin should trust a + HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy + 1.2.3.4: + + $cfg['TrustedProxies'] = + array('1.2.3.4' => 'HTTP_X_FORWARDED_FOR'); + + The $cfg['Servers'][$i]['AllowDeny']['rules'] directive uses the client's + IP address as usual. +$cfg['GD2Available'] string + Specifies whether GD >= 2 is available. If yes it can be used for MIME + transformations. + Possible values are: + + 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['NaviWidth'] integer + Navi frame width in pixels. See themes/themename/layout.inc.php. +$cfg['NaviBackground'] string [valid css code for background] + $cfg['MainBackground'] string [valid css code for background] + The background styles used for both the frames. See themes/themename/ + layout.inc.php. +$cfg['NaviPointerBackground'] string [valid css code for background] + $cfg['NaviPointerColor'] string [valid css color] + The style used for the pointer in the navi frame. See themes/themename/ + layout.inc.php. +$cfg['NaviDatabaseNameColor'] string [valid css code] + The color used for the database name 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 [valid css code for background] + $cfg['ThColor'] string [valid css color] + The style used for table headers. See themes/themename/layout.inc.php. +$cfg['BgOne'] string [HTML color] + The color (HTML) #1 for table rows. See themes/themename/layout.inc.php. +$cfg['BgTwo'] string [HTML color] + The color (HTML) #2 for table rows. See themes/themename/layout.inc.php. +$cfg['BrowsePointerBackground'] string [HTML color] + $cfg['BrowsePointerColor'] string [HTML color] + $cfg['BrowseMarkerBackground'] string [HTML color] + $cfg['BrowseMarkerColor'] string [HTML 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. + 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 fields should have double size. +$cfg['TextareaAutoSelect'] boolean + Defines if the whole textarea of the query box will be selected on click. +$cfg['CtrlArrowsMoving'] boolean + Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when + editing. +$cfg['LimitChars'] integer + Maximum number of characters showen 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 modify and delete links would be put when tables + contents are displayed (you may have them displayed both at the left and at + the right). "Left" and "right" are parsed as "top" and "bottom" with + vertical display mode. +$cfg['DefaultDisplay'] string $cfg['HeaderFlipType'] 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 fields only contain small values + and still print them out. The vertical mode sorts each row on a vertical + lineup. + + The HeaderFlipType can be set to 'css' or 'fake'. When using 'css' the + rotation of the header for horizontalflipped is done via CSS. If set to + 'fake' PHP does the transformation for you, but of course this does not + look as good as CSS. +$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 fields still in 'horizontal' mode. + This way you can still effectively edit large number of fields, 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 field. The comment is + shown as a tool-tip for that field. +$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 the 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 for native MS Excel export, see FAQ 6.23 +$cfg['Export'] array + In this array are defined default parameters for export, names of items are + similar to texts seen on export page, so you can easily identify what they + mean. +$cfg['Import'] array + In this array are defined default parameters for import, names of items are + similar to texts seen on import page, so you can easily identify what they + mean. +$cfg['RepeatCells'] integer + Repeat the headers every X cells, or 0 to deactivate. +$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. A SQL link or icon is + always displayed on the left panel. If JavaScript is enabled in your + browser, a click on this opens a distinct query window, which is a direct + interface to enter SQL queries. Otherwise, the right panel changes to + display a query box. + + The size of this query window can be customized with $cfg + ['QueryWindowWidth'] and $cfg['QueryWindowWidth'] - both integers for the + size in pixels. Note that normally, those parameters will be modified in + layout.inc.php for the theme you are using. + + If $cfg['EditInWindow'] is set to true, a click on [Edit] from the results + page (in the "Showing Rows" section) opens the query window and puts the + current query inside it. If set to false, clicking on the link puts the SQL + query in the right panel's query box. + + The usage of the JavaScript query window is recommended if you have a + JavaScript enabled browser. Basic functions are used to exchange quite a + few variables, so most 4th generation browsers should be capable to use + that feature. It currently is only tested with Internet Explorer 6 and + Mozilla 1.x. + + If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged to a + table, which has to be created by you (see $cfg['Servers'][$i]['history']). + If set to FALSE, all your queries will be appended to the form, but only as + long as your window is opened they remain saved. + + When using the JavaScript based query window, it will always get updated + when you click on a new table/db to browse and will focus if you click on + "Edit SQL" after using a query. You can suppress updating the query window + by checking the box "Do not overwrite this query from outside the window" + below the query textarea. Then you can browse tables/databases in the + background without losing the contents of the textarea, so this is + especially useful when composing a query with tables you first have to look + in. The checkbox will get automatically checked whenever you change the + contents of the textarea. Please uncheck the button whenever you definitely + want the query window to get updated even though you have made alterations. + + If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount of + saved history items using $cfg['QueryHistoryMax']. + + The query window also has a custom tabbed look to group the features. Using + the variable $cfg['QueryWindowDefTab'] you can specify the default tab to + be used when opening the query window. It can be set to either 'sql', + 'files', 'history' or 'full'. +$cfg['BrowseMIME'] boolean + Enable MIME-transformations. +$cfg['MaxExactCount'] integer + For InnoDB tables, determines for how large tables phpMyAdmin should get + the exact row count using SELECT COUNT. If the approximate row count as + returned by SHOW TABLE STATUS is smaller than this value, SELECT COUNT will + be used, otherwise the approximate count will be used. +$cfg['MaxExactCountViews'] integer + For VIEWs, since obtaining the exact count could have an impact on + performance, this value is the maximum to be displayed, using a SELECT + COUNT ... LIMIT. The default value of 0 bypasses any row counting. +$cfg['WYSIWYG-PDF'] boolean + Utilizes a WYSIWYG editing control to easily place elements of a PDF page. + By clicking on the button 'toggle scratchboard' on the page where you edit + x/y coordinates of those elements you can activate a scratchboard where all + your elements are placed. By clicking on an element, you can move them + around in the pre-defined area and the x/y coordinates will get updated + dynamically. Likewise, when entering a new position directly into the input + field, the new position in the scratchboard changes after your cursor + leaves the input field. + You have to click on the 'OK'-button below the tables to save the new + positions. If you want to place a new element, first add it to the table of + elements and then you can drag the new element around. + By changing the paper size and the orientation you can change the size of + the scratchboard as well. You can do so by just changing the dropdown field + below, and the scratchboard will resize automatically, without interfering + with the current placement of the elements. + If ever an element gets out of range you can either enlarge the paper size + or click on the 'reset' button to place all elements below each other. + NOTE: You have to use a recent browser like IE6 or Mozilla to get this + control to work. The basic Drag&Drop script functionality was kindly + borrowed from www.youngpup.net and is underlying so specific license. +$cfg['NaturalOrder'] boolean + Sorts database and table names according to natural order (for example, t1, + t2, t10). Currently implemented in the left panel (Light mode) and in + Database view, for the table list. +$cfg['TitleTable'] string +$cfg['TitleDatabase'] string +$cfg['TitleServer'] string +$cfg['TitleDefault'] string + Allows you to specify window's title bar. Following magic string can be + used to get special values: + + @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, otherwise normal + @DATABASE@ + Currently opened database + @TABLE@ + Currently opened table + @PHPMYADMIN@ + phpMyAdmin with version + +$cfg['ErrorIconic'] boolean + Uses icons for warnings, errors and informations. +$cfg['MainPageIconic'] boolean + Uses icons on main page in lists and menu tabs. +$cfg['ReplaceHelpImg'] boolean + Shows a help button instead of the "Documentation" message. +$cfg['ThemePath'] string + If theme manager is active, use this as the path of the subdirectory + containing all the themes. +$cfg['ThemeManager'] boolean + Enables user-selectable themes. See FAQ 2.7. +$cfg['ThemeDefault'] string + The default theme (a subdirectory under cfg['ThemePath']). +$cfg['ThemePerServer'] boolean + Whether to allow different theme for each server. +$cfg['DefaultQueryTable'] string + $cfg['DefaultQueryDatabase'] string + Default queries that will be displayed in query boxes when user didn't + specify any. Use %d for database name, %t for table name and %f for a comma + separated list of field names. Note that %t and %f are only applicable to + $cfg['DefaultQueryTable']. +$cfg['SQP']['fmtType'] string [html|none] + The main use of the new SQL Parser is to pretty-print SQL queries. By + default we use HTML to format the query, but you can disable this by + setting this variable to 'none'. +$cfg['SQP']['fmtInd'] float + $cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex] + For the pretty-printing of SQL queries, under some cases the part of a + query inside a bracket is indented. By changing $cfg['SQP']['fmtInd'] you + can change the amount of this indent. + Related in purpose is $cfg['SQP']['fmtIndUnit'] which specifies the units + of the indent amount that you specified. This is used via stylesheets. +$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. The tuple format is + class => [HTML colour code | empty string] + If you specify an empty string for the color of a class, it is ignored in + creating the stylesheet. You should not alter the class names, only the + colour strings. + Class name key: + + comment Applies to all comment sub-classes + + comment_mysql Comments as "#...\n" + + comment_ansi Comments as "-- ...\n" + + comment_c Comments as "/*...*/" + + 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 "," + + punct_qualifier Table/Column Qualifier "." + + punct_queryend End of query marker ";" + + 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. + For help in setting up your system to use the service, see the FAQ 6.14 + . + $cfg['SQLValidator']['username'] string + $cfg['SQLValidator']['password'] string + The SOAP service allows you to log in with anonymous and any password, + so we use those by default. Instead, if you have an account with them, + you can put your login details here, and it will be used in place of + the anonymous login. + +$cfg['DBG'] + DEVELOPERS ONLY! +$cfg['DBG']['enable'] boolean + DEVELOPERS ONLY! + Enable the DBG extension for debugging phpMyAdmin. Required for profiling + the code. + For help in setting up your system to this, see the Developers section. +$cfg['DBG']['profile']['enable'] boolean + DEVELOPERS ONLY! + Enable profiling support for phpMyAdmin. This will append a chunk of data + to the end of every page displayed in the main window with profiling + statistics for that page. + You may need to increase the maximum execution time for this to complete + successfully.Profiling was removed from the code for version 2.9.0 due to + licensing issues. +$cfg['DBG']['profile']['threshold'] float (units in milliseconds) + DEVELOPERS ONLY! + When profiling data is displayed, this variable controls the threshold of + display for any profiling data, based on the average time each time has + taken. If it is over the threshold it is displayed, otherwise it is not + displayed. This takes a value in milliseconds. In most cases you don't need + to edit this. +$cfg['ColumnTypes'] array + All possible types of a MySQL column. In most cases you don't need to edit + this. +$cfg['AttributeTypes'] array + Possible attributes for fields. In most cases you don't need to edit this. +$cfg['Functions'] array + A list of functions MySQL supports. In most cases you don't need to edit + this. +$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. +$cfg['RestrictFunctions'] array + Functions preferred for column meta types as defined in $cfg + ['RestrictColumnTypes']. In most cases you don't need to edit this. +$cfg['DefaultFunctions'] array + Functions selected by default when inserting/changing row, Functions are + defined for meta types from $cfg['RestrictColumnTypes'] and for + first_timestamp, which is used for first timestamp column in table. +$cfg['NumOperators'] array + Operators available for search operations on numeric and date fields. +$cfg['TextOperators'] array + Operators available for search operations on character fields. Note that we + put LIKE by default instead of LIKE %...%, to avoid unintended performance + problems in case of huge tables. +$cfg['EnumOperators'] array + Operators available for search operations on enum fields. +$cfg['NullOperators'] array + Additional operators available for search operations when the field can be + null. + +Transformations + + 1. Introduction + 2. Usage + 3. File structure + +1. Introduction + +To enable transformations, you have to setup the column_info table and the +proper directives. Please see the Configuration section on how to do so. + +You can apply different transformations to the contents of each field. The +transformation will take the content of each field and transform it with +certain rules defined in the selected transformation. + +Say you have a field 'filename' which contains a filename. Normally you would +see in phpMyAdmin only this filename. Using transformations you can transform +that filename into a HTML link, so you can click inside of the phpMyAdmin +structure on the field's link and will see the file displayed in a new browser +window. Using transformation options you can also specify strings to append/ +prepend to a string or the format you want the output stored in. + +For a general overview of all available transformations and their options, you +can consult your // +transformation_overview.php installation. + +For a tutorial on how to effectively use transformations, see our Link section +on the official phpMyAdmin homepage. + +2. Usage + +Go to your tbl_structure.php page (i.e. reached through clicking on the +'Structure' link for a table). There click on "Change" (or change icon) and +there you will see three new fields at the end of the line. They are called +'MIME-type', 'Browser transformation' and 'Transformation options'. + + * The field 'MIME-type' is a drop-down field. Select the MIME-type that + corresponds to the column's contents. Please note that transformations are + inactive as long as no MIME-type is selected. + * The field 'Browser transformation' is a drop-down field. You can choose + from a hopefully growing amount of pre-defined transformations. See below + for information on how to build your own transformation. + There are global transformations and mimetype-bound transformations. Global + transformations can be used for any mimetype. They will take the mimetype, + if necessary, into regard. Mimetype-bound transformations usually only + operate on a certain mimetype. There are transformations which operate on + the main mimetype (like 'image'), which will most likely take the subtype + into regard, and those who only operate on a specific subtype (like 'image/ + jpeg'). + You can use transformations on mimetypes for which the function was not + defined for. There is no security check for you selected the right + transformation, so take care of what the output will be like. + * The field 'Transformation options' is a free-type textfield. You have to + enter transform-function specific options here. Usually the transforms can + operate with default options, but it is generally a good idea to look up + the overview to see which options are necessary. + Much like the ENUM/SET-Fields, you have to split up several options using + the format 'a','b','c',...(NOTE THE MISSING BLANKS). This is because + internally the options will be parsed as an array, leaving the first value + the first element in the array, and so forth. + If you want to specify a MIME character set you can define it in the + transformation_options. You have to put that outside of the pre-defined + options of the specific mime-transform, as the last value of the set. Use + the format "'; charset=XXX'". If you use a transform, for which you can + specify 2 options and you want to append a character set, enter "'first + parameter','second parameter','charset=us-ascii'". You can, however use the + defaults for the parameters: "'','','charset=us-ascii'". + +3. File structure + +All mimetypes and their transformations are defined through single files in the +directory 'libraries/transformations/'. + +They are stored in files to ease up customization and easy adding of new +transformations. + +Because the user cannot enter own mimetypes, it is kept sure that +transformations always work. It makes no sense to apply a transformation to a +mimetype, the transform-function doesn't know to handle. + +One can, however, use empty mime-types and global transformations which should +work for many mimetypes. You can also use transforms on a different mimetype +they where built for, but pay attention to option usage as well as what the +transformation does to your field. + +There is a basic file called 'global.inc.php'. This function can be included by +any other transform function and provides some basic functions. + +There are 5 possible file names: + + 1. A mimetype+subtype transform: + + [mimetype]_[subtype]__[transform].inc.php + + Please not that mimetype and subtype are separated via '_', which shall not + be contained in their names. The transform function/filename may contain + only characters which cause no problems in the file system as well as the + PHP function naming convention. + + The transform function will the be called 'PMA_transform_[mimetype]_ + [subtype]__[transform]()'. + + Example: + + text_html__formatted.inc.php + PMA_transform_text_html__formatted() + 2. A mimetype (w/o subtype) transform: + + [mimetype]__[transform].inc.php + + Please note that there are no single '_' characters. The transform function + /filename may contain only characters which cause no problems in the file + system as well as the PHP function naming convention. + + The transform function will the be called 'PMA_transform_[mimetype]__ + [transform]()'. + + Example: + + text__formatted.inc.php + PMA_transform_text__formatted() + 3. A mimetype+subtype without specific transform function + + [mimetype]_[subtype].inc.php + + Please note that there are no '__' characters in the filename. Do not use + special characters in the filename causing problems with the file system. + + No transformation function is defined in the file itself. + + Example: + + text_plain.inc.php + (No function) + 4. A mimetype (w/o subtype) without specific transform function + + [mimetype].inc.php + + Please note that there are no '_' characters in the filename. Do not use + special characters in the filename causing problems with the file system. + + No transformation function is defined in the file itself. + + Example: + + text.inc.php + (No function) + 5. A global transform function with no specific mimetype + + global__[transform].inc.php + + The transform function will the be called 'PMA_transform_global__ + [transform]()'. + + Example: + + global__formatted + PMA_transform_global__formatted() + +So generally use '_' to split up mimetype and subtype, and '__' to provide a +transform function. + +All filenames containing no '__' in themselves are not shown as valid transform +functions in the dropdown. + +Please see the libraries/transformations/TEMPLATE file for adding your own +transform function. See the libraries/transformations/TEMPLATE_MIMETYPE for +adding a mimetype without a transform function. Also note the introduction of a +function description in the language files. For each function a +$strTransformation_[filename without .inc.php] has to exist. + +You can use the template generator to generate new functions and entries in the +language file. + +To create a new transform function please see libraries/transformations/ +template_generator.sh. To create a new, empty mimetype please see libraries/ +transformations/template_generator_mimetype.sh. + +A transform function always gets passed three variables: + + 1. $buffer - Contains the text inside of the column. This is the text, you + want to transform. + 2. $options - Contains any user-passed options to a transform function as an + array. + 3. $meta - Contains an object with field information to your column. The data + is drawn from the output of the mysql_fetch_field() function. This means, + all object properties described on the manual page are available in this + variable and can be used to transform a field accordingly to unsigned/ + zerofill/not_null/... properties. + The $meta->mimetype variable contains the original MIME-type of the field + (i.e. 'text/plain', 'image/jpeg' etc.) + +FAQ - Frequently Asked Questions + + 1. Server + 2. Configuration + 3. Known limitations + 4. ISPs, multi-user installations + 5. Browsers or client OS + 6. Using phpMyAdmin + 7. phpMyAdmin project + 8. Security + +Please have a look at our Link section on the official phpMyAdmin homepage for +in-depth coverage of phpMyAdmin's features and or interface. + +Server + +1.1 I'm running PHP 4+ and my server is crashing each time a specific action is +required or phpMyAdmin sends a blank page or a page full of cryptic characters +to my browser, what can I do? + +There are some known PHP bugs with output buffering and compression. +Try to set the $cfg['OBGzip'] directive to FALSE in your config.inc.php file +and the zlib.output_compression directive to Off in your php configuration +file. +Furthermore, we know about such problems connected to the release candidates of +PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with MS Internet +Explorer. Please upgrade to the release version PHP 4.2.0. + +1.2 My Apache server crashes when using phpMyAdmin. + +You should first try the latest versions of Apache (and possibly MySQL). +See also the FAQ 1.1 entry about PHP bugs with output buffering. +If your server keeps crashing, please ask for help in the various Apache +support groups. + +1.3 I'm running phpMyAdmin with "cookie" authentication mode under PHP 4.2.0 or +4.2.1 loaded as an Apache 2 module but can't enter the script: I'm always +displayed the login screen. + +This is a known PHP bug (see this bug report) from the official PHP bug +database. It means there is and won't be any phpMyAdmin fix against it because +there is no way to code a fix. + +1.4 Using phpMyAdmin on IIS, I'm displayed the error message: "The specified +CGI application misbehaved by not returning a complete set of HTTP headers +...". + +You just forgot to read the install.txt file from the php distribution. Have a +look at the last message in this bug report from the official PHP bug database. + +1.5 Using phpMyAdmin on IIS, I'm facing crashes and/or many error messages with +the HTTP or advanced authentication mode. + +This is a known problem with the PHP ISAPI filter: it's not so stable. Please +use instead the cookie authentication mode. + +1.6 I can't use phpMyAdmin on PWS: nothing is displayed! + +This seems to be a PWS bug. 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.php, libraries/header_printview.inc.php, +index.php, navigation.php and libraries/common.lib.php. + +1.7 How can I GZip or Bzip a dump or a CSV export? It does not seem to work. + +These features are based on the gzencode() and bzcompress() PHP functions to be +more independent of the platform (Unix/Windows, Safe Mode or not, and so on). +So, you must have PHP4 >= 4.0.4 and Zlib/Bzip2 support (--with-zlib and +--with-bz2). +We faced PHP crashes when trying to download a dump with MS Internet Explorer +when phpMyAdmin is run with a release candidate of PHP 4.2.0. In this case you +should switch to the release version of PHP 4.2.0. + +1.8 I cannot insert a text file in a table, and I get an error about safe mode +being in effect. + +Your uploaded file is saved by PHP in the "upload dir", as defined in php.ini +by the variable upload_tmp_dir (usually the system default is /tmp). +We recommend the following setup for Apache servers running in safe mode, to +enable uploads of files while being reasonably secure: + + * create a separate directory for uploads: mkdir /tmp/php + * give ownership to the Apache server's user.group: chown apache.apache /tmp/ + php + * give proper permission: chmod 600 /tmp/php + * put upload_tmp_dir = /tmp/php in php.ini + * restart Apache + +1.9 I'm having troubles when uploading files. In general file uploads don't +work on my system and uploaded files have a Content-Type: header in the first +line. + +It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0 and +you updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't you? +So the problem is that this package has a serious bug that was corrected ages +ago in PHP (2001-01-28: see PHP's bug tracking system for more details). The +problem is that the bugged package is still available though it was corrected +(see RedHat's BugZilla for more details). +So please download the fixed package (4.0.4pl1-9) and the problem should go +away. +And that fixes the \r\n problem with file uploads! + +1.10 I'm having troubles when uploading files with phpMyAdmin running on a +secure server. My browser is Internet Explorer and I'm using the Apache server. + +As suggested by "Rob M" in the phpWizard forum, add this line to your +httpd.conf: + +SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown + +It seems to clear up many problems between Internet Explorer and SSL. + +1.11 I get an 'open_basedir restriction' while uploading a file from the query +box. + +Since version 2.2.4, phpMyAdmin supports servers with open_basedir +restrictions. Assuming that the restriction allows you to open files in the +current directory ('.'), all you have to do is create a 'tmp' directory under +the phpMyAdmin install directory, with permissions 777 and the same owner as +the owner of your phpMyAdmin directory. The uploaded files will be moved there, +and after execution of your SQL commands, removed. + +1.12 I have lost my MySQL root password, what can I do? + +The MySQL manual explains how to reset the permissions. + +1.13 I get an error 'No SQL query' when trying to execute a bookmark. + +If PHP does not have read/write access to its upload_tmp_dir, it cannot access +the uploaded query. + +1.14 I get an error 'No SQL query' when trying to submit a query from the +convenient text area. + +Check the post_max_size directive from your PHP configuration file and try to +increase it. + +1.15 I have problems with mysql.user field names. + +In previous MySQL versions, the User and Password fields were named user and +password. Please modify your field names to align with current standards. + +1.16 I cannot upload big dump files (memory, HTTP or timeout problems). + +Starting with version 2.7.0, the import engine has been re?written and these +problems should not occur. If possible, upgrade your phpMyAdmin to the latest +version to take advantage of the new import features. + +The first things to check (or ask your host provider to check) are the values +of upload_max_filesize, memory_limit and post_max_size in the php.ini +configuration file. All of these three settings limit the maximum size of data +that can be submitted and handled by PHP. One user also said that post_max_size +and memory_limit need to be larger than upload_max_filesize. + +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. This allows one to upload a file to + the server via scp, ftp, or your favorite file transfer method. PhpMyAdmin + is then able to import the files from the temporary directory. More + information is available in the Configuration section of this document. + * Using a utility (such as BigDump) to split the files before uploading. We + cannot support this or any third party applications, but are aware of users + having success with it. + * If you have shell (command line) access, use MySQL to import the files + directly. You can do this by issuing the "source" command from within + MySQL: source filename.sql. + +1.17 Which MySQL versions does phpMyAdmin support? + +All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are fully +supported. Please note that the older your MySQL version is, the more +limitations you will have to face. +phpMyAdmin may 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.0. +Either way, the developers of both extensions recommend to use the classic +extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer. +When compiling php, we strongly recommend that you manually link the MySQL +extension of your choice to a MySQL client library of at least the same minor +version since the one that is bundled with some php distributions is rather old +and might cause problems (see FAQ 1.17a). If your webserver is running on a +windows system, you might want to try MySQL's Connector/PHP instead of the +MySQL / MySQLi extensions that are bundled with the official php Win32 builds. +MySQL 5.1 is not yet supported. + +1.17a I cannot connect to the MySQL server. It always returns the error +message, "Client does not support authentication protocol requested by server; +consider upgrading MySQL client" + +You tried to access MySQL with an old MySQL client library. The version of your +MySQL client library can be checked in your phpinfo() output. In general, it +should have at least the same minor version as your server - as mentioned in +FAQ 1.17. + +This problem is generally caused by using MySQL version 4.1 or newer. MySQL +changed the authentication hash and your PHP is trying to use the old method. +The proper solution is to use the mysqli extension with the proper client +library to match your MySQL installation. Your chosen extension is specified in +$cfg['Servers'][$i]['extension']. More information (and several workarounds) +are located in the MySQL Documentation. + +1.18 I'm running MySQL <= 4.0.1 having lower_case_table_names set to 1. If I +create a new table with a capital letter in its name it is changed to lowercase +as it should. But if I try to DROP this table MySQL is unable to find the +corresponding file. + +This is a bug of MySQL <= 4.0.1. Please upgrade to at least MySQL 4.0.2 or turn +off your lower_case_table_names directive. + +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. +Please refers to the FPDF manual to build these files. + +1.20 I receive the error "cannot load MySQL extension, please check PHP +Configuration". + +To connect to a MySQL server, PHP needs a set of MySQL functions called "MySQL +extension". This extension may be part of the PHP distribution (compiled-in), +otherwise it needs to be loaded dynamically. Its name is probably mysql.so or +php_mysql.dll. phpMyAdmin tried to load the extension but failed. + +Usually, the problem is solved by installing a software package called +"PHP-MySQL" or something similar. + +1.21 I am running the CGI version of PHP under Unix, and I cannot log in using +cookie auth. + +In php.ini, set mysql.max_links higher than 1. + +1.22 I don't see the "Location of text file" field, so I cannot upload. + +This is most likely because in php.ini, your file_uploads parameter is not set +to "on". + +1.23 I'm running MySQL on a Win32 machine. Each time I create a new table the +table and field 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. You can change this behavior by simply +changing the directive to 0 (OFF): +Just edit your my.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, save the file and restart the MySQL service. You can always check the +value of this directive using the query + +SHOW VARIABLES LIKE 'lower_case_table_names'; + +1.24 Some characters are being truncated in my queries, or I get characters +randomly added. I am running PHP 4.2.3. + +This is a PHP 4.2.3 bug. + +1.25 I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get +problems, such as undefined variables when I run a SQL query. + +A tip from Jose Fandos: put a comment on the following two lines in httpd.conf, +like this: + +# mod_gzip_item_include file \.php$ +# mod_gzip_item_include mime "application/x-httpd-php.*" + +as this version of mod_gzip on Apache (Windows) has problems handling PHP +scripts. Of course you have to restart Apache. + +1.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. + +This is a permission problem. Right-click on the phpmyadmin folder and choose +properties. Under the tab Security, click on "Add" and select the user +"IUSR_machine" from the list. Now set his permissions and it should work. + +1.27 I get empty page when I want to view huge page (eg. db_structure.php with +plenty of tables). + +This is a PHP bug that occur when GZIP output buffering is enabled. If you turn +off it (by $cfg['OBGzip'] = false in config.inc.php), it should work. This bug +will be fixed in PHP 5.0.0. + +1.28 My MySQL server sometimes refuses queries and returns the message +'Errorcode: 13'. 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. To fix this, +turn off this directive, convert all database and table names to lower case and +turn it on again. Alternatively, there's a bug-fix available starting with +MySQL 3.23.56 / 4.0.11-gamma. + +1.29 When I create a table or modify a field, I get an error and the fields are +duplicated. + +It is possible to configure Apache in such a way that PHP has problems +interpreting .php files. + +The problems occur when two different (and conflicting) set of directives are +used: + +SetOutputFilter PHP +SetInputFilter PHP + +and + +AddType application/x-httpd-php .php + +In the case we saw, one set of directives was in /etc/httpd/conf/httpd.conf, +while the other set was in /etc/httpd/conf/addon-modules/php.conf. +The recommended way is with AddType, so just comment out the first set of lines +and restart Apache: + +#SetOutputFilter PHP +#SetInputFilter PHP + +1.30 I get the error "navigation.php: Missing hash". + +This problem is known to happen when the server is running Turck MMCache but +upgrading MMCache to version 2.3.21 solves the problem. + +1.31 Does phpMyAdmin support php5? + +Yes. +However, phpMyAdmin needs to be backwards compatible to php4. This is why +phpMyAdmin disables the E_STRICT error_level in error_reporting settings. + +1.32 Can I use HTTP authentication with IIS? + +Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI mode +under IIS 5.1. + + 1. In your php.ini file, set cgi.rfc2616_headers = 0 + 2. In Web Site Properties -> File/Directory Security -> Anonymous Access + dialog box, check the Anonymous access checkbox and uncheck any other + checkboxes (i.e. uncheck Basic authentication, Integrated Windows + authentication, and Digest if it's enabled.) Click OK. + 3. In Custom Errors, select the range of 401;1 through 401;5 and click the Set + to Default button. + +1.33 Is there a problem with the mysqli extension when running PHP 5.0.4 on +64-bit systems? + +Yes. This problem affects phpMyAdmin ("Call to undefined function +pma_reloadnavigation"), so upgrade your PHP to the next version. + +1.34 Can I access directly to database or table pages? + +Yes. Out of the box, you can use URLs like http://server/phpMyAdmin/index.php? +server=X&db=database&table=table&target=script. For server you use the server +number which refers to the order of the server paragraph in config.inc.php. +Table and script parts are optional. If you want http://server/phpMyAdmin/ +database[/table][/script] URLs, you need to do some configuration. Following +lines apply only for Apache web server. First make sure, that you have enabled +some features within global configuration. You need Options FollowSymLinks and +AllowOverride FileInfo enabled for directory where phpMyAdmin is installed and +you need mod_rewrite to be enabled. Then you just need to create following +.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_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R] +RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R] +RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R] +RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R] + +1.35 Can I use HTTP authentication with Apache CGI? + +Yes. However you need to pass authentication variable to CGI using following +rewrite rule: + +RewriteEngine On +RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L] + +1.36 I get an error "500 Internal Server Error". + +There can be many explanations to this and a look at your server's error log +file might give a clue. + +1.37 I run phpMyAdmin on cluster of different machines and password encryption +in cookie auth doesn't work. + +If your cluster consist of different architectures, PHP code used for +encryption/decryption won't work correct. This is caused by use of pack/unpack +functions in code. Only solution is to use mcrypt extension which works fine in +this case. + +1.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, for example editing a table with many columns and no +primary key. Tuning information is available at http://www.hardened-php.net/ +hphp/troubleshooting.html, although the parameter names have changed (suhosin +instead of hphp). See also the SuhosinDisableWarning directive. + +Configuration + +2.1 The error message "Warning: Cannot add header information - headers already +sent by ..." is displayed, what's the problem? + +Edit your config.inc.php file and ensure there is nothing (I.E. no blank lines, +no spaces, no characters...) neither before the tag at the end. We also got a report from a user under +IIS, that used a zipped distribution kit: the file libraries/Config.class.php +contained an end-of-line character (hex 0A) at the end; removing this character +cleared his errors. + +2.2 phpMyAdmin can't connect to MySQL. What's wrong? + +Either there is an error with your PHP setup or your username/password is +wrong. Try to make a small script which uses mysql_connect and see if it works. +If it doesn't, it may be you haven't even compiled MySQL support into PHP. + +2.3 The error message "Warning: MySQL Connection Failed: Can't connect to local +MySQL server through socket '/tmp/mysql.sock' (111) ..." is displayed. What can +I do? + +For RedHat users, Harald Legner suggests this on the mailing list: + +On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In your +php.ini you will find a line + +mysql.default_socket = /tmp/mysql.sock + +change it to + +mysql.default_socket = /var/lib/mysql/mysql.sock + +Then restart apache and it will work. + +Here is a fix suggested by Brad Ummer: + + * First, you need to determine what socket is being used by MySQL. + To do this, telnet to your server and go to the MySQL bin directory. In + this directory there should be a file named mysqladmin. Type ./mysqladmin + variables, and this should give you a bunch of info about your MySQL + server, including the socket (/tmp/mysql.sock, for example). + * Then, you need to tell PHP to use this socket. + To do this in phpMyAdmin, you need to complete the socket information in + the config.inc.php. + For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock'; + + Please also make sure that the permissions of this file allow to be + readable by your webserver (i.e. '0755'). + +Have also a look at the corresponding section of the MySQL documentation. + +2.4 Nothing is displayed by my browser when I try to run phpMyAdmin, what can I +do? + +Try to set the $cfg['OBGZip'] directive to FALSE in the phpMyAdmin +configuration file. It helps sometime. +Also have a look at your PHP version number: if it contains "4.0b..." it means +you're running a beta version of PHP. That's not a so good idea, please upgrade +to a plain revision. + +2.5 Each time I want to insert or change a record or drop a database or a +table, an error 404 (page not found) is displayed or, with HTTP or cookie +authentication, I'm asked to log in again. What's wrong? + +Check the value you set for the $cfg['PmaAbsoluteUri'] directive in the +phpMyAdmin configuration file. + +2.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. + +When you are using a port on your localhost, which you redirect via +port-forwarding to another host, MySQL is not resolving the localhost as +expected. +Erik Wasser explains: The solution is: if your host is "localhost" MySQL (the +commandline tool 'mysql' as well) always tries to use the socket connection for +speeding up things. And that doesn't work in this configuration with port +forwarding. +If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the +TCP connection. + +2.7 Using and creating themes + +Themes are configured with $cfg['ThemePath'], $cfg['ThemeManager'] and $cfg +['ThemeDefault']. + +Under $cfg['ThemePath'], you should not delete the directory "original" or its +underlying structure, because this is the system theme used by phpMyAdmin. +"original" contains all images and styles, for backwards compatibility and for +all themes that would not include images or css-files. + +If $cfg['ThemeManager'] is enabled, you can select your favorite theme on the +main page. Your selected theme will be stored in a cookie. + + +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.inc.php in "your_theme_name" + * edit info.inc.php in "your_theme_name" to contain your chosen theme name, + that will be visible in user interface + * make a new screenshot of your theme and save it under "your_theme_name/ + screen.png" + +In theme directory there is file info.inc.php which contains theme verbose +name, theme generation and theme version. These versions and generations are +enumerated from 1 and do not have any direct dependence on phpMyAdmin version. +Themes within same generation should be backwards compatible - theme with +version 2 should work in phpMyAdmin requiring version 1. Themes with different +generation are incompatible. + +If you do not want to use your own symbols and buttons, remove the directory +"img" in "your_theme_name". phpMyAdmin will use the default icons and buttons +(from the system-theme "original"). + +2.8 I get "Missing parameters" errors, what can I do? + +Here are a few points to check: + + * In config.inc.php, try to leave the $cfg['PmaAbsoluteUri'] directive empty. + See also FAQ 4.7. + * Maybe you have a broken PHP installation or you need to upgrade your Zend + Optimizer. See http://bugs.php.net/bug.php?id=31134. + * If you are using Hardened PHP with the ini directive + varfilter.max_request_variables set to the default (200) or another low + value, you could get this error if your table has a high number of columns. + Adjust this setting accordingly. (Thanks to Klaus Dorninger for the hint). + * In the php.ini directive arg_separator.input, a value of ";" will cause + this error. Replace it with "&;". + * If you are using Hardened-PHP, you might want to increase request limits. + * The directory specified in the php.ini directive session.save_path does not + exist or is read-only. + +Known limitations + +3.1 When using HTTP authentication, an user who logged out can not log in again +in with the same nick. + +This is related to the authentication mechanism (protocol) used by phpMyAdmin. +To bypass this problem: just close all the opened browser windows and then go +back to phpMyAdmin. You should be able to log in again. + +3.2 When dumping a large table in compressed mode, I get a memory limit error +or a time limit error. + +Compressed dumps are built in memory and because of this are limited to php's +memory limit. For GZip/BZip2 exports this can be overcome since 2.5.4 using +$cfg['CompressOnFly'] (enabled by default). Zip exports can not be handled this +way, so if you need Zip files for larger dump, you have to use another way. + +3.3 With InnoDB tables, I lose foreign key relationships when I rename or alter +a table. + +This seems to be a InnoDB bug (fixed in MySQL 3.23.50?). + +3.4 I am unable to import dumps I created with the mysqldump tool bundled with +the MySQL server distribution. + +The problem is that older versions of mysqldump created invalid comments like +this: + +-- MySQL dump 8.22 +-- +-- Host: localhost Database: database +--------------------------------------------------------- +-- Server version 3.23.54 + +The invalid part of the code is the horizontal line made of dashes that appears +once in every dump created with mysqldump. If you want to run your dump you +have to turn it into valid MySQL. This means, you have to add a whitespace +after the first two dashes of the line or add a # before it: +-- ------------------------------------------------------- +or +#--------------------------------------------------------- + +3.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, or at the beginning/end of your table +name. If you have to, think about using another TableSeparator or disabling +that feature + +3.6 What is currently not supported in phpMyAdmin about InnoDB? + +In Relation view, being able to choose a table in another database, or having +more than one index field in the foreign key. + +In Query-by-example (Query), automatic generation of the query LEFT JOIN from +the foreign table. + + +3.7 I have table with many (100+) fields and when I try to browse table I get +series of errors like "Warning: unable to parse url". How can this be fixed? + +Your table neither have a primary key nor an unique one, so we must use a long +expression to identify this row. This causes problems to parse_url function. +The workaround is to create a primary or unique key. + +3.8 I cannot use (clickable) HTML-forms in fields where I put a +MIME-Transformation onto! + +Due to a surrounding form-container (for multi-row delete checkboxes), no +nested forms can be put inside the table where phpMyAdmin displays the results. +You can, however, use any form inside of a table if keep the parent +form-container with the target to tbl_row_delete.php and just put your own +input-elements inside. If you use a custom submit input field, the form will +submit itself to the displaying page again, where you can validate the +$HTTP_POST_VARS in a transformation. For a tutorial on how to effectively use +transformations, see our Link section on the official phpMyAdmin-homepage. + +3.9 I get error messages when using "--sql_mode=ANSI" for the MySQL server + +When MySQL is running in ANSI-compatibility mode, there are some major +differences in how SQL is structured (see http://dev.mysql.com/doc/mysql/en/ +ANSI_mode.html). Most important of all, the quote-character (") is interpreted +as an identifier quote character and not as a string quote character, which +makes many internal phpMyAdmin operations into invalid SQL statements. There is +no workaround to this behaviour. News to this item will be posted in Bug report +#816858 + +3.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), if I click +Edit I cannot be sure that I am editing the intended row. + +Please make sure that your table has a primary key, so that phpMyAdmin can use +it for the Edit and Delete links. + +3.11 The number of records for InnoDB tables is not correct. + +phpMyAdmin uses a quick method to get the row count, and this method only +returns an approximate count in the case of InnoDB tables. See $cfg +['MaxExactCount'] for a way to modify those results, but this could have a +serious impact on performance. + +3.12 What are the phpMyAdmin limitations for MySQL 3? + +The number of records in queries containing COUNT and GROUP BY is not correctly +calculated. Also, sorting results of a query like "SELECT * from table GROUP +BY" ... is problematic. + +3.13 I get an error when entering USE followed by a db name containing an +hyphen. + +The tests I have made with current MySQL 4.1.11 API shows that the API does not +accept this syntax for the USE command. Enclosing the db name with backquotes +works. For further confusion, no backquotes are needed with command-line mysql. + +3.14 I am not able to browse a table when I don't have the right to SELECT one +of the columns. + +This has been a known limitation of phpMyAdmin since the beginning and it's not +likely to be solved in the future. + +ISPs, multi-user installations + +4.1 I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to +install it for each customer. + +Since version 2.0.3, you can setup a central copy of phpMyAdmin for all your +users. The development of this feature was kindly sponsored by NetCologne GmbH. +This requires a properly setup MySQL user management and phpMyAdmin HTTP or +cookie authentication. See the install section on "Using HTTP authentication". + +4.2 What's the preferred way of making phpMyAdmin secure against evil access. + +This depends on your system. +If you're running a server which cannot be accessed by other people, it's +sufficient to use the directory protection bundled with your webserver (with +Apache you can use .htaccess files, for example). +If other people have telnet access to your server, you should use phpMyAdmin's +HTTP or cookie authentication features. + +Suggestions: + + * Your config.inc.php file should be chmod 660. + * All your phpMyAdmin files should be chown -R phpmy.apache, where phpmy is a + user whose password is only known to you, and apache is the group under + which Apache runs. + * You should use PHP safe mode, to protect from other users that try to + include your config.inc.php in their scripts. + +4.3 I get errors about not being able to include a file in /lang or in / +libraries. + +Check php.ini, or ask your sysadmin to check it. The include_path must contain +"." somewhere in it, and open_basedir, if used, must contain "." and "./lang" +to allow normal operation of phpMyAdmin. + +4.4 phpMyAdmin always gives "Access denied" when using HTTP authentication. + +This could happen for several reasons: + + * $cfg['Servers'][$i]['controluser'] and/or $cfg['Servers'][$i] + ['controlpass'] are wrong. + * The username/password you specify in the login dialog are invalid. + * You have already setup a security mechanism for the phpMyAdmin-directory, + eg. a .htaccess file. This would interfere with phpMyAdmin's + authentication, so remove it. + +4.5 Is it possible to let users create their own databases? + +Starting with 2.2.5, in the user management page, you can enter a wildcard +database name for a user (for example "joe%"), and put the privileges you want. +For example, adding SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER +would let a user create/manage his/her database(s). + +4.6 How can I use the Host-based authentication additions? + +If you have existing rules from an old .htaccess file, you can take them and +add a username between the 'deny'/'allow' and 'from' strings. Using the +username wildcard of '%' would be a major benefit here if your installation is +suited to using it. Then you can just add those updated lines into the $cfg +['Servers'][$i]['AllowDeny']['rules'] array. + +If you want a pre-made sample, you can try this fragment. It stops the 'root' +user from logging in from any networks other than the private network IP +blocks. + +//block root from logging in except from the private networks +$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow'; +$cfg['Servers'][$i]['AllowDeny']['rules'] = array( + 'deny root from all', + 'allow root from localhost', + 'allow root from 10.0.0.0/8', + 'allow root from 192.168.0.0/16', + 'allow root from 172.16.0.0/12', + ); + +4.7 Authentication window is displayed more than once, why? + +This happens if you are using a URL to start phpMyAdmin which is different than +the one set in your $cfg['PmaAbsoluteUri']. For example, a missing "www", or +entering with an IP address while a domain name is defined in the config file. + +4.8 Which parameters can I use in the URL that starts phpMyAdmin? + +When starting phpMyAdmin, you can use the db, pma_username, pma_password and +server parameters. 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. Using pma_username and pma_password has been tested along +with the usage of 'cookie' auth_type. + +Browsers or client OS + +5.1 I get an out of memory error, and my controls are non-functional, when +trying to create a table with more than 14 fields. + +We could reproduce this problem only under Win98/98SE. Testing under WinNT4 or +Win2K, we could easily create more than 60 fields. +A workaround is to create a smaller number of fields, then come back to your +table properties and add the other fields. + +5.2 With Xitami 2.5b4, phpMyAdmin won't process form fields. + +This is not a phpMyAdmin problem but a Xitami known bug: you'll face it with +each script/website that use forms. +Upgrade or downgrade your Xitami server. + +5.3 I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2). + +With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that the +proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps don't +seem to work. +With Konqueror 2.2.1: plain dumps work; zip dumps are placed into the user's +temporary directory, so they must be moved before closing Konqueror, or else +they disappear. GZip dumps give an error message. +Testing needs to be done for Konqueror 2.2.2. + +5.4 I can't use the cookie authentication mode because Internet Explorer never +stores the cookies. + +MS Internet Explorer seems to be really buggy about cookies, at least till +version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1 bug in +this area! +Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may work! + +5.5 In Internet Explorer 5.0, I get JavaScript errors when browsing my rows. + +Upgrade to at least Internet Explorer 5.5 SP2. + +5.6 In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not +found") when trying to modify a row in a table with many fields, or with a text +field + +Your table neither have a primary key nor an unique one, so we must use a long +URL to identify this row. There is a limit on the length of the URL in those +browsers, and this not happen in Netscape, for example. The workaround is to +create a primary or unique key, or use another browser. + +5.7 I refresh (reload) my browser, and come back to the welcome page. + +Some browsers support right-clicking into the frame you want to refresh, just +do this in the right frame. + +5.8 With Mozilla 0.9.7 I have problems sending a query modified in the query +box. + +Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future Mozilla +versions. + +5.9 With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a whitespace in +the SQL-Query edit area: the page scrolls down. + +This is a Mozilla bug (see bug #26882 at BugZilla). + +5.10 With Netscape 4.75 I get empty rows between each row of data in a CSV +exported file. + +This is a known Netscape 4.75 bug: it adds some line feeds when exporting data +in octet-stream mode. Since we can't detect the specific Netscape version, we +cannot workaround this bug. + +5.11 Extended-ASCII characters like German umlauts are displayed wrong. + +Please ensure that you have set your browser's character set to the one of the +language file you have selected on phpMyAdmin's start page. Alternatively, you +can try the auto detection mode that is supported by the recent versions of the +most browsers. + +5.12 Mac OS X: Safari browser changes special characters to "?". + +This issue has been reported by a OS X user, who adds that Chimera, Netscape +and Mozilla do not have this problem. + +5.13 With Internet Explorer 5.5 or 6, and HTTP authentication type, I cannot +manage two servers: I log in to the first one, then the other one, but if I +switch back to the first, I have to log in on each operation. + +This is a bug in Internet Explorer, other browsers do not behave this way. + +5.14 Using Opera6, I can manage to get to the authentication, but nothing +happens after that, only a blank screen. + +Having $cfg['QueryFrameJS'] set o TRUE, this leads to a bug in Opera6, because +it is not able to interpret frameset definitions written by JavaScript. Please +upgrade your phpMyAdmin installtion or to Opera7 at least. + +5.15 I have display problems with Safari. + +Please upgrade to at least version 1.2.3. + +5.16 With Internet Explorer, I get "Access is denied" Javascript errors. Or I +cannot make phpMyAdmin work under Windows. + +Please check the following points: + + * Maybe you have defined your PmaAbsoluteUri setting in config.inc.php to an + IP address and you are starting phpMyAdmin with a URL containing a domain + name, or the reverse situation. + * Security settings in IE and/or Microsoft Security Center are too high, thus + blocking scripts execution. + * The Windows Firewall is blocking Apache and MySQL. You must allow HTTP + ports (80 or 443) and MySQL port (usually 3306) in the "in" and "out" + directions. + +5.17 With Firefox, I cannot delete rows of data or drop a database. + +Many users have confirmed that the Tabbrowser Extensions plugin they installed +in their Firefox is causing the problem. + +Using phpMyAdmin + +6.1 I can't insert new rows into a table / I can't create a table - MySQL +brings up a SQL-error. + +Examine the SQL error with care. Often the problem is caused by specifying a +wrong field-type. +Common errors include: + + * Using VARCHAR without a size argument + * Using TEXT or BLOB with a size argument + +Also, look at the syntax chapter in the MySQL manual to confirm that your +syntax is correct. + +6.2 When I create a table, I click the Index checkbox for 2 fields and +phpMyAdmin generates only one index with those 2 fields. + +In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields index. +If you want two indexes, create the first one when creating the table, save, +then display the table properties and click the Index link to create the other +index. + +6.3 How can I insert a null value into my table? + +Since version 2.2.3, you have a checkbox for each field that can be null. +Before 2.2.3, you had to enter "null", without the quotes, as the field's +value. Since version 2.5.5, you have to use the checkbox to get a real NULL +value, so if you enter "NULL" this means you want a literal NULL in the field, +and not a NULL value (this works in PHP4). + +6.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. Then on the menu, click "Export", you can dump the structure, the +data, or both. This will generate standard SQL statements that can be used to +recreate your database/table. + +You will need to choose "Save as file", so that phpMyAdmin can transmit the +resulting dump to your station. Depending on your PHP configuration, you will +see options to compress the dump. See also the $cfg['ExecTimeLimit'] +configuration variable. + +For additional help on this subject, look for the word "dump" in this document. + +6.5 How can I restore (upload) my database or table using a dump? How can I run +a ".sql" file? + +Click on a database name in the left frame, the properties will be displayed. +Select "Import" from the list of tabs in the right?hand frame (or "SQL" if your +phpMyAdmin version is previous to 2.7.0). In the "Location of the text file" +section, type in the path to your dump filename, or use the Browse button. Then +click Go. + +With version 2.7.0, the import engine has been re?written, if possible it is +suggested that you upgrade to take advantage of the new features. + +For additional help on this subject, look for the word "upload" in this +document. + +6.6 How can I use the relation table in Query-by-example? + +Here is an example with the tables persons, towns and countries, all located in +the database mydb. If you don't have a pma_relation table, create it as +explained in the configuration section. Then create the example tables: + +CREATE TABLE REL_countries ( + country_code char(1) NOT NULL default '', + description varchar(10) NOT NULL default '', + PRIMARY KEY (country_code) +) TYPE=MyISAM; + +INSERT INTO REL_countries VALUES ('C', 'Canada'); + +CREATE TABLE REL_persons ( + id tinyint(4) NOT NULL auto_increment, + person_name varchar(32) NOT NULL default '', + town_code varchar(5) default '0', + country_code char(1) NOT NULL default '', + PRIMARY KEY (id) +) TYPE=MyISAM; + +INSERT INTO REL_persons VALUES (11, 'Marc', 'S', ''); +INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C'); + +CREATE TABLE REL_towns ( + town_code varchar(5) NOT NULL default '0', + description varchar(30) NOT NULL default '', + PRIMARY KEY (town_code) +) TYPE=MyISAM; + +INSERT INTO REL_towns VALUES ('S', 'Sherbrooke'); +INSERT INTO REL_towns VALUES ('M', 'Montr?al'); + +To setup appropriate links and display information: + + * on table "REL_persons" click Structure, then Relation view + * in Links, for "town_code" choose "REL_towns->code" + * in Links, for "country_code" choose "REL_countries->country_code" + * on table "REL_towns" click Structure, then Relation view + * in "Choose field to display", 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, towns, countries + * Click "Update query" + * In the fields row, choose persons.person_name and click the "Show" tickbox + * Do the same for towns.description and countries.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.7 How can I use the "display field" feature? + +Starting from the previous example, create the pma_table_info as explained in +the configuration section, then browse your persons table, and move the mouse +over a town code or country code. + +See also FAQ 6.21 for an additional feature that "display field" enables: +drop-down list of possible values. + +6.8 How can I produce a PDF schema of my database? + +First the configuration variables "relation", "table_coords" and "pdf_pages" +have to be filled in. + +Then you need to think about your schema layout. Which tables will go on which +pages? + + * Select your database in the left frame. + * Choose "Operations" in the navigation bar at the top. + * Choose "Edit PDF Pages" near the bottom of the page. + * Enter a name for the first PDF page and click Go. If you like, you can use + the "automatic layout," which will put all your linked tables onto the new + page. + * Select the name of the new page (making sure the Edit radio button is + selected) and click Go. + * Select a table from the list, enter its coordinates and click Save. + Coordinates are relative; your diagram will be automatically scaled to fit + the page. When initially placing tables on the page, just pick any + coordinates -- say, 50x50. After clicking Save, you can then use the + graphical editor to position the element correctly. + * When you'd like to look at your PDF, first be sure to click the Save button + beneath the list of tables and coordinates, to save any changes you made + there. Then scroll all the way down, select the PDF options you want, and + click Go. + * Internet Explorer for Windows may suggest an incorrect filename when you + try to save a generated PDF. When saving a generated PDF, be sure that the + filename ends in ".pdf", for example "schema.pdf". Browsers on other + operating systems, and other browsers on Windows, do not have this problem. + +6.9 phpMyAdmin is changing the type of one of my columns! + +No, it's MySQL that is doing silent column type changing. + +6.10 When creating a privilege, what happens with underscores in the database +name? + +If you do not put a backslash before the underscore, this is a wildcard grant, +and the underscore means "any character". So, if the database name is +"john_db", the user would get rights to john1db, john2db ... + +If you put a backslash before the underscore, it means that the database name +will have a real underscore. + +6.11 What is the curious symbol ? in the statistics pages? + +It means "average". + +6.12 I want to understand some Export options. + +Structure: + + * "Add DROP TABLE" will add a line telling MySQL to drop the table, if it + already exists during the import. It does NOT drop the table after your + export, it only affects the import file. + * "If Not Exists" will only create the table if it doesn't exist. Otherwise, + you may get an error if the table name exists but has a different + structure. + * "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any) will + be included in backup. + * "Enclose table and field names with backquotes" ensures that field and + table names formed with special characters are protected. + * "Add into comments" includes column comments, relations, and MIME types set + in the pmadb in the dump as SQL comments (/* xxx */). + +Data: + + * "Complete inserts" adds the column names on every INSERT command, for + better documentation (but resulting file is bigger). + * "Extended inserts" provides a shorter dump file by using only once the + INSERT verb and the table name. + * "Delayed inserts" are best explained in the MySQL manual. + * "Ignore inserts" treats errors as a warning instead. Again, more info is + provided in the MySQL manual, but basically with this selected, invalid + values are adjusted and inserted rather than causing the entire statement + to fail. + +6.13 I would like to create a database with a dot in its name. + +This is a bad idea, because in MySQL the syntax "database.table" is the normal +way to reference a database and table name. Worse, MySQL will usually let you +create a database with a dot, but then you cannot work with it, nor delete it. + +6.14 How do I set up the SQL Validator? + +To use it, you need a very recent version of PHP, 4.3.0 recommended, with XML, +PCRE and PEAR support. On your system command line, run "pear install +Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP" to get the necessary +PEAR modules for usage. +On a more recent pear version, I had problems with the state of Net_DIME being +beta, so this single command "pear -d preferred_state=beta install -a SOAP" +installed all the needed modules. +If you use the Validator, you should be aware that any SQL statement you submit +will be stored anonymously (database/table/column names, strings, numbers +replaced with generic values). The Mimer SQL Validator itself, is ? 2001 +Upright Database Technology. We utilize it as free SOAP service. + +6.15 I want to add a BLOB field and put an index on it, but MySQL says "BLOB +column '...' used in key specification without a key length". + +The right way to do this, is to create the field without any indexes, then +display the table structure and use the "Create an index" dialog. On this page, +you will be able to choose your BLOB field, and set a size to the index, which +is the condition to create an index on a BLOB field. + +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, row editing, etc.) (must be +enabled in configuration - see. $cfg['CtrlArrowsMoving']). You can also have a +look at the directive $cfg['DefaultPropDisplay'] ('vertical') and see if this +eases up editing for you. + +6.17 Transformations: I can't enter my own mimetype! WTF is this feature then +useful for? + +Slow down :). Defining mimetypes is of no use, if you can't put transformations +on them. Otherwise you could just put a comment on the field. Because entering +your own mimetype will cause serious syntax checking issues and validation, +this introduces a high-risk false-user-input situation. Instead you have to +initialize mimetypes using functions or empty mimetype definitions. +Plus, you have a whole overview of available mimetypes. Who knows all those +mimetypes by heart so he/she can enter it at will? + +6.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. You will find a button labeled 'Bookmark this query' +just at the end of the page. +As soon as you have stored a bookmark, it is related to the database you run +the query on. You can now access a bookmark dropdown on each page, the query +box appears on for that database. + +Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks. +Just use the string /*[VARIABLE]*/ anywhere in your query. Everything which is +put into the value input box on the query box page will replace the string "/* +[VARIABLE]*/" in your stored query. Just be aware of that you HAVE to create a +valid query, otherwise your query won't be even able to be stored in the +database. +Also remember, that everything else inside the /*[VARIABLE]*/ string for your +query will remain the way it is, but will be stripped of the /**/ chars. So you +can use: + +/*, [VARIABLE] AS myname */ + +which will be expanded to + +, VARIABLE as myname + +in your query, where VARIABLE is the string you entered in the input box. If an +empty string is provided, no replacements are made. + +A more complex example. Say you have stored this query: + +SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */ + +Say, you now enter "phpMyAdmin" as the variable for the stored query, the full +query will be: + +SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%' + +You can use multiple occurrences of /*[VARIABLE]*/ in a single query. +NOTE THE ABSENCE OF SPACES inside the "/**/" construct. Any spaces inserted +there will be later also inserted as spaces in your query and may lead to +unexpected results especially when using the variable expansion inside of a +"LIKE ''" expression. +Your initial query which is going to be stored as a bookmark has to yield at +least one result row so you can store the bookmark. You may have that to work +around using well positioned "/**/" comments. + +6.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, minimal sample +document should look like following one (assuming you have table exported in +file table.tex): + +\documentclass{article} % or any class you want +\usepackage{longtable} % for displaying table +\begin{document} % start of document +\include{table} % including exported table +\end{document} % end of document + +6.20 In MySQL 4, I see a lot of databases which are not mine, and cannot access +them. + +Upgrading to MySQL 4 usually gives users those global privileges: CREATE +TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also enable +users to see all the database names. See this bug report. + +So if your users do not need those privileges, you can remove them and their +databases list will shorten. + +6.21 In edit/insert mode, how can I see a list of possible values for a field, +based on some foreign table? + +You have to setup appropriate links between the tables, and also setup the +"display field" in the foreign table. See FAQ 6.6 for an example. Then, if +there are 200 values or less in the foreign table, a drop-down list of values +will be available. You will see two lists of values, the first list containing +the key and the display field, the second list containing the display field and +the key. The reason for this is to be able to type the first letter of either +the key or the display field. + +For 200 values or more, a distinct window will appear, to browse foreign key +values and choose one. + +6.22 Bookmarks: Can I execute a default bookmark automatically when entering +Browse mode for a table? + +Yes. If a bookmark has the same label as a table name, it will be executed. + +6.23 Export: I heard phpMyAdmin can export Microsoft Excel files, how can I +enable that? + +Current version does support direct export to Microsoft Excel and Word versions +2000 and newer. If you need export older versions, you can use CSV suitable for +Microsoft Excel, which works out of the box or you can try native experimental +MS Excel exporter. This export has several problems, most important are +limitation of cell content to 255 chars and no support for charsets, so think +carefully whether you want to enable this.. For enabling this you need to set +$cfg['TempDir'] to place where web server user can write (for example './tmp') +and install PEAR module Spreadsheet_Excel_Writer into php include path. The +installation can be done by following command: + +pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer + +First part of switches set we want to install beta version of that module (no +stable version available yet) and then we tell pear we want to satisfy +dependencies. + +If you are running in PHP safe mode, you will have to set in php.ini the +safe_mode_include_dir to the directory where your PEAR modules are located, for +example: + +safe_mode_include_dir = /usr/local/lib/php + +To create the temporary directory on a UNIX-based system, you can do: + +cd phpMyAdmin +mkdir tmp +chmod o+rwx tmp + +6.24 Now that phpMyAdmin supports native MySQL 4.1.x column comments, 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. + +phpMyAdmin project + +7.1 I have found a bug. How do I inform developers? + +Our Bug Tracker is located at http://sf.net/projects/phpmyadmin/ under the Bugs +section. + +But please first discuss your bug with other users: +http://sf.net/projects/phpmyadmin/ (and choose Forums) + +7.2 I want to translate the messages to a new language or upgrade an existing +language, where do I start? + +Always use the current SVN version of your language file. For a new language, +start from english-iso-8859-1.inc.php. If you don't know how to get the SVN +version, please ask one of the developers. +Please note that we try not to use HTML entities like é in the +translations, since we define the right character set in the file. With HTML +entities, the text on JavaScript messages would not display correctly. However +there are some entities that need to be there, for quotes ,non-breakable +spaces, ampersands, less than, greater than. +You can then put your translations, as a zip file to avoid losing special +characters, on the sourceforge.net translation tracker. +It would be a good idea to subscribe to the phpmyadmin-translators mailing +list, because this is where we ask for translations of new messages. + +7.3 I would like to help out with the development of phpMyAdmin. How should I +proceed? + +The following method is preferred for new developers: + + 1. fetch the current SVN tree over anonymous SVN: + svn co https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/ + phpMyAdmin + 2. add your stuff + 3. generate patch with your changes: svn diff + 4. put the patch inside the patch tracker of the phpMyAdmin project. + +Write access to the SVN tree is granted only to experienced developers who have +already contributed something useful to phpMyAdmin. +Also, have a look at the Developers section. + +Security + +8.1 Where can I get information about the security alerts issued for +phpMyAdmin? + +Please refer to http://www.phpmyadmin.net/home_page/security.php + +Developers Information + +phpMyAdmin is Open Source, so you're invited to contribute to it. Many great +features have been written by other people and you too can help to make +phpMyAdmin a useful tool. + +If you're planning to contribute source, please read the following information: + + * All files include libraries/header.inc.php (layout),. libraries/ + common.lib.php (common functions) and config.inc.php. + Only configuration data should go in config.inc.php. Please keep it free + from other code. + Commonly used functions should be added to libraries/common.lib.php and + more specific ones may be added within a library stored into the libraries + sub-directory. + * Obviously, you're free to use whatever coding style you want. But please + try to keep your code as simple as possible: beginners are using phpMyAdmin + as an example application. + As far as possible, we want the scripts to be XHTML1.0 and CSS2 compliant + on one hand, they fit the PEAR coding standards on the other hand. Please + pay attention to this. + * Please try to keep up the file-naming conventions. Table-related stuff goes + to tbl_*.php, db-related code to db_*.php, server-related tools to + server_*.php and so on. + * Please don't use verbose strings in your code, instead add the string (at + least) to english-iso-8859-1.inc.php and print() it out. + * If you want to be really helpful, write an entry for the ChangeLog. + * The DBG extension (PHP Debugger DBG) is now supported by phpMyAdmin for + developers to better debug and profile their code. + Please see the $cfg['DBG']* configuration options for more information. + 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. + +Credits + +phpMyAdmin - Credits +==================== + +CREDITS, in chronological order +------------------------------- + +- Tobias Ratschiller + * creator of the phpmyadmin project + * maintainer from 1998 to summer 2000 + +- Marc Delisle + * multi-language version + * various fixes and improvements + * SQL analyser (most of it) + * current project maintainer + +- Olivier M?ller + * started SourceForge phpMyAdmin project in March 2001 + * sync'ed different existing CVS trees with new features and bugfixes + * multi-language improvements, dynamic language selection + * current project maintainer + * many bugfixes and improvements + +- Lo?c Chapeaux + * rewrote and optimized javascript, DHTML and DOM stuff + * rewrote the scripts so they fit the PEAR coding standards and + generate XHTML1.0 and CSS2 compliant codes + * improved the language detection system + * many bugfixes and improvements + +- Robin Johnson + * 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 + * bookmarks feature + * multiple dump feature + * gzip dump feature + * zip dump feature + +- Geert Lund + * various fixes + * moderator of the phpMyAdmin former users forum at phpwizard.net + +- Korakot Chaovavanich + * "insert as new row" feature + +- Pete Kelly + * rewrote and fix dump code + * bugfixes + +- Steve Alberty + * rewrote dump code for PHP4 + * mySQL table statistics + * bugfixes + +- Benjamin Gandon + * main author of the version 2.1.0.1 + * bugfixes + +- Alexander M. Turek + * MySQL 4.0 / 4.1 / 5.0 compatibility + * abstract database interface (PMA_DBI) with MySQLi support + * privileges administration + * XML exports + * various features and fixes + * German language file updates + +- Mike Beck + * automatic joins in QBE + * links column in printview + * Relation view + +- Michal ?iha? + * 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.net/projects/phpmysqlformgen/) + * suggested the patch for multiple table printviews + +- Garvin Hicking + * built the patch for vertical display of table rows + * built the Javascript based Query window + SQL history + * Improvement of column/db comments + * (MIME)-Transformations for columns + * Use custom alias names for Databases in left frame + * hierarchical/nested table display + * PDF-scratchboard for WYSIWYG-distribution of PDF relations + * new icon sets + * vertical display of column properties page + * some bugfixes, features, support, German language additions + +- Yukihiro Kawada + * japanese kanji encoding conversion feature + +- Piotr Roszatycki and Dan Wilson + * the Cookie authentication mode + +- Axel Sander + * table relation-links feature + +- Maxime Delorme + * PDF schema output, thanks also to Olivier Plathey for the + "FPDF" library (see http://www.fpdf.org/) and Steven Wittens + for the "UFPDF" library (see http://www.acko.net/node/56). + +- Olof Edlund + * SQL validator server + +- Ivan R. Lanin + * phpMyAdmin logo (until June 2004) + +- Mike Cochrane + * blowfish library from the Horde project + +- Marcel Tschopp + * mysqli support + * many bugfixes and improvements + +- Michael Keck + * redesign for 2.6.0 + * phpMyAdmin sailboat logo (June 2004) + +- Mathias Landh?u?er + * Representation at conferences + +- Sebastian Mendel + * interface improvements + * various bugfixes + +- Ivan A Kirillov + * new relations Designer + +And also to the following people who have contributed minor changes, +enhancements, bugfixes or support for a new language since version 2.1.0: + +Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita, +P?ter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow, +Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kl?ger, +Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley, +Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna, +www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec, +Michael Tacelosky, Rachim Tamsjadi, Kositer Uros, +Lu?s V., Martijn W. van der Lee, +Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai, +Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai". + + +Original Credits of Version 2.1.0 +--------------------------------- + + This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea + to create a web-based interface to MySQL using PHP3. Although I have not + used any of his source-code, there are some concepts I've borrowed from + him. phpMyAdmin was created because Peter told me he wasn't going to + further develop his (great) tool. + Thanks go to + - Amalesh Kempf who contributed the + code for the check when dropping a table or database. He also suggested + that you should be able to specify the primary key on tbl_create.php3. To + version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as + well as a bug-report. Plus many smaller improvements. + - Jan Legenhausen : He made many of the changes that + were introduced in 1.3.0 (including quite significant ones like the + authentication). For 1.4.1 he enhanced the table-dump feature. Plus + bug-fixes and help. + - Marc Delisle made phpMyAdmin + language-independent by outsourcing the strings to a separate file. He + also contributed the French translation. + - Alexandr Bravo who contributed + tbl_select.php3, a feature to display only some fields from a table. + - Chris Jackson added support for MySQL + functions in tbl_change.php3. He also added the + "Query by Example" feature in 2.0. + - Dave Walton added support for multiple + servers and is a regular contributor for bug-fixes. + - Gabriel Ash contributed the random access + features for 2.0.6. + The following people have contributed minor changes, enhancements, bugfixes + or support for a new language: + Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann, + Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov, + Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns, + G. Wieggers. + + And thanks to everyone else who sent me email with suggestions, bug-reports + and or just some feedback. + +Glossary + +From Wikipedia, the free encyclopedia + + * .htaccess - the default name of Apache's directory-level configuration + file. + * Blowfish - a keyed, symmetric block cipher, designed in 1993 by Bruce + Schneier. + * Browser (Web Browser) - a software application that enables a user to + display and interact with text, images, and other information typically + located on a web page at a website on the World Wide Web. + * bzip2 - a free software/open source data compression algorithm and program + developed by Julian Seward. + * CGI (Common Gateway Interface) - an important World Wide Web technology + that enables a client web browser to request data from a program executed + on the Web server. + * Changelog - a log or record of changes made to a project. + * Client - a computer system that accesses a (remote) service on another + computer by some kind of network. + * column - a set of data values of a particular simple type, one for each row + of the table. + * Cookie - 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. + * CSV - Comma-seperated values + * DB - look at Database. + * database - an organized collection of data. + * Engine - look at Storage Engines. + * extension - a PHP module that extends PHP with additional functionality. + * FAQ (Frequently Asked Questions) - a list of commonly asked question and + there answers. + * Field - one part of divided data/columns. + * foreign key - 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) - the free PDF library + * GD Graphics Library - a library by Thomas Boutell and others for + dynamically manipulating images. + * GD2 - look at GD Graphics Library. + * gzip - gzip is short for GNU zip, a GNU free software file compression + program. + * host - any machine connected to a computer network, a node that has a + hostname. + * hostname - the unique name by which a network attached device is known on a + network. + * HTTP (HyperText Transfer Protocol) - the primary method used to transfer or + convey information on the World Wide Web. + * https - a HTTP-connection with additional security measures. + * IIS (Internet Information Services) - a set of Internet-based services for + servers using Microsoft Windows. + * Index - a feature that allows quick access to the rows in a table. + * IP (Internet Protocol) - a data-oriented protocol used by source and + destination hosts for communicating data across a packet-switched + internetwork. + * IP Address - 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 API of + Internet Information Services (IIS). + * ISP (Internet service provider) - a business or organization that offers + users access to the Internet and related services. + * JPEG - a most commonly used standard method of lossy compression for + photographic images. + * JPG - look at JPEG. + * Key - look at index. + * L^AT[E]X - a document preparation system for the T[E]X typesetting program. + * Mac (Apple Macintosh) - line of personal computers is designed, developed, + manufactured, and marketed by Apple Computer. + * Mac OS X - the operating system which is included with all currently + shipping Apple Macintosh computers in the consumer and professional + markets. + * MCrypt - a cryptographic library. + * mcrypt - the MCrypt PHP extension. + * MIME (Multipurpose Internet Mail Extensions) - an Internet Standard for the + format of e-mail. + * module - some sort of extension for the Apache Webserver. + * MySQL - a multithreaded, multi-user, SQL (Structured Query Language) + Database Management System (DBMS). + * mysqli - the improved MySQL client PHP extension. + * mysql - the MySQL client PHP extension. + * OpenDocument - open standard for office documents. + * OS X - look at Mac OS X. + * PDF (Portable Document Format) - a file format developed by Adobe Systems + for representing two dimensional documents in a device independent and + resolution independent format. + * PEAR - the PHP Extension and Application Repository. + * PCRE (Perl Compatible Regular Expressions) - the perl-compatible regular + expression functions for PHP + * PHP - short for "PHP: Hypertext Preprocessor", is an open-source, + reflective programming language used mainly for developing server-side + applications and dynamic web content, and more recently, a broader range of + software applications. + * port - a connection through which data is sent and received. + * RFC - Request for Comments (RFC) documents are a series of memoranda + encompassing new research, innovations, and methodologies applicable to + Internet technologies. + * RFC 1952 - GZIP file format specification version 4.3 + * Row (record, tulpel) - represents a single, implicitly structured data item + in a table. + * Server - a computer system that provides services to other computing + systems over a network. + * Storage Engines - handlers for different table types + * socket - a form of inter-process communication. + * SSL (Secure Sockets Layer) - a cryptographic protocol which provides secure + communication on the Internet. + * SQL - Structured Query Language + * table - a set of data elements (cells) that is organized, 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. + * Table type + * tar - a type of archive file format: the Tape ARchive format. + * TCP (Transmission Control Protocol) - one of the core protocols of the + Internet protocol suite. + * UFPDF - Unicode/UTF-8 extension for FPDF + * URL (Uniform Resource Locator) - a sequence of characters, conforming to a + standardized format, that is used for referring to resources, such as + documents and images on the Internet, by their location. + * Webserver - A computer (program) that is responsible for accepting HTTP + requests from clients and serving them Web pages. + * XML (Extensible Markup Language) - a W3C-recommended general-purpose markup + language for creating special-purpose markup languages, capable of + describing many different kinds of data. + * ZIP - a popular data compression and archival format. + * zlib - an open-source, cross-platform data compression library by Jean-loup + Gailly and Mark Adler. + +Valid XHTML 1.1 Valid CSS! +