PHPMyAdminについて質問です。


現在ローカル上でDBを動かしているのですが

データをインポートする際、レコード数がある数を超えるとデータを処理できないのか

データを表示しようとしても空白のページしか表示されず大変困っております。

(先ほど240レコード追加したところバグを起こしてしまいました。またテーブルの項目は20ずつしか追加できなく、初期状況が大変不便な状況になっています。)

登録できる数、そして表示できる数の限界を変更する事などは出来ないでしょうか?

お手数をおかけしますが知っている方おりましたらよろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2009/08/04 12:37:26
  • 終了:2009/08/11 12:40:02

ベストアンサー

id:rouge_2008 No.4

rouge_2008回答回数594ベストアンサー獲得回数3512009/08/05 04:59:11

ポイント20pt

phpMyadminの設定を変更していないのでしたら、実行時間が300秒に設定(制限)されていると思います。

phpMyAdminのフォルダ→「libraries」→「config.default.php」の475行目に次の設定項目があるはずですので、任意の数値に変更してください。

$cfg['ExecTimeLimit'] = 300;

※ローカルという事ですので、1800など多少長めに設定しても大丈夫だと思います。


テーブルの種別はInnoDBでしょうか?

インポートなど、InnoDBの方がMyISAMより時間が掛かるようです。

次の指定をMySQLの設定ファイル「my.ini」に加えると改善されるそうです。

http://www.phppro.jp/school/mysql/vol8/2

innodb_buffer_pool_size = 64M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M

http://www.phppro.jp/school/mysql/vol8/2

※phpMyAdminの実行時間の指定が初期状態のままの場合、この指定を追加しても、MyISAMでは1分ちょっとで完了するデータのインポートが、InnoDBでは途中で終了しました。

phpMyAdminの設定を変更する事でインポート可能になるはずですが、少しでも早く完了させるために、一応こちらも試してみてください。


今回の問題とは関係ないはずですが、コメントでも言われている通り、セキュリティの問題が無くても、なるべく最新のバージョンにした方が良いと思います。

phpのバグが理由で発生したトラブルに時間を取られたらもったいないので・・・

id:aiomock

ご回答ありがとうございます。

2009/08/06 13:42:42

その他の回答(4件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/08/04 12:44:43

ポイント20pt

PHPとWebサーバの双方で、アップロード・ファイル(この場合はインポートしたいデータファイル)のサイズを制限する項目があります。以下のファイルに示す項目を確認してください。

php.ini
upload_max_filesize, post_max_size
httpd.conf
LimitRequestBody;これはApacheの場合

また、PHPのメモリエラーかもしれません。"php.ini" の "memory_limit" を確認してください。


表示されたエラーメッセージをいただければ、より具体的な回答が出来ると思います。

id:aiomock

ご回答ありがとうございます。

upload_max_filesize = 2M と表示されています。

post_max_sizeとLimitRequestBody、memory_limit は検索しましたが見つかりませんでした。

ページ自体が空白でエラーメッセージは出てこないです。。命令はきちんと処理されています。

データを空にすると通常通りまた見ることが出来ます。

一応php.ini httpd.conf をアップさせていただきました。

php.ini

http://oskuni7.sakura.ne.jp/php.phps

httpd.conf

http://oskuni7.sakura.ne.jp/httpd_conf.phps

2009/08/04 13:10:40
id:asahiru No.2

asahiru回答回数101ベストアンサー獲得回数02009/08/04 15:17:42

ポイント20pt

ブラウザのタイムアウト時間をもっと大きめにします。

真っ白になってるのは、たぶんタイムアウトになってるからだと思います。

IEのタイムアウト時間を延ばすのは以下のとおり。

http://trendy.nikkeibp.co.jp/article/tec/winxp/20070403/121467/

id:aiomock

ご回答ありがとうございます。

やってみましたが引き続き白いページがずっと出た状態です。。。

2009/08/04 16:10:56
id:kn1967a No.3

kn1967a回答回数356ベストアンサー獲得回数72009/08/04 15:52:15

ポイント20pt

以前回答したように、

  • Web上のphpMyAdmin→ローカルのMySQL
  • ローカルのphpMyAdmin→Web上のMySQL

といった使い方はできない。

どうやってもできない。

id:aiomock

ご回答ありがとうございます。

少ないデータの移動が出来たのですがこれはどうしてでしょうか?

WEBのデータベースのデータ→エクセルデータとしてエクスポート→エクセルデータをCSVファイル形式へ変換→ローカルの同じ環境のDBにCSVファイルでインポート

は出来ました。。。

2009/08/04 16:12:09
id:rouge_2008 No.4

rouge_2008回答回数594ベストアンサー獲得回数3512009/08/05 04:59:11ここでベストアンサー

ポイント20pt

phpMyadminの設定を変更していないのでしたら、実行時間が300秒に設定(制限)されていると思います。

phpMyAdminのフォルダ→「libraries」→「config.default.php」の475行目に次の設定項目があるはずですので、任意の数値に変更してください。

$cfg['ExecTimeLimit'] = 300;

※ローカルという事ですので、1800など多少長めに設定しても大丈夫だと思います。


テーブルの種別はInnoDBでしょうか?

インポートなど、InnoDBの方がMyISAMより時間が掛かるようです。

次の指定をMySQLの設定ファイル「my.ini」に加えると改善されるそうです。

http://www.phppro.jp/school/mysql/vol8/2

innodb_buffer_pool_size = 64M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M

http://www.phppro.jp/school/mysql/vol8/2

※phpMyAdminの実行時間の指定が初期状態のままの場合、この指定を追加しても、MyISAMでは1分ちょっとで完了するデータのインポートが、InnoDBでは途中で終了しました。

phpMyAdminの設定を変更する事でインポート可能になるはずですが、少しでも早く完了させるために、一応こちらも試してみてください。


今回の問題とは関係ないはずですが、コメントでも言われている通り、セキュリティの問題が無くても、なるべく最新のバージョンにした方が良いと思います。

phpのバグが理由で発生したトラブルに時間を取られたらもったいないので・・・

id:aiomock

ご回答ありがとうございます。

2009/08/06 13:42:42
id:bushimichi No.5

ぶしみち回答回数12ベストアンサー獲得回数12009/08/06 09:05:59

ポイント20pt

現象から考えられることは

真っ白になる → 出力内容が空 → 処理が途中で中断している

ということだと思うので、処理が中断した箇所の特定が必要です。

/var/log/httpd/xxxx.log エラーログの確認をしてみてはいかがでしょうか。

何かの手がかりが出力されているかもしれません。

また、phpMyAdimin と同じインストールフォルダ内に 適当なテストスクリプトを書いて、phpinfo() の表示内容を示したほうがいいと思いますよ。

回答1の方のご指摘の upload_max_filesize, post_max_size memory_limit あたりの正確な数字がわかります。

http://php.benscom.com/manual/ja/ini.core.php

id:aiomock

ご回答ありがとうございます。

2009/08/06 13:42:55
  • id:pahoo
    240レコード付近のデータそのものが異常ということはありませんか?
    クォーテーションやセミコロンなどが混じっていませんか? データが文字化けしていませんか?


    それから、せっかくアップしていただいたところですが、php.ini と httpd.conf は削除して方がいいですよ。いくらローカルとはいえ、こうした重要な設定ファイルを公開することは無防備に過ぎます。
  • id:aiomock
    pahoo さん

    ご回答ありがとうございます。

    インポートデータ自体に問題はないと思います。

    なぜならWEB上のDBですと通常通り登録できるからです。
    ローカルで少ないデータを読み取らせる場合エラーが出ませんし文字化けもしません。

    アドバイス通りphp.ini と httpd.conf は削除させていただきました。
  • id:aiomock
    データがどれくらい入るのか調べてみたのですが15レコードまでは入るみたいでそれ以上の数を入れようとすると空白になってしまいます。

    テスト用のテーブルを作成しました。項目が二つあるもので

    INSERT命令で二つの項目に文字を入れたところ10000件入りました。

    空白が問題なのではないかと思い、空白の部分にNULLという文字を入れて240件の挿入を実行してみたところまたバグが発生しました。

    これは初期設定状態にやはり問題があるということでしょうか?
  • id:aiomock
    今回最新のphpMyadmin(最新版3.2.0.1)をインストールして使ってみたのですが

    私と同じバージョンをもし使われている方でローカルでのデータベースに容量制限があったという方はおられますでしょうか?

  • id:pahoo
    基本的な確認ですが、Webサーバ(Apacheですか?)、PHP、phpMyAdmin、DBサーバ(MySQL)はすべてローカルにあるものを使用しているのですよね? リモートにアクセスすることはありませんよね。
    それらは、リモート(Web)上にあるものと、まったく同じバージョンで、まったく同じ設定(とくに文字エンコード)ですか?
  • id:aiomock
    WebサーバーはApacheです。

    PHP、phpMyAdmin、DBサーバ(MySQL)はすべてローカルにあるものを使用しています。

    CDSITEというパッケージソフトをインストールして使用しています。

    (Web)上にあるものと、バージョンは違いますが文字エンコードは一緒です。
  • id:pahoo
    リモートとバージョンが違うのでは、原因究明は困難です。
    CDSITEは1年半以上も更新がないですよね。せめて、PHPを最新版にできませんか?
    もし PHP 5.2.5 のままだとすると、これはMySQL関連のバグが多いバージョンなのです。次の5.2.6でかなり修正されました。
    http://php.net/ChangeLog-5.php#5.2.6
  • id:rouge_2008
    ※新しく分かったことがあるので、一度消してから再度コメントしています。

    解決されたでしょうか?
    CDSITE試してみましたが、phpMyAdmin最新版(3.2.0.1)で122,685レコードのインポートは問題なく完了しました。(※MyISAMのテーブルに郵便番号データをインポートしてみました。)

    特定のテーブルを作成して、CSVファイルをインポートしているのですよね?
    ソフト自体に問題は無いようですので、もう一度設定を見直してみてください。
    ※インポート可能なファイルサイズが、初期設定で最長2048KBになっていたので、変更した方が良いと思います。

    「etc」→「php.ini」
    246行目 memory_limit = 16M
    409行目 post_max_size = 32M
    514行目 upload_max_filesize =32M

    ※設定値は上記で問題ないと思いますが、もっと大きいファイルをアップロードしたい場合は、値を大きく変更します。

    インポートしようとしているCSVのファイルサイズはどのくらいですか?
    実行時間が足りない場合は、回答した$cfg['ExecTimeLimit']の設定を変更してみてください。(MyISAMのテーブルに約18MB程度したら余裕で可能でした。)

    memory_limitの値が小さすぎたせいで、ページが正常に表示されなかった可能性があります。
    こちらでもほぼ同じ状態になりました。
    インポートが途中で止まる件は、インポートしようとしているCSVファイルの文字コードを確認してみてください。
    ※テーブル(フィールド)と同じ文字コードである必要があります。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません