使っていますMySQL v5.1存在するUbuntuマシン。
MySQLデータディレクトリは/var/lib/mysql/
test.dat
次の場所にファイルがあります。/var/lib/mysql/tmp/test.dat
test.dat
ファイルのデータをデータベーステーブルにロードしようとしているので、次のSQL文を実行します。
LOAD DATA INFILE '/var/lib/mysql/tmp/test.dat'
INTO TABLE myapp.cars;
ただし、次のエラーが発生します。
Mysql2::Error: Can't get stat of '/var/lib/mysql/tmp/test.dat' (Errcode: 2): LOAD DATA INFILE '/var/lib/mysql/tmp/test.dat
'
なぜですか? ?
ポリスチレン心に浮かぶ一つの/var/lib/mysql/
ことはrootユーザーしかし、それが理由なのかはよくわかりません。
ベストアンサー1
$ ls -ld /var/lib/mysql
drwx------ 21 mysql mysql 4096 2011-11-18 14:07 /var/lib/mysql
はい、そのディレクトリに対する権限がありません(root:root
設定によって異なる場合があります)。使用:
sudo mysql -u mysqluser -e "LOAD DATA INFILE '/var/lib/mysql/tmp/test.dat' INTO TABLE myapp.cars;"
または、ファイルをホームディレクトリ(または別の場所)にコピーしてchown
自分に送信してください。