2015-10-19 4 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変数に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

これは、私がいくつかのmysqldumpをMySQLサーバから実行し、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)を再起動します。基本的には変数userとpasswordを上書きするだけです。新しいMariaDBにはそのクラスのパスワードとユーザー名を受け取るのに問題があるようです。私がそれをした後、それ以上のエラーは発生しませんでした。

しかし、私が述べたとおり、これは非常に汚れて修正ですので注意してください。)

は、それが役立ちます:)

+0

ありがとう、 mysql_upgrade.exeファイルを実行してください。私はプロパティを上書きしませんでしたが、私は自分のローカルrootユーザーを設定します/ connectメソッドの$ userと$ passwordパラメータにデフォルト値として渡します:) – KEK

1

この実行のソリューションをこのフォルダ内に配置されadminstratorのmysql_upgrade.exeよう願っています: XAMPP/mysql/bin ..私はこれを試して、それは動作します。 Deepesh Tripathi