Xampp MySQL 错误

Xammp MySQL Error

最近安装新的本地 xampp 服务器后,我的 phpmyadmin 中出现此错误。任何人都可以帮助解决这个问题吗?

Warning in .\libraries\dbi\DBIMysqli.class.php#261
 mysqli_query(): (HY000/1030): Got error 9 "Bad file descriptor" from storage engine MyISAM

Backtrace

.\libraries\dbi\DBIMysqli.class.php#261: mysqli_query(
object,
string 'SELECT * FROM `mysql`.`db` LIMIT 1',
integer 0,
)
.\libraries\DatabaseInterface.class.php#246: PMA_DBI_Mysqli->realQuery(
string 'SELECT * FROM `mysql`.`db` LIMIT 1',
object,
integer 0,
)
.\libraries\check_user_privileges.lib.php#46: PMA_DatabaseInterface->tryQuery(string 'SELECT * FROM `mysql`.`db` LIMIT 1')
.\libraries\check_user_privileges.lib.php#395: PMA_checkRequiredPrivilgesForAdjust()
.\libraries\List_Database.class.php#17: require_once(.\libraries\check_user_privileges.lib.php)
.\libraries\PMA.php#17: require_once(.\libraries\List_Database.class.php)
.\libraries\common.inc.php#1089: include_once(.\libraries\PMA.php)
.\tbl_structure.php#14: require_once(.\libraries\common.inc.php)

旧 XAMPP 包使用 MySQL,在 XAMPP 5.6.12 中是 MySQL 5.6.26.

然而,在当前的 XAMPP 5.6.14 中,他们从 MySQL 切换到 MariaDB 10.0.0.17。

尝试升级 mysql 数据库没有正常工作 ("Can't create table..."/"Bad file descriptor")。虽然 mysql_upgrade.exe 是 运行ning,但我不得不定期暂停执行。这允许它 运行 通过。

我最近在全新安装时也收到了这个。

  1. 从 XAMPP 或从命令行启动 MySQL
  2. 打开命令行 [Windows] + [r],输入 "cmd" 按 [enter]
  3. cd \xampp\mysql\bin
  4. mysql_upgrade.exe

当我从 MySQL 服务器执行多个 mysql 转储并将它们导入 MariaDB 时,我发现会发生这种情况。此更新将检查您的所有 mysql 数据库、修复 table 权限、修复 table 和数据库名称、升级 table 和刷新。

您可以 运行 这个可执行文件:mysql_upgrade.exe 位于这个文件夹中:XAMPP/mysql/bin..我试过了,它成功了。

我尝试了此处发布的解决方案,但它不起作用(可能是由于 Windows 和 MariaDB)。我决定进行 "quick & dirty" 修复。

我导航到我的 xampp 文件夹,然后 /phpmyadmin/libraries/dbi/

打开 DBIMysql.class.php - 搜索

if (! $server)

应该在138行左右,在if语句之前插入

$user = "your phpmyadmin username";
$password = "your phpmyadmin password";

保存文件并使用控件重新启动MySQL(别名MariaDB)。基本上它只是覆盖变量用户和密码——似乎新的 MariaDB 在 class 中接收密码和用户名有问题。在我这样做之后,没有再发生错误。

但正如我提到的:要小心,因为这是一个非常脏的修复程序;)

希望对您有所帮助:)

这个 运行 as administrator mysql_upgrade.exe 的解决方案位于此文件夹内:XAMPP/mysql/bin.. 我尝试了这个并且它有效。 迪普什·特里帕蒂