首页 > 解决方案 > 大量表的 Phpmyadmin 500 内部服务器错误

问题描述

我的数据库中有很多表,当我尝试导航表列表时,我从 phpmyadmin 收到 500 错误

这是apache日志中的相关错误

[proxy_fcgi:error] [pid 14770] [client 94.130.127.152:20932] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: Argument 2 passed to PhpMyAdmin\\DatabaseInterface::dataSeek() must be of the type int, string given, called in /var/www/html/phpMyAdmin-5.0.1-all-languages/libraries/classes/Navigation/Nodes/NodeDatabase.php on line 488 
and defined in /var/www/html/phpMyAdmin-5.0.1-all-languages/libraries/classes/DatabaseInterface.php:2730

Stack trace:
#0 /var/www/html/phpMyAdmin-5.0.1-all-languages/libraries/classes/Navigation/Nodes/NodeDatabase.php(488): PhpMyAdmin\\DatabaseInterface->dataSeek()
#1 /var/www/html/phpMyAdmin-5.0.1-all-languages/libraries/classes/Navigation/Nodes/NodeDatabase.php(514): PhpMyAdmin\\Navigation\\Nodes\\NodeDatabase->getTablesOrViews()
#2 /var/www/html/phpMyAdmin-5.0.1-all-languages/libraries/classes/Navigation/Nodes/NodeDatabase.php(373): PhpMyAdmin\\Navigation\\Nodes\\NodeDatabase->getTables()
#3 /var/www/html/phpMyAdmin-5.0.1-all-languages/libraries/classes/Navigation/NavigationTree.php(400): PhpMyAdmin\\Navigation\\Nodes\\NodeDatabase->getDa...'
centos7
php7.4
directadmin 1.6
mysql 5.7

php1_release 5.6
php1_mode mod_php

php2_release 7.4
php2_mode php-fpm

我的 php1_release 是 php5.6 但由于 phpmyadmin 需要 php7.2+ 我手动更改了处理程序以指向 php 7.4 fpm 套接字

我来宾说某些资源的 php 大小太低导致此错误,因为它在我的其他服务器上工作得很好......

那么我需要更改什么配置?

标签: phpmysqlphpmyadmin

解决方案


@MagnusEriksson的坦克 是解决方案:

https://github.com/phpmyadmin/phpmyadmin/issues/15772
https://github.com/phpmyadmin/phpmyadmin/commit/6981910c8c2c2fd1aaa515c2a37459e68a3740e3

libraries/classes/Navigation/NavigationTree.php:129

$this->pos2Value[0] = (int) $_REQUEST['pos2_value']; 只需添加cast to int


推荐阅读