Subversion checkout URL

You can clone with HTTPS or Subversion.

Fetching contributors…

Cannot retrieve contributors at this time

2002 lines (1422 sloc) 81.621 kb

FAQ - Frequently Asked Questions

Please have a look at our Link section on the official phpMyAdmin homepage for in-depth coverage of phpMyAdmin's features and or interface.

Server

1.12 I have lost my MySQL root password, what can I do?

The MySQL manual explains how to reset the permissions.

1.15 I have problems with mysql.user column names.

In previous MySQL versions, the User and Passwordcolumns were named user and password. Please modify your column names to align with current standards.

1.16 I cannot upload big dump files (memory, HTTP or timeout problems).

Starting with version 2.7.0, the import engine has been re–written and these problems should not occur. If possible, upgrade your phpMyAdmin to the latest version to take advantage of the new import features.

The first things to check (or ask your host provider to check) are the values of upload_max_filesize, memory_limit and post_max_size in the :file: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 :config:option:$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 :ref:config of this document. • Using a utility (such as BigDump) to split the files before uploading. We cannot support this or any third party applications, but are aware of users having success with it. • If you have shell (command line) access, use MySQL to import the files directly. You can do this by issuing the "source" command from within MySQL: source filename.sql;  1.17 Which MySQL versions does phpMyAdmin support? Since phpMyAdmin 3.0.x, only MySQL 5.0.1 and newer are supported. For older MySQL versions, you need to use the latest 2.x branch. phpMyAdmin can connect to your MySQL server using PHP's classic MySQL extension as well as the improved MySQL extension (MySQLi) that is available in PHP 5.0. The latter one should be used unless you have a good reason not to do so. When compiling PHP, we strongly recommend that you manually link the MySQL extension of your choice to a MySQL client library of at least the same minor version since the one that is bundled with some PHP distributions is rather old and might cause problems see :ref:faq1_17a. MariaDB is also supported (versions 5.1 and 5.2 were tested). 1.17a I cannot connect to the MySQL server. It always returns the error message, "Client does not support authentication protocol requested by server; consider upgrading MySQL client" You tried to access MySQL with an old MySQL client library. The version of your MySQL client library can be checked in your phpinfo() output. In general, it should have at least the same minor version as your server - as mentioned in :ref:faq1_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 :config:option:$cfg['Servers'][$i]['extension']. More information (and several workarounds) are located in the MySQL Documentation. 1.18 (withdrawn). 1.19 I can't run the "display relations" feature because the script seems not to know the font face I'm using! The :term:TCPDF library we're using for this feature requires some special files to use font faces. Please refers to the TCPDF manual to build these files. 1.20 I receive the error "cannot load MySQL extension, please check PHP Configuration". To connect to a MySQL server, PHP needs a set of MySQL functions called "MySQL extension". This extension may be part of the PHP distribution (compiled-in), otherwise it needs to be loaded dynamically. Its name is probably mysql.so or php_mysql.dll. phpMyAdmin tried to load the extension but failed. Usually, the problem is solved by installing a software package called "PHP-MySQL" or something similar. 1.21 I am running the CGI version of PHP under Unix, and I cannot log in using cookie auth. In :file:php.ini, set mysql.max_links higher than 1. 1.22 I don't see the "Location of text file" field, so I cannot upload. This is most likely because in :file:php.ini, your file_uploads parameter is not set to "on". 1.23 I'm running MySQL on a Win32 machine. Each time I create a new table the table and column names are changed to lowercase! This happens because the MySQL directive lower_case_table_names defaults to 1 (ON) in the Win32 version of MySQL. You can change this behavior by simply changing the directive to 0 (OFF): Just edit your my.ini file that should be located in your Windows directory and add the following line to the group [mysqld]: set-variable = lower_case_table_names=0 Next, save the file and restart the MySQL service. You can always check the value of this directive using the query SHOW VARIABLES LIKE 'lower_case_table_names';  1.24 (withdrawn). 1.25 I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get problems, such as undefined variables when I run a SQL query. A tip from Jose Fandos: put a comment on the following two lines in httpd.conf, like this: # mod_gzip_item_include file \.php$
# mod_gzip_item_include mime "application/x-httpd-php.*"

