優しい夜
JavaでMySQLのエラーが出る
2008-09-14-Sun  CATEGORY: Java
ローカル環境でJavaを実行すると、以下のようなMySQLのエラーが出るんです。

(MySQLのエラー)
java.sql.SQLException: Can't create/write to file 'C:\WINDOWS\TEMP\#sql_8b8_0.MYD' (Errcode: 13)

java.sql.SQLException: Can't create/write to file 'C:\WINDOWS\TEMP\#sql_8b8_0.MYI' (Errcode: 13)

Javaで大き目のSQL文を発行すると、ローカル環境ではかなりの確率で発生するのに対し、テスト環境では何ともないので、「う〜ん…(T_T)丿」と悩みました。

じっくり動作を観察していると、MySQLはちょっと重めのSQL文を発行する際に、TEMPフォルダに一時ファイルの作成/削除を繰り返しながら、作業をしている様子。

さらに調べて行くと、どうもウィルス対策ソフトがチェックの為に、TEMPフォルダに作成された一時ファイルの削除を、一瞬遅らせてしまうらしい。


つまり、一時ファイルの削除が遅れることによって、「同名のファイルが既に存在するためcreate出来ません」と言う意味でのエラーが発生しているのではないか、という結論に至りました。


そう言えば、テスト環境には、ウィルス対策ソフトをインストールしてないし…。


んで、McAfee の「オンアクセススキャン」を無効にした所、エラーが出なくなりました。

McAfeeを使われているのであれば、「オンアクセススキャン」の対象外に、MySQLのtmpdirのパスか、拡張子「MYD」「MYI」を指定しても良いかと思われます。


(拡張子の意味)
.MYD…データを保存するファイル
.MYI…インデックスを保存するファイル
.frm…テーブル定義が記述されているファイル

Trackbacks0 Comments0
Comments

Only the blog author may view the comment.
 
Trackbacks
TB*URL
ページトップへ
Copyright © 2009 優しい夜. all rights reserved.