- 締切済み
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
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Yeti21
- ベストアンサー率47% (396/830)
phpMyAdminなら、MySQLのシステム変数の参照ができるでしょうか? そこで、local infileがONになっているかどうか確認されてみてはどうでしょう? どのバージョンからか、MySQLのデフォルトではLOCALがOFFになっているような 話を聞いたことが有ります。 構文的には、構造やデータ内容等状況が良くわからないのですが、 もしかしたら行末は、次のようになるかもしれないですね。 LINES TERMINATED BY '\r\n'
- yambejp
- ベストアンサー率51% (3827/7415)
>分割するのが面倒なので、1回でインポートできないか そういう理由であれば、その他の方法はもっと面倒なので やめたほうがよいでしょう。 どうしてもとのことであればメニューにあるようにgzip で圧縮してsql文を送るというのが妥当かと。
お礼
ご回答いただき、ありがとうございました。 まだまだ初心者で、思うようにできませんが、ご回答いただいた回答を参考に、がんばってやってみようと思います。 ありがとうございました。
お礼
ご回答いただき、ありがとうございまいた。 なかなかうまく作動せず、PHPで1行ずつ追加する形で、なんとかやれるようになりました。 ありがとうございました。
補足
ご回答ありがとうございます。 phpMyAdminでMySQLのシステム変数を参照してみたら、local infileはセッション値、グローバル値の両方の項目で、ONになっています。 動作テストのために作ったテーブルの構造は、2つのフィールドからなるテーブルです。 ------------ ID | name ------------- インポートするファイルは、カンマ区切りで、ファイルの保存するときに、エンコードの種類は、日本語(EUC)の改行コードは、LFで保存してあります。 宜しくお願い致します。