みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

phpMyAdminでのデータのインポートについて

はじめまして。
レンタルサーバーで、MySQLを利用しています。
利用しているレンタルサーバーは、TELNETなどは利用できず、MySQLのデータベースを管理するのに、phpMyAdminを利用するようになっています。

用意したCSVファイルをサーバーのデータベースにインポートしたら、csvファイルが2MBを超えており、phpMyAdminの管理画面のインポートからは、2MB以内に分割しないとアップできませんでした。

分割するのが面倒なので、1回でインポートできないかと思い調べたら、
SQLで、LOAD DATA INFILE でインポートできないかと思い試してみました。
最初は、LOCALというのを入れずにやったらエラーが出たのですが、これは、同じサーバーにアップされたファイルからインポートというこなので、権限がないので無理ということがわかりました。
そこで、LOCALをつけて試しました。

●試したSQLの内容
LOAD DATA LOCAL INFILE 'c:\mihon.txt' REPLACE INTO TABLE test FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

上記をphpMyAdminのSQLのとろこで、実行したのですが、エラーなどは表示されずに完了するのですが、データはインポートされていませんでした。

レンタルサーバーで、phpMyAdminを利用している場合に、LOAD DATA INFILEでファイルをインポートできないのでしょうか?上記のSQLの書き方に問題があるのでしょうか?

初心者なのであまりうまく説明できませんが、大容量のCSVファイルをphpMyAdminからアップするには、なにかよい方法はありますでしょうか?
ご回答よろしくお願い致します。

●サーバーの環境
・MySQL利用可能で、phpMyAdminでのみ利用可能
・データベースは、ユーザーサーバーとは別に設置
・MySQLのバージョンは、4.0.26
・phpMyAdminのバージョンは、2.7.0

投稿日時 - 2006-09-27 23:39:27

QNo.2436218

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

phpMyAdminなら、MySQLのシステム変数の参照ができるでしょうか?
そこで、local infileがONになっているかどうか確認されてみてはどうでしょう?
どのバージョンからか、MySQLのデフォルトではLOCALがOFFになっているような
話を聞いたことが有ります。

構文的には、構造やデータ内容等状況が良くわからないのですが、
もしかしたら行末は、次のようになるかもしれないですね。
LINES TERMINATED BY '\r\n'

投稿日時 - 2006-09-28 10:42:50

補足

ご回答ありがとうございます。
phpMyAdminでMySQLのシステム変数を参照してみたら、local infileはセッション値、グローバル値の両方の項目で、ONになっています。

動作テストのために作ったテーブルの構造は、2つのフィールドからなるテーブルです。
------------
ID | name
-------------

インポートするファイルは、カンマ区切りで、ファイルの保存するときに、エンコードの種類は、日本語(EUC)の改行コードは、LFで保存してあります。

宜しくお願い致します。

投稿日時 - 2006-09-28 11:09:12

お礼

ご回答いただき、ありがとうございまいた。
なかなかうまく作動せず、PHPで1行ずつ追加する形で、なんとかやれるようになりました。
ありがとうございました。

投稿日時 - 2006-10-04 14:22:07

ANo.1

>分割するのが面倒なので、1回でインポートできないか

そういう理由であれば、その他の方法はもっと面倒なので
やめたほうがよいでしょう。
どうしてもとのことであればメニューにあるようにgzip
で圧縮してsql文を送るというのが妥当かと。

投稿日時 - 2006-09-28 10:36:20

お礼

ご回答いただき、ありがとうございました。
まだまだ初心者で、思うようにできませんが、ご回答いただいた回答を参考に、がんばってやってみようと思います。
ありがとうございました。

投稿日時 - 2006-10-04 14:25:53

あなたにオススメの質問