diff --git a/CREDITS b/CREDITS
new file mode 100644
index 000000000..6506d4d7e
--- /dev/null
+++ b/CREDITS
@@ -0,0 +1,9 @@
+$Id$
+
+
+phpMyAdmin - Credits
+====================
+
+ Please have a look to the Documentation.txt or
+ Documentation.html files.
+
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 000000000..866f772c2
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,362 @@
+----------------------
+phpMyAdmin - ChangeLog
+----------------------
+
+$Id$
+$HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin/ChangeLog $
+
++ [import] support handling of DELIMITER to mimic mysql CLI, thanks to fb1
++ improved PHP 6 compatibility
+- bug #1674914 [structure] changing definition of a TIMESTAMP field
+- bug #1615530 [upload] added more specific error message if field upload fails
+- bug #1627210, #1083301, #1482401 [data] warning on duplicate indexes
+- bug #1668724 JavaScript focus login Opera
+- bug #1666657 [auth] Cookie password delete on timeout / inactivity
+- bug #1648802 different mysql library and server version
+- bug #1662976 [auth] Authentication fails when controluser/pass is set
+- bug #1643758 [import] Error #1264 importing NULL values in MySQL 5.0
+- bug #1523747 [innodb] make warning about row count more visible
+- bug #1676012 [auth] strip non-US-ASCII characters (RFC2616)
+- bug #1679440 Added FAQ entry about header errors under IIS caused by
+ an end-of-line character
+- [gui] avoid displaying a wide selector in server selection
+- bug #1614004 [relation] foreign key spanning multiple columns are
+ incorrectly displayed
+- bug #1681598 [interface] Edit next row
+- bug #1688053 [export] Wrong export of binary character fields
+- bug #1498281 [parser] Wrong primary key used for displaying results
+ with subquery
+- bug #1699772 Visual space bug in table name (in browser)
+- bug #1699532 Cause of data manipulation issues: implemented changes
+ as suggested by crisp_; still have to work on updating an ENUM value
++ [core] added PMA_fatalError() and made use of it
+. [core] added PMA_isValid() and PMA_ifSetOr() for variable handling
+. [i18n] use generic $strOptions
+. [core] get rid of $propicon
+. [core] globalized variables to be includable inside function in
+ libraries/select_lang.lib.php
++ [doc] changed all documentation in config.inc.php to phpDocumentor style
++ [data] support for CREATE VIEW from query results
++ [gui] dropped css/ folder and moved into root of PMA
++ [l10n] new: Sinhala, Macedonian
++ [export] YAML export (see yaml.org), thanks to Bryce Thornton
++ [upload] moved file upload functionality into own class
++ [upload] make use of $cfg['TempDir'] for file uploads
++ [server] improved display of binary logs
++ [data] better error handling in tbl_create.php
++ [routines] from Patch #1649881, thanks to Mike Beck
++ [querywindow] store sql history in session
++ [querywindow] sql history now without db too
++ [querywindow] tweaks in sql history view
++ [export] Native Excel (Spreadsheet_Excel_Writer) improvements,
+ thanks to Christian Schmidt
++ [doc] requirement of mcrypt on 64-bit, thanks to Isaac Bennetch
++ [lang] Danish update, thanks to Finn Sorensen
++ RFE #1435922 [gui] navigation frame shows listing of databases when none selected
++ [data] support BIT datatype (under mysqli), thanks to Christian Schmidt
++ [display] automatic confirmation for sort by key, thanks to Juergen Wind
++ [data] can now choose the number of insert rows
++ RFE #1704779 [gui] link documentation from login page
++ RFE #1513345 [setup] check control user connection during setup
++ [structure] TRIGGERS: display/edit/drop/SQL export
++ [browse] store browse state in session per query
++ [lang] Turkish update, thanks to Burak Yavuz
++ [lang] Galician update, thanks to Xosé Calvo
++ [lang] Brazilian-Portuguese update, thanks to Airon Luis Pereira
++ [gui] Insert/Edit: no longer display the Go button each 15 lines
+ but just at the end of a row
++ [gui] Query window: use verbose server name if any
++ [auth] patch #1712514 specify host for single signon, thanks to Thierry
++ [gui] Navigator for the db list in the navigation panel
++ [gui] Navigator for the table list in the content panel
+- bug #1727138 HTML not encoded (more than 1000 characters)
++ [display] Support for MySQL 5.0.37 profiling
++ RFE #1743983 [gui] Replace $max_characters by a configurable param:
+ $cfg['MaxCharactersInDisplayedSQL']
+- bug #1746186 LeftLogoLink fails if set to some external site
+. [transformations]: remove "auto-detect" MIME-type that was never implemented
++ [display] patch #1749705, Allow multibyte characters in number formatting,
+ thanks to garas
+- bug #1747215 Export emits blanks at line ends
+- bug #1751172 Do not export data when exporting a single VIEW
++ [lang] Swedish update, thanks to Björn T. Hallberg
++ [lang] Russian update, thanks to Victor Volkov and the php-myadmin.ru users
++ [privileges] Support password hashing on the Edit Privileges interface
+
+2.10.3.0 (not yet released)
+
+- bug #1734285 Copy database with VIEWs
+- bug #1722502 DROP TABLE in export VIEW
+- bug #1729027 Sorting results of VIEW browsing
+- bug #1733012 Unwanted table alias in delete button
+- bug #1736405 Pretty printer and HTML line breaks
+- bug #1745257 Invalid DB name is still displayed
+- bug #1730367 Calendar "Go" has no effect
+- patch #1750500 Smaller file for favicon.ico, thanks to Thijs Kinkhorst
+- bug #1748633 Incorrect parameter validation for VIEWs
++ [lang] Russian revision, thanks to Victor Volkov and the users of
+ php-myadmin.ru
+- Do not try to delete an internal relation if we just deleted an InnoDB one
+
+2.10.2.0 (2007-06-15)
+
++ [data] display all warnings, not only last one
+- typo in fix for bug #1671813
+- bug #1714908 Inserted Row Count is wrong
+- bug #1712570 Deleting last record freezes
+- bug #1717339 Missing header when deleting a checked column,
+ thanks to Michael Keck
+- bug #1717477 Warning on Query page when db is empty
+- bug #1721002 db rename -> undefined cfgRelation, thanks to Jürgen Wind
+- bug #1721571 CREATE database privilege not always detected,
+ thanks to Gordon McNaughton
+- bug #1715709 export in SQL format always includes procedures and functions
+- bug #1722502 DROP TABLE in export view structure
+- bug #1718787 Multi-server setup breaks Designer
+- bug #1724401 Column truncation in repair table output
+- patch #1726500 Wrong position of , thanks to Jürgen Wind
+- bug #1728590 Detected failing session_start fails, thanks to Jürgen Wind
+- RFE #1714760 Obey ShowCreateDb on the Databases tab
+- patch #1733762 Typo in message "INSERT DELAY", thanks to Victor Volkov
+- patch #1730171 Dead message strLanguageFileNotFound, thanks to Victor Volkov
+- patch #1731280 Avoid negative exponent in gmp_pow(), thanks to anosek
+
+2.10.1.0 (2007-04-23)
+=====================
+
+- bug #1541147 [js] '#' in database names not correctly handled by queywindow.js
+- bug #1671403 [parser] using "client" as table name
+- bug #1672379 [core] Call to undefined function PMA_removeCookie()
+- bug [core] undefined variable in libraries/tbl_replace_fields.inc.php
+- bug [gui] query window icon did not work, thanks to Jürgen Wind - windkiel
+. [general] use PMA_getenv('PHP_SELF')
+- bug #1676033 [core] pow(int,int) causes overflow
+- bug #1680952 [core] undefined function PMA_getUvaCondition()
+- bug #1596328 [export] drop support for POSTGRESQL compatibility mode
+- bug #1609443 [privileges] Grant all priv. on wildcard name (fix message)
+- bug #1567317 [sqp] Syntax highlighter: extra spaces
+- bug #1239401 [sqp] table dot numeric field name
+- bug #1672789 [sqp] Undefined offset: 4 in sqlparser.lib.php #1674
+- bug #1682044 [export] Export file even if file not selected
+- bug #1664212 querywindow loses url encoded characters
+- replaced ctype_digit() with is_numeric()
++ [config] clean cookies on phpMyAdmin upgrade
+- bug #1674972 [export] no export with %afm%
+- bug #1667887 HTML maxlength
+- bug #1679055 #1050 - Table '
' already exists
+- patch #1681620 [interface] support reordering of $cfg['ColumnTypes'],
+ thanks to Leonard den Ottolander
+- bug #1690718 Can't edit if BLOB and no PK
+- bug #1672636 [export] PDF export too wide
++ [lang] brazilian-portuguese update, thanks to Airon Luis Pereira
+- patch #1698964 javascript typo, thanks to Corey Hollaway
+- bug #1703897 [css] undefined index 'js_frame'
+- bug #1690561 Blobs being cleared on Edit of row
+- bug #1679801 [core] XSS vulnerability in PMA_sanitize(), thanks to sp3x SecurityReason
+- bug #1704467 XSS vulnerability in browse_foreigners.php, thanks to sp3x SecurityReason
+
+2.10.0.2 (2007-03-02)
+=====================
+
++ bug #1671813 CVE-2006-1549 deep recursion crash
+
+2.10.0.1 (2007-03-01)
+=====================
+
+. [config] set $cfg['Servers'][$i]['ssl'] default value to false,
+ we got reports from some users having problems with the default value of true
+
+2.10.0.0 (2007-02-28)
+=====================
+
+- bug #1659176 [general] memory error displaying a table with large BLOBs
+- bug #1668662 [install] can create the new pma_designer_coords table
++ [gui] navi logo now links to main page by default, with still the possibility
+ of having an external URL
+
+2007-02-25 Marc Delisle
+ * libraries/common.lib.php: bug #1667466, undefined variable when
+ export + save on server
+ * server_status.php: bug #1665930, undefined PHP_SELF
+
+2007-02-24 Marc Delisle
+ * libraries/config.default.php: RFE #1621437, HEX and UNHEX were not
+ available for a BINARY field
+
+2007-02-21 Marc Delisle
+ * pmd/scripts/move.js: bug #1650770, Designer and Mac OSX,
+ thanks to Ivan Kirillov
+
+2007-02-17 Marc Delisle
+ * Documentation.html: patch #1659347, missing doc for some config,
+ thanks to Isaac Bennetch
+ * libraries/export/sql.php: bug #1663336, undefined variable
+
+2007-02-16 Marc Delisle
+ * libraries/common.lib.php, footer.inc.php: avoid generating big links
+ after an upload into a BLOB
+
+2007-02-14 Marc Delisle
+ * libraries/common.lib.php: white page after uploading a 700 Kio BLOB
+ * add a warning on main page if mcrypt can't be loaded (bug 1658160)
+
+2007-02-12 Sebastian Mendel
+ * libraries/database_interface.lib.php: bug #1616486 server_databases does
+ not show all databases
+ * libraries/sqlparser.data.php: MySQL function and column names, reserved
+ and forbidden words updated,
+ bug #1657045 Spatial functions not supported
+ bug #1657037 Missing column type "geometry"
+
+2007-02-09 Marc Delisle
+ * main.php: some links should open a new page
+ * Documentation.html, libraries/navigation_header.inc.php,
+ libraries/config.default.php: $cfg['LeftLogoLinkWindow'] to decide
+ in which window the logo-linked page will appear
+
+2007-02-09 Michal Čihař
+ * lang/czech: Fix syntax error (sorry for that).
+
+2007-02-08 Marc Delisle
+ * themes/darkblue_orange/img/logo_left.png,
+ themes/original/img/logo_left.png: smaller PMA logo for navi
+
+2007-02-08 Sebastian Mendel
+ * themes/*/css/theme_right.css.php: bug #1653769 browsing highlight disabling
+ doesn't work
+
+2007-02-06 Sebastian Mendel
+ * pmd_general.php, pmd_pdf.php, pmd_save_pos.php: fixed short open tags
+ patch #1652886 thanks to Martin Thielecke - mthie
+ * tbl_change.php: fixed escaping of field names in HTML and JavaScript
+ * libraries/common.lib.php: PMA_backquote() did not quote 0
+ * tbl_change.php: bug #1652810 - slashes are not escaped properly
+
+2007-02-05 Marc Delisle
+ * lang/japanese: Update, thanks to Ishigaki Kenichi - tcool.
+
+2007-02-05 Sebastian Mendel
+ * lang/german: updated
+
+2007-02-03 Marc Delisle
+ * pmd/scripts/move.js: display problems in Opera, thanks to Maxim Bulygin
+
+2007-02-02 Marc Delisle
+ * tbl_replace.php: Calendar icon does not work on "Insert another new row"
+
+2007-02-01 Marc Delisle
+ * libraries/import.lib.php: bug #1626064, too much quoting on import
+
+2007-02-01 Sebastian Mendel
+ * libraries/display_tbl.lib.php: bug #1644740 - $cfg['Order'] = 'SMART'
+ overwritten
+ * libraries/Theme.class.php: removed __wakeup() due to some requirements are
+ not fulfilled at this point - also thanks to Jürgen Wind - windkiel
+
+2007-01-31 Sebastian Mendel
+ * libraries/session.inc.php:
+ bug #1630871 - Detecting a missing write permission on sessions directory
+
+2007-01-30 Sebastian Mendel
+ * libraries/sqlparser.lib.php PMA_SQP_analyze():
+ bug #1647785 - do not pass variables by reference
+
+2007-01-29 Marc Delisle
+ * lang/catalan update, thanks to Xavier Navarro (xavin)
+ * pmd_general.php: possibility of quotes in Designer messages,
+ thanks to Ivan Kirillov
+
+2007-01-26 Michal Čihař
+ * libraries/common.lib.php, libraries/js_escape.lib.php,
+ test/escape_js_string.php, test/core.lib.php: Move java script escaping
+ to separate library, make it safer on escaping and add
+ testcase for it.
+ * test/theme.php: Move to test package.
+
+2007-01-22 Marc Delisle
+ * pmd/*: button for direct/angular links, thanks to Ivan Kirillov
+
+2007-01-22 Michal Čihař
+ * lang/czech: Updated.
+
+2007-01-21 Marc Delisle
+ * libraries/Table.class.php: on a MySQL 5.0.33 server with 4400 databases,
+ one of which having 400 tables, it took more than 3 minutes just to
+ see the database structure (some accesses to INFORMATION_SCHEMA are
+ just too slow) so I changed PMA_Table::isView() to avoid calling
+ INFORMATION_SCHEMA
+
+2007-01-20 Marc Delisle
+ * libraries/sqlparser.lib.php: bug #1638267, wrong reserved word
+ recognition
+ * server_privileges.php: bug #1635377, superfluous backslash,
+ thanks to Hanut
+
+2007-01-19 Marc Delisle
+ * pmd*, lang/*: Designer now supports set/unset of the display field,
+ thanks to Ivan Kirillov
+
+2007-01-18 Michal Čihař
+ * lang/czech: Updated.
+ * libraries/auth/cookie.auth.lib.php: Make server switching honour more
+ server settings (patch #1630104).
+
+2007-01-17 Marc Delisle
+ * lang/turkish: update, thanks to Burak Yavuz - bourock
+
+2007-01-16 Marc Delisle
+ ### 2.9.2 released from QA_2_9
+
+2007-01-12 Marc Delisle
+ * (many files): Designer, two features (snap to grid / display field)
+ thanks to Ivan Kirillov
+ * libraries/Theme_Manager.class.php: patch #1611684, force a change
+ of a session variable to avoid phpmyadmin.css.php caching problems,
+ thanks to Christian Schmidt
+
+2007-01-11 Marc Delisle
+ * lang/estonian: Update, thanks to Marko Ellermaa - uhuu
+
+2007-01-09 Michal Čihař
+ * index.php: Properly escape strings written in JS code.
+ * libraries/Theme_Manager.class.php: Avoid trigger error here, parameter
+ comes from user and it might lead to path disclossure.
+ * libraries/common.lib.php:
+ - Properly escape in JS code.
+ - Check db, table and sql_query params to be string.
+
+2007-01-08 Marc Delisle
+ * libraries/session.inc.php: prevent attack on session name cookie
+
+2007-01-05 Marc Delisle
+ * libraries/session.inc.php: bug #1538132, remove the setting of
+ session.save_handler to 'files'
+ * pmd_general.php: patch #1627831,
+ English language improvements, thanks to Isaac Bennetch
+ * pmd_general.php, pmd_relation_new.php, lang/*: abstract messages
+
+2007-01-04 Marc Delisle
+ * pmd/scripts/move.js: avoid text selection when moving a table object
+ under MSIE 6, thanks to Ivan Kirillov
+ * libraries/db_links.inc.php: better icon for Designer, thanks to I.K.
+
+2007-01-02 Marc Delisle
+ * Designer: various fixes and improvements (for example support
+ for MSIE 6), thanks to Ivan Kirillov
+ * pdf_pages.php: undefined $pdf_page_number when no auto layout
+ * server_privileges.php: bug #1614087, deleting a user having a
+ global GRANT privilege fails under MySQL 4.1.x
+
+2007-01-02 Michal Čihař
+ * libraries/common.lib.php: Add
to allow selecting whole SQL by
+ tripple click (patch #1611591).
+ * libraries/export/sql.php: DELIMITER should not be commented out (bug
+ #1612870).
+
+ --- 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..6909e8abf
--- /dev/null
+++ b/Documentation.html
@@ -0,0 +1,4396 @@
+
+
+
+
+
+
+
+
+
+ phpMyAdmin 2.11.0-dev - Documentation
+
+
+
+
+
+
+
You need PHP 4.1.0 or newer, with session support
+ (see
+ FAQ 1.31)
+
+
You need GD2 support in PHP to display inline
+ thumbnails of JPEGs ("image/jpeg: inline") with their
+ original aspect ratio
+
You need PHP 4.3.0 or newer to use the
+ "text/plain: external" MIME-based transformation
+
When using the "cookie"
+ authentication method, the
+ mcrypt extension
+ is strongly suggested for most users and is required for
+ 64–bit machines. Not using mcrypt will cause phpMyAdmin to
+ load pages significantly slower.
+
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
Many people have difficulty
+ understanding the concept of user management with regards to phpMyAdmin. When
+ a user logs in to phpMyAdmin, that username and password are passed directly
+ to MySQL. phpMyAdmin does no account management on its own (other than
+ allowing one to manipulate the MySQL user account information); all users
+ must be valid MySQL users.
+
+
+ 1) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats)
+ dumps and CSV exports if you use
+ PHP with Zlib support (--with-zlib) and/or Bzip2 support
+ (--with-bz2). Proper support may also need changes in
+ php.ini.
+ 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
+?>
+
+ For a full explanation of possible configuration values, see the
+ Configuration Section of this document.
+
Instead of manually editing
+ config.inc.php, you can use the
+ Setup Script. First you must
+ manually create a folder config in the phpMyAdmin
+ directory. This is a security measure. On a Linux/Unix system you
+ can use the following commands:
+
+cd phpMyAdmin
+mkdir config # create directory for saving
+chmod o+rw config # give it world writable permissions
+
+ And to edit an existing configuration, copy it over first:
+
+cp config.inc.php config/ # copy current configuration for editing
+chmod o+w config/config.inc.php # give it world writable permissions
+
+ On other platforms, simply create the folder and ensure that your
+ web server has read and write access to it. FAQ
+ 1.26 can help with this.
+
+ Next, open scripts/setup.php
+ in your browser. Note that changes are not saved to
+ disk until explicitly choose Save from the
+ Configuration area of the screen. Normally the script saves
+ the new config.inc.php to the config/ directory, but if
+ the webserver does not have the proper permissions you may see the
+ error "Cannot load or save configuration." Ensure that the
+ config/ directory exists and has the proper permissions -
+ or use the Download link to save the config file locally
+ and upload (via FTP or some similar means) to the proper location.
+
+ Once the file has been saved, it must be moved out of the
+ config/ directory and the permissions must be reset, again
+ as a security measure:
+
+mv config/config.inc.php . # move file to current directory
+chmod o-rw config.inc.php # remove world read and write permissions
+
+ Now the file is ready to be used. You can choose to review or edit
+ the file with your favorite editor, if you prefer to set some
+ advanced options which the setup script does not provide.
+
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 subfolder in your
+ webserver configuration. For Apache you can use supplied .htaccess file
+ in that folder, for other webservers, you should configure this yourself.
+ Such configuration prevents from possible path exposure and cross side
+ scripting vulnerabilities that might happen to be found in that code.
+
+
+
Linked-tables infrastructure
+
+
For a whole set of new features (bookmarks, comments,
+ SQL-history,
+ PDF-generation, field contents
+ transformation, etc.) you need to create a set of special tables. Those
+ tables can be located in your own database, or in a central database for a
+ multi-user installation (this database would then be accessed by the
+ controluser, so no other user should have rights to it).
+
+
Please look at your ./scripts/ directory, where you should find a
+ file called create_tables.sql. (If you are using a Windows server, pay
+ special attention to
+ FAQ 1.23).
+
+
If your MySQL server's version is 4.1.2 or later, please use
+ ./scripts/create_tables_mysql_4_1_2+.sql instead, for a new
+ installation.
+
+
If you already had this infrastructure and upgraded to MySQL 4.1.2
+ or later, please use ./scripts/upgrade_tables_mysql_4_1_2+.sql.
+
+
You can use your phpMyAdmin to create the tables for you. Please be aware
+ that you may need special (administrator) privileges to create the database
+ and tables, and that the script may need some tuning, depending on the
+ database name.
+
+
After having imported the ./scripts/create_tables.sql file, you
+ should specify the table names in your ./config.inc.php file. The
+ directives used for that can be found in the Configuration
+ section. You will also need to have a controluser with the proper rights
+ to those tables (see section Using
+ authentication modes below).
+
+
Upgrading from an older version
+
+
Simply copy ./config.inc.php from your previous installation into the newly
+ unpacked one. Configuration files from very old versions (2.3.0 or before) may
+ require some tweaking as some options have been changed or removed.
+ For compatibility with PHP 6, remove a set_magic_quotes_runtime(0);
+ statement that you might find near the end of your configuration file.
+
+
You should not copy libraries/config.default.php
+ over config.inc.php because the default configuration file
+ is version-specific.
+
+
If you have upgraded your MySQL server from a version previous to 4.1.2 to
+ version 4.1.2 or newer and if you use the pmadb/linked table infrastructure,
+ you should run the SQL script found in
+ scripts/upgrade_tables_mysql_4_1_2+.sql.
+
+
Using authentication modes
+
+
HTTP and cookie
+ authentication modes are recommended in a multi-user environment
+ where you want to give users access to their own database and don't want
+ them to play around with others.
+ Nevertheless be aware that MS Internet Explorer seems to be really buggy
+ about cookies, at least till version 6, and PHP 4.1.1 is also a bit buggy
+ in this area!
+ Even in a single-user environment, you might prefer to use
+ HTTP or cookie mode so
+ that your user/password pair are not in clear in the configuration file.
+
+
+
HTTP and cookie
+ authentication modes are more secure: the MySQL login information does
+ not need to be set in the phpMyAdmin configuration file (except possibly
+ for the controluser).
+ However, keep in mind that the password travels in plain text, unless
+ you are using the HTTPS protocol.
+ In cookie mode, the password is stored, encrypted with the blowfish
+ algorithm, in a temporary cookie.
+
+
Note: starting with phpMyAdmin 2.6.1, this section is only applicable if
+ your MySQL server is previous to 4.1.2, or is running with
+ --skip-show-database.
+
+ For 'HTTP' and 'cookie'
+ modes, phpMyAdmin needs a controluser that has only the
+ SELECT privilege on the `mysql`.`user` (all columns except
+ `Password`), `mysql`.`db` (all columns), `mysql`.`host`
+ (all columns) and `mysql`.`tables_priv` (all columns except
+ `Grantor` and `Timestamp`) tables. You must specify the details
+ for the controluser in the config.inc.php
+ file under the
+
+ $cfg['Servers'][$i]['controluser'] and
+
+ $cfg['Servers'][$i]['controlpass'] settings.
+ The following example assumes you want to use pma as the
+ controluser and pmapass as the controlpass, but this is
+ only an example: use something else in your file! Input these
+ statements from the phpMyAdmin SQL Query window or mysql command–line
+ client.
+ Of course you have to replace localhost with the webserver's host
+ if it's not the same as the MySQL server's one.
+
+
+GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
+GRANT SELECT (
+ Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
+ Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
+ File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
+ Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
+ Execute_priv, Repl_slave_priv, Repl_client_priv
+ ) ON mysql.user TO 'pma'@'localhost';
+GRANT SELECT ON mysql.db TO 'pma'@'localhost';
+GRANT SELECT ON mysql.host TO 'pma'@'localhost';
+GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
+ ON mysql.tables_priv TO 'pma'@'localhost';
+
+ If you are using an old MySQL version (below 4.0.2), please replace
+ the first GRANT SELECT query by this one:
+
+
+
+ ... and 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).
+ Of course, the above queries only work if your MySQL version supports
+ the GRANT command. This is the case since 3.22.11.
+
+
Then each of the true users should be granted a set of privileges
+ on a set of particular databases. Normally you shouldn't give global
+ privileges to an ordinary user, unless you understand the impact of those
+ privileges (for example, you are creating a superuser).
+ For example, to grant the user real_user with all privileges on
+ the database user_base:
+
+
+GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';
+
+
+ What the user may now do is controlled entirely by the MySQL user
+ management system.
+ With HTTP or cookie
+ authentication mode, you don't need to fill the user/password fields
+ inside the $cfg['Servers']
+ array.
+
+
+
'HTTP' authentication mode
+
+
Uses HTTP Basic authentication
+ method and allows you to log in as any valid MySQL user.
+
Is supported with most PHP configurations. For
+ IIS
+ (ISAPI)
+ support using CGI PHP see
+ FAQ
+ 1.32, for using with Apache
+ CGI see
+ FAQ
+ 1.35.
+
See also
+ FAQ 4.4 about not
+ using the .htaccess mechanism along with
+ 'HTTP' authentication
+ mode.
+
+
+
'cookie' authentication mode
+
+
You can use this method as a replacement for the
+ HTTP authentication
+ (for example, if you're running
+ IIS).
+
Obviously, the user must enable cookies in the browser, but this is
+ now a requirement for all authentication modes.
+
With this mode, the user can truly log out of phpMyAdmin and log in back
+ with the same username.
Unlike cookie and http, does not require a user to log in when first
+ loading the phpMyAdmin site. This is by design but could allow any
+ user to access your installation. Use of some restriction method is
+ suggested, perhaps a .htaccess file with the
+ HTTP-AUTH directive or disallowing incoming HTTP requests at
+ one’s router or firewall will suffice (both of which
+ are beyond the scope of this manual but easily searchable with Google).
+
+
+
+
Configuration
+
+
Warning for Mac
+ users: PHP does not seem to like
+ Mac end of lines character
+ ("\r"). So ensure you choose the option that allows to use
+ the *nix end of line character ("\n") in your text editor
+ before saving a script you have modified.
+
+
Configuration note:
+ Almost all configurable data is placed in config.inc.php. If this file
+ does not exist, please refer to the Quick install
+ section to create one. This file only needs to contain the parameters you want to
+ change from their corresponding default value in
+ libraries/config.default.php.
+
+
The parameters which relate to design (like colors) are placed in
+ themes/themename/layout.inc.php. You might also want to create
+ config.footer.inc.php and config.header.inc.php files to add
+ your site specific code to be included on start and end of each page.
+
+
$cfg['PmaAbsoluteUri'] string
+
Sets here the complete URL
+ (with full path) to your phpMyAdmin installation's directory.
+ E.g. http://www.your_web.net/path_to_your_phpMyAdmin_directory/.
+ Note also that the URL on
+ some web servers are case–sensitive.
+ Don’t forget the trailing slash at the end.
+
+ Starting with version 2.3.0, it is advisable to try leaving this
+ blank. In most cases phpMyAdmin automatically detects the proper
+ setting. Users of port forwarding will need to set PmaAbsoluteUri (more info).
+ A good test is to browse a table, edit a row and save it. There should
+ be an error message if phpMyAdmin is having trouble auto–detecting
+ the correct value. If you get an error that this must be set or if
+ the autodetect code fails to detect your path, please post a bug
+ report on our bug tracker so we can improve the code.
+
+
$cfg['PmaNoRelation_DisableWarning'] boolean
+
Starting with version 2.3.0 phpMyAdmin offers a lot of features to work
+ with master / foreign – tables (see
+ $cfg['Servers'][$i]['pmadb']).
+
+ If you tried to set this up and it does not work for you, have a look on
+ the "Structure" page of one database where you would like to
+ use it. You will find a link that will analyze why those features have
+ been disabled.
+ If you do not want to use those features set this variable to
+ TRUE to stop this message from appearing.
+
+
$cfg['blowfish_secret'] string
+
The "cookie" auth_type uses blowfish
+ algorithm to encrypt the password.
+ If you are using the "cookie" auth_type, enter here a random
+ passphrase of your choice. It will be used internally by the blowfish
+ algorithm: you won’t be prompted for this passphrase. The maximum
+ number of characters for this parameter seems to be 46.
+
+
$cfg['Servers'] array
+
Since version 1.4.2, phpMyAdmin supports the administration of multiple
+ MySQL servers. Therefore, a
+ $cfg['Servers']-array has
+ been added which contains the login information for the different servers.
+ The first
+ $cfg['Servers'][$i]['host']
+ contains the hostname of the first server, the second
+ $cfg['Servers'][$i]['host']
+ the hostname of the second server, etc. In
+ ./libraries/config.default.php, there is only one section for
+ server definition, however you can put as many as you need in
+ ./config.inc.php, copy that block or needed parts (you don't
+ have to define all settings, just those you need to change).
+
+
$cfg['Servers'][$i]['host'] string
+
The hostname or IP address of your
+ $i-th MySQL-server. E.g. localhost.
+
+
$cfg['Servers'][$i]['port'] string
+
The port-number of your $i-th MySQL-server. Default is 3306 (leave
+ blank). If you use "localhost" as the hostname, MySQL
+ ignores this port number and connects with the socket, so if you want
+ to connect to a port different from the default port, use
+ "127.0.0.1" or the real hostname in
+ $cfg['Servers'][$i]['host'].
+
+
+
$cfg['Servers'][$i]['socket'] string
+
The path to the socket to use. Leave blank for default.
+ To determine the correct socket, check your MySQL configuration or, using the
+ mysql command–line client, issue the status command.
+ Among the resulting information displayed will be the socket used.
+
+
$cfg['Servers'][$i]['ssl'] boolean
+
Whether to enable SSL for connection to MySQL server.
+
+
+
$cfg['Servers'][$i]['connect_type'] string
+
What type connection to use with the MySQL server. Your options are
+ 'socket' and 'tcp'. It defaults to 'tcp' as that
+ is nearly guaranteed to be available on all MySQL servers, while
+ sockets are not supported on some platforms.
+
+ To use the socket mode, your MySQL server must be on the same machine
+ as the Web server.
+
+
$cfg['Servers'][$i]['extension'] string
+
What php MySQL extension to use for the connection. Valid options are:
+
+
+ mysql :
+ The classic MySQL extension. This is the recommended and default
+ method at this time.
+
+ mysqli :
+ The improved MySQL extension. This extension became available
+ with php 5.0.0 and is the recommended way to connect to a server
+ running MySQL 4.1.x.
+
+
$cfg['Servers'][$i]['compress'] boolean
+
Whether to use a compressed protocol for the MySQL server connection
+ or not (experimental).
+ This feature requires PHP >= 4.3.0.
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".
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.
+
+ 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.
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:
+
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']
+ Since release 2.3.0 you can store comments to describe each column for
+ each table. These will then be shown on the "printview".
+
+
+ Starting with release 2.5.0, comments are consequently used on the table
+ property pages and table browse view, showing up as tool-tips above the
+ column name (properties page) or embedded within the header of table in
+ browse view. They can also be shown in a table dump. Please see the
+ relevant configuration directives later on.
+
+ Also new in release 2.5.0 is a MIME-transformation system which is also
+ based on the following table structure. See
+ Transformations for further information. To use the
+ MIME-transformation system, your column_info table has to have the three
+ new fields 'mimetype', 'transformation', 'transformation_options'.
+
+
+ To allow the usage of this functionality:
+
set up pmadb and the linked-tables
+ infrastructure
+
put the table name in
+ $cfg['Servers'][$i]['column_info']
+
to update your PRE-2.5.0 Column_comments Table use this:
+
+
+ALTER TABLE `pma_column_comments`
+ ADD `mimetype` VARCHAR( 255 ) NOT NULL,
+ ADD `transformation` VARCHAR( 255 ) NOT NULL,
+ ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
+
+
+ and remember that the Variable in config.inc.php has been
+ renamed from
+ $cfg['Servers'][$i]['column_comments'] to
+ $cfg['Servers'][$i]['column_info']
+
+
+
+
+ $cfg['Servers'][$i]['history'] string
+
+
Since release 2.5.0 you can store your
+ SQL history, which means
+ all queries you entered manually into the phpMyAdmin interface. If you
+ don't want to use a table-based history, you can use the JavaScript-based
+ history. Using that, all your history items are deleted when closing the
+ window.
+
+ Using
+ $cfg['QueryHistoryMax']
+ you can specify an amount of history items you want to have on hold. On
+ every login, this list gets cut to the maximum amount.
+
+ The query history is only available if JavaScript is enabled in your
+ browser.
+
+ To allow the usage of this functionality:
+
+
set up pmadb and the linked-tables
+ infrastructure
+
put the table name in $cfg['Servers'][$i]['history']
+
+
+
+
+
+ $cfg['Servers'][$i]['designer_coords'] string
+
+
Since release 2.10.0 a Designer interface is available; it permits
+ to visually manage the relations.
+
+
+ To allow the usage of this functionality:
+
+
set up pmadb and the linked-tables
+ infrastructure
+
put the table name in $cfg['Servers'][$i]['designer_coords']
+
+
+
+
+
$cfg['Servers'][$i]['verbose_check'] boolean
+
+
Because release 2.5.0 introduced the new MIME-transformation support, the
+ column_info table got enhanced with three new fields. If the above variable
+ is set to TRUE (default) phpMyAdmin will check if you have the
+ latest table structure available. If not, it will emit a warning to the
+ superuser.
+
+ You can disable this checking behavior by setting the variable to false,
+ which should offer a performance increase.
+
+ Recommended to set to FALSE, when you are sure, your table structure is
+ up to date.
+
$cfg['Servers'][$i]['AllowRoot']
+ boolean
+
Whether to allow root access. This is just simplification of rules below.
+
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.
+ $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):
+
+
+ Having an empty rule list is equivalent to either using
+ 'allow % from all' if your rule order is set to
+ 'deny,allow' or 'deny % from all' if your rule order
+ is set to 'allow,deny' or 'explicit'.
+
+ For the IP matching system, the
+ following work:
+ xxx.xxx.xxx.xxx (an exact IP address)
+ xxx.xxx.xxx.[yyy-zzz] (an IP address range)
+ xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP addresses)
+ But the following does not work:
+ xxx.xxx.xxx.xx[yyy-zzz] (partial
+ IP address range)
+
+
$cfg['Servers'][$i]['SignonSession'] string
+
Name of session which will be used for signon authentication method.
+
+
$cfg['Servers'][$i]['SignonURL'] string
+
URL where user will be redirected to log in for signon authentication method. Should be absolute including protocol.
+
+
$cfg['Servers'][$i]['LogoutURL'] string
+
URL where user will be redirected after logout (doesn't affect config authentication method). Should be absolute including protocol.
+
+
+
$cfg['ServerDefault'] integer
+
If you have more than one server configured, you can set
+ $cfg['ServerDefault'] to any one of them to autoconnect to
+ that server when phpMyAdmin is started, or set it to 0 to be given a
+ list of servers without logging in.
+ If you have only one server configured, $cfg['ServerDefault']
+ MUST be set to that server.
+
+
$cfg['MaxDbList'] integer
+
The maximum number of database names to be displayed in the
+ navigation frame and the database list.
+
+
$cfg['MaxTableList'] integer
+
The maximum number of table names to be displayed in the
+ main panel's list. 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.
+
+
$cfg['OBGzip'] string/boolean
+
Defines whether to use GZip output buffering for increased
+ speed in HTTP transfers.
+ Set to true/false for enabling/disabling. When set to 'auto' (string),
+ phpMyAdmin tries to enable output buffering and will automatically disable
+ it if your browser has some problems with buffering. IE6 with a certain patch
+ is known to cause data corruption when having enabled buffering.
+
+
$cfg['PersistentConnections'] boolean
+
Whether persistent connections should be used or not (mysql_connect or
+ mysql_pconnect).
+
+
$cfg['ForceSSL'] boolean
+
Whether to force using https while accessing phpMyAdmin.
+
+
$cfg['ExecTimeLimit'] integer [number of seconds]
+
Set the number of seconds a script is allowed to run. If seconds is set
+ to zero, no time limit is imposed.
+ This setting is used while importing/exporting dump files but has no
+ effect when PHP is running in safe mode.
+
+
$cfg['MemoryLimit'] integer [number of bytes]
+
Set the number of bytes a script is allowed to allocate. If number set
+ to zero, no limit is imposed.
+ This setting is used while importing/exporting dump files but has no
+ effect when PHP is running in safe mode.
+ You can also use any string as in php.ini, eg. '16M'.
+
+
$cfg['SkipLockedTables'] boolean
+
Mark used tables and make it possible to show databases with locked
+ tables (since MySQL 3.23.30).
+
+
$cfg['ShowSQL'] boolean
+
Defines whether SQL queries
+ generated by phpMyAdmin should be displayed or not.
+
+
$cfg['AllowUserDropDatabase'] boolean
+
Defines whether normal users (non-administrator) are allowed to
+ delete their own database or not. If set as FALSE, the link "Drop
+ Database" will not be shown, and even a "DROP DATABASE
+ mydatabase" will be rejected. Quite practical for
+ ISP's with many
+ customers.
+ Please note that this limitation of SQL queries is not as strict as
+ when using MySQL privileges. This is due to nature of SQL queries
+ which might be quite complicated. So this choice should be viewed as
+ help to avoid accidental dropping rather than strict privilege
+ limitation.
+
+
$cfg['Confirm'] boolean
+
Whether a warning ("Are your really sure...") should be
+ displayed when you're about to lose data.
+
+
$cfg['LoginCookieRecall'] boolean
+
Define whether the previous login should be recalled or not in cookie
+ authentication mode.
+
+
$cfg['LoginCookieValidity'] integer [number of seconds]
+
Define how long is login cookie valid.
+
+
$cfg['LoginCookieStore'] integer [number of seconds]
+
Define how long is login cookie should be stored in browser. Default 0
+ means that it will be kept for existing session. This is recommended
+ for not trusted environments.
+
+
$cfg['LoginCookieDeleteAll'] boolean
+
If enabled (default), logout deletes cookies for all servers,
+ otherwise only for current one. Setting this to false makes it easy to
+ forget to log out from other server, when you are using more of
+ them.
+
+
$cfg['UseDbSearch'] boolean
+
Define whether the "search string inside database" is enabled or not.
+
+
$cfg['IgnoreMultiSubmitErrors'] boolean
+
Define whether phpMyAdmin will continue executing a multi-query
+ statement if one of the queries fails. Default is to abort execution.
+
+
$cfg['VerboseMultiSubmit'] boolean
+
Define whether phpMyAdmin will output the results of each query of a
+ multi-query statement embedded into the
+ SQL output as inline
+ comments. Defaults to TRUE.
+
+ $cfg['AllowArbitraryServer'] boolean
+
If enabled allows you to log in to arbitrary servers using cookie auth.
+
+
+ NOTE: Please use this carefully, as this may allow users access to
+ MySQL servers behind the firewall where your
+ HTTP server is placed.
+
+
+
$cfg['LeftFrameLight'] boolean
+
Defines whether to use a select-based menu and display only the current
+ tables in the left frame (smaller page). Only in Non-Lightmode you can
+ use the feature to display nested folders using
+ $cfg['LeftFrameTableSeparator']
+
+
+
$cfg['LeftFrameDBTree'] boolean
+
In light mode, defines whether to display the names of databases (in the
+ selector) using a tree, see also
+ $cfg['LeftFrameDBSeparator'].
+
+
+
$cfg['LeftFrameDBSeparator'] string
+
The string used to separate the parts of the database name when showing
+ them in a tree.
+
+
$cfg['LeftFrameTableSeparator'] string
+
Defines a string to be used to nest table spaces. Defaults to '__'.
+ This means if you have tables like 'first__second__third' this will be
+ shown as a three-level hierarchy like: first > second > third.
+ If set to FALSE or empty, the feature is disabled. NOTE: You should
+ not use this separator at the beginning or end of a
+ table name or multiple times after another without any other
+ characters in between.
+
+
$cfg['LeftFrameTableLevel'] string
+
Defines how many sublevels should be displayed when splitting
+ up tables by the above separator.
+
+
$cfg['ShowTooltip'] boolean
+
Defines whether to display table comment as tool-tip in left frame or
+ not.
+
+
$cfg['ShowTooltipAliasDB'] boolean
+
If tool-tips are enabled and a DB comment is set, this will flip the
+ comment and the real name. That means that if you have a table called
+ 'user0001' and add the comment 'MyName' on it, you will see the name
+ 'MyName' used consequently in the left frame and the tool-tip shows
+ the real name of the DB.
+
+
$cfg['ShowTooltipAliasTB'] boolean/string
+
Same as $cfg['ShowTooltipAliasDB'], except this works for table names.
+
+ When setting this to 'nested', the Alias of the Tablename is only used
+ to split/nest the tables according to the
+ $cfg['LeftFrameTableSeparator']
+ directive. So only the folder is called like the Alias, the tablename itself
+ stays the real tablename.
+
+
$cfg['LeftDisplayLogo'] boolean
+
Defines whether or not to display the phpMyAdmin logo at the top of the left frame.
+ Defaults to TRUE.
+
$cfg['LeftLogoLink'] string
+
Enter URL where logo in the navigation frame will point to.
+ For use especially with self made theme which changes this.
+ The default value for this is main.php.
+
+
$cfg['LeftLogoLinkWindow'] string
+
Whether to open the linked page in the main window (main)
+ or in a new one (new). Note: use new if you are
+ linking to phpmyadmin.net.
+
+
$cfg['LeftDisplayServers'] boolean
+
Defines whether or not to display a server choice at the top of the left frame.
+ Defaults to FALSE.
+
$cfg['DisplayServersList'] boolean
+
Defines whether to display this server choice as links instead of in a drop-down.
+ Defaults to FALSE (drop-down).
+
$cfg['DisplayDatabasesList'] boolean or text
+
Defines whether to display database choice in light navigation frame as links
+ instead of in a drop-down. Defaults to 'auto' - on main page list is
+ shown, when database is selected, only drop down is displayed.
+
$cfg['ShowStats'] boolean
+
Defines whether or not to display space usage and statistics about databases
+ and tables.
+ Note that statistics requires at least MySQL 3.23.3 and that, at this
+ date, MySQL doesn't return such information for Berkeley DB tables.
+
+
$cfg['ShowServerInfo'] boolean
+
Defines whether to display detailed server information on main page.
+ You can additionally hide more information by using
+ $cfg['Servers'][$i]['verbose'].
+
Defines whether to display the "PHP information" and
+ "Change password " links and form for creating database or
+ not at the starting main (right) frame. This setting
+ does not check MySQL commands entered directly.
+
+ Please note that to block the usage of phpinfo() in scripts, you
+ have to put this in your php.ini:
+
+
disable_functions = phpinfo()
+
+ Also note that enabling the "Change password " link has no
+ effect with "config" authentication mode: because of the
+ hard coded password value in the configuration file, end users can't
+ be allowed to change their passwords.
+
+
$cfg['SuggestDBName'] boolean
+
Defines whether to suggest a database name on the
+ "Create Database" form or to keep the textfield empty.
+
+
$cfg['ShowBlob'] boolean
+
Defines whether or not BLOB fields are shown when browsing a table's
+ content.
+
+
$cfg['NavigationBarIconic'] string
+
Defines whether navigation bar buttons and the right panel top menu
+ contain text or symbols only. A value of TRUE displays icons, FALSE
+ displays text and 'both' displays both icons and text.
+
+
$cfg['ShowAll'] boolean
+
Defines whether a user should be displayed a
+ "show all (records)" button in browse mode or not.
+
+
$cfg['MaxRows'] integer
+
Number of rows displayed when browsing a result set. If the result set
+ contains more rows, "Previous" and "Next" links will be shown.
+
+
$cfg['Order'] string [DESC|ASC|SMART]
+
Defines whether fields are displayed in ascending (ASC) order,
+ in descending (DESC) order or in a "smart"
+ (SMART) order - I.E. descending order for fields of type TIME,
+ DATE, DATETIME and TIMESTAMP, ascending order else- by default.
+
+
$cfg['ProtectBinary'] boolean or string
+
Defines whether BLOB or BINARY fields are protected
+ from editing when browsing a table's content. Valid values are:
+
FALSE to allow editing of all fields;
+
'blob' to allow editing of all fields except BLOBS;
+
'all' to disallow editing of all BINARY or
+ BLOB fields.
+
+
+
+
$cfg['ShowFunctionFields'] boolean
+
Defines whether or not MySQL functions fields should be initially
+ displayed in edit/insert mode. Since version 2.10, the user can
+ toggle this setting from the interface.
+
+
+
$cfg['CharEditing'] string
+
Defines which type of editing controls should be used for CHAR and
+ VARCHAR fields. Possible values are:
+
input - this allows to limit size of text to size of field in
+ MySQL, but has problems with newlines in fields
+
textarea - no problems with newlines in fields, but also no
+ length limitations
+
+ Default is old behavior so input.
+
+
$cfg['InsertRows'] integer
+
Defines the maximum number of concurrent entries for the Insert page.
+
+
$cfg['ForeignKeyMaxLimit'] integer
+
If there are fewer items than this in the set of foreign keys, then a
+ drop-down box of foreign keys is presented, in the style described by the
+ $cfg['ForeignKeyDropdownOrder']
+ setting.
+
+
$cfg['ForeignKeyDropdownOrder'] array
+
For the foreign key drop-down fields, there are several methods of
+ display, offering both the key and value data. The contents of the
+ array should be one or both of the following strings:
+ 'content-id', 'id-content'.
Defines whether to allow the use of zip/GZip/BZip2 compression when
+ creating a dump file
+
+
$cfg['CompressOnFly'] boolean
+
+
Defines whether to allow on the fly compression for GZip/BZip2
+ compressed exports. This doesn't affect smaller dumps and allows users to
+ create larger dumps that won't otherwise fit in memory due to php
+ memory limit. Produced files contain more GZip/BZip2 headers, but all
+ normal programs handle this correctly.
+
+
$cfg['LightTabs'] boolean
+
If set to TRUE, use less graphically intense tabs on the top of the
+ mainframe.
+
+
$cfg['PropertiesIconic'] string
+
If set to TRUE, will display icons instead of text for db and table
+ properties links (like 'Browse', 'Select', 'Insert', ...). Can be
+ set to 'both' if you want icons AND text.
+ When set to FALSE, will only show text.
+
+
$cfg['PropertiesNumColumns'] integer
+
How many columns will be utilized to display the tables on the
+ database property view? Default is 1 column. When setting this to a
+ value larger than 1, the type of the database will be omitted for more
+ display space.
+
+
+
$cfg['DefaultTabServer'] string
+
Defines the tab displayed by default on server view. Possible
+ values: "main.php" (recommended for multi-user setups),
+ "server_databases.php", "server_status.php",
+ "server_variables.php", "server_privileges.php"
+ or "server_processlist.php".
+
+
$cfg['DefaultTabDatabase'] string
+
Defines the tab displayed by default on database view. Possible
+ values: "db_structure.php",
+ "db_sql.php" or "db_search.php".
+
+
$cfg['DefaultTabTable'] string
+
Defines the tab displayed by default on table view. Possible
+ values: "tbl_structure.php",
+ "tbl_sql.php", "tbl_select.php",
+ "tbl_change.php" or "sql.php".
+
+
$cfg['MySQLManualBase'] string
+
If set to an URL which
+ points to the MySQL documentation (type depends
+ on $cfg['MySQLManualType']), appropriate help links are
+ generated.
+ See MySQL Documentation page
+ for more information about MySQL manuals and their types.
+
+
$cfg['MySQLManualType'] string
+
Type of MySQL documentation:
+
viewable - "viewable online", current one used on MySQL website
+
searchable - "Searchable, with user comments"
+
chapters - "HTML, one page per chapter"
+
big - "HTML, all on one page"
+
none - do not show documentation links
+
+
+
+
$cfg['DefaultLang'] string
+
Defines the default language to use, if not browser-defined or
+ user-defined.
+ See the select_lang.lib.php script to know the valid values for
+ this setting.
+
+
$cfg['DefaultConnectionCollation'] string
+
Defines the default connection collation to use, if not
+ user-defined.
+ See the MySQL
+ documentation for list of possible values.
+
+
$cfg['Lang'] string
+
Force: always use this language (must be defined in the
+ select_lang.lib.php script).
+
+
$cfg['FilterLanguages'] string
+
Limit list of available languages to those matching the given regular
+ expression. For example if you want only Czech and English, you should
+ set filter to '^(cs|en)'.
+
+
$cfg['DefaultCharset'] string
+
Default character set to use for recoding of MySQL queries. This must be
+ enabled and it's described by
+ $cfg['AllowAnywhereRecoding']
+ option.
+ You can give here any character set which is in
+ $cfg['AvailableCharsets']
+ array and this is just default choice, user can select any of them.
+
+
$cfg['AllowAnywhereRecoding'] boolean
+
Allow character set recoding of MySQL queries. You need recode or iconv
+ support (compiled in or module) in PHP to allow MySQL queries recoding
+ and used language file must have it enabled (by default only these
+ which are in Unicode, just to avoid losing some characters).
+
+ Setting this to TRUE also activates a pull-down menu
+ in the Export page, to choose the character set when exporting a file.
+
+
+
$cfg['RecodingEngine'] string
+
You can select here which functions will be used for character set
+ conversion. Possible values are:
+
auto - automatically use available one (first is tested
+ iconv, then recode)
+
iconv - use iconv or libiconv functions
+
recode - use recode_string function
+
+ Default is auto.
+
+
$cfg['IconvExtraParams'] string
+
Specify some parameters for iconv used in charset conversion. See
+ iconv
+ documentation for details. By default //TRANSLIT is
+ used, so that invalid characters will be transliterated.
+
+
$cfg['AvailableCharsets'] array
+
Available character sets for MySQL conversion. You can add your own (any of
+ supported by recode/iconv) or remove these which you don't use.
+ Character sets will be shown in same order as here listed, so if you
+ frequently use some of these move them to the top.
+
+
$cfg['TrustedProxies'] array
+
Lists proxies and HTTP headers which are trusted for IP Allow/Deny. This list is by
+ default empty, you need to fill in some trusted proxy servers if you
+ want to use rules for IP addresses behind proxy.
+
+ The following example specifies that phpMyAdmin should trust a
+ HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:
+
+ The $cfg['Servers'][$i]['AllowDeny']['rules'] directive uses the
+ client's IP address as usual.
+
+
+
$cfg['GD2Available'] string
+
Specifies whether GD >= 2 is available. If yes it can be used for
+ MIME transformations.
+ Possible values are:
+
auto - automatically detect, this is a bit expensive
+ operation for php < 4.3.0 so it is preferred to change this
+ according to your server real possibilities
+
yes - GD 2 functions can be used
+
no - GD 2 function cannot be used
+
+ Default is auto.
+
+
+
$cfg['NaviWidth'] integer
+
Navi frame width in pixels. See themes/themename/layout.inc.php.
+
+
+
$cfg['NaviBackground'] string [valid css code for background]
+ $cfg['MainBackground'] string [valid css code for background]
+
+
The background styles used for both the frames.
+ See themes/themename/layout.inc.php.
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.
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.
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.
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
+
$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 name,
+ then the SQL 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.
+
+ 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 has to be writable for 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
+
+
+
$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.
+
+ All those variables affect the query window feature. A SQL link
+ or icon is always displayed on the left panel. If JavaScript is enabled in
+ your browser, a click on this opens a distinct query window, which is
+ a direct interface to enter SQL queries. Otherwise, the right panel
+ changes to display a query box.
+
+ The size of this query window can be customized with
+ $cfg['QueryWindowWidth'] and $cfg['QueryWindowWidth']
+ - both integers for the size in pixels. Note that normally, those
+ parameters will be modified in layout.inc.php for the
+ theme you are using.
+
+ If $cfg['EditInWindow'] is set to true, a click on [Edit]
+ from the results page (in the "Showing Rows" section)
+ opens the query window and puts the current query
+ inside it. If set to false, clicking on the link puts the SQL
+ query in the right panel's query box.
+
+ The usage of the JavaScript query window is recommended if you have a
+ JavaScript enabled browser. Basic functions are used to exchange quite
+ a few variables, so most 4th generation browsers should be capable to
+ use that feature. It currently is only tested with Internet Explorer 6
+ and Mozilla 1.x.
+
+ If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged
+ to a table, which has to be created by you (see $cfg['Servers'][$i]['history']). If set to FALSE,
+ all your queries will be appended to the form, but only as long as
+ your window is opened they remain saved.
+
+ When using the JavaScript based query window, it will always get
+ updated when you click on a new table/db to browse and will focus if
+ you click on "Edit SQL" after using a query. You can suppress updating
+ the query window by checking the box "Do not overwrite this query from
+ outside the window" below the query textarea. Then you can browse
+ tables/databases in the background without losing the contents of the
+ textarea, so this is especially useful when composing a query with
+ tables you first have to look in. The checkbox will get automatically
+ checked whenever you change the contents of the textarea. Please
+ uncheck the button whenever you definitely want the query window to
+ get updated even though you have made alterations.
+
+ If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount of
+ saved history items using $cfg['QueryHistoryMax'].
+
+ The query window also has a custom tabbed look to group the features.
+ Using the variable $cfg['QueryWindowDefTab'] you can specify the
+ default tab to be used when opening the query window. It can be set to
+ either 'sql', 'files', 'history' or 'full'.
For InnoDB tables, determines for how large tables phpMyAdmin
+ should get the exact row count using SELECT COUNT.
+ If the approximate row count as returned by
+ SHOW TABLE STATUS is smaller than this value,
+ SELECT COUNT will be used, otherwise the approximate
+ count will be used.
+
+
$cfg['MaxExactCountViews'] integer
+
For VIEWs, since obtaining the exact count could have an
+ impact on performance, this value is the maximum to be displayed, using
+ a SELECT COUNT ... LIMIT. The default value of 0 bypasses
+ any row counting.
+
+
+
+ $cfg['WYSIWYG-PDF'] boolean
+
Utilizes a WYSIWYG editing control to easily place elements of a
+ PDF
+ page. By clicking on the button 'toggle scratchboard' on the page
+ where you edit x/y coordinates of those elements you can activate a
+ scratchboard where all your elements are placed. By clicking on an
+ element, you can move them around in the pre-defined area and the x/y
+ coordinates will get updated dynamically. Likewise, when entering a
+ new position directly into the input field, the new position in the
+ scratchboard changes after your cursor leaves the input field.
+ You have to click on the 'OK'-button below the tables to save the new
+ positions. If you want to place a new element, first add it to the
+ table of elements and then you can drag the new element around.
+ By changing the paper size and the orientation you can change the size
+ of the scratchboard as well. You can do so by just changing the
+ dropdown field below, and the scratchboard will resize automatically,
+ without interfering with the current placement of the elements.
+ If ever an element gets out of range you can either enlarge the paper
+ size or click on the 'reset' button to place all elements below each
+ other.
+ NOTE: You have to use a recent browser like IE6 or Mozilla to
+ get this control to work. The basic Drag&Drop script functionality
+ was kindly borrowed from www.youngpup.net and is underlying so
+ specific license.
+
+
$cfg['NaturalOrder'] boolean
+
Sorts database and table names according to natural order (for example,
+ t1, t2, t10). Currently implemented in the left panel (Light mode)
+ and in Database view, for the table list.
+
+
$cfg['TitleTable'] string
+
$cfg['TitleDatabase'] string
+
$cfg['TitleServer'] string
+
$cfg['TitleDefault'] string
+
Allows you to specify window's title bar. Following magic string can
+ be used to get special values:
+
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'.
+
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.
+
The SOAP service allows you to log in with anonymous
+ and any password, so we use those by default. Instead, if
+ you have an account with them, you can put your login details
+ here, and it will be used in place of the anonymous login.
+
+
+
+
$cfg['DBG']
+
DEVELOPERS ONLY!
+
+
$cfg['DBG']['enable'] boolean
+
DEVELOPERS ONLY!
+ Enable the DBG extension for debugging phpMyAdmin. Required for profiling
+ the code.
+ For help in setting up your system to this, see the
+ Developers section.
+
+
$cfg['DBG']['profile']['enable'] boolean
+
DEVELOPERS ONLY!
+ Enable profiling support for phpMyAdmin. This will append a chunk of data
+ to the end of every page displayed in the main window with profiling
+ statistics for that page.
+ You may need to increase the maximum execution time for this to
+ complete successfully.Profiling was removed from the code for
+ version 2.9.0 due to licensing issues.
+
+
$cfg['DBG']['profile']['threshold'] float (units in milliseconds)
+
DEVELOPERS ONLY!
+ When profiling data is displayed, this variable controls the threshold of
+ display for any profiling data, based on the average time each time has
+ taken. If it is over the threshold it is displayed, otherwise it is not
+ displayed. This takes a value in milliseconds. In most cases you don't need
+ to edit this.
+
+
$cfg['ColumnTypes'] array
+
All possible types of a MySQL column. In most cases you don't need to
+ edit this.
+
+
$cfg['AttributeTypes'] array
+
Possible attributes for fields. In most cases you don't need to edit
+ this.
+
+
$cfg['Functions'] array
+
A list of functions MySQL supports. In most cases you don't need to
+ edit this.
+
+
$cfg['RestrictColumnTypes'] array
+
Mapping of column types to meta types used for preferring displayed
+ functions. In most cases you don't need to edit this.
+
+
$cfg['RestrictFunctions'] array
+
Functions preferred for column meta types as defined in
+ $cfg['RestrictColumnTypes']. In most cases you don't need
+ to edit this.
+
+
$cfg['DefaultFunctions'] array
+
Functions selected by default when inserting/changing row, Functions
+ are defined for meta types from
+ $cfg['RestrictColumnTypes'] and for
+ first_timestamp, which is used for first timestamp column
+ in table.
+
+
$cfg['NumOperators'] array
+
Operators available for search operations on numeric and date fields.
+
+
+
$cfg['TextOperators'] array
+
Operators available for search operations on character fields.
+ Note that we put LIKE by default instead of
+ LIKE %...%, to avoid unintended performance problems
+ in case of huge tables.
+
+
$cfg['EnumOperators'] array
+
Operators available for search operations on enum fields.
+
+
$cfg['NullOperators'] array
+
Additional operators available for search operations when the
+ field can be null.
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.
+
+
2. Usage
+
+
Go to your tbl_structure.php page (i.e. reached through
+ clicking on the 'Structure' link for a table). There click on
+ "Change" (or change icon) and there you will see three new fields at
+ the end of the line. They are called 'MIME-type', 'Browser transformation' and
+ 'Transformation options'.
+
+
The field 'MIME-type' is a drop-down field. Select the MIME-type
+ that corresponds to the column's contents. Please note that
+ transformations are inactive as long as no MIME-type is selected.
+
+
The field 'Browser transformation' is a drop-down field. You can choose from a
+ hopefully growing amount of pre-defined transformations. See below for information on
+ how to build your own transformation.
+
+ There are global transformations and mimetype-bound transformations. Global transformations
+ can be used for any mimetype. They will take the mimetype, if necessary, into regard.
+ Mimetype-bound transformations usually only operate on a certain mimetype. There are
+ transformations which operate on the main mimetype (like 'image'), which will most likely
+ take the subtype into regard, and those who only operate on a
+ specific subtype (like 'image/jpeg').
+
+ You can use transformations on mimetypes for which the function was not defined for. There
+ is no security check for you selected the right transformation, so take care of what the
+ output will be like.
+
+
The field 'Transformation options' is a free-type textfield. You have to enter
+ transform-function specific options here. Usually the transforms can operate with default
+ options, but it is generally a good idea to look up the overview to see which options are
+ necessary.
+
+ Much like the ENUM/SET-Fields, you have to split up several options using the format
+ 'a','b','c',...(NOTE THE MISSING BLANKS). This is because internally the options will be
+ parsed as an array, leaving the first value the first element in the array, and so
+ forth.
+
+ If you want to specify a MIME character set you can define it in the transformation_options.
+ You have to put that outside of the pre-defined options of the specific mime-transform,
+ as the last value of the set. Use the format "'; charset=XXX'". If you use a transform,
+ for which you can specify 2 options and you want to append a character set, enter "'first
+ parameter','second parameter','charset=us-ascii'". You can, however use the defaults for
+ the parameters: "'','','charset=us-ascii'".
+
+
+
3. File structure
+
+
All mimetypes and their transformations are defined through single files in
+ the directory 'libraries/transformations/'.
+
+
They are stored in files to ease up customization and easy adding of new
+ transformations.
+
+
Because the user cannot enter own mimetypes, it is kept sure that transformations
+ always work. It makes no sense to apply a transformation to a mimetype, the
+ transform-function doesn't know to handle.
+
+
One can, however, use empty mime-types and global transformations which should work
+ for many mimetypes. You can also use transforms on a different mimetype they where built
+ for, but pay attention to option usage as well as what the transformation does to your
+ field.
+
+
There is a basic file called 'global.inc.php'. This function can be included by
+ any other transform function and provides some basic functions.
+
+
There are 5 possible file names:
+
+
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]()'.
+
+ 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]()'.
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]()'.
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.)
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 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
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!
Since version 2.2.4, phpMyAdmin supports servers with open_basedir
+ restrictions. Assuming that the restriction allows you to open files in the
+ current directory ('.'), all you have to do is create a 'tmp' directory
+ under the phpMyAdmin install directory, with permissions 777 and the same
+ owner as the owner of your phpMyAdmin directory. The uploaded files will
+ be moved there, and after execution of your
+ SQL commands, removed.
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.
All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are
+ fully supported. Please note that the older your MySQL version is, the more
+ limitations you will have to face.
+ phpMyAdmin may connect to your MySQL server using php's classic
+ MySQL extension as well as the
+ improved MySQL extension (MySQLi) that
+ is available in php 5.0.
+ Either way, the developers of both extensions recommend to use the classic
+ extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.
+ When compiling php, we strongly recommend that you manually link the MySQL
+ extension of your choice to a MySQL client library of at least the same
+ minor version since the one that is bundled with some php distributions is
+ rather old and might cause problems
+ (see FAQ 1.17a).
+ If your webserver is running on a windows system, you might want to try
+ MySQL's
+ Connector/PHP
+ instead of the MySQL / MySQLi extensions that are bundled with the official
+ php Win32 builds.
+
+ MySQL 5.1 is not yet supported.
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.
+
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.
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
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:
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. Out of the box, you can use URLs like
+ http://server/phpMyAdmin/index.php?db=database&table=table&target=script.
+ 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):
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.
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').
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.
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").
+
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 "&;".
+
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.
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
+ 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
+
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.
+
+ 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.
+
The username/password you specify in the login dialog are invalid.
+
You have already setup a security mechanism for the
+ phpMyAdmin-directory, eg. a .htaccess file. This would interfere with
+ phpMyAdmin's authentication, so remove it.
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.
+ 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!
+
+ 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.
+
+
+ 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.
Having $cfg['QueryFrameJS'] set o TRUE, this leads to a
+ bug in Opera6, because it is not able to interpret frameset definitions
+ written by JavaScript. Please upgrade your phpMyAdmin installtion or to
+ Opera7 at least.
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.
+ In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields
+ index. If you want two indexes, create the first one when creating the
+ table, save, then display the table properties and click the Index link to
+ create the other index.
+
+ 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
+ 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.
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.
"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.
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 200 values or less in the
+ foreign table, a drop-down list of values will be available.
+ You will see two lists of values, the first list containing the key
+ and the display field, the second list containing the display field
+ and the key. The reason for this is to be able to type the first
+ letter of either the key or the display field.
+
+ For 200 values or more, a distinct window will appear, to browse foreign
+ key values and choose one.
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:
Always use the current SVN version of your language file.
+ For a new language, start from english-iso-8859-1.inc.php. If you
+ don't know how to get the SVN version, please ask one of the developers.
+
+ Please note that we try not to use HTML entities like é in
+ the translations, since we define the right character set in the file.
+ With HTML entities, the text on JavaScript messages would not
+ display correctly.
+ However there are some entities that need to be there, for quotes
+ ,non-breakable spaces, ampersands, less than, greater than.
+ You can then put your translations, as a zip file to avoid losing special
+ characters, on the sourceforge.net translation tracker.
+ It would be a good idea to subscribe to the phpmyadmin-translators mailing
+ list, because this is where we ask for translations of new messages.
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.
phpMyAdmin is Open Source, so you're invited to contribute to it. Many
+ great features have been written by other people and you too can help to
+ make phpMyAdmin a useful tool.
+
+
If you're planning to contribute source, please read the following
+ information:
+
+
All files include libraries/header.inc.php (layout),.
+ libraries/common.lib.php (common functions) and
+ config.inc.php.
+ Only configuration data should go in config.inc.php. Please keep
+ it free from other code.
+ Commonly used functions should be added to
+ libraries/common.lib.php and more specific ones may be added
+ within a library stored into the libraries sub-directory.
+
Obviously, you're free to use whatever coding style you want. But
+ please try to keep your code as simple as possible: beginners are
+ using phpMyAdmin as an example application.
+ As far as possible, we want the scripts to be XHTML1.0 and CSS2
+ compliant on one hand, they fit the
+
+ PEAR
+ coding standards
+ on the other hand. Please pay attention to this.
+
Please try to keep up the file-naming conventions. Table-related stuff
+ goes to tbl_*.php, db-related code to db_*.php,
+ server-related tools to server_*.php and so on.
+
Please don't use verbose strings in your code, instead add the string
+ (at least) to english-iso-8859-1.inc.php and print() it out.
+
If you want to be really helpful, write an entry for the ChangeLog.
+
+ The DBG extension (PHP
+ Debugger DBG) is now supported by phpMyAdmin for developers to
+ better debug and profile their code.
+ Please see the
+ $cfg['DBG']* configuration
+ options for more information.
+ This is in memoriam of the Space Shuttle Columbia (STS-107) which was
+ lost during its re-entry into Earth's atmosphere and in memory of the
+ brave men and women who gave their lives for the people of Earth.
+
+
+
+
Credits
+
+
+phpMyAdmin - Credits
+====================
+
+CREDITS, in chronological order
+-------------------------------
+
+- Tobias Ratschiller <tobias_at_ratschiller.com>
+ * creator of the phpmyadmin project
+ * maintainer from 1998 to summer 2000
+
+- Marc Delisle <Marc.Delisle_at_cegepsherbrooke.qc.ca>
+ * 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>
+ * PDF schema output, thanks also to Olivier Plathey for the
+ "FPDF" library (see http://www.fpdf.org/) and Steven Wittens
+ for the "UFPDF" library (see http://www.acko.net/node/56).
+
+- Olof Edlund <olof.edlund_at_upright.se>
+ * SQL validator server
+
+- 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
+
+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.
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.
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.
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.
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.
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.
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.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ 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
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/README b/README
new file mode 100644
index 000000000..c3bf3b8b2
--- /dev/null
+++ b/README
@@ -0,0 +1,74 @@
+$Id$
+
+phpMyAdmin - Readme
+===================
+
+ A set of PHP-scripts to manage MySQL over the web.
+
+ Version 2.11.0-dev
+ ------------------
+ http://www.phpmyadmin.net/
+
+ Copyright (C) 1998-2000 Tobias Ratschiller
+ Copyright (C) 2001-2006 Marc Delisle
+ Olivier Müller
+ Robin Johnson
+ Alexander M. Turek
+ Michal Čihař
+ Garvin Hicking
+ Michael Keck
+ Sebastian Mendel
+ [check Documentation.txt/.html file 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
+
+ Requirements:
+ php 4.1.0 or later
+ MySQL 3.23.32 or later
+ a web-browser (doh!)
+
+ Summary:
+ phpMyAdmin is intended to handle the administration of MySQL over the web.
+ For a summary of features, please see the Documentation.txt/.html file.
+
+ Download:
+ You can get the newest version at http://www.phpmyadmin.net/.
+
+ Credits:
+ Please see the Documentation.txt/.html file.
+
+ Installation:
+ Please see the Documentation.txt/.html file.
+
+ ChangeLog:
+ Now in ChangeLog
+
+ Documentation:
+ Basic documentation available in Documentation.txt/.html
+
+ Support:
+ See reference about support forums under http://www.phpmyadmin.net/
+
+
+ Enjoy!
+ The phpMyAdmin Devel team
+
+
+ PS: Please, don't send us emails with question like "How do I compile
+ PHP with MySQL-support". We just don't have the time to be your
+ free helpdesk.
+ Please send your questions to the appropriate mailinglists / forums.
+ Before contacting us, please read the Documentation.html (esp. the
+ FAQ part).
+
diff --git a/TODO b/TODO
new file mode 100644
index 000000000..503e02916
--- /dev/null
+++ b/TODO
@@ -0,0 +1,10 @@
+$Id$
+
+phpMyAdmin - Todo
+=================
+
+We are currently using the Sourceforge Tracker as Todo list:
+
+ http://sourceforge.net/tracker/?atid=377411&group_id=23067&func=browse
+
+-- swix/20010704
diff --git a/browse_foreigners.php b/browse_foreigners.php
new file mode 100644
index 000000000..9b10288f0
--- /dev/null
+++ b/browse_foreigners.php
@@ -0,0 +1,303 @@
+
+
+ $per_page)) {
+ $showall = '';
+ }
+
+ $session_max_rows = $per_page;
+ $pageNow = @floor($pos / $session_max_rows) + 1;
+ $nbTotalPage = @ceil($the_total / $session_max_rows);
+
+ if ($the_total > $per_page) {
+ $gotopage = PMA_pageselector(
+ 'browse_foreigners.php?field=' . urlencode($field) .
+ '&' . PMA_generate_common_url($db, $table)
+ . $pk_uri .
+ '&fieldkey=' . (isset($fieldkey) ? $fieldkey : '') .
+ '&foreign_filter=' . (isset($foreign_filter) ? htmlspecialchars($foreign_filter) : '') .
+ '&',
+ $session_max_rows,
+ $pageNow,
+ $nbTotalPage,
+ 200,
+ 5,
+ 5,
+ 20,
+ 10,
+ $GLOBALS['strPageNumber']
+ );
+ }
+}
+?>
+
+
+
+
+ phpMyAdmin
+
+
+
+
+
+
+
+
+
+
+