大量データのソート時などに以下のようなエラーが発生する場合があります。
ERROR 3 (HY000) at line 9: Error writing file ‘/tmp/MYwzBCAi’ (Errcode: 28)
本エラーはInfiniDBが使用する一時領域が不足していると発生します。
本エラーが発生した場合は、以下の何れかの方法で対応してください。
1. 現在一時領域として使用しているディレクトリのサイズを拡張する。
2. 一時領域として使用するディレクトリを十分に空きがあるディレクトリに変更する。
2. 一時領域として使用するディレクトリを十分に空きがあるディレクトリに変更する。
上記2の方法を実施する場合は、以下の手順で一時領域のディレクトリを変更してください。
1)InfiniDBにログイン後以下のコマンドを実行し、現在一時領域として使用しているディレクトリを確認します。
1 2 3 4 5 6 7 |
mysql> show variables like 'tmpdir'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | tmpdir | /tmp | +---------------+-------+ 1 row in set (0.00 sec) |
2)my.cnf(MySQLの設定ファイル)を開き、一時領域として使用する場所を変更します。
例)一時領域を/home/tmp/に変更する場合
1./home/tmp/ディレクトリの作成
1 2 |
# mkdir /home/tmp # chmod 777 /home/tmp |
2.一時領域の変更
1 2 3 4 5 6 7 8 |
# vi /usr/local/Calpont/mysql/my.cnf 一時領域は「tmpdir」で指定します。 変更前) #tmpdir = /tmp/ 変更後) tmpdir = /home/tmp/ |
3)変更を反映させるためにInfiniDBを再起動します。
1 2 3 4 5 |
InfiniDBの停止 # cc shutdownsystem y InfiniDBの起動 # cc startsystem |
4)InfiniDBにログイン後、以下のコマンドを実行し、一時領域のディレクトリが正しく変更されたか確認します。
1 2 3 4 5 6 7 |
mysql> show variables like 'tmpdir'; +---------------+------------+ | Variable_name | Value | +---------------+------------+ | tmpdir | /home/tmp/ | +---------------+------------+ 1 row in set (0.00 sec) |