服务器

1.1 My server is crashing each time a specific action is required or phpMyAdmin sends a blank page or a page full of cryptic characters to my browser, what can I do?

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.

1.2 My Apache server crashes when using phpMyAdmin.

You should first try the latest versions of Apache (and possibly MySQL). If your server keeps crashing, please ask for help in the various Apache support groups.

参见

1.1 My server is crashing each time a specific action is required or phpMyAdmin sends a blank page or a page full of cryptic characters to my browser, what can I do?

1.3 (withdrawn).

1.4 Using phpMyAdmin on IIS, I’m displayed the error message: “The specified CGI application misbehaved by not returning a complete set of HTTP headers …”.

You just forgot to read the install.txt file from the PHP distribution. Have a look at the last message in this PHP bug report #12061 from the official PHP bug database.

1.5 Using phpMyAdmin on IIS, I’m facing crashes and/or many error messages with the HTTP.

This is a known problem with the PHP ISAPI filter: it’s not so stable. Please use instead the cookie authentication mode.

1.6 I can’t use phpMyAdmin on PWS: nothing is displayed!

This seems to be a PWS bug. Filippo Simoncini found a workaround (at this time there is no better fix): remove or comment the DOCTYPE declarations (2 lines) from the scripts libraries/classes/Header.php and index.php.

1.7 How can I gzip a dump or a CSV export? It does not seem to work.

This feature is based on the gzencode() PHP function to be more independent of the platform (Unix/Windows, Safe Mode or not, and so on). So, you must have Zlib support (--with-zlib).

1.8 I cannot insert a text file in a table, and I get an error about safe mode being in effect.

Your uploaded file is saved by PHP in the “upload dir”, as defined in php.ini by the variable upload_tmp_dir (usually the system default is /tmp). We recommend the following setup for Apache servers running in safe mode, to enable uploads of files while being reasonably secure:

  • create a separate directory for uploads: mkdir /tmp/php
  • give ownership to the Apache server’s user.group: chown apache.apache /tmp/php
  • give proper permission: chmod 600 /tmp/php
  • put upload_tmp_dir = /tmp/php in php.ini
  • 重新启动 Apache

1.9 (withdrawn).

1.10 I’m having troubles when uploading files with phpMyAdmin running on a secure server. My browser is Internet Explorer and I’m using the Apache server.

As suggested by “Rob M” in the phpWizard forum, add this line to your httpd.conf:

  1. SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

该方法似乎可以解决许多使用 Internet Explorer 或 SSL 时遇到的问题。

1.11 I get an ‘open_basedir restriction’ while uploading a file from the import tab.

Since version 2.2.4, phpMyAdmin supports servers with open_basedir restrictions. However you need to create temporary directory and configure it as $cfg['TempDir']. The uploaded files will be moved there, and after execution of your SQL commands, removed.

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

phpMyAdmin does authenticate against MySQL server you’re using, so to recover from phpMyAdmin password loss, you need to recover at MySQL level.

The MySQL manual explains how to reset the permissions.

If you are using MySQL server installed by your hosting provider, please contact their support to recover the password for you.

1.13 (withdrawn).

1.14 (withdrawn).

1.15 I have problems with mysql.user column names.

In previous MySQL versions, the User and Password columns 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 max_execution_time, upload_max_filesize, memory_limit and post_max_size in the php.ini configuration file. All of these settings limit the maximum size of data that can be submitted and handled by PHP. Please note that post_max_size needs 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 设置 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:

    1. source filename.sql;

1.17 Which Database versions does phpMyAdmin support?

For MySQL, versions 5.5 and newer are supported. For older MySQL versions, our Downloads page offers older phpMyAdmin versions (which may have become unsupported).

For MariaDB, versions 5.5 and newer are supported.

1.17a 我无法连接到 MySQL 服务器,它总是提示这个错误:"客户端不支持服务器要求的认证方式,请升级 MySQL 客户端"

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 1.17 Which Database versions does phpMyAdmin support?. 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. 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 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 an error about missing mysqli and mysql extensions.

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 mysqli.so or php_mysqli.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.

There are currently two interfaces PHP provides as MySQL extensions - mysql and mysqli. The mysqli is tried first, because it’s the best one.