as this version of mod_gzip on Apache (Windows) has problems handling PHP scripts. Of course you have to restart Apache.

1.26 I just installed phpMyAdmin in my document root of IIS but I get the error "No input file specified" when trying to run phpMyAdmin.

This is a permission problem. Right-click on the phpmyadmin folder and choose properties. Under the tab Security, click on "Add" and select the user "IUSR_machine" from the list. Now set his permissions and it should work.

1.39 When I try to connect via https, I can log in, but then my connection is redirected back to http. What can cause this behavior?

Be sure that you have enabled SSLOptions and StdEnvVars in your Apache configuration.

1.40 When accessing phpMyAdmin via an Apache reverse proxy, cookie login does not work.

To be able to use cookie auth Apache must know that it has to rewrite the set-cookie headers. Example from the Apache 2.2 documentation:

ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookiePath / /mirror/foo/

Note: if the backend url looks like http://host/~user/phpmyadmin, the tilde (~) must be url encoded as %7E in the ProxyPassReverse* lines. This is not specific to phpmyadmin, it's just the behavior of Apache.

ProxyPass /mirror/foo/ http://backend.example.com/~user/phpmyadmin
ProxyPassReverseCookiePath /%7Euser/phpmyadmin /mirror/foo

1.41 When I view a database and ask to see its privileges, I get an error about an unknown column.

The MySQL server's privilege tables are not up to date, you need to run the :command:mysql_upgrade command on the server.

1.42 How can I prevent robots from accessing phpMyAdmin?

You can add various rules to :term:.htaccess to filter access based on user agent field. This is quite easy to circumvent, but could prevent at least some robots accessing your installation.

RewriteEngine on

# Allow only GET and POST verbs

