diff --git a/CREDITS b/CREDITS
new file mode 100644
index 000000000..f692046d6
--- /dev/null
+++ b/CREDITS
@@ -0,0 +1,11 @@
+$Id$
+
+
+phpMyAdmin - Credits
+====================
+
+ Please have a look to the Documentation.txt or
+ Documentation.html files, or visit
+ http://www.phpmyadmin.net/home_page/team.php and
+ http://www.phpmyadmin.net/home_page/about.php
+
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 000000000..d661c3fb2
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,312 @@
+----------------------
+phpMyAdmin - ChangeLog
+----------------------
+
+$Id$
+$HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin/ChangeLog $
+
+3.3.0.0 (not yet released)
++ rfe #2308632 [edit] Use hex for (var)binary fields,
+ thanks to Maarten Dieleman - maartendieleman
++ patch #2794819 [navi] Filter for displayed table names,
+ thanks to Michael Valushko - dylfin
+- bug #2794840 [core] Cannot redeclare pma_tableheader()
+- rfe #2726479 [core] configurable maximal length of URL
++ patch #2724755 [display] Full/partial text links (big T) are back,
+ thanks to nullbarriere - nullbarriere
+- bug [display] handle NavigationBarIconic as documented for navi buttons
++ rfe #2726479 [export] Export tables preselect
++ patch #2805828 [export] PHP array export plugin,
+ thanks to Geoffray Warnants - amnsk
++ patch #2798592 [import] Progress bar,
+ thanks to Tomas Srnka - tomassrnka
+- bug [gui] Generate Password not working for 'Change Login Information', only for 'Change password'
++ [lang] Arabic update, thanks to Meno25 - meno25
++ rfe #2822190 [structure] BOOLEAN is standard SQL
++ [lang] German update, thanks to knittl
++ [lang] German update, thanks to virsacer
++ rfe #2813867 [structure] Default sorting order in list of tables
++ [import] Added MySQL type-detection functionality to import library,
+ thanks to Derek Schaefer
++ [import] Added ODS, Excel XLS, Excel XLSX, and XML import modules,
+ thanks to Derek Schaefer
++ [export] Added Excel XLSX export module,
+ thanks to Derek Schaefer
++ [core] Added ability for tracking changes made through phpMyAdmin
++ rfe #2839504 [engines] Support InnoDB plugin's new row formats
++ [core] Added ability for synchronizing databases among servers.
++ [lang] #2843101 Dutch update, thanks to scavenger2008
++ [lang] Galician update, thanks to Xosé Calvo - xosecalvo
++ [export] Added MediaWiki export module,
+ thanks to Derek Schaefer - drummingds1
++ [lang] Turkish update, thanks to Burak Yavuz
++ [auth] Add custom port configuration in signon, thanks to Gary Smith
+- [core] Removed context from the error handler
+- bug #2883633 [export] Export of InnoDB table is incomplete
++ rfe #2862575 [status] Order query statistics by % desc, skip rows with 0
++ rfe #2823686 [interface] Increase default height of query window
++ rfe #2129902 [structure] Don't hide indexes
++ patch #2812070 [interface] Allow selecting a range of rows by holding shift, thanks to Joolee
+
+3.2.5.0 (not yet released)
+- patch #2903400 [bookmarks] Status of bookmark table,
+ thanks to Virsacer - virsacer
+- bug [history] QueryHistoryDB is not respected
+- bug #2905629 [auth] Blowfish secret is not hashed
+- bug #2910000 [gui] ShowServerInfo should hide all server info from main page
+- bug #2910568 [structure] Table size for ARCHIVE tables is not displayed
+- patch #2899969 [core] Session lock blocks working from a second window,
+ thanks to Greg Roach - fisharebest
+- patch #2915168 [import] Incorrect parsing of DELIMITER keyword,
+ thanks to Greg Roach - fisharebest
+- patch #2918831 [export] Missing backquotes on reserved words,
+ thanks to Virsacer - virsacer
+- [core] Fix broken cleanup of $_GET
+
+3.2.4.0 (2009-12-02)
+- bug [engines] Innodb_buffer_pool_pages_latched no longer returned in status
+- bug #2890451 [setup] Inconsistent generated "designer_coords"
+- bug #2890443 [mysqli] "No index used in query" exception is reported
+- bug #2891250 [ob] Garbled data in navi frame (PHP 5.2.11 bug)
+- bug #2887357 [core] Slow loading times with large databases (partial fix)
+- bug #2893931 [lang] Typo and empty message
++ [lang] Russian update, thanks to Victor Volkov
+- bug #2823599 [edit] UUID Primary Key wrongly updated
+- bug #2895894 [structure] Empty default value not set properly
+- bug #2897536 [parser] Copying table with bit field with default
+- bug #2893221 [core] Statement may not be safe to log in statement format
+
+3.2.3.0 (2009-10-30)
+- patch #2856664 [export] Date, time, and datetime column types now export correctly to
+ OpenOffice Spreadsheet, thanks to Thomas Pulickal - jemajoign
+- patch #2859788 [parser] Double-character delimiters (bug #2846239),
+ thanks to Thomas Pulickal - jemajoign
+- bug #2832600 [export] Slow export when having lots of databases
+- bug #2537766 [import] Comments are stripped when editing store procedures
+- bug #2852370 [operations] Renaming database deletes triggers
+- bug #2872247 [interface] Failed opening required 'mysql_charsets.lib.php', thanks to CyberLeo Kitsana - cyberleo
+- bug [structure] "In use" table incorrectly reported as "view"
+- bug #2879909 [interface] Removed double htmlspecialchars when editing enum column
+- bug #2868328 [relations] Adding foreign key when table name contains a dot
+- bug #2883381 [doc] Side effects of MemoryLimit setting
+- bug #2826128 [display] Inverting sort order when expression contains a function name
+
+3.2.2.1 (2009-10-12)
+- [security] XSS and SQL injection, thanks to Herman van Rink
+
+3.2.2.0 (2009-09-13)
+- bug #2825293 [structure] Default value for a BIT column
+- bug [display] Red arrows were reversed in the list of tables
+- bug #2813879 [export] Duplicate empty lines when exporting without comments
+- bug #2825919 [export] Trigger export with database name
+- bug #2823996 [data] Cannot edit row with no PK and a BIT field
+- bug [export] Exporting results of a query which contains a LIMIT clause
+ inside a subquery
+- bug #2837722 [export] Run complex SQL then export does not work
+- bug #2839548 [export] Triggers order on export
+- bug #2826986 [display] Order by BLOB and range display
+- bug [display] After clicking on Show Function or Function, the UPDATE query
+ is not shown after execution
+- bug [structure] Missing validation for BINARY and VARBINARY
+
+3.2.1.0 (2009-08-09)
+- bug #2799009 Login with ipv6 IP address breaks redirect
+- bug #2796066 [priv] Inconsistent display of databases list
+- bug #2802870 [display] Incorrect overhead value for InnoDB
+- bug [display] Incorrect display in replication status,
+ thanks to Tomas Srnka - tomassrnka
+- bug #1601625 [display] The Ignore checkbox is not unchecked for ENUM
+- bug #2809930 [setup] Notice: Undefined variable: k in setup/index.php
+- bug [features] Incorrect report of missing relational features
+- [security] XSS: Insufficient output sanitizing (not exploitable without a valid token)
+ thanks to Sven Vetsch/Disenchant for informing us in a responsible manner
+- bug #2634827 [import] Using DELIMITER produces infinite cycle
++ new language files: uzbek_cyrillic and urbek_latin
+- bug #2814109 [search] Right frame is blank
+- bug #2816840 [priv] Cannot change a user's details
+- bug #2816165 [display] Executed query not always displayed
+- bug #2819944 [setup] Incorrect mention of designer_coords
+- bug #2821757 [insert] "Insert another new row" no longer worked
++ [lang] Norwegian update, thanks to Sven-Erik Andersen
+- bug [core] PMA_pow() can support negative exponents in the pow() case
++ [lang] Brazilian Portuguese update, thanks to Fabio Bucior - fabiobucior
+- patch #2822384 [docs] Missing auth_type in docs-example,
+ thanks to Jürgen Wind - windkiel
+- patch #2819728 [display] Slider effect jumping to top of page,
+ thanks to Jan Radem - summsel
+- bug [display] Incorrect computation of overhead stats in server view
+ for tables under the InnoDB engine
++ [lang] Swedish update, thanks to Björn T. Hallberg
+
+3.2.0.1 (2009-06-30)
+- [security] XSS: Insufficient output sanitizing in bookmarks
+
+3.2.0.0 (2009-06-15)
+- [core] better support for vendor customisation (based on what Debian needs)
++ rfe #2127987 warn when session.gc_maxlifetime is less than cookie validity
++ rfe #2100910 configurable default charset for import
++ rfe #1913541 link to InnoDB status when error 150 occurs
++ rfe #1927189 strip ` from column names on import
++ rfe #1821619 LeftFrameDBSeparator can be an array
++ patch #1821619 [privileges] Extra back reference when editing table-specific
+ privileges, thanks to Herman van Rink - helmo
++ patch #2356575 [display] Sortable database columns,
+ thanks to Bryce Thornton - brycethornton
+- patch #2486825 [lang] Wrong string in setup script hints,
+ thanks to Isaac Bennetch - ibennetch
+- patch #2498350 [cleanup] XHTML cleanup, thanks to Virsacer - virsacer
++ patch #2494192 [display] Possibility of disabling the sliders,
+ thanks to Virsacer - virsacer
++ patch #2506831 [privileges] Create user for existing database,
+ thanks to Herman van Rink and Virsacer
++ patch #2505255 [privileges] Cleanup, thanks to Virsacer - virsacer
+- bug #2414056 [auth] AllowNoPasswordRoot error message is too vague
+- patch #2596230 [XHTML] View table headers/footers completely,
+ thanks to Virsacer - virsacer
+- patch #2602633 [core] support column name having square brackets,
+ thanks to Herman van Rink - helmo
++ [lang] Lithuanian update, thanks to Rytis Slatkevicius - rytis_s
++ [auth] New setting AllowNoPassword (supercedes AllowNoPasswordRoot) that
+ applies to all accounts (even the anonymous user)
+- patch #2652972 [relation] Missing code with hashing for relationship
+ editing, thanks to knittl - knittl
++ rfe #2123386 Added option to disable mcrypt warning.
+- bug #2648502 Request-URI Too Large error from Location header
++ rfe #1731967 Check for relations support on main page.
++ rfe #2186820 Explanation for using Host table.
++ rfe #1369509 Link to download more themes.
++ rfe #1666487 Add option to generate password on change password page.
++ rfe #1694104 Allow logging of user status with Apache.
+- patch #2649087 None default is different than other None in some languages.
++ [lang] Chinese Simplified update, thanks to Shanyan Baishui - rimyxp
+- patch #2550286 [display] Sort arrows problem, thanks to Virsacer - virsacer
+- [security] warn about existence of config directory on main page
++ patch #2706761 [lang] Polish update,
+ thanks to Pawel Smolinski - zipoking
++ patch #2715142 [export] (rfe 2416960, escape new line in CSV export)
+ thanks to Derek Schaefer - drummingds1
+- patch #2727250 Optimizations for PHP loops
+ thanks to Haeber
+- bug #2650776 [import] SQL_MODE not saved during Partial Import
+- patch #1863739 [auth] cache control missing (PHP-CGI), thanks to stmfd
+- patch #2750541 [parser] Incorrect parsing of constraints in ALTER TABLE,
+ thanks to Yannick Betemps - arkhee
++ patch #2735162 [status] Server status - replication,
+ thanks to Tomas Srnka - tomassrnka
++ patch #2745215 [edit] Multi-row change with "]" improved,
+ thanks to Virsacer - virsacer
++ rfe #2657696 Automatically copy generated password
+- bug #2787162 [interface] Table with name 'log_views' is incorrectly displayed as a view
++ patch #2665440 Detect mcrypt initialization failure
++ [lang] Galician update, thanks to Xosé Calvo - xosecalvo
++ [lang] Swedish update, thanks to Björn T. Hallberg
++ [lang] Norwegian update, thanks to Sven-Erik Andersen
++ [lang] Catalan update, thanks to Xavier Navarro
++ [lang] Finnish update, thanks to Jouni Kahkonen
++ [lang] Hungarian update, thanks to Jozsef Tamas Herczeg - dodika
+
+3.1.6.0 (not released)
+- bug #2785912 [doc] no ON UPDATE CURRENT_TIMESTAMP in list of attributes
+
+3.1.5.0 (2009-05-15)
+- patch #2739001 [export] XML does not allow spaces in element names,
+ thanks to Derek Schaefer - drummingds1
+- bug #2780722 [import] Incorrect maximum file size
+- bug #2780356 [calendar] Null checkbox not unchecked when date is chosen
+- bug [calendar] js error "window.parent.addEvent is not a function"
+- patch #2773818 [export] Invalid "Content-Encoding" header,
+ thanks to abignale - abignale
+- bug #2787162 [interface] Table with name 'log_views' is incorrectly displayed as a view
+- bug #2784400 [parser] INVOKER not understood by parser
+- [core] Compatibility with PHP 5.3.0RC2
+
+3.1.4.0 (2009-04-25)
++ patch #1808339 [doc] Apache SSLOptions and StdEnvVars FAQ,
+ thanks to JT Justman - jtjustman
+- bug #2491017 [operations] ANSI mode not supported (db rename and table move)
+- bug #2609346 [operations] Fix copying views.
+- rfe #2127983 Readd documentation link, it does not protect against anything.
+- bug #1675249 [doc] Apache reverse proxy and cookies FAQ
+- bug #2682140 UUID() and CURRENT_USER() should not accept arguments
+- patch #2682833 [core] Fatal error: Call to a member function isDisplayed(),
+ thanks to Christian Rodriguez - judas_iscariote
+- patch #2702772 [lang] Duplicate sentence in Polish,
+ thanks to Pawel Smolinski - zipoking
+- patch #2709040 [doc] Wrong link in ChangeLog formatter,
+ thanks to Petr Vorel - pevik
+- patch #2715417 [interface] Fixed truncation of enum/set values containing parenthesis
+ thanks to Marco Moreno - mmoreno
++ [lang] Spanish update, thanks to Daniel Hinostroza
+- bug #2724844 Add Fields: Add index is missing quotes
+ thanks to Luke Armstrong
+- bug #2740550 [interface] Using textarea CharEditing drops default values
+- bug #2729191 [config] CheckConfigurationPermissions = false is worthless
+- bug #2687046 [export] Structure export: Null always YES
+- [doc] typos, thanks to Cédric Corazza
+
+3.1.3.2 (2009-04-14)
+- [security] Insufficient output sanitizing when generating configuration file
+
+3.1.3.1 (2009-03-24)
+- [security] HTTP Response Splitting and file inclusion vulnerabilities
+- [security] XSS vulnerability on export page
+- [security] Insufficient output sanitizing when generating configuration file
+
+3.1.3.0 (2009-02-28)
++ [lang] Turkish update, thanks to Burak Yavuz
+- patch #2496403 [display] Multi-row change with "]",
+ thanks to Virsacer - virsacer
+- bug #2027720 [parser] Missing space after BINARY used as cast
+- patch #2520747 [core] E_DEPRECATED compatibility for PHP 5.3,
+ thanks to Giovanni Giacobbi - themnemonic
+- bug [display] Message "Bookmark created" is not displaying
++ [display] Show AUTO_INCREMENT instead of A_I when in vertical mode
+- patch #2538358 [display] Conditions for relational display field,
+ thanks to Virsacer - virsacer
++ [lang] Mongolian update, thanks to Bayarsaikhan Enkhtaivan - bayaraa
+- patch #2553372 [display] DB comment tooltips not shown on navi,
+ thanks to Erdem - ahard
+- patch #2561433 [structure] Display true number of rows in a view
+ if it contains less than MaxExactCountViews,
+ thanks to Virsacer - virsacer
++ [lang] Polish update, thanks to Fixer - fixeron
+- bug #2568722 [designer] Compound key not shown
+- patch #2550323 [XHTML] in server_databases.php, thanks to Virsacer - virsacer
+- patch #2358861 [navi] Row count tooltip wrong for information_schema,
+ thanks to Herman van Rink - helmo
+- bug #2565948 [core] Changing the connection collation changed the client
+ charset.
++ [lang] Romanian update, thanks to Sergiu Bivol - sbivol
+- patch #1760205 [data] Insert as new row: BLOB is lost,
+ thanks to Herman van Rink - helmo
++ [lang] Georgian update, thanks to George Machitidze
+
+3.1.2.0 (2009-01-19)
+- bug #1253252 [display] Can't NULL a column with relation defined
+- bug #2009500 [SQL] Small improvements in generated SQL (partial fix)
+- bug #1963184 [export] YAML export improvement,
+ thanks to Bryce Thornton - brycethornton
++ [lang] Dutch update, thanks to Herman van Rink - helmo
+- patch #2407785 [cleanup] ereg*() deprecated in PHP 5.3,
+ thanks to Alex Frase - atfrase
+- bug #2417058 [properties] Edit fields: losing auto-increment setting
+- patch #2444082 [changelog] changelog.php linkifies one link wrong,
+ thanks to Robert Xiao - nneonneo
+- bug #2363653 [properties] Various problems with table structure
+- bug [display] BIT field contents disappear when edited
++ [lang] Czech update, thanks to Ondřej Vadinský.
+- bug #2461735 [operations] Table operations adds "row_format"
+- bug #2445213 [export] Commas for CSV Excel 2008 for Mac
+- bug #2397877 [core] ForceSSL and http auth_type
+- bug #2473127 [display] Deleting rows displays tbl structure, not contents
+- patch #2478940 [core] PHP 5.2+ warning does not work,
+ thanks to Jürgen Wind - windkiel
+- bug #2416418 [privileges] Escaping special characters
+
+ --- Older ChangeLogs can be found on our project website ---
+ http://www.phpmyadmin.net/old-stuff/ChangeLogs/
+
+# vim: et ts=4 sw=4 sts=4
+# vim: ft=changelog fenc=utf-8 encoding=utf-8
+# vim: fde=getline(v\:lnum-1)=~'^\\s*$'&&getline(v\:lnum)=~'\\S'?'>1'\:1&&v\:lnum>8&&getline(v\:lnum)!~'^#'
+# vim: fdn=1 fdm=expr
diff --git a/Documentation.html b/Documentation.html
new file mode 100644
index 000000000..7086e6576
--- /dev/null
+++ b/Documentation.html
@@ -0,0 +1,4967 @@
+
+
+
+
+
+
+
+
+
+
+
Requirements
+
+
- PHP
+
- You need PHP 5.2.0 or newer, with session support
+ (see
+ FAQ 1.31)
+ and the Standard PHP Library (SPL) extension.
+
+ - To support uploading of ZIP files, you need the PHP zip extension.
+ - For proper support of multibyte strings (eg. UTF-8, which is
+ currently default), you should install mbstring and ctype
+ extensions.
+
+ - You need GD2 support in PHP to display inline
+ thumbnails of JPEGs ("image/jpeg: inline") with their
+ original aspect ratio
+ - When using the "cookie"
+ authentication method, the
+ mcrypt extension
+ is strongly suggested for most users and is required for
+ 64–bit machines. Not using mcrypt will cause phpMyAdmin to
+ load pages significantly slower.
+
+ - To support upload progress bars, see
+ FAQ 2.9.
+
+
+ - MySQL 5.0 or newer (details);
+ - Web browser with cookies enabled.
+
+
+
+
Introduction
+
+
phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as
+ a single database. To accomplish the latter you'll need a properly set up
+ MySQL user who can read/write only the desired database. It's up to you to
+ look up the appropriate part in the MySQL manual.
+
+
+
Currently phpMyAdmin can:
+
+
- browse and drop databases, tables, views, 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
+ - create1 and read dumps of tables
+
+ - export1 data to various formats:
+ CSV,
+ XML,
+ PDF,
+ ISO/IEC 26300 -
+ OpenDocument Text and Spreadsheet,
+ Word,
+ Excel and LATEX formats
+
+ - import data and MySQL structures from Microsoft Excel and OpenDocument spreadsheets, as well as XML, CSV, and SQL files
+ - administer multiple servers
+ - manage MySQL users and privileges
+ - check referential integrity in MyISAM tables
+ - using Query-by-example (QBE), create complex queries automatically
+ connecting required tables
+ - create PDF graphics of
+ your Database layout
+ - search globally in a database or a subset of it
+ - transform stored data into any format using a set of predefined
+ functions, like displaying BLOB-data as image or download-link
+
+ - track changes on databases, tables and views
+ - support InnoDB tables and foreign keys (see
+ FAQ 3.6)
+ - support mysqli, the improved MySQL extension
+ (see FAQ 1.17)
+ - communicate in 57 different languages
+
+ - synchronize two databases residing on the same as well as remote servers
+ (see FAQ 9.1)
+
+
+
+
+
A word about users:
+
Many people have difficulty
+ understanding the concept of user management with regards to phpMyAdmin. When
+ a user logs in to phpMyAdmin, that username and password are passed directly
+ to MySQL. phpMyAdmin does no account management on its own (other than
+ allowing one to manipulate the MySQL user account information); all users
+ must be valid MySQL users.
+
+
+
+
+
Installation
+
+
- Quick Install
+ - Setup script usage
+ - Linked-tables infrastructure
+ - Upgrading from an older version
+ - Using authentication modes
+
+
+
+ phpMyAdmin does not apply any special security methods to the MySQL database
+ server. It is still the system administrator's job to grant permissions on
+ the MySQL databases properly. phpMyAdmin's "Privileges" page can
+ be used for this.
+
+
+
+ Warning for Mac users:
+ if you are on a Mac
+ OS version before
+ OS X, StuffIt unstuffs with
+ Mac formats.
+ So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts
+ before uploading them to your server, as PHP seems not to like
+ Mac-style end of lines character
+ ("\r").
+
+
Quick Install
+
- 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.
+
+ - 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.
+ - 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.
+ - Now you must configure your installation. There are two methods that
+ can be used. Traditionally, users have hand-edited a copy of
+ config.inc.php, but now a wizard-style setup script is
+ provided for those who prefer a graphical installation. Creating a
+ config.inc.php is still a quick way to get started and needed for some advanced features.
+
- To manually create the file, simply use your text editor to
+ create the file config.inc.php (you can copy
+ config.sample.inc.php to get minimal configuration
+ file) in the main (top-level) phpMyAdmin directory (the one
+ that contains index.php). phpMyAdmin first loads
+ libraries/config.default.php and then overrides those
+ values with anything found in config.inc.php. If the
+ default value is okay for a particular setting, there is no
+ need to include it in config.inc.php. You'll need a
+ few directives to get going, a simple configuration may look
+ like this:
+
+<?php
+$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
+
+$i=0;
+$i++;
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+?>
+
+ Or, if you prefer to not be prompted every time you log in:
+
+<?php
+
+$i=0;
+$i++;
+$cfg['Servers'][$i]['user'] = 'root';
+$cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password
+$cfg['Servers'][$i]['auth_type'] = 'config';
+?>
+
+ 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 setup/
+ 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
+rm -rf config # remove not needed directory
+
+ 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.
+ - 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.
+ - 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.
+ - You should deny access to the ./libraries and
+ ./setup/lib subfolders 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.
+ -
+ It is generally good idea to protect public phpMyAdmin installation
+ against access by robots as they usually can not do anything good
+ there. You can do this using
robots.txt
file in root of
+ your webserver or limit access by web server configuration. You can
+ find example .htaccess
file which can help you achieve
+ this in contrib
directory in phpMyAdmin.
+
+
+
+
Linked-tables infrastructure
+
+
For a whole set of new features (bookmarks, comments,
+ SQL-history,
+ tracking mechanism,
+ 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 you already had this infrastructure and upgraded to MySQL 4.1.2
+ or newer, 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 old versions may
+ require some tweaking as some options have been changed or removed; in
+ particular, the definition of $cfg['AttributeTypes'] has changed
+ so you better remove it from your file and just use the default one.
+ 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 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 want to use the many new relation and bookmark features:
+
+
+GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
+
+
+ (this of course requires that your linked-tables
+ infrastructure be set up).
+
+ - 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).
+
+
Swekey authentication
+
+The Swekey is a low cost authentication USB key that can be used in
+web applications.
+When Swekey authentication is activated, phpMyAdmin requires the
+users's Swekey to be plugged before entering the login page (currently
+supported for cookie authentication mode only). Swekey Authentication is
+disabled by default.
+To enable it, add the following line to config.inc.php:
+
+
+$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey.conf';
+
+
+You then have to create the swekey.conf file that will associate
+each user with their Swekey Id. It is important to place this file outside
+of your web server's document root (in the example, it is located in /etc). A self documented sample file is provided
+in the contrib directory. Feel free to use it with your own
+users' information.
+If you want to purchase a Swekey please visit
+http://phpmyadmin.net/auth_key
+since this link provides funding for phpMyAdmin.
+
+
+
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['McryptDisableWarning'] boolean
+ - Disable the default warning that is displayed if mcrypt is missing for
+ cookie authentication.
+ 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. There is
+ no maximum length for this secret.
+
+ Since version 3.1.0 phpMyAdmin can generate this on the fly, but it
+ makes a bit weaker security as this generated secret is stored in
+ session and furthermore it makes impossible to recall user name from
+ cookie.
+
+ - $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 or newer.
+
+ - $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]['auth_swekey_config'] string
+
+ -
+ The name of the file containing Swekey ids and login
+ names for hardware authentication. Leave empty to deactivate this feature.
+
+ -
+ $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:
+
+
+
+ -
+ $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]['tracking'] string
+
+ -
+ Since release 3.3.x a tracking mechanism is available.
+ It helps you to track every SQL command which
+ is executed by phpMyAdmin. The mechanism supports logging of data manipulation
+ and data definition statements. After enabling it you can create versions of tables.
+
+ The creation of a version has two effects:
+
+
+ - phpMyAdmin saves a snapshot of the table, including structure and indexes.
+ - phpMyAdmin logs all commands which change the structure and/or data of the table and links these commands with the version number.
+
+
+ Of course you can view the tracked changes. On the "Tracking" page a complete report is available for every version.
+ For the report you can use filters, for example you can get a list of statements within a date range.
+ When you want to filter usernames you can enter * for all names or you enter a list of names separated by ','.
+ In addition you can export the (filtered) report to a file or to a temporary database.
+
+
+ To allow the usage of this functionality:
+
+
+ - set up pmadb and the linked-tables infrastructure
+ - put the table name in $cfg['Servers'][$i]['tracking']
+
+
+
+ -
+ $cfg['Servers'][$i]['tracking_version_auto_create'] boolean
+
+ -
+ Whether the tracking mechanism creates versions for tables and views automatically. Default value is false.
+
+ If this is set to true and you create a table or view with
+
+
+ - CREATE TABLE ...
+ - CREATE VIEW ...
+
+
+ and no version exists for it, the mechanism will
+ create a version for you automatically.
+
+
+ -
+ $cfg['Servers'][$i]['tracking_default_statements'] string
+
+ -
+ Defines the list of statements the auto-creation uses for new versions. Default value is
+
+
+CREATE TABLE,ALTER TABLE,DROP TABLE,RENAME TABLE,
+CREATE INDEX,DROP INDEX,
+INSERT,UPDATE,DELETE,TRUNCATE,REPLACE,
+CREATE VIEW,ALTER VIEW,DROP VIEW,
+CREATE DATABASE,ALTER DATABASE,DROP DATABASE
+
+
+ -
+ $cfg['Servers'][$i]['tracking_version_drop_view'] boolean
+
+ -
+ Whether a DROP VIEW IF EXISTS statement will added as first line to the log when creating a view. Default value is true.
+
+
+
+
+ -
+ $cfg['Servers'][$i]['tracking_version_drop_table'] boolean
+
+ -
+ Whether a DROP TABLE IF EXISTS statement will added as first line to the log when creating a table. Default value is true.
+
+
+
+ -
+ $cfg['Servers'][$i]['tracking_version_drop_database'] boolean
+
+ -
+ Whether a DROP DATABASE IF EXISTS statement will added as first line to the log when creating a database. Default value is true.
+
+
+
+
+ -
+ $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 a shortcut for the AllowDeny rules below.
+
+ - $cfg['Servers'][$i]['AllowNoPassword']
+ boolean
+ - Whether to allow logins without a password. The default
+ value of false for this parameter prevents unintended access
+ to a MySQL server with was left with an empty password for root or
+ on which an anonymous (blank) user is defined.
+
+ -
+ $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'> <username> [from] <ipmask>
+
+
+ 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)
+ Also IPv6 addresses are not supported.
+
+ - $cfg['Servers'][$i]['DisableIS'] boolean
+ - Disable using INFORMATION_SCHEMA to retrieve information (use SHOW commands instead), because of speed issues when many databases are present. Currently used in some parts of the code, more to come.
+
+ - $cfg['Servers'][$i]['ShowDatabasesCommand'] string
+ - On a server with a huge number of databases, the default SHOW
+ DATABASES command used to fetch the name of available databases will
+ probably be too slow, so it can be replaced by faster commands (see
+ libraries/config.default.php for examples).
+
+ - $cfg['Servers'][$i]['CountTables'] boolean
+ - Whether to count the number of tables for each database when preparing the list of databases for the navigation frame.
+
+ - $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 and in the
+ Synchronize feature 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 set
+ to zero, no limit is imposed.
+ This setting is used while importing/exporting dump files and at some
+ other places in phpMyAdmin so you definitely don't want to put here
+ a too low value. It has no effect when PHP is running in safe mode.
+ You can also use any string as in php.ini, eg. '16M'. Ensure
+ you don't omit the suffix (16 means 16 bytes!)
+
+ - $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.
+
+ This is automatically disabled if you do not have configured
+ $cfg['blowfish_secret'].
+
+
+ - $cfg['LoginCookieValidity'] integer [number of seconds]
+ - Define how long is login cookie valid. Please note that php
+ configuration option session.gc_maxlifetime
+ might limit session validity and if session is lost, login cookie is
+ also invalidated. So it is good idea to set
session.gc_maxlifetime
+ at least as high is $cfg['LoginCookieValidity'] is set.
+
+ - $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 or array
+ - The string used to separate the parts of the database name when showing
+ them in a tree. Alternatively you can specify more strings in an array
+ and all of them will be used as a separator.
+
+ - $cfg['LeftFrameTableSeparator'] string
+ - Defines a string to be used to nest table spaces. 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['LeftDefaultTabTable'] string
+ - Defines the tab displayed by default when clicking the small
+ icon next to each table name in the navigation panel. Possible
+ values: "tbl_structure.php",
+ "tbl_sql.php", "tbl_select.php",
+ "tbl_change.php" or "sql.php".
+
+ - $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['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 and Import pages, to choose the character set when
+ exporting a file. The default value in this menu comes from
+ $cfg['Export']['charset'] and $cfg['Import']['charset'].
+
+
+ - $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.
+
+
+ - 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['CheckConfigurationPermissions'] boolean
+ -
+ We normally check the permissions on the configuration file to ensure
+ it's not world writable. However, phpMyAdmin could be installed on
+ a NTFS filesystem mounted on a non-Windows server, in which case the
+ permissions seems wrong but in fact cannot be detected. In this case
+ a sysadmin would set this parameter to FALSE. Default is TRUE.
+
+
+ - $cfg['LinkLengthLimit'] integer
+ -
+ Limit for length of URL in links. When length would be above this limit, it
+ is replaced by form with button.
+ This is required as some web servers (IIS) have problems with long URLs.
+ Default is
1000
.
+
+
+ - $cfg['NaviWidth'] integer
+ - Navi frame width in pixels. See themes/themename/layout.inc.php.
+
+
+ - $cfg['NaviBackground'] string [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
+ 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.
+
+
+ - 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 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 and to work around limitations of
+ open_basedir for uploaded
+ files, see FAQ
+ 1.11.
+
+
+ If the directory where phpMyAdmin is installed is subject to an
+ open_basedir restriction, you need to create a
+ temporary directory in some directory accessible by the web
+ server. However for security reasons, this directory should be outside
+ the tree published by webserver. If you cannot avoid having this
+ directory published by webserver, place at least an empty
+ index.html file there, so that directory listing is not
+ possible.
+
+
+ This directory should have as strict permissions as possible as the only
+ user required to access this directory is the one who runs the
+ webserver. If you have root privileges, simply make this user owner of
+ this directory and make it accessible only by it:
+
+
+
+chown www-data:www-data tmp
+chmod 700 tmp
+
+
+ If you cannot change owner of the directory, you can achieve a similar
+ setup using ACL:
+
+
+chmod 700 tmp
+setfacl -m "g:www-data:rwx" tmp
+setfacl -d -m "g:www-data:rwx" tmp
+
+
+ If neither of above works for you, you can still make the directory
+ chmod 777
, but it might impose risk of other users on
+ system reading and writing data in this directory.
+
+
+ - $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['QueryWindowHeight']
+ - 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.
+
+
+ - If set to 'closed', the visual sliders are initially in a
+ closed state. A value of 'open' does the reverse. To completely
+ disable all visual sliders, use 'disabled'.
+
+ - $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']['sql'] boolean
+ - DEVELOPERS ONLY!
+ Enable logging queries and execution times to be displayed in the bottom
+ of main page (right frame).
+
+ - $cfg['DBG']['php'] 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.
+
+
+
+
+
+
+
- Introduction
+ - Usage
+ - File structure
+
+
+
+
+
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
+ <www.your-host.com>/<your-install-dir>/transformation_overview.php
+ installation.
+
+
For a tutorial on how to effectively use transformations, see our
+ Link section on
+ the official phpMyAdmin homepage.
+
+
+
+
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'".
+
+
+
+
+
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:
+
+
- 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()
+
+ - 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()
+
+ - 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)
+
+ - 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)
+
+ - 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:
+
+
- $buffer - Contains the text inside of the column. This is the text,
+ you want to transform.
+ - $options - Contains any user-passed options to a transform function
+ as an array.
+ - $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
+
+
- Server
+ - Configuration
+ - Known limitations
+ - ISPs, multi-user installations
+ - Browsers or client OS
+ - Using phpMyAdmin
+ - phpMyAdmin project
+ - Security
+ - Synchronization
+
+
+
Please have a look at our
+ Link section on
+ the official phpMyAdmin homepage for in-depth coverage of phpMyAdmin's
+ features and or interface.
+
+
Server
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
This is a known problem with the PHP
+ ISAPI
+ filter: it's not so stable. Please use instead the cookie authentication mode.
+
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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
+
+
+
+
+
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!
+
+
+
+
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.
+
+
+
+
Since version 2.2.4, phpMyAdmin supports servers with open_basedir
+ restrictions. However you need to create temporary directory and
+ configure it as $cfg['TempDir'].
+ The uploaded files will be moved there, and after execution of your
+ SQL commands, removed.
+
+
+
+
The MySQL manual explains how to
+
+ reset the permissions.
+
+
+
+
If PHP does not have read/write access to its upload_tmp_dir, it
+ cannot access the uploaded query.
+
+
+
+
Check the post_max_size directive from your PHP configuration file
+ and try to increase it.
+
+
+
+
In previous MySQL versions, the User and Password fields
+ were named user and password. Please modify your field
+ names to align with current standards.
+
+
+
+
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.
+
+
+
+
+
Since phpMyAdmin 3.0.x, only MySQL 5.0.1 and newer are supported. For
+ older MySQL versions, you need to use 2.8.x branch. phpMyAdmin can
+ connect to your MySQL server using PHP's classic
+ MySQL extension as well as the
+ improved MySQL extension (MySQLi) that
+ is available in php 5.0. The latter one should be used unless you have
+ good reason not to do so.
+ 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.
+
+
+
+
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.
+
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
In php.ini, set mysql.max_links higher than 1.
+
+
+
+
This is most likely because in php.ini, your file_uploads
+ parameter is not set to "on".
+
+
+
+
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';
+
+
+
+
This is a PHP 4.2.3 bug.
+
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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
+
+
+
+
+
This problem is known to happen when the server is running Turck MMCache
+ but upgrading MMCache to version 2.3.21 solves the problem.
+
+
+
+
Yes.
+ However, phpMyAdmin needs to be backwards compatible to php4. This is why
+ phpMyAdmin disables the E_STRICT error_level in
+ error_reporting settings.
+
+
+
+
+
Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI
+ mode under IIS 5.1.
+
+
- In your php.ini file, set cgi.rfc2616_headers = 0
+ - 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.
+ - In Custom Errors, select the range of 401;1 through
+ 401;5 and click the Set to Default button.
+
+
+
+
+
Yes. This problem affects phpMyAdmin ("Call to undefined function
+ pma_reloadnavigation"), so upgrade your PHP to the next version.
+
+
+
+
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]
+
+
+
+
+
Yes. However you need to pass authentication variable to CGI using
+ following rewrite rule:
+
+
+RewriteEngine On
+RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
+
+
+
+
+ There can be many explanations to this and a look at your server's
+ error log file might give a clue.
+
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
+
Be sure that you have enabled SSLOptions and StdEnvVars
+in your Apache configuration. See http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#ssloptions.
+
+
+
+
To be able to use cookie auth Apache must know that it has to rewrite the set-cookie headers.
+ Example from the Apache 2.2 documentation:
+
+ProxyPass /mirror/foo/ http://backend.example.com/
+ProxyPassReverse /mirror/foo/ http://backend.example.com/
+ProxyPassReverseCookieDomain backend.example.com public.example.com
+ProxyPassReverseCookiePath / /mirror/foo/
+
+
+
Note: if the backend url looks like http://host/~user/phpmyadmin,
+ the tilde (~) must be url encoded as %7E in the ProxyPassReverse* lines.
+ This is not specific to phpmyadmin, it's just the behavior of Apache.
+
+
+
+ProxyPass /mirror/foo/ http://backend.example.com/~user/phpmyadmin
+ProxyPassReverse /mirror/foo/
+http://backend.example.com/%7Euser/phpmyadmin
+ProxyPassReverseCookiePath /%7Euser/phpmyadmin /mirror/foo
+
+
+
See http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
+ for more details.
+
+
+
+
The MySQL server's privilege tables are not up to date, you need to run
+the mysql_upgrade command on the server.
+
+
+
Configuration
+
+
+
+
Edit your config.inc.php file and ensure there is nothing
+ (I.E. no blank lines, no spaces, no characters...) neither before the
+ <?php tag at the beginning, neither after 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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
Check the value you set for the
+ $cfg['PmaAbsoluteUri']
+ directive in the phpMyAdmin configuration file.
+
+
+
+
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.
+
+
+
+
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").
+
+
+
+
+
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.
+
+
+
+
+
+
To be able to see a progress bar during your uploads, your server must
+have either the APC extension
+ or the uploadprogress
+ one. Moreover, the JSON extension has to be enabled in your PHP.
+
If using APC, you must set apc.rfc1867 to on in your php.ini.
+
+
Known limitations
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
This is an InnoDB bug, see http://bugs.mysql.com/bug.php?id=21704.
+
+
+
+
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
+
+ #---------------------------------------------------------
+
+
+
+
+
+
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
+
+
+
+
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.
+
+
+
+
+ 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.
+
+
+
+
+
+
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.
+
+
+
+
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
+
+
+
+
+
Please make sure that your table has a primary key, so that phpMyAdmin
+ can use it for the Edit and Delete links.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+ 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.
+
+
+
+
+ This has been a known limitation of phpMyAdmin since the beginning and
+ it's not likely to be solved in the future.
+
+
+
+
+
+
+ phpMyAdmin uses the PHPExcel library to parse Excel XLS and XLSX spreadsheets.
+ Therefore, any limitations that are listed on their page regarding Excel calculations will also apply here.
+
+ PHPExcel will be kept up to date so as to make all improvements available to phpMyAdmin users.
+
+
+
+
+ Since Excel XLSX workbooks are already compressed, there is often times only a small benefit from compressing them yet again.
+ Support for compressed Excel XLSX and XLS workbooks may be added in the future.
+
+
+
+
+ Excel's internal representation of custom cell types is rather muddled (especially in Excel 97-2003 binary XLS files). If possible,
+ consider using a built-in type. These are almost always guarenteed to import correctly.
+
+
+
+
+
+
+
+ There is no reliable way to differetiate tables in CSV format. For the time being, you will have to break apart CSV files containing multiple tables.
+
+
+
+
+
+
+
+ Currently, the import type-detection system can only assign these MySQL types to columns. In future, more will likely be added but for the time being
+ you will have to edit the structure to your liking post-import.
+
+ Also, you should note the fact that phpMyAdmin will use the size of the largest item in any given column as the column size for the appropriate type. If you
+ know you will be adding larger items to that column then you should manually adjust the column sizes accordingly. This is done for the sake of efficiency.
+
+
+
+
+
ISPs, multi-user installations
+
+
+
+ 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".
+
+
+
+
+ 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.
+
+
+
+
+
+ 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.
+
+
+
+
+
This could happen for several reasons:
+
+
+
+
+
+
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).
+
+
+
+
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',
+ );
+
+
+
+
+
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.
+
+
+
+
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
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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!
+
+
+
+
+ Upgrade to at least Internet Explorer 5.5 SP2.
+
+
+
+
+ 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.
+
+
+
+
+
+ Some browsers support right-clicking into the frame you want to refresh,
+ just do this in the right frame.
+
+
+
+
+ Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future
+ Mozilla versions.
+
+
+
+
+ This is a Mozilla bug (see bug #26882 at
+ BugZilla).
+
+
+
+
+ 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.
+
+
+
+
+
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.
+
+
+
+
This issue has been reported by a OS X user, who adds that Chimera,
+ Netscape and Mozilla do not have this problem.
+
+
+
+
This is a bug in Internet Explorer, other browsers do not behave this way.
+
+
+
+
Please upgrade to Opera7 at least.
+
+
+
+
Please upgrade to at least version 1.2.3.
+
+
+
+
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.
+
+
+
+
Many users have confirmed that the Tabbrowser Extensions plugin they
+ installed in their Firefox is causing the problem.
+
+
+
This happens only when both of these conditions are met: using the
+ http authentication mode and register_globals being set
+ to On on the server. It seems to be a browser-specific problem;
+ meanwhile use the cookie authentication mode.
+
+
Using phpMyAdmin
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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).
+
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
+
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"
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+
No, it's MySQL that is doing
+ silent
+ column type changing.
+
+
+
+
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.
+
+
+
+
It means "average".
+
+
+
+
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.
+
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
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?
+
+
+
+
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.
+
+
+
+
You can simply include table in your LATEX 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
+
+
+
+
+
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.
+
+
+
+
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 100 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 100 values or more, a distinct window will appear, to browse foreign
+ key values and choose one. To change the default limit of 100, see
+ $cfg['ForeignKeyMaxLimit'].
+
+
+
+
Yes. If a bookmark has the same label as a table name, it will be executed.
+
+
+
+
+
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
+
+
+
+
+
Automatic migration of a table's pmadb-style column comments to the native
+ ones is done whenever you enter Structure page for this table.
+
+
+
+
First, for general information about BLOB streaming on MySQL, visit blobstreaming.org. We currently support streaming if you are running MySQL 5.1 with the PBXT and PBMS storage engines.
+
+
+ - In config.inc.php your host should be defined with a FQDN (fully qualified domain name) instead of something like "localhost".
+ - A current limitation is that your first login via phpMyAdmin to a freshly-started server must be done with an account that has the SUPER privilege.
+ - On your target database, go to Operations and in the "BLOB Repository" section, click "Enable". This creates the PBMS system tables inside your database.
+ - Ensure that your target table is under the PBXT storage engine and has a LONGBLOB column.
+ - When you insert or update a row in this table, put a checkmark on the "Upload to BLOB repository" optional choice; otherwise, the upload will be done directly in your column instead of the repository.
+ - Finally when you browse your table, you'll see in your column a link to stream your data, for example "View image". A header containing the correct MIME-type will be sent to your browser; this MIME-type was stored at upload time but in case it's incorrect, it's possible to edit it by clicking on the displayed MIME-type.
+
+
+
phpMyAdmin project
+
+
+
+
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)
+
+
+
+
Always use the current SVN version of your language file.
+ For a new language, start from english-utf-8.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.
+
+
+
+
The following method is preferred for new developers:
+
+
- fetch the current SVN tree over anonymous SVN:
+ svn co https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin
+
+ - add your stuff
+ - generate patch with your changes:
+ svn diff
+
+ - 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
+
+
+
+
Please refer to
+ http://www.phpmyadmin.net/home_page/security.php
+
+
+
+
+
If you use Apache web server, phpMyAdmin exports information about
+ authentication to Apache environment and it can be used in Apache logs.
+ Currently there are two variables available:
+
+
+ userID
+ - User name of currently active user (he does not have to be logged
+ in).
+ userStatus
+ - Status of currently active user, one of
ok
(user is
+ logged in), mysql-denied
(MySQL denied user login),
+ allow-denied
(user denied by allow/deny rules),
+ root-denied
(root is denied in configuration),
+ empty-denied
(empty password is denied).
+
+
+ LogFormat
directive for Apache can look like following:
+
+
+LogFormat "%h %l %u %t \"%r\" %>s %b \
+\"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n" pma_combined
+
+
+ You can then use any log analyzing tools to detect possible break-in
+ attempts.
+
+
+
Synchronization
+
+
+
You can now synchronize databases/tables in phpMyAdmin using the Synchronize feature.
+It allows you to connect to local as well as remote servers.This requires you to enter
+server host name, username, password, port and the name of the database. Therefore you can
+now synchronize your databases placed on the same server or some remote server.
+
+
+
For more details see How to synchronize
+
+
+
+
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 put message strings in your code, instead add the string
+ (at least) to english-utf-8.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.
+
+
+
Copyright
+
+
+Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
+Copyright (C) 2001-2009 Marc Delisle <marc_at_infomarc.info>
+ Olivier Müller <om_at_omnis.ch>
+ Robin Johnson <robbat2_at_users.sourceforge.net>
+ Alexander M. Turek <me_at_derrabus.de>
+ Michal Čihař <michal_at_cihar.com>
+ Garvin Hicking <me_at_supergarv.de>
+ Michael Keck <mkkeck_at_users.sourceforge.net>
+ Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
+ [check credits for more details]
+
+
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License version 2,
+as published by the Free Software Foundation.
+
+
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+
+
Credits
+
+
Credits, in chronological order
+
+
+
+- Tobias Ratschiller <tobias_at_ratschiller.com>
+
+ - creator of the phpmyadmin project
+ - maintainer from 1998 to summer 2000
+
+
+- Marc Delisle <marc_at_infomarc.info>
+
+ - multi-language version
+ - various fixes and improvements
+ - SQL analyser (most of it)
+ - current project maintainer
+
+
+- Olivier Müller <om_at_omnis.ch>
+
+ - 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 <lolo_at_phpheaven.net>
+
+ - 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 <robbat2_at_users.sourceforge.net>
+
+ - database maintenance controls
+ - table type code
+ - Host authentication IP Allow/Deny
+ - DB-based configuration (Not completed)
+ - SQL parser and pretty-printer
+ - SQL validator
+ - many bugfixes and improvements
+
+
+- Armel Fauveau <armel.fauveau_at_globalis-ms.com>
+
+ - bookmarks feature
+ - multiple dump feature
+ - gzip dump feature
+ - zip dump feature
+
+
+- Geert Lund <glund_at_silversoft.dk>
+
+ - various fixes
+ - moderator of the phpMyAdmin former users forum at phpwizard.net
+
+
+- Korakot Chaovavanich <korakot_at_iname.com>
+
+ - "insert as new row" feature
+
+
+- Pete Kelly <webmaster_at_trafficg.com>
+
+ - rewrote and fix dump code
+ - bugfixes
+
+
+- Steve Alberty <alberty_at_neptunlabs.de>
+
+ - rewrote dump code for PHP4
+ - mySQL table statistics
+ - bugfixes
+
+
+- Benjamin Gandon <gandon_at_isia.cma.fr>
+
+ - main author of the version 2.1.0.1
+ - bugfixes
+
+
+- Alexander M. Turek <me_at_derrabus.de>
+
+ - 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 <mike.beck_at_web.de>
+
+ - automatic joins in QBE
+ - links column in printview
+ - Relation view
+
+
+- Michal Čihař <michal_at_cihar.com>
+
+ - enhanced index creation/display feature
+ - feature to use a different charset for HTML than for MySQL
+ - improvements of export feature
+ - various features and fixes
+ - Czech language file updates
+
+
+- Christophe Gesché from the "MySQL Form Generator for PHPMyAdmin"
+ (http://sf.net/projects/phpmysqlformgen/)
+
+ - suggested the patch for multiple table printviews
+
+
+- Garvin Hicking <me_at_supergarv.de>
+
+ - built the patch for vertical display of table rows
+ - built the Javascript based Query window + SQL history
+ - Improvement of column/db comments
+ - (MIME)-Transformations for columns
+ - Use custom alias names for Databases in left frame
+ - hierarchical/nested table display
+ - PDF-scratchboard for WYSIWYG-distribution of PDF relations
+ - new icon sets
+ - vertical display of column properties page
+ - some bugfixes, features, support, German language additions
+
+
+- Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
+
+ - japanese kanji encoding conversion feature
+
+
+- Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson
+
+ - the Cookie authentication mode
+
+
+- Axel Sander <n8falke_at_users.sourceforge.net>
+
+ - table relation-links feature
+
+
+- Maxime Delorme <delorme.maxime_at_free.fr>
+
+
+- Olof Edlund <olof.edlund_at_upright.se>
+
+
+- Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
+
+ - phpMyAdmin logo (until June 2004)
+
+
+- Mike Cochrane <mike_at_graftonhall.co.nz>
+
+ - blowfish library from the Horde project
+
+
+- Marcel Tschopp <ne0x_at_users.sourceforge.net>
+
+ - mysqli support
+ - many bugfixes and improvements
+
+
+- Michael Keck <mkkeck_at_users.sourceforge.net>
+
+ - redesign for 2.6.0
+ - phpMyAdmin sailboat logo (June 2004)
+
+
+- Mathias Landhäußer
+
+ - Representation at conferences
+
+
+- Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
+
+ - interface improvements
+ - various bugfixes
+
+
+- Ivan A Kirillov
+
+ - new relations Designer
+
+
+- Raj Kissu Rajandran (Google Summer of Code 2008)
+
+ - BLOBstreaming support
+
+
+- Piotr Przybylski (Google Summer of Code 2008)
+
+ - improved setup script
+
+
+- Derek Schaefer (Google Summer of Code 2009)
+
+ - Improved the import system
+
+
+- Alexander Rutkowski (Google Summer of Code 2009)
+
+
+- Zahra Naeem (Google Summer of Code 2009)
+
+ - Synchronization feature
+
+
+- Tomáš Srnka (Google Summer of Code 2009)
+
+
+
+
+
+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 <ak-lsml_at_living-source.com> 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 <jan_at_nrw.net>: 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 <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin
+ language-independent by outsourcing the strings to a separate file. He
+ also contributed the French translation.
+
+ - Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed
+ tbl_select.php3, a feature to display only some fields from a table.
+
+ - Chris Jackson <chrisj_at_ctel.net> added support for MySQL
+ functions in tbl_change.php3. He also added the
+ "Query by Example" feature in 2.0.
+
+ - Dave Walton <walton_at_nordicdms.com> added support for multiple
+ servers and is a regular contributor for bug-fixes.
+
+ - Gabriel Ash <ga244_at_is8.nyu.edu> 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-separated 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.
+ - LATEX
+ - a document preparation system for the TEX 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.
+
+
+
+
+
+
+
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 000000000..29bc6de01
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,9 @@
+$Id$
+
+phpMyAdmin - Installation
+-------------------------
+
+ Please have a look to the Documentation.txt or
+ Documentation.html files.
+
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..3912109b5
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+