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 が動いてるサーバのファイル見にいってるんじゃねぇの? と思ったが、同じ結果〜。
もしや、
追記3:
$ mysqlimport -L -d -h <hostname> -u <user> --password=<password> <dbname> <tablename>.txt
できた。
- -L, --local
- クライアントから入力ファイルを読み取る。デフォルトでは、localhost(デフォルトホスト)に接続した場合、テキストファイルはサーバにあると想定される。
マニュアルよく読めってオチか。