mysqlimport エラー :: MySQL 3.23系 -> 4.0系

MySQL 3.23.54 を 4.0.25 に上げたら、今まで動いていた mysqlimport コマンドが動かなくなったよー。

$ mysqlimport -d -h<hostname> -u<user> -p<password> <dbname> <tablename>.txt
mysqlimport: Error: File './<dbname>/<tablename>.txt' not found (Errcode: 2), when using table: <tablename>

工エェー、どこ見てんのよ。


ふんぬらば、

$ mysqlimport -d -h<hostname> -u<user> -p<password> <dbname> ./<tablename>.txt
mysqlimport: Error: Can't get stat of './<tablename>.txt' (Errcode: 2), when using table: <tablename>

エェェー。わっかんねぇ。


OK, Alright,

$ mkdir <dbname>
$ cp <tablename>.txt <dbname>/
$ mysqlimport -d -h<hostname> -u<user> -p<password> <dbname> <tablename>.txt
mysqlimport: Error: File './<dbname>/<tablename>.txt' not found (Errcode: 2), when using table: <tablename>

んー、公式ドキュメントも (MySQL :: MySQL 4.1 リファレンスマニュアル :: 4.9.9 mysqlimport(テキストファイルからのデータのインポート)) 変わってないっぽいんだけどなー。


追記1:

$ mysql -h <hostname> -u <user> --password=<password> -D <dbname> -e "LOAD DATA INFILE '<tablename>.txt' REPLACE INTO TABLE <tablename>"
ERROR 1105 at line 1: File './<dbname>/<tablename>.txt' not found (Errcode: 2)

これもアウト。


追記2:
もしかして mysqld が動いてるサーバのファイル見にいってるんじゃねぇの? と思ったが、同じ結果〜。

もしや、 の $HOME//.txt を見にいってるんじゃねぇの? こ、これは手を出せないぜぇー。権限が無いしー。


追記3:

$ mysqlimport -L -d -h <hostname> -u <user> --password=<password> <dbname> <tablename>.txt

できた。

-L, --local
クライアントから入力ファイルを読み取る。デフォルトでは、localhost(デフォルトホスト)に接続した場合、テキストファイルはサーバにあると想定される。

マニュアルよく読めってオチか。