MySql:データをファイルにロードする

MySql:データをファイルにロードする

使っています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自分に送信してください。

おすすめ記事