Check the value you set for the :config:option:$cfg['PmaAbsoluteUri'] directive in the phpMyAdmin configuration file. 2.6 I get an "Access denied for user: 'root@localhost' (Using password: YES)"-error when trying to access a MySQL-Server on a host which is port-forwarded for my localhost. When you are using a port on your localhost, which you redirect via port-forwarding to another host, MySQL is not resolving the localhost as expected. Erik Wasser explains: The solution is: if your host is "localhost" MySQL (the command line tool :command: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 :term:TCP connection. 2.7 Using and creating themes Themes are configured with :config:option:$cfg['ThemePath'], :config:option:$cfg['ThemeManager'] and :config:option:$cfg['ThemeDefault']. Under :config:option:$cfg['ThemePath'], you should not delete the directory pmahomme or its underlying structure, because this is the system theme used by phpMyAdmin. pmahomme contains all images and styles, for backwards compatibility and for all themes that would not include images or css-files. If :config:option:$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:

3.3 With InnoDB tables, I lose foreign key relationships when I rename a table or a column.

This is an InnoDB bug, see <http://bugs.mysql.com/bug.php?id=21704>.

3.4 I am unable to import dumps I created with the mysqldump tool bundled with the MySQL server distribution.

The problem is that older versions of mysqldump created invalid comments like this:

-- MySQL dump 8.22
--
-- Host: localhost Database: database
---------------------------------------------------------
-- Server version 3.23.54


The invalid part of the code is the horizontal line made of dashes that appears once in every dump created with mysqldump. If you want to run your dump you have to turn it into valid MySQL. This means, you have to add a whitespace after the first two dashes of the line or add a # before it: -- ------------------------------------------------------- or #---------------------------------------------------------

3.5 When using nested folders, multiple hierarchies are displayed in a wrong manner.

Please note that you should not use the separating string multiple times without any characters between them, or at the beginning/end of your table name. If you have to, think about using another TableSeparator or disabling that feature.

3.6 What is currently not supported in phpMyAdmin about InnoDB?

In Relation view, being able to choose a table in another database, or having more than one index column in the foreign key. In Query-by- example (Query), automatic generation of the query LEFT JOIN from the foreign table.

3.7 I have table with many (100+) columns and when I try to browse table I get series of errors like "Warning: unable to parse url". How can this be fixed?

Your table neither have a primary key nor an unique one, so we must use a long expression to identify this row. This causes problems to parse_url function. The workaround is to create a primary or unique key.

3.13 I get an error when entering USE followed by a db name containing an hyphen.

The tests I have made with MySQL 5.1.49 shows that the API does not accept this syntax for the USE command.

3.14 I am not able to browse a table when I don't have the right to SELECT one of the columns.

This has been a known limitation of phpMyAdmin since the beginning and it's not likely to be solved in the future.

3.18 When I import a CSV file that contains multiple tables, they are lumped together into a single table.

There is no reliable way to differentiate tables in :term:CSV format. For the time being, you will have to break apart :term:CSV files containing multiple tables.

3.19 When I import a file and have phpMyAdmin determine the appropriate data structure it only uses int, decimal, and varchar types.

Currently, the import type-detection system can only assign these MySQL types to columns. In future, more will likely be added but for the time being you will have to edit the structure to your liking post-import. Also, you should note the fact that phpMyAdmin will use the size of the largest item in any given column as the column size for the appropriate type. If you know you will be adding larger items to that column then you should manually adjust the column sizes accordingly. This is done for the sake of efficiency.

ISPs, multi-user installations

4.1 I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to install it for each customer?

Since version 2.0.3, you can setup a central copy of phpMyAdmin for all your users. The development of this feature was kindly sponsored by NetCologne GmbH. This requires a properly setup MySQL user management and phpMyAdmin :term:HTTP or cookie authentication.

4.2 What's the preferred way of making phpMyAdmin secure against evil access?

This depends on your system. If you're running a server which cannot be accessed by other people, it's sufficient to use the directory protection bundled with your webserver (with Apache you can use :term:.htaccess files, for example). If other people have telnet access to your server, you should use phpMyAdmin's :term:HTTP or cookie authentication features.

Suggestions:

• Your :file: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.
• Follow security recommendations for PHP and your webserver.

4.3 I get errors about not being able to include a file in /lang or in /libraries.

Check :file:php.ini, or ask your sysadmin to check it. The include_path must contain "." somewhere in it, and open_basedir, if used, must contain "." and "./lang" to allow normal operation of phpMyAdmin.

4.4 phpMyAdmin always gives "Access denied" when using HTTP authentication.

This could happen for several reasons:

4.5 Is it possible to let users create their own databases?

Starting with 2.2.5, in the user management page, you can enter a wildcard database name for a user (for example "joe%"), and put the privileges you want. For example, adding SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER would let a user create/manage his/her database(s).

4.6 How can I use the Host-based authentication additions?

If you have existing rules from an old :term:.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 :config:option:$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 :term: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',
);

Browsers or client OS

5.1 I get an out of memory error, and my controls are non-functional, when trying to create a table with more than 14 columns.

We could reproduce this problem only under Win98/98SE. Testing under WinNT4 or Win2K, we could easily create more than 60 columns. A workaround is to create a smaller number of columns, then come back to your table properties and add the other columns.

5.2 With Xitami 2.5b4, phpMyAdmin won't process form fields.

This is not a phpMyAdmin problem but a Xitami known bug: you'll face it with each script/website that use forms. Upgrade or downgrade your Xitami server.

5.3 I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).

With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that the proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps don't seem to work. With Konqueror 2.2.1: plain dumps work; zip dumps are placed into the user's temporary directory, so they must be moved before closing Konqueror, or else they disappear. GZip dumps give an error message. Testing needs to be done for Konqueror 2.2.2.

5.4 I can't use the cookie authentication mode because Internet Explorer never stores the cookies.

MS Internet Explorer seems to be really buggy about cookies, at least till version 6.

5.5 In Internet Explorer 5.0, I get JavaScript errors when browsing my rows.