This problem can be also caused by wrong paths in the php.ini or using wrong php.ini.

Make sure that the extension files do exist in the folder which the extension_dir points to and that the corresponding lines in your php.ini are not commented out (you can use phpinfo() to check current setup):

  1. [PHP]
  2. ; Directory in which the loadable extensions (modules) reside.
  3. extension_dir = "C:/Apache2/modules/php/ext"

The php.ini can be loaded from several locations (especially on Windows), so please check you’re updating the correct one. If using Apache, you can tell it to use specific path for this file using PHPIniDir directive:

  1. LoadFile "C:/php/php5ts.dll"
  2. LoadModule php5_module "C:/php/php5apache2_2.dll"
  3. <IfModule php5_module>
  4. PHPIniDir "C:/PHP"
  5. <Location>
  6. AddType text/html .php
  7. AddHandler application/x-httpd-php .php
  8. </Location>
  9. </IfModule>

In some rare cases this problem can be also caused by other extensions loaded in PHP which prevent MySQL extensions to be loaded. If anything else fails, you can try commenting out extensions for other databases from php.ini.

1.21 I am running the CGI version of PHP under Unix, and I cannot log in using cookie auth.

In php.ini, set mysql.max_links higher than 1.

1.22 I don’t see the “Location of text file” field, so I cannot upload.

This is most likely because in php.ini, your file_uploads parameter is not set to “on”.

1.23 I’m running MySQL on a Win32 machine. Each time I create a new table the table and 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]:

  1. set-variable = lower_case_table_names=0

注解

Forcing this variable to 0 with –lower-case-table-names=0 on a case-insensitive filesystem and access MyISAM tablenames using different lettercases, index corruption may result.

然后,重新启动 MySQL。您也可以使用如下的查询语句来查询此设置值

  1. SHOW VARIABLES LIKE 'lower_case_table_names';

参见

Identifier Case Sensitivity in the MySQL Reference Manual

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.

Jose Fandos 给出的解决方法:在 httpd.conf 中增加下面两行:

  1. # mod_gzip_item_include file \.php$
  2. # 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 their permissions and it should work.

1.27 I get empty page when I want to view huge page (eg. db_structure.php with plenty of tables).

This was caused by a PHP bug that occur when GZIP output buffering is enabled. If you turn off it (by $cfg['OBGzip'] in config.inc.php), it should work. This bug will has been fixed in PHP 5.0.0.

1.28 My MySQL server sometimes refuses queries and returns the message ‘Errorcode: 13’. What does this mean?

This can happen due to a MySQL bug when having database / table names with upper case characters although lower_case_table_names is set to 1. To fix this, turn off this directive, convert all database and table names to lower case and turn it on again. Alternatively, there’s a bug-fix available starting with MySQL 3.23.56 / 4.0.11-gamma.

1.29 When I create a table or modify a column, I get an error and the columns are duplicated.

这可能是因为没有正确配置 Apache 而导致 PHP 无法正确解释 .php 文件。

该问题的产生,可能是因为在 Apache 的配置文件中显式地指定了两组互相冲突的设置:

  1. SetOutputFilter PHP
  2. SetInputFilter PHP

  1. 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:

  1. #SetOutputFilter PHP
  2. #SetInputFilter PHP

1.30 I get the error “navigation.php: Missing hash”.

产正这个问题的原因是您的服务器上运行着 Turck MMCache,升级 MMCache 到 2.3.21 版本就可解决此问题。

1.31 Which PHP versions does phpMyAdmin support?

Since release 4.5, phpMyAdmin supports only PHP 5.5 and newer. Since release 4.1 phpMyAdmin supports only PHP 5.3 and newer. For PHP 5.2 you can use 4.0.x releases.

PHP 7 is supported since phpMyAdmin 4.6, PHP 7.1 is supported since 4.6.5, PHP 7.2 is supported since 4.7.4.

HHVM is supported up to phpMyAdmin 4.8.

Since release 5.0, phpMyAdmin supports only PHP 7.1 and newer.

1.32 Can I use HTTP authentication with IIS?

