July 26, 2009

UbuntuでRedmineとMySQL

状況

Ubuntu Server 8.10 MySQL 5.0
$ sudo rake db:migrate RAILS_ENV="production"
Mysql::Error: Can't create/write to file '/tmp/#sql_19bf_0.MYI' (Errcode: 13): SHOW FIELDS FROM `permissions`

作業内容

MySQLにログインし、SHOW FIELDS FROM `permissions`

$ mysql -u user_name -p
mysql> show databases;
mysql> use database_name;
mysql> show fields from permissions;
ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_19bf_0.MYI' (Errcode: 13)

ERROR 1 (HY000)の検索

実行しているユーザにファイルの作成権限又は、書き込み権限がで/home/hogeディレクトリー又は、/home/hoge/hoge.csvファイルにない。chmod o+rw/home/hogeで誰でも読み書きできますがmysqlのユーザで書き込むができる場所にファイル書き込み場所を変えた方がよいと思います。
初期からある/tmp/ディレクトリのパーミッションを変えるより、MySQLがアクセスできるエリアを新しましょう、と。

MySQLのテンポラリディレクトリの設定

$ sudo mkdir /var/tmp/mysql/
$ sudo chown mysql /var/tmp/mysql/
$ sudo vi /etc/mysql/my.conf
[mysqld]

tmpdir = /var/tmp/mysql #変更後

MySQLの再起動

# /etc/init.d/mysql restart

rake db:migrate

$ sudo rake db:migrate RAILS_ENV="production"

参考URL

Redmine - garbagetown http://q.hatena.ne.jp/1159437279