Upgrade to at least Internet Explorer 5.5 SP2.

5.6 In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not found") when trying to modify a row in a table with many columns, or with a text column.

Your table neither have a primary key nor an unique one, so we must use a long :term:URL to identify this row. There is a limit on the length of the :term:URL in those browsers, and this not happen in Netscape, for example. The workaround is to create a primary or unique key, or use another browser.

5.7 I refresh (reload) my browser, and come back to the welcome page.

Some browsers support right-clicking into the frame you want to refresh, just do this in the right frame.

5.8 With Mozilla 0.9.7 I have problems sending a query modified in the query box.

Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future Mozilla versions.

5.9 With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a whitespace in the SQL-Query edit area: the page scrolls down.

This is a Mozilla bug (see bug #26882 at BugZilla).

5.10 With Netscape 4.75 I get empty rows between each row of data in a CSV exported file.

This is a known Netscape 4.75 bug: it adds some line feeds when exporting data in octet-stream mode. Since we can't detect the specific Netscape version, we cannot workaround this bug.

5.11 Extended-ASCII characters like German umlauts are displayed wrong.

Please ensure that you have set your browser's character set to the one of the language file you have selected on phpMyAdmin's start page. Alternatively, you can try the auto detection mode that is supported by the recent versions of the most browsers.

5.12 Mac OS X Safari browser changes special characters to "?".

This issue has been reported by a :term:Mac OS X user, who adds that Chimera, Netscape and Mozilla do not have this problem.

5.13 With Internet Explorer 5.5 or 6, and HTTP authentication type, I cannot manage two servers: I log in to the first one, then the other one, but if I switch back to the first, I have to log in on each operation.

This is a bug in Internet Explorer, other browsers do not behave this way.

5.15 I have display problems with Safari.

Please upgrade to at least version 1.2.3.

5.16 With Internet Explorer, I get "Access is denied" Javascript errors. Or I cannot make phpMyAdmin work under Windows.

Please check the following points:

6.5 How can I restore (upload) my database or table using a dump? How can I run a ".sql" file?

Click on a database name in the navigation panel, the properties will be displayed. Select "Import" from the list of tabs in the right–hand frame (or ":term:SQL" if your phpMyAdmin version is previous to 2.7.0). In the "Location of the text file" section, type in the path to your dump filename, or use the Browse button. Then click Go. With version 2.7.0, the import engine has been re–written, if possible it is suggested that you upgrade to take advantage of the new features. For additional help on this subject, look for the word "upload" in this document.

6.6 How can I use the relation table in Query-by-example?

Here is an example with the tables persons, towns and countries, all located in the database mydb. If you don't have a pma__relation table, create it as explained in the configuration section. Then create the example tables:

CREATE TABLE REL_countries (
country_code char(1) NOT NULL default '',
description varchar(10) NOT NULL default '',
PRIMARY KEY (country_code)
) TYPE=MyISAM;

INSERT INTO REL_countries VALUES ('C', 'Canada');

CREATE TABLE REL_persons (
id tinyint(4) NOT NULL auto_increment,
person_name varchar(32) NOT NULL default '',
town_code varchar(5) default '0',
country_code char(1) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');

CREATE TABLE REL_towns (
town_code varchar(5) NOT NULL default '0',
description varchar(30) NOT NULL default '',
PRIMARY KEY (town_code)
) TYPE=MyISAM;

INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
INSERT INTO REL_towns VALUES ('M', 'Montréal');


To setup appropriate links and display information:

• on table "REL_persons" click Structure, then Relation view
• in Links, for "town_code" choose "REL_towns->code"
• in Links, for "country_code" choose "REL_countries->country_code"
• on table "REL_towns" click Structure, then Relation view
• in "Choose column to display", choose "description"
• repeat the two previous steps for table "REL_countries"

Then test like this:

• Click on your db name in the navigation panel
• Choose "Query"
• Use tables: persons, towns, countries
• Click "Update query"
• In the columns row, choose persons.person_name and click the "Show" tickbox
• Do the same for towns.description and countries.descriptions in the other 2 columns
• Click "Update query" and you will see in the query box that the correct joins have been generated
• Click "Submit query"

6.7 How can I use the "display column" feature?

Starting from the previous example, create the pma__table_info as explained in the configuration section, then browse your persons table, and move the mouse over a town code or country code. See also :ref:faq6_21 for an additional feature that "display column" enables: drop-down list of possible values.

6.8 How can I produce a PDF schema of my database?

First the configuration variables "relation", "table_coords" and "pdf_pages" have to be filled in. Then you need to think about your schema layout. Which tables will go on which pages?

• Select your database in the navigation panel.
• Choose "Operations" in the navigation bar at the top.
• Choose "Edit :term:PDF Pages" near the bottom of the page.
• Enter a name for the first :term: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 :ref:wysiwyg to position the element correctly.
• When you'd like to look at your :term: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 :term:PDF options you want, and click Go.
• Internet Explorer for Windows may suggest an incorrect filename when you try to save a generated :term:PDF. When saving a generated :term:PDF, be sure that the filename ends in ".pdf", for example "schema.pdf". Browsers on other operating systems, and other browsers on Windows, do not have this problem.

6.9 phpMyAdmin is changing the type of one of my columns!

No, it's MySQL that is doing silent column type changing.

6.10 When creating a privilege, what happens with underscores in the database name?

If you do not put a backslash before the underscore, this is a wildcard grant, and the underscore means "any character". So, if the database name is "john_db", the user would get rights to john1db, john2db ... If you put a backslash before the underscore, it means that the database name will have a real underscore.

6.11 What is the curious symbol ø in the statistics pages?

It means "average".

6.12 I want to understand some Export options.

Structure:

• "Add DROP TABLE" will add a line telling MySQL to drop the table, if it already exists during the import. It does NOT drop the table after your export, it only affects the import file.
• "If Not Exists" will only create the table if it doesn't exist. Otherwise, you may get an error if the table name exists but has a different structure.
• "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any) will be included in backup.
• "Enclose table and column names with backquotes" ensures that column 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 :term: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 - INSERT DELAYED Syntax.
• "Ignore inserts" treats errors as a warning instead. Again, more info is provided in the MySQL manual - INSERT Syntax, but basically with this selected, invalid values are adjusted and inserted rather than causing the entire statement to fail.

6.13 I would like to create a database with a dot in its name.

This is a bad idea, because in MySQL the syntax "database.table" is the normal way to reference a database and table name. Worse, MySQL will usually let you create a database with a dot, but then you cannot work with it, nor delete it.

6.14 How do I set up the SQL Validator?

To use SQL Validator, you need PHP with :term:XML, :term:PCRE and :term:PEAR support. In addition you need a :term:SOAP support, either as a PHP extension or as a PEAR SOAP module.

To install :term:PEAR :term:SOAP module, run :command:pear install Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP to get the necessary :term:PEAR modules for usage.

If you use the Validator, you should be aware that any :term:SQL statement you submit will be stored anonymously (database/table/column names, strings, numbers replaced with generic values). The Mimer :term:SQL Validator itself, is © 2001 Upright Database Technology. We utilize it as free SOAP service.

6.15 I want to add a BLOB column and put an index on it, but MySQL says "BLOB column '...' used in key specification without a key length".

The right way to do this, is to create the column 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 column, and set a size to the index, which is the condition to create an index on a BLOB column.

6.16 How can I simply move in page with plenty editing fields?

You can use :kbd:Ctrl+arrows (:kbd:Option+Arrows in Safari) for moving on most pages with many editing fields (table structure changes, row editing, etc.).

6.17 Transformations: I can't enter my own mimetype! WTF is this feature then useful for?

Slow down :). Defining mimetypes is of no use, if you can't put transformations on them. Otherwise you could just put a comment on the column. Because entering your own mimetype will cause serious syntax checking issues and validation, this introduces a high-risk false- user-input situation. Instead you have to initialize mimetypes using functions or empty mimetype definitions.

Plus, you have a whole overview of available mimetypes. Who knows all those mimetypes by heart so he/she can enter it at will?

6.18 Bookmarks: Where can I store bookmarks? Why can't I see any bookmarks below the query box? What is this variable for?

Any query you have executed can be stored as a bookmark on the page where the results are displayed. You will find a button labeled 'Bookmark this query' just at the end of the page. As soon as you have stored a bookmark, it is related to the database you run the query on. You can now access a bookmark dropdown on each page, the query box appears on for that database.

You can also have, inside the query, a placeholder for a variable. This is done by inserting into the query a SQL comment between /* and */. Inside the comment, the special string [VARIABLE] is used. Be aware that the whole query minus the SQL comment must be valid by itself, otherwise you won't be able to store it as a bookmark.

When you execute the bookmark, everything typed into the value input box on the query box page will replace the string /*[VARIABLE]*/ in your stored query.

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 (that is, multiple occurrences of the same variable).

NOTE THE ABSENCE OF SPACES inside the /**/ construct. Any spaces inserted there will be later also inserted as spaces in your query and may lead to unexpected results especially when using the variable expansion inside of a "LIKE ''" expression.

Your initial query which is going to be stored as a bookmark has to yield at least one result row so you can store the bookmark. You may have that to work around using well positioned /**/ comments.

6.19 How can I create simple LATEX document to include exported table?

You can simply include table in your LATEX documents, minimal sample document should look like following one (assuming you have table exported in file :file:table.tex):

\documentclass{article} % or any class you want
\usepackage{longtable}  % for displaying table
\begin{document}        % start of document
\include{table}         % including exported table
\end{document}          % end of document

6.20 I see a lot of databases which are not mine, and cannot access them.

You have one of these global privileges: CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also enable users to see all the database names. 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 column" in the foreign table. See :ref:faq6_6 for an example. Then, if there are 100 values or less in the foreign table, a drop-down list of values will be available. You will see two lists of values, the first list containing the key and the display column, the second list containing the display column and the key. The reason for this is to be able to type the first letter of either the key or the display column. For 100 values or more, a distinct window will appear, to browse foreign key values and choose one. To change the default limit of 100, see :config:option:$cfg['ForeignKeyMaxLimit']. 6.22 Bookmarks: Can I execute a default bookmark automatically when entering Browse mode for a table? Yes. If a bookmark has the same label as a table name and it's not a public bookmark, it will be executed. 6.23 Export: I heard phpMyAdmin can export Microsoft Excel files? You can use :term:CSV for Microsoft Excel, which works out of the box. 6.24 Now that phpMyAdmin supports native MySQL 4.1.x column comments, what happens to my column comments stored in pmadb? Automatic migration of a table's pmadb-style column comments to the native ones is done whenever you enter Structure page for this table. 6.25 (withdrawn). 6.26 How can I select a range of rows? Click the first row of the range, hold the shift key and click the last row of the range. This works everywhere you see rows, for example in Browse mode or on the Structure page. 6.27 What format strings can I use? In all places where phpMyAdmin accepts format strings, you can use @VARIABLE@ expansion and strftime format strings. The expanded variables depend on a context (for example, if you haven't chosen a table, you can not get the table name), but the following variables can be used: @HTTP_HOST@ HTTP host that runs phpMyAdmin @SERVER@ MySQL server name @VERBOSE@ Verbose MySQL server name as defined in :config:option:$cfg['Servers'][$i]['verbose'] @VSERVER@ Verbose MySQL server name if set, otherwise normal @DATABASE@ Currently opened database @TABLE@ Currently opened table @COLUMNS@ Columns of the currently opened table @PHPMYADMIN@ phpMyAdmin with version 6.28 How can I easily edit relational schema for export? 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. 6.29 Why can't I get a chart from my query result table? Not every table can be put to the chart. Only tables with one, two or three columns can be visualised as a chart. Moreover the table must be in a special format for chart script to understand it. Currently supported formats can be found in the wiki. 6.30 Import: How can I import ESRI Shapefiles An ESRI Shapefile is actually a set of several files, where .shp file contains geometry data and .dbf file contains data related to those geometry data. To read data from .dbf file you need to have PHP compiled with the dBase extension (--enable-dbase). Otherwise only geometry data will be imported. To upload these set of files you can use either of the following methods: Configure upload directory with :config:option:$cfg['UploadDir'], upload both .shp and .dbf files with the same filename and chose the .shp file from the import page.

Create a Zip archive with .shp and .dbf files and import it. For this to work, you need to set :config:option:\$cfg['TempDir'] to a place where the web server user can write (for example './tmp').

To create the temporary directory on a UNIX-based system, you can do:

cd phpMyAdmin
mkdir tmp
chmod o+rwx tmp

6.31 How do I create a relation in designer?

To select relation, click: The display column is shown in pink. To set/unset a column as the display column, click the "Choose column to display" icon, then click on the appropriate column name.

6.32 How can I use the zoom search feature?

The Zoom search feature is an alternative to table search feature. It allows you to explore a table by representing its data in a scatter plot. You can locate this feature by selecting a table and clicking the :guilabel:Search tab. One of the sub-tabs in the :guilabel:Table Search page is :guilabel:Zoom Search.

Consider the table REL_persons in :ref:faq6_6 for an example. To use zoom search, two columns need to be selected, for example, id and town_code. The id values will be represented on one axis and town_code values on the other axis. Each row will be represented as a point in a scatter plot based on its id and town_code. You can include two additional search criteria apart from the two fields to display.

You can choose which field should be displayed as label for each point. If a display column has been set for the table (see :ref:faqdisplay), it is taken as the label unless you specify otherwise. You can also select the maximum number of rows you want to be displayed in the plot by specifing it in the 'Max rows to plot' field. Once you have decided over your criteria, click 'Go' to display the plot.

After the plot is generated, you can use the mousewheel to zoom in and out of the plot. In addition, panning feature is enabled to navigate through the plot. You can zoom-in to a certail level of detail and use panning to locate your area of interest. Clicking on a point opens a dialogue box, displaying field values of the data row represented by the point. You can edit the values if required and click on submit to issue an update query. Basic instructions on how to use can be viewed by clicking the 'How to use?' link located just above the plot.

6.33 When browsing a table, how can I copy a column name?

Selecting the name of the column within the browse table header cell for copying is difficult, as the columns support reordering by dragging the header cells as well as sorting by clicking on the linked column name. To copy a column name, double-click on the empty area next to the column name, when the tooltip tells you to do so. This will show you an input box with the column name. You may right-click the column name within this input box to copy it to your clipboard.

7.1 I have found a bug. How do I inform developers?

Our Bug Tracker is located at <http://sf.net/projects/phpmyadmin/> under the Bugs section. But please first discuss your bug with other users: <https://sourceforge.net/projects/phpmyadmin/forums>.

7.2 I want to translate the messages to a new language or upgrade an existing language, where do I start?

Translations are very welcome and all you need to have are the language skills. The easiest way is to use our online translation service. You can check out all the possibilities to translate in the translate section on our website.

7.3 I would like to help out with the development of phpMyAdmin. How should I proceed?

We welcome every contribution to the development of phpMyAdmin. You can check out all the possibilities to contribute in the contribute section on our website.

Security

8.2 How can I protect phpMyAdmin against brute force attacks?

If you use Apache web server, phpMyAdmin exports information about authentication to the Apache environment and it can be used in Apache logs. Currently there are two variables available:

userID
User name of currently active user (he does not have to be logged in).
userStatus
Status of currently active user, one of ok (user is logged in), mysql-denied (MySQL denied user login), allow-denied (user denied by allow/deny rules), root-denied (root is denied in configuration), empty-denied (empty password is denied).

LogFormat directive for Apache can look like following:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n"   pma_combined

You can then use any log analyzing tools to detect possible break-in attempts.

Synchronization

9.2 (withdrawn).

Something went wrong with that request. Please try again.