diff --git a/htdocs/sql/Documentation.txt b/htdocs/sql/Documentation.txt deleted file mode 100755 --- a/htdocs/sql/Documentation.txt +++ /dev/null @@ -1,3328 +0,0 @@ - * 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! -