2015-10-19 67 views
6

我在最近安裝新的本地xammp服務器後,在我的phpmyadmin中出現此錯誤..任何人都可以幫助這個嗎?Xammp MySQL錯誤

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) 
+0

你是怎麼安裝xamp的?它是一個高尚的?錯誤的文件描述符錯誤通常指的是損壞的表,在你的情況下,新的安裝或升級後可能是錯誤的表。 – apesa

+0

除了apesa提出的優秀問題外,還有哪些XAMPP版本以及包含哪些phpMyAdmin版本? –

回答

10

你可以運行這個可執行文件:mysql_upgrade.exe它位於此文件夾內:XAMPP/mysql/bin ..我試過這個,它工作。

+1

雖然這可能會回答OP的問題,但如果您解釋其工作原理和原因,此答案將更有用。 – Mifeet

+0

感謝它的工作..它實際上做的是做某種形式的驗證和修復的問題..無論如何,我編輯你的答案,使其更容易理解.. – Hatef

1

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

但是在當前的XAMPP 5.6.14中,他們從MySQL切換到MariaDB 10.0.0.17。

試圖升級mysql數據庫沒有正常工作(「無法創建表...」/「壞文件描述符」)。當mysql_upgrade.exe正在運行時,我必須定期暫停執行。這允許它貫穿。

+0

儘管XAMPP安裝在新筆記本電腦上新鮮出爐,但我還是遇到了同樣的問題。 啓動MySQL,然後執行mysql_upgrade.exe解決了這個問題。 重新啓動mysql_upgrade.exe之前只會中途中斷。 –

+0

@carobauque我在哪裏可以找到mysql_upgrade.exe? – PHPhil

+0

\ xampp \ mysql \ bin - 哪裏有你的mysql \ bin目錄。如果你在你的PATH var中有你的mysql bin,你可以[Windows] + [r],然後輸入mysql_update.exe並按[enter]。 – phillihp

3

我最近還收到了一個新的安裝。

    從XAMPP或命令行
  1. 啓動MySQL
  2. 打開命令行的[Windows] + [R],輸入 「cmd」 然後按[Enter]
  3. CD \ XAMPP的\ mysql的\ BIN
  4. mysql_update.exe

我發現這種情況發生在我從MySQL服務器執行多個mysqldump並將它們導入MariaDB時。該更新將檢查所有的mysql數據庫,修復表特權,修復表和數據庫名稱,升級表和刷新。

+0

您的意思是mysql_upgrade.exe嗎? mysql_update.exe似乎不存在 – Oli414

+0

是的,我已經試過:mysql_upgrade.exe,它的工作原理。 – MZD

1

我試着在這裏發佈的解決方案,但它不起作用(可能是由於Windows和MariaDB)。我決定做一個「快速&髒」修復。

我瀏覽到我的XAMPP文件夾,然後/ phpMyAdmin的/庫/ DBI/

開放DBIMysql.class.php - 搜索

if (! $server) 

應在管線138,if語句前插入

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

保存該文件並使用該控件重新啓動MySQL(別名MariaDB)。基本上,它只是覆蓋變量的用戶名和密碼 - 似乎新的MariaDB在該類中接收密碼和用戶名時出現問題。我這樣做後,沒有更多的錯誤發生。

但正如我所提到的:因爲這是一個非常骯髒的修復注意)

希望它能幫助:)

+0

謝謝,這解決了我的問題,因爲我不能運行'mysql_upgrade.exe'文件。我沒有覆蓋屬性,我設置我的本地root用戶/傳遞作爲默認值連接方法的$用戶和$密碼參數:) – KEK

1

此運行位於該文件夾中的管理員聯繫mysql_upgrade.exe的解決方案: XAMPP/mysql /斌..我試過這個,它的工作。 Deepesh Tripathi