答案是肯定的。我们在 IIS 5.1 上以 ISAPI 方式使用 PHP 4.3.9 来测试 phpMyAdmin 2.6.1,结果可以正常使用 phpMyAdmin。

  1. 请在 php.ini 文件中作如下设置: cgi.rfc2616_headers = 0
  2. In Web Site Properties -> File/Directory Security -> Anonymous Access dialog box, check the Anonymous access checkbox and uncheck any other checkboxes (i.e. uncheck Basic authentication, Integrated Windows authentication, and Digest if it’s enabled.) Click OK.
  3. In Custom Errors, select the range of 401;1 through 401;5 and click the Set to Default button.

参见

RFC 2616

1.33 (withdrawn).

1.34 Can I directly access a database or table pages?

Yes. Out of the box, you can use a URL like http://server/phpMyAdmin/index.php?server=X&db=database&table=table&target=script. For server you can use the server number which refers to the numeric host index (from $i) in config.inc.php. The table and script parts are optional.

If you want a URL like http://server/phpMyAdmin/database[/table][/script], you need to do some additional configuration. The following lines apply only for the Apache web server. First, make sure that you have enabled some features within the Apache global configuration. You need Options SymLinksIfOwnerMatch and AllowOverride FileInfo enabled for directory where phpMyAdmin is installed and you need mod_rewrite to be enabled. Then you just need to create the following .htaccess file in root folder of phpMyAdmin installation (don’t forget to change directory name inside of it):

  1. RewriteEngine On
  2. RewriteBase /path_to_phpMyAdmin
  3. RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
  4. RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
  5. RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
  6. RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]

参见

4.8 Which parameters can I use in the URL that starts phpMyAdmin?

在 5.1.0 版更改: Support for using the target parameter was removed in phpMyAdmin 5.1.0. Use the route parameter instead.

1.35 Can I use HTTP authentication with Apache CGI?

Yes. However you need to pass authentication variable to CGI using following rewrite rule:

  1. RewriteEngine On
  2. RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

1.36 I get an error “500 Internal Server Error”.

导致这种情况的原因有很多种,请查看您的服务器错误日志,其中可能包含了有关的错误信息。

1.37 I run phpMyAdmin on cluster of different machines and password encryption in cookie auth doesn’t work.

If your cluster consist of different architectures, PHP code used for encryption/decryption won’t work correctly. This is caused by use of pack/unpack functions in code. Only solution is to use openssl extension which works fine in this case.

1.38 Can I use phpMyAdmin on a server on which Suhosin is enabled?

Yes but the default configuration values of Suhosin are known to cause problems with some operations, for example editing a table with many columns and no primary key or with textual primary key.

Suhosin configuration might lead to malfunction in some cases and it can not be fully avoided as phpMyAdmin is kind of application which needs to transfer big amounts of columns in single HTTP request, what is something what Suhosin tries to prevent. Generally all suhosin.request.*, suhosin.post.* and suhosin.get.* directives can have negative effect on phpMyAdmin usability. You can always find in your error logs which limit did cause dropping of variable, so you can diagnose the problem and adjust matching configuration variable.

The default values for most Suhosin configuration options will work in most scenarios, however you might want to adjust at least following parameters:

To further improve security, we also recommend these modifications:

You can also disable the warning using the $cfg['SuhosinDisableWarning'].

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?

This is caused by the fact that PHP scripts have no knowledge that the site is using https. Depending on used webserver, you should configure it to let PHP know about URL and scheme used to access it.

For example in Apache ensure that you have enabled SSLOptions and StdEnvVars in the configuration.

参见

[https://httpd.apache.org/docs/2.4/mod/mod\_ssl.html](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html)\

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:

  1. ProxyPass /mirror/foo/ http://backend.example.com/
  2. ProxyPassReverse /mirror/foo/ http://backend.example.com/
  3. ProxyPassReverseCookieDomain backend.example.com public.example.com
  4. ProxyPassReverseCookiePath / /mirror/foo/

Note: if the backend url looks like http://server/~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.

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

参见

[https://httpd.apache.org/docs/2.2/mod/mod\_proxy.html](https://httpd.apache.org/docs/2.2/mod/mod_proxy.html)\, $cfg['PmaAbsoluteUri']

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 mysql_upgrade command on the server.

1.42 How can I prevent robots from accessing phpMyAdmin?

You can add various rules to .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.

  1. RewriteEngine on
  2. # Allow only GET and POST verbs
  3. RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ [NC,OR]
  4. # Ban Typical Vulnerability Scanners and others
  5. # Kick out Script Kiddies
  6. RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
  7. RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|wkito|pikto|scan|acunetix).* [NC,OR]
  8. RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
  9. # Ban Search Engines, Crawlers to your administrative panel
  10. # No reasons to access from bots
  11. # Ultimately Better than the useless robots.txt
  12. # Did google respect robots.txt?
  13. # Try google: intitle:phpMyAdmin intext:"Welcome to phpMyAdmin *.*.*" intext:"Log in" -wiki -forum -forums -questions intext:"Cookies must be enabled"
  14. RewriteCond %{HTTP_USER_AGENT} ^.*(AdsBot-Google|ia_archiver|Scooter|Ask.Jeeves|Baiduspider|Exabot|FAST.Enterprise.Crawler|FAST-WebCrawler|www\.neomo\.de|Gigabot|Mediapartners-Google|Google.Desktop|Feedfetcher-Google|Googlebot|heise-IT-Markt-Crawler|heritrix|ibm.com\cs/crawler|ICCrawler|ichiro|MJ12bot|MetagerBot|msnbot-NewsBlogs|msnbot|msnbot-media|NG-Search|lucene.apache.org|NutchCVS|OmniExplorer_Bot|online.link.validator|psbot0|Seekbot|Sensis.Web.Crawler|SEO.search.Crawler|Seoma.\[SEO.Crawler\]|SEOsearch|Snappy|www.urltrends.com|www.tkl.iis.u-tokyo.ac.jp/~crawler|SynooBot|crawleradmin.t-info@telekom.de|TurnitinBot|voyager|W3.SiteSearch.Crawler|W3C-checklink|W3C_Validator|www.WISEnutbot.com|yacybot|Yahoo-MMCrawler|Yahoo\!.DE.Slurp|Yahoo\!.Slurp|YahooSeeker).* [NC]
  15. RewriteRule .* - [F]

1.43 Why can’t I display the structure of my table containing hundreds of columns?

Because your PHP’s memory_limit is too low; adjust it in php.ini.

1.44 How can I reduce the installed size of phpMyAdmin on disk?

Some users have requested to be able to reduce the size of the phpMyAdmin installation. This is not recommended and could lead to confusion over missing features, but can be done. A list of files and corresponding functionality which degrade gracefully when removed include:

  • ./vendor/tecnickcom/tcpdf folder (exporting to PDF)
  • ./locale/ folder, or unused subfolders (interface translations)
  • Any unused themes in ./themes/
  • ./js/vendor/jquery/src/ (included for licensing reasons)
  • ./js/line_counts.php (removed in phpMyAdmin 4.8)
  • ./doc/ (documentation)
  • ./setup/ (setup script)
  • ./examples/
  • ./sql/ (SQL scripts to configure advanced functionality)
  • ./js/vendor/openlayers/ (GIS visualization)

1.45 I get an error message about unknown authentication method caching_sha2_password when trying to log in

When logging in using MySQL version 8 or newer, you may encounter an error message like this:

mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]

mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client

This error is because of a version compatibility problem between PHP and MySQL. The MySQL project introduced a new authentication method (our tests show this began with version 8.0.11) however PHP did not include the ability to use that authentication method. PHP reports that this was fixed in PHP version 7.4.

Users experiencing this are encouraged to upgrade their PHP installation, however a workaround exists. Your MySQL user account can be set to use the older authentication with a command such as

  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

参见

[https://github.com/phpmyadmin/phpmyadmin/issues/14220](https://github.com/phpmyadmin/phpmyadmin/issues/14220)\, [https://stackoverflow.com/questions/49948350/phpmyadmin-on-mysql-8-0](https://stackoverflow.com/questions/49948350/phpmyadmin-on-mysql-8-0)\, [https://bugs.php.net/bug.php?id=76243](https://bugs.php.net/bug.php?id=76243)\