• 締切済み

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

みんなの回答

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.2

phpMyAdminなら、MySQLのシステム変数の参照ができるでしょうか? そこで、local infileがONになっているかどうか確認されてみてはどうでしょう? どのバージョンからか、MySQLのデフォルトではLOCALがOFFになっているような 話を聞いたことが有ります。 構文的には、構造やデータ内容等状況が良くわからないのですが、 もしかしたら行末は、次のようになるかもしれないですね。 LINES TERMINATED BY '\r\n'

furafurasan
質問者

お礼

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

furafurasan
質問者

補足

ご回答ありがとうございます。 phpMyAdminでMySQLのシステム変数を参照してみたら、local infileはセッション値、グローバル値の両方の項目で、ONになっています。 動作テストのために作ったテーブルの構造は、2つのフィールドからなるテーブルです。 ------------ ID | name ------------- インポートするファイルは、カンマ区切りで、ファイルの保存するときに、エンコードの種類は、日本語(EUC)の改行コードは、LFで保存してあります。 宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

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

furafurasan
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • phpMyAdminからphpMyAdminへのデータ移行

    レンタルサーバーにあるMySQLのデータをphpMyAdminからエクスポートし、ローカルホストにあるMySQLにphpMyAdminのSQLでデータをインポートしようとしています。 方法は以下の通りです。 レンタルサーバーのphpMyAdminを開き、エクスポートしたいデータベースを選択します。 エクスポートを開き、 全選択 SQL 構造: 「DROP TABLE」を追加 「IF NOT EXISTS」を追加 「AUTO_INCREMENT」値を追加 逆クオートでテーブル名やフィールド名を囲む データ: 完全な INSERT 文を作成する バイナリフィールドは 16 進数を使用する エクスポート形式:INSERT ファイルで保存する ファイル名テンプレート:__DB__ テンプレートを覚える 圧縮無し SJISエンコーディングへ変換する で、実行します。 8.43 MB (8,846,019 バイト)37602行 からなる膨大なsqlファイルが作成されます。 次にローカルホストのphpMyAdminを開き、インポートしたいデータベースを選択します。 SQLを開き、 参照より、エクスポートしたsqlファイルを読み込み 圧縮:Autodetect エンコーディングnon で、実行します。 実行の結果、 「SQLクエリー無し」 のメッセージで、SQLが終了します。 もちろん、データベースは移行されていません。 レンタルサーバーのMySQLをローカルのAccessでデータ加工し、レンタルサーバーのMySQLに戻すという作業をしたいだけなのですが(ローカルでバックアップも取っておきたい)、何か解決策はありませんでしょうか?

  • CSVファイルをMYSQLにインポート

    先日からMYSQL+PHPの勉強をはじめました。 データベース構築の際、以前作成したCSVファイルをMYSQLのテーブルとして 利用したいと考えております。 そこで、MYSQLコマンドより、 LOAD DATA LOCAL INFILE 'ファイル名.csv' INTO TABLE テーブル名 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; Query OK, 0 rows affected (0.04 sec) Records: 102 Deleted: 0 Skipped: 102 Warnings: 0 とCSVファイル自体が悪いのかSQL文に問題がるのかインポートがうまくいきません。。 ちなみにCSVは  0,2011/6/2 0:00,80.94,81.32,80.55,80.92 0,2011/5/25 0:00,81.94,82.17,81.8,81.95 0,2011/5/23 0:00,81.77,82.04,81.32,81.99 環境はphpdevで一括でインストールした phpadmin: バージョン2.3.2 MYSQL: MySQL4 apache: 1.3.27 初心者で基本的な質問かもしれないですがどうかご教授お願いします。

    • ベストアンサー
    • MySQL
  • phpMyAdminでのインポートができずに困っております

    <利用環境> ・レンタルサーバー/ラピッドサーバー RV-310 ・MYSQL/MySQL 4.1.18 ・phpMyadmin/phpMyAdmin 2.6.4-pl3 現在MovavleType3.2から3.3への移行を進めております。 普通だったらアップグレードとなるのですが、ラピッドサイトではMT3.3へのアップグレードはサポート対象外で、サイトに記述されておりませんでした。 代わりに、インストールの手順が記述されておりましたので、新たにMT3.3をインストールして、そこにphpMyAdminでMT3.2からエクスポートしたデータをMT3.3に持ってくるという作業を取ることにしました。 MT3.3のインストール、MT3.2のデータのエクスポートまでは順調に進んだのですが、インポートを行おうとすると、「SQL 照会無し」となってしまいます。 インポートの方法としては、SQLタブの「テキストファイルの場所:」というところからエクスポートしたデータを選択して、読み込むという手順を取っております(私が調べた限りでは、このバージョンのphpMyAdminのインポート手順はこの様なものでした)。 何分初心者なもので、ケアレスミスなのか、バージョン違いのMTをインポート・エクスポートする事自体間違っているのか否かもわからず、困り果てております。 もしお分かりの方がいればアドバイスいただければ幸いです。

    • ベストアンサー
    • MySQL
  • データのインポートの速度について

    mysqlの1個のテーブル(約1万行)をphpMyAdminでエクスポートしました。エクスポートは一瞬で終わりました。 それを再びphpMyAdminからインポートしようとしたのですが、データが重いらしくタイムアウトのエラーが出てしまいました。 sqlファイルを開いてみると、テーブルへのinsert文が約200行ずつのかたまりごとに区切られてしました。 きっとphpMyAdminの方で、エクスポートする時、「これくらいのかたまりずつ区切っておかないと、スムーズにインポートできなくてエラーになっちゃうよ」と気を利かせて区切ってくれているのだろうと思います。 仕方ないので、sqlファイルを「約200行ずつのinsert文」に分割して、phpMyAdminからインポートしました。 全部で1万行ほどのデータなので、50回ほどその作業を繰り返しました。 エクスポートはスムーズだったので、インポートがこんなに手間がかかるとは思っていませんでした。 最初にその1万行のデータをテーブルに読み込ませたのは、別のcsvファイルを load data infile したり、項目の並び順を入れ替えて insert したりするphpファイルを書いたのですが、さほど重くもなくスムーズに処理できました。 phpMyAdminを使わない方法の方が圧倒的に早い気がするのですが、大きいデータをインポートする際のスムーズな方法がありましたら、アドバイスいただけますでしょうか?

  • LOAD DATA INFILE の使用について

    サーバにある、CSVファイルをデータベース(mysql)に登録したいです。 $query = "LOAD DATA INFILE '[ファイル名]' INTO TABLE [テーブル名] FIELDS TERMINATED BY ','"; を $result = mysql_query($query); として実行すると、 Access denied for user 'user'@'%' (using password: YES) というエラーになります。 色々検索すると、ユーザーはrootユーザーでないといけない・・・というのを見かけたのですが・・・ 普通のユーザーではLOAD DATA INFILEを使用できませんか? 私は、レンタルサーバを使用していて、レンタルサーバ上からしかユーザーを追加できません。 この場合、LOAD DATA INFILE~ は使用できないのでしょうか? また、もし使用できない場合、代替手段はあるのでしょうか?

    • ベストアンサー
    • PHP
  • phpMyAdminのインポート機能(LOAD DATA)を使って、S

    phpMyAdminのインポート機能(LOAD DATA)を使って、Shift-JisのCSVファイルを、utf8_general_ciのテーブルへインポートするにはどうしたらよいでしょうか? ▽現状 ・インポートすると、日本語の列の部分だけ、何も表示されない。 ・エディタで、CSVファイルを、UTF-8に変換すると、普通に取り込める。 ▽環境 ・phpMyAdmin … 2.10.1 ・MySQL … 5.1.22-rc ちなみに、どうしてもムリの場合、 エディタではなくPHPで何か変換処理するには、 どうすれば書けばよいでしょうか?

    • ベストアンサー
    • PHP
  • pathを指定してCSVをインポートしたい

    すいません1つ質問があります。 こちらのサイトでCSVのファイルのインポート方法を勉強していますが、下記の方法だとあらかじめ、データベースが格納されているフォルダにCSVを置いてある前提でこのやり方をやります。 LOAD DATA INFILE "T01Prefecture.csv" INTO TABLE T01Prefecture FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n"; 僕が知りたいのは、例えば、 C:\Users\Ken\Desktop\T01Prefecture.csv ここに置いてあるCSVを指定してインポートしたいと考えています。 そのやり方がどうもこのパスを書くだけでは出来ないです。 どなたかやり方を教えて頂けますか? 僕が書いたのは下記の通りです。 LOAD DATA INFILE "C:\Users\Ken\Desktop\T01Prefecture.csv" INTO TABLE T01Prefecture FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n"; よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • phpMyAdminでインポートできない

    よろしくお願いします。 さくらインターネットサーバーで無料お試しで登録しているのですが、 phpMyAdminから自分のパソコンのデータをインポートしようとするのですが、エラーになってしまいます。 データは大きくないです。 サーバのphpMyAdminのバージョンは「3.3.10.3」となっています。 パソコンに入っているものは「3.1.3.1」と「3.4.5」です。(XAMPPからダウンロードしました) エラーの内容は「#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? ' at line 1」 です。 後は文字化けしまって読めないものが2行ほどあります。 phpのバージョンは、サーバが「5.2.17」でパソコンは「5.2.9」と「5.3.8」です。 どちらのバージョンでためしてもエラーがでました。 それから MySQLにはSHIFT_JISで設定していますが、サーバのMySQLはUTF-8となっていますが、 そのせいで文字化けしているのでしょうか?データもすべてUTF-8に変えた方が良いのでしょうか? インポートできないので、さくらサーバーのphpMyAdminで入力したデータはShift_JISで設定しましたが それは文字化けしていません。 それから、サーバのデータベース(phpMyAdmin画面)へのログインが、よくエラーになります。 サーバで調べてもらったのですが、異常はないそうです。 でも、ログインを試みて半分はエラーになってログインできませんでした。 これも同じ原因なのでしょうか? これが解決しないとお試し期間が終わっても契約出来ないので急いでいます。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • CSVファイルのインポートについて

    宜しくお願いします。 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.××以降」となっています。

    • ベストアンサー
    • MySQL
  • LOAD DATA LOCAL INFILE

    LOAD DATA LOCAL INFILE を使ってmysql にcsv からデータを挿入したいのですが #1148 - The used command is not allowed with this MySQL version とエラーが出てきます。※エラー情報はmyphpadminから得ています。 以下の文を実行しています。 ※他のサーバーで動いているので、ソースに間違いはないと思います。 ※サーバーの引っ越しで出てきた不具合ですが、以前何かをしたかは覚えていません。。。 LOAD DATA LOCAL INFILE '/パス/data.txt' REPLACE INTO TABLE data fields terminated by ',' ENCLOSED BY '"' LINES TERMINATED BY ' ' 権限を付与すれば良い、と言う記事を読んだのですが 具体的にはどのような事をしたらいいのでしょうか? FTPでファイルをアップロードして、php を実行しています。 MySQL 5.1.73 PHP 5.3.3 よろしくお願いいたします。

    • 締切済み
    • PHP
このQ&Aのポイント
  • SC-PX5V IIの0xC0エラーコードが発生しました。解決方法を教えてください。
  • EPSON社製品であるSC-PX5V IIで0xC0エラーコードが表示されました。どう解決すればいいでしょうか?
  • SC-PX5V IIで0xC0エラーコードが表示されました。問題を解決する方法を教えてください。
回答を見る