You need PHP 4.2.0 or newer, with session support
- (see
- FAQ 1.31)
-
-
You need GD2 support in PHP to display inline
- thumbnails of JPEGs ("image/jpeg: inline") with their
- original aspect ratio
-
You need PHP 4.3.0 or newer to use the
- "text/plain: external" MIME-based transformation
-
When using the "cookie"
- authentication method, the
- mcrypt extension
- is strongly suggested for most users and is required for
- 64–bit machines. Not using mcrypt will cause phpMyAdmin to
- load pages significantly slower.
-
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 file is
- still a quick way to get started and needed for some advanced features.
-
To manually create the file, simply use your text editor to
- create the file config.inc.php (you can copy
- config.sample.inc.php to get minimal configuration
- file) in the main (top-level) phpMyAdmin directory (the one
- that contains index.php). phpMyAdmin first loads
- libraries/config.default.php and then overrides those
- values with anything found in config.inc.php. If the
- default value is okay for a particular setting, there is no
- need to include it in config.inc.php. You'll need a
- few directives to get going, a simple configuration may look
- like this:
-
-<?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['SuhosinDisableWarning'] boolean
-
A warning is displayed on the main page if Suhosin is detected.
- You can set this parameter to TRUE to stop this message
- from appearing.
-
-
$cfg['AllowThirdPartyFraming'] boolean
-
Setting this to true allows a page located on a different
- domain to call phpMyAdmin inside a frame, and is a potential security
- hole allowing cross-frame scripting attacks.
-
-
$cfg['blowfish_secret'] string
-
The "cookie" auth_type uses blowfish
- algorithm to encrypt the password.
- If you are using the "cookie" auth_type, enter here a random
- passphrase of your choice. It will be used internally by the blowfish
- algorithm: you won’t be prompted for this passphrase. The maximum
- number of characters for this parameter seems to be 46.
-
-
$cfg['Servers'] array
-
Since version 1.4.2, phpMyAdmin supports the administration of multiple
- MySQL servers. Therefore, a
- $cfg['Servers']-array has
- been added which contains the login information for the different servers.
- The first
- $cfg['Servers'][$i]['host']
- contains the hostname of the first server, the second
- $cfg['Servers'][$i]['host']
- the hostname of the second server, etc. In
- ./libraries/config.default.php, there is only one section for
- server definition, however you can put as many as you need in
- ./config.inc.php, copy that block or needed parts (you don't
- have to define all settings, just those you need to change).
-
-
$cfg['Servers'][$i]['host'] string
-
The hostname or IP address of your
- $i-th MySQL-server. E.g. localhost.
-
-
$cfg['Servers'][$i]['port'] string
-
The port-number of your $i-th MySQL-server. Default is 3306 (leave
- blank). If you use "localhost" as the hostname, MySQL
- ignores this port number and connects with the socket, so if you want
- to connect to a port different from the default port, use
- "127.0.0.1" or the real hostname in
- $cfg['Servers'][$i]['host'].
-
-
-
$cfg['Servers'][$i]['socket'] string
-
The path to the socket to use. Leave blank for default.
- To determine the correct socket, check your MySQL configuration or, using the
- mysql command–line client, issue the status command.
- Among the resulting information displayed will be the socket used.
-
-
$cfg['Servers'][$i]['ssl'] boolean
-
Whether to enable SSL for connection to MySQL server.
-
-
-
$cfg['Servers'][$i]['connect_type'] string
-
What type connection to use with the MySQL server. Your options are
- 'socket' and 'tcp'. It defaults to 'tcp' as that
- is nearly guaranteed to be available on all MySQL servers, while
- sockets are not supported on some platforms.
-
- To use the socket mode, your MySQL server must be on the same machine
- as the Web server.
-
-
$cfg['Servers'][$i]['extension'] string
-
What php MySQL extension to use for the connection. Valid options are:
-
-
- mysql :
- The classic MySQL extension. This is the recommended and default
- method at this time.
-
- mysqli :
- The improved MySQL extension. This extension became available
- with php 5.0.0 and is the recommended way to connect to a server
- running MySQL 4.1.x.
-
-
$cfg['Servers'][$i]['compress'] boolean
-
Whether to use a compressed protocol for the MySQL server connection
- or not (experimental).
- This feature requires PHP >= 4.3.0.
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 (except on the Export page). This limit is also enforced in the navigation panel
- when in Light mode.
-
-
$cfg['MaxCharactersInDisplayedSQL'] integer
-
The maximum number of characters when a SQL query is displayed. The
- default limit of 1000 should be correct to avoid the display of tons
- of hexadecimal codes that represent BLOBs, but some users have real
- SQL queries that are longer than 1000 characters. Also, if a query's
- length exceeds this limit, this query is not saved in the history.
-
-
$cfg['OBGzip'] string/boolean
-
Defines whether to use GZip output buffering for increased
- speed in HTTP transfers.
- Set to true/false for enabling/disabling. When set to 'auto' (string),
- phpMyAdmin tries to enable output buffering and will automatically disable
- it if your browser has some problems with buffering. IE6 with a certain patch
- is known to cause data corruption when having enabled buffering.
-
-
$cfg['PersistentConnections'] boolean
-
Whether persistent connections should be used or not (mysql_connect or
- mysql_pconnect).
-
-
$cfg['ForceSSL'] boolean
-
Whether to force using https while accessing phpMyAdmin.
-
-
$cfg['ExecTimeLimit'] integer [number of seconds]
-
Set the number of seconds a script is allowed to run. If seconds is set
- to zero, no time limit is imposed.
- This setting is used while importing/exporting dump files but has no
- effect when PHP is running in safe mode.
-
-
$cfg['MemoryLimit'] integer [number of bytes]
-
Set the number of bytes a script is allowed to allocate. If number set
- to zero, no limit is imposed.
- This setting is used while importing/exporting dump files but has no
- effect when PHP is running in safe mode.
- You can also use any string as in php.ini, eg. '16M'.
-
-
$cfg['SkipLockedTables'] boolean
-
Mark used tables and make it possible to show databases with locked
- tables (since MySQL 3.23.30).
-
-
$cfg['ShowSQL'] boolean
-
Defines whether SQL queries
- generated by phpMyAdmin should be displayed or not.
-
-
$cfg['AllowUserDropDatabase'] boolean
-
Defines whether normal users (non-administrator) are allowed to
- delete their own database or not. If set as FALSE, the link "Drop
- Database" will not be shown, and even a "DROP DATABASE
- mydatabase" will be rejected. Quite practical for
- ISP's with many
- customers.
- Please note that this limitation of SQL queries is not as strict as
- when using MySQL privileges. This is due to nature of SQL queries
- which might be quite complicated. So this choice should be viewed as
- help to avoid accidental dropping rather than strict privilege
- limitation.
-
-
$cfg['Confirm'] boolean
-
Whether a warning ("Are your really sure...") should be
- displayed when you're about to lose data.
-
-
$cfg['LoginCookieRecall'] boolean
-
Define whether the previous login should be recalled or not in cookie
- authentication mode.
-
-
$cfg['LoginCookieValidity'] integer [number of seconds]
-
Define how long is login cookie valid.
-
-
$cfg['LoginCookieStore'] integer [number of seconds]
-
Define how long is login cookie should be stored in browser. Default 0
- means that it will be kept for existing session. This is recommended
- for not trusted environments.
-
-
$cfg['LoginCookieDeleteAll'] boolean
-
If enabled (default), logout deletes cookies for all servers,
- otherwise only for current one. Setting this to false makes it easy to
- forget to log out from other server, when you are using more of
- them.
-
-
$cfg['UseDbSearch'] boolean
-
Define whether the "search string inside database" is enabled or not.
-
-
$cfg['IgnoreMultiSubmitErrors'] boolean
-
Define whether phpMyAdmin will continue executing a multi-query
- statement if one of the queries fails. Default is to abort execution.
-
-
$cfg['VerboseMultiSubmit'] boolean
-
Define whether phpMyAdmin will output the results of each query of a
- multi-query statement embedded into the
- SQL output as inline
- comments. Defaults to TRUE.
-
- $cfg['AllowArbitraryServer'] boolean
-
If enabled allows you to log in to arbitrary servers using cookie auth.
-
-
- NOTE: Please use this carefully, as this may allow users access to
- MySQL servers behind the firewall where your
- HTTP server is placed.
-
-
-
$cfg['LeftFrameLight'] boolean
-
Defines whether to use a select-based menu and display only the current
- tables in the left frame (smaller page). Only in Non-Lightmode you can
- use the feature to display nested folders using
- $cfg['LeftFrameTableSeparator']
-
-
-
$cfg['LeftFrameDBTree'] boolean
-
In light mode, defines whether to display the names of databases (in the
- selector) using a tree, see also
- $cfg['LeftFrameDBSeparator'].
-
-
-
$cfg['LeftFrameDBSeparator'] string
-
The string used to separate the parts of the database name when showing
- them in a tree.
-
-
$cfg['LeftFrameTableSeparator'] string
-
Defines a string to be used to nest table spaces. Defaults to '__'.
- This means if you have tables like 'first__second__third' this will be
- shown as a three-level hierarchy like: first > second > third.
- If set to FALSE or empty, the feature is disabled. NOTE: You should
- not use this separator at the beginning or end of a
- table name or multiple times after another without any other
- characters in between.
-
-
$cfg['LeftFrameTableLevel'] string
-
Defines how many sublevels should be displayed when splitting
- up tables by the above separator.
-
-
$cfg['ShowTooltip'] boolean
-
Defines whether to display table comment as tool-tip in left frame or
- not.
-
-
$cfg['ShowTooltipAliasDB'] boolean
-
If tool-tips are enabled and a DB comment is set, this will flip the
- comment and the real name. That means that if you have a table called
- 'user0001' and add the comment 'MyName' on it, you will see the name
- 'MyName' used consequently in the left frame and the tool-tip shows
- the real name of the DB.
-
-
$cfg['ShowTooltipAliasTB'] boolean/string
-
Same as $cfg['ShowTooltipAliasDB'], except this works for table names.
-
- When setting this to 'nested', the Alias of the Tablename is only used
- to split/nest the tables according to the
- $cfg['LeftFrameTableSeparator']
- directive. So only the folder is called like the Alias, the tablename itself
- stays the real tablename.
-
-
$cfg['LeftDisplayLogo'] boolean
-
Defines whether or not to display the phpMyAdmin logo at the top of the left frame.
- Defaults to TRUE.
-
$cfg['LeftLogoLink'] string
-
Enter URL where logo in the navigation frame will point to.
- For use especially with self made theme which changes this.
- The default value for this is main.php.
-
-
$cfg['LeftLogoLinkWindow'] string
-
Whether to open the linked page in the main window (main)
- or in a new one (new). Note: use new if you are
- linking to phpmyadmin.net.
-
-
$cfg['LeftDisplayServers'] boolean
-
Defines whether or not to display a server choice at the top of the left frame.
- Defaults to FALSE.
-
$cfg['DisplayServersList'] boolean
-
Defines whether to display this server choice as links instead of in a drop-down.
- Defaults to FALSE (drop-down).
-
$cfg['DisplayDatabasesList'] boolean or text
-
Defines whether to display database choice in light navigation frame as links
- instead of in a drop-down. Defaults to 'auto' - on main page list is
- shown, when database is selected, only drop down is displayed.
-
$cfg['ShowStats'] boolean
-
Defines whether or not to display space usage and statistics about databases
- and tables.
- Note that statistics requires at least MySQL 3.23.3 and that, at this
- date, MySQL doesn't return such information for Berkeley DB tables.
-
-
$cfg['ShowServerInfo'] boolean
-
Defines whether to display detailed server information on main page.
- You can additionally hide more information by using
- $cfg['Servers'][$i]['verbose'].
-
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
- SQL files have been
- uploaded by other means than phpMyAdmin (for example, ftp). Those files
- are available under a drop-down box when you click the database or
- table name, then the Import tab.
-
-
- If you want different directory for each user, %u will be replaced
- with username.
-
- Please note that the file names must have the suffix ".sql"
- (or ".sql.bz2" or ".sql.gz" if support for
- compressed formats is enabled).
-
- This feature is useful when your file is too big to be uploaded via
- HTTP, or when file
- uploads are disabled in PHP.
-
- Please note that if PHP is running in safe mode, this directory must
- be owned by the same user as the owner of the phpMyAdmin scripts.
-
- The name of the directory where dumps can be saved.
-
- If you want different directory for each user, %u will be replaced
- with username.
-
- Please note that the directory must exist and has to be writable
- for the user running the webserver.
-
- Please note that if PHP is running in safe mode, this directory must
- be owned by the same user as the owner of the phpMyAdmin scripts.
-
-
-
$cfg['TempDir'] string
-
- The name of the directory where temporary files can be stored.
-
- This is needed for native MS Excel export, see
- FAQ
- 6.23
-
-
-
$cfg['Export'] array
-
- In this array are defined default parameters for export, names of
- items are similar to texts seen on export page, so you can easily
- identify what they mean.
-
-
-
$cfg['Import'] array
-
- In this array are defined default parameters for import, names of
- items are similar to texts seen on import page, so you can easily
- identify what they mean.
-
-
-
$cfg['RepeatCells'] integer
-
- Repeat the headers every X cells, or 0 to deactivate.
-
- 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?server=X&db=database&table=table&target=script. For server you use the server number which refers to
-the order of the server paragraph in config.inc.php.
- Table and script parts are optional. If you want
- http://server/phpMyAdmin/database[/table][/script] URLs, you need to do
- some configuration. Following lines apply only for Apache web server. First make sure,
- that you have enabled some features within global configuration. You need
- Options FollowSymLinks and AllowOverride
- FileInfo enabled for directory where phpMyAdmin is installed and
- you need mod_rewrite to be enabled. Then you just need to create following
- .htaccess file in root folder of phpMyAdmin installation
- (don't forget to change directory name inside of it):
If your cluster consist of different architectures, PHP code used for
- encryption/decryption won't work correct. This is caused by use of
- pack/unpack functions in code. Only solution is to use mcrypt extension
- which works fine in this case.
Yes but the default configuration values of Suhosin are known to cause
- problems with some operations, for example editing a table with many
- columns and no primary key. Tuning information is available at
-
- http://www.hardened-php.net/hphp/troubleshooting.html,
- although the parameter names have changed (suhosin instead
- of hphp). See also the
- SuhosinDisableWarning directive.
-
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.