Xampp MySQL 错误

Posted

技术标签:

【中文标题】Xampp MySQL 错误【英文标题】:Xammp MySQL Error 【发布时间】:2016-01-18 09:17:34 【问题描述】:

最近安装新的本地 xammp 服务器后,我的 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)

【问题讨论】:

您是如何安装 xamp 的?是升级吗?错误的文件描述符错误通常是指损坏的表,在您的情况下,在新安装或升级后可能是问题。 除了apesa提出的优秀问题外,这是什么XAMPP版本,包含什么phpMyAdmin版本? 【参考方案1】:

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

【讨论】:

虽然这可能会回答 OP 的问题,但如果您解释它的工作原理和原因,这个答案会更有用。 谢谢它的工作原理..它实际上做的是做某种验证并在出现问题时进行修复..无论如何我编辑了你的答案以使其更容易理解..【参考方案2】:

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

    从 XAMPP 或命令行启动 MySQL 打开命令行[Windows] + [r],输入“cmd”按[回车] cd \xampp\mysql\bin mysql_upgrade.exe

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

【讨论】:

你的意思是 mysql_upgrade.exe 吗? mysql_update.exe 似乎不存在 是的,我试过了:mysql_upgrade.exe,它可以工作。【参考方案3】:

旧的 XAMPP 包使用 MySQL,在 XAMPP 5.6.12 中它是 MySQL 5.6.26。

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

尝试升级 mysql 数据库未正常工作(“无法创建表...”/“文件描述符错误”)。在运行 mysql_upgrade.exe 时,我不得不定期暂停执行。这让它得以通过。

【讨论】:

虽然 XAMPP 安装在新笔记本上是全新的,但我遇到了同样的问题。启动 MySQL 然后执行 mysql_upgrade.exe 解决了这个问题。在重新启动 mysql_upgrade.exe 之前,它会中途中断。 @carobauque 我在哪里可以找到 mysql_upgrade.exe? \xampp\mysql\bin - 你的 mysql\bin 目录在哪里。如果您的 PATH 变量中有 mysql bin,您只需 [Windows] + [r] 然后键入 mysql_update.exe 并按 [enter]。 在这一点上没有好消息:在我运行 mysql_upgrade.exe 之后,我在 mysql 系统数据库中反复得到损坏的表。通常“user”表和“db”表会受到影响,但所有其他表也可能会损坏。在那种状态下,我认为直到我真正丢失数据只是时间问题。然后,我创建了所有自定义数据库的转储,丢弃了完整的表空间并让服务器创建了一个新的表空间。然后我导入了我的数据库,现在服务器运行正常。【参考方案4】:

我尝试了此处发布的解决方案,但它不起作用(可能是由于 Windows 和 MariaDB)。我决定做一个“快速而肮脏”的修复。

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

打开 DBIMysql.class.php - 搜索

if (! $server)

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

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

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

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

希望对你有帮助:)

【讨论】:

谢谢,这解决了我的问题,因为我无法运行 mysql_upgrade.exe 文件。虽然我没有覆盖属性,但我将本地 root 用户/密码设置为连接方法的 $user 和 $password 参数的默认值:)【参考方案5】:

以管理员身份运行的解决方案 mysql_upgrade.exe 位于此文件夹内:XAMPP/mysql/bin.. 我试过这个并且它工作。 Deepesh Tripathi

【讨论】:

以上是关于Xampp MySQL 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 XAMPP 的 mysql 陷入错误 2

phpMyAdmin 数据库和 XAMPP 中的 MySQL 错误 #1932

安装Xampp后MySql登录错误

连接时Xampp mysql错误

Xampp MySql 错误:MySQL 意外关闭

错误:MySQL 意外关闭。尝试在 Xampp 上启动 Mysql