All
データベースが破損!? その2 問題の追跡
私は MySQL 使いではないが、実はれっきとしたデータベース・エンジニアである。当然、エラーメッセージをよく読んで見た。
mySQL error with query SELECT COUNT(i.inumber) FROM nucleus_item as i WHERE i.idraft=0 and i.iblog=1 and i.itime<="2004-09-20 21:35:44" and ( i.icat=5 or i.inumber IN (0) ): Can't open file: 'nucleus_item.MYI'. (errno: 145)
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in (以下略)
前半は、nucleus_item テーブルへの問合せに失敗した旨エラー表示している。
Warning 以降で表示している、MySQL APIについては、MySQLへの問合せが失敗したことが原因と考えられるので、重要ではない。
しかし、SELECT文が失敗した理由となっている「Can't open file: 'nucleus_item.MYI'. (errno: 145)」とは、何だ!File I/Oの問題か、ファイルのロッキングか?
実は、私は Nucleus をロリポップ!のサーバーで運用している。FTPサーバーまではFTPでアクセスできるが、MySQLは他のサーバーで運用されているし、そのファイル・リソースにまでアクセスする権限は当然ながら持ち合わせていない。
しかし、ファイル I/Oの問題ならファイルシステムが管理できる人でないと修復できないし、ファイルのロッキングの問題ならサーバーのプロセスが管理できる人でないと開放できないじゃないか。私の手に負えない!
とにかく MySQL 絡みの問題なので、phpMyAdminを使用して、データベースに接続した。以前、ロリポップ!の MySQL サーバーに phpMyAdmin で接続したときには非常に不安定だったが、今回はあっさり接続できる。
phpMyAdminでデータベースにログインし、左ペインで nucleus_item を選択すると、
Can't open file: 'nucleus_item.MYI'. (errno: 145)
エラー
実行されたSQLクエリー :
SHOW KEYS FROM `nucleus_item`
MySQLのメッセージ -->
というエラーメッセージが表示される。
nucleus_item.MYI というファイル名が見られるが、MySQLでは、1テーブル1ファイルなのだろうか。もしくは、テーブルにアサインされている外部ファイルだろうか。
また、phpMyAdminでテーブルの一覧を表示すると、nucleus_item が使用中と表示される。
とにかく、nucleus_item.MYI というファイルへのアクセス手段がない以上、自分の手には負えんと判断し、ロリポップ!へメールを打った。
Related
Fatal error: Cannot redeclare class soapclient in /virtual/tyada/public_html/nucleus/plugins/nusoap.php on line 4538









