2

MySQL 5.5.27-log で EasyPHP 5.4.6 を実行しています。

次を使用して一時テーブルを作成しようとすると:

CREATE TEMPORARY TABLE temp_table (x int);

次のエラーが表示されます。

ERROR 1005 (HY000): Can't create table 'temp_table' (errno: 22)

ただし、「TEMPORARY」を削除すると機能します。

一時テーブルの構文は、例のページからそのままコピーされました。エラー番号をグーグルで調べてみましたが、使用できるものは何もありませんでした。

誰が何が起こっているのか考えられますか?

4

2 に答える 2

1

errno: 22 は、MySQL が無効なパス (fopen -> INVAL) でファイルにアクセスしようとしていることを示します。MySQL が無効なパスを生成する可能性は低いため、一時パスが正しく設定されていることを確認してください。MySQL 構成にカスタム セットの tmpdir がある場合は、それが有効なパスであることを確認してください。そうでない場合は、を使用して現在の値を確認してくださいSHOW VARIABLES LIKE '%tmp%'。何かが間違っていたり不足している場合は、システムの TEMP 環境変数が正しく設定されていることを確認してください。詳細については、http://dev.mysql.com/doc/refman/5.5/en/temporary-files.htmlを確認してください。

于 2012-11-29T22:29:48.063 に答える
0

使用しているユーザーにcreate_tmp_table_priv特権が付与されていることを確認してください (データベースuserのテーブル)mysql

于 2012-11-29T22:15:43.047 に答える