
宜しくお願いします。
CSVファイルをインポートしようとして、四苦八苦しています。item.csvというファイルをitemという名前のテーブルにインポートしようとしています。
load data local infile "item.csv" into table item fields terminated by ',';
とコマンドを入力すると、
The used command is not allowed with this MySQL version
というエラーが返されます。そこで、
load data infile "item.csv" into table item fields terminated by ',';
と入力すると、
Access denied for user: '****@localhost' (Using password: YES)
というエラーが返されます。
csvファイルの置き場所も解らないので、同じサーバの/public_html/test/php/csv/item.csvという位置と、/public_htmlよりもう一階層上のフォルダにitem.csvというファイルをアップしてあります。
相対パスやサーバがどの程度の階層まで検索してくれるのか解らないので、絶対パスでも指定してみましたが、全く同じエラーが返されてきました。
エラーの内容を翻訳してみたところ、
The used command is not allowed with this MySQL version
「使用されたコマンドは、このMySQL版で許されない」
Access denied for user: '****@localhost' (Using password: YES)
「ユーザー:『****@localhost』(パスワード:YESを使うこと)のために許されないアクセス」
という意味になりました。正直、どうすればいいのかさっぱりわかりません。この状況の打開策をご教授頂ければ助かります。何卒、宜しくお願い致します。尚、MySQLのバージョンはレンタルサーバの情報によると、「3.23.××以降」となっています。
No.1ベストアンサー
- 回答日時:
インポートしようとしているテーブルに対してのfile権限が無いだけかな?
それとも、パスワードが間違ってるだけとか
MySQL 3.23.4 以降なら
show grants for ユーザ名
ってやって、file権限があるかどうか調べてくだされ
ありがとうございます。
早速試してみたら、
There is no such grant defined for user '*****' on host '%'
という文章がかえってきました。直訳してみると・・・
定められるそのような補助金が、ホスト『%』の上にユーザー『*****』のためにない
というメッセージの様です。どうも、権限がないって事みたいです。
もうちょっと色々調べて見ます。ありがとうございました。
No.2
- 回答日時:
実は私もこの所ではまっています。
調べた結果分かったのは、バージョンによってMYSQLIMPORTとLOAD DATAを使い分けないといけないらしいことと、
rootでログインしてgrantコマンドでユーザにアクセス権を与えなければならない(使うDBのもの)ということです。
全て日本MYSQLのサイトで解説していますので、ご一読ください。
ありがとうございます。
出来ました!MySQLの日本語版マニュアルでload data infileについて検索してみたら、load data localっていう項目が見つかりました。よーく読むと、
The used command is not allowed with this MySQL version
というエラーは、
「サーバ側とクライアント側で両方ともload data localを認めてないよ!!だからダメ!!」
という様な内容だったので、モノはためしで、MySQLから一度ログアウトして、再ログインする時に、
mysql --local-infile=1 -p *****←(*はユーザーIDです。)
と言う形でログインしてみました。それから、
load data local inflie "ぱす/ファイル名.csv" into table テーブル名 fields terminated by',';
と入力したらバッチリ!出来ました。
最初にログインする時の「--local-infile=1」というのが、クライアント側でもこのload data local infileを認めるオプションらしいです。「--local-infile=0」とすると、load data local infileは使えなくなります。セキュリティ上デフォルトでは使えない形でログインする様になっている様です。
ちなみに、ファイルの置き場所は、通常htmlファイルを置いたある「public_html」というフォルダに入れたら読込んでくれなかったので、一番上の階層に置いたら読込みました。フォルダもやはり一番上の階層に作って、そのフォルダに入れてパスを指定すると読込んでくれました。
さらに、load data infileにはいろんなオプションが付いていて、例えば
load data infile "ファイル名.csv" into table テーブル名 fields terminated by ',' ignore 1 lines;
と入力したら、csvファイルの一行目のレコード(各カラム名)は読込まないで2行目のレコードから読ませるなどの設定も出来るそうです。
このコマンド面白いので、もっと色々調べて見たいと思います。ありがとうございました。
参考URL:load data localについて
http://dev.mysql.com/doc/mysql/ja/LOAD_DATA_LOCA …
参考URL:load data infileについて
http://dev.mysql.com/doc/mysql/ja/LOAD_DATA.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
作成したレコードセットのCSV出...
-
sql*loader 数値のロード
-
SQLサーバーにcsv.ファイル...
-
データベースファイル(.db)を開...
-
PL/SQLで@ファイル名が反応しま...
-
html上でMySQLにアクセス(Java...
-
PL/SQLをWindowsのBATファイル...
-
あるDBから別のDBのテーブルをs...
-
mySQLのデータベースにhtmlのコ...
-
バッチファイルではパスワード...
-
utf8bomとutf8mb4の違いがいま...
-
DBMS_SQL.EXECUTEの問合せ結果件数
-
同じSQL文で極端に検索が遅くな...
-
SQLServerのselect文でデータ数...
-
badファイルの内容を知る方法
-
create databaseがうまくいきま...
-
複数行をINSERTで『ORA-00911: ...
-
PHP+MySQL 内部結合(INNER_JOIN...
-
メンテナンスプランについて
-
htmlタグを含んだ文字のデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sql*loader 数値のロード
-
MySQLで連続csvファイルを読み...
-
作成したレコードセットのCSV出...
-
MySQL Date型にNULLが設定でき...
-
CSVを1行しかインポートしない...
-
BCPコマンドについて
-
データのインポートの速度について
-
insertを用いてテーブルにレコ...
-
MySQLデータベースにcsvファイ...
-
phpMyAdmin テキストインポート...
-
CSVファイルをインポートすると...
-
BAT処理でCSVデータのインポート
-
CSVファイルのインポートについて
-
csv形式のファイルをダウンロー...
-
access2000でインポート...
-
phpMyadminについて
-
SQLサーバーにcsv.ファイル...
-
検索できるマスターテーブルを...
-
データベースからWordpressを復...
-
データベースファイル(.db)を開...
おすすめ情報