UbuntuでRedmineとMySQL

db:migrateをするとエラーが出るので対処します。

状況

  • Ubuntu Server 8.10
  • MySQL 5.0
1
2
$ 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`

1
2
3
4
5
$ 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)の検索

https://q.hatena.ne.jp/1159437279

実行しているユーザにファイルの作成権限又は、書き込み権限がで/home/hogeディレクトリー又は、/home/hoge/hoge.csvファイルにない。 chmod o+rw/home/hogeで誰でも読み書きできますがmysqlのユーザで書き込むができる場所にファイル書き込み場所を変えた方がよいと思います。

初期からある/tmp/ディレクトリのパーミッションを変えるより、MySQLがアクセスできるエリアを新しましょう、と。

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

1
2
3
4
5
6
$ sudo mkdir /var/tmp/mysql/
$ sudo chown mysql /var/tmp/mysql/
$ sudo vi /etc/mysql/my.conf
[mysqld]
# tmpdir = /tmp
tmpdir = /var/tmp/mysql #変更後</pre>

MySQLの再起動

1
2
3
$ sudo /etc/init.d/mysql restart
$ rake db:migrate
$ sudo rake db:migrate RAILS_ENV="production"