質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

3082閲覧

MYSQL(XAMPP)が落ちる

nerd

総合スコア37

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/06/19 07:15

###前提・実現したいこと
現在、PHP、MYSQLを用いてシステム構築をしており。最下部環境にて作成をしております。
その中で、CSVをDBに登録する処理を作成しております。

###発生している問題・エラーメッセージ
1.
列数 57例
行数 9012 行のCSVを上記システム上で登録すると無事に登録できます。

列数 15列
行数 36000行のCSVを上記システム上で登録すると15000行ほど登録できたくらいでXAMPPのMYSQLへの接続ができないエラーに
みまわれます。

登録先DBは1、2によってテーブルは違いますが、処理内容は同一コードで動かしております。

登録ができているため、PHP処理の問題ではなく、XAMPPの設定?の問題だと思っております。

mysql,php,apacheのエラーログを見ても気になるようなエラーが出ていないため
相談させていただいた次第です。

ざっくりしすぎていて恐縮ではありますが、XAMPPのここを変更などございましたらご教授お願いいたします。

###補足情報(言語/FW/ツール等のバージョンなど)
WINDOWS10
xampp
php 7.1.4
maria DB 10.1.22

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/06/19 11:27

引っかかったCSVの行位置は特定できていますか? (エンコーディング変換に支障が出る)変な文字が紛れ込んでいませんか。
nerd

2017/06/20 01:52 編集

m6u様 ご回答ありがとうございます。 CSVの行で特定の位置でのエラーが出ないので、CSVを疑っていなかったです。 15000行処理できていて、同じファイルを再度入れると12000行で止まります。 止まるといっても、DB接続ができないといってFATAL ERRORを吐いて止まります。 CSVの特定行で落ちないため、環境のほうを疑っているのですが、MYSQLの設定をいろいろ試しているのですが、いまだに不安定なままです。
guest

回答3

0

自己解決

僕の未熟なコードに伴ったエラーの可能性が大きかったです。

csvを配列に入れ
その後、列、行と処理をしていく中で
行処理の時に都度 pdo接続しておりました。
pdo接続のポート数の限界?を基にMYSQLとの接続が落ちていた可能性が大きいです。

m6u様、yambejp様 貴重なヒント誠に有難うございました。

投稿2017/06/21 05:53

nerd

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

xamppはあくまでサーバー用ソフトウェア群をまとめたパッケージでしかないので、
個別のソフト(mariadb)の方の問題って捉えたほうがよろしいかと。

さて、接続中に接続が切られるとのことなので、
それっぽい情報を探してみました。
参考になりましたら幸いです。

MySQLのセッションタイムアウトの制御 - なからなLife
KeepAlivedとMySQLのタイムアウト設定は必ず確認して!! - Database JUNKY

投稿2017/06/20 02:02

編集2017/06/20 02:03
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nerd

2017/06/20 05:40

m6u様 参照サイトありがとうございました。 拝見させていただき、各設定を試したのですが、改善がなく 20000行 処理して、FATALERROR XAMPP側でPHPMYADMINを見てみても、HY2002 と出て接続不可となってしまいます。 なので、m6u様の接続が切られるというところを再度調べてみたいと思います。
nerd

2017/06/20 05:43

追記 XAMPPコントロールパネル でMYSQL、APACHEともに再起動しても HY2002 が出ます。 QUIT で再起動をすると、動いているので、セッションタイムも踏まえて見てみます。 XAMPPで3万行超えるCSVの扱いは難しいのでしょうか。。。。 特別多いわけでもないかと思うので、はたはた疑問になってしまっております。
退会済みユーザー

退会済みユーザー

2017/06/20 06:12

普通にWindowsパソコン上でテスト環境・開発環境として構築しているのではないかと思うのですが、パソコンに入っているウイルス対策ソフトがxampp側で使用しているポートを遮断してしまっていないか、試しにネットから隔絶した上でウイルス対策ソフトを停止させて試してみて動作が変わるか確認するとどうでしょうか。 また、xampp control panel上で、各サービスが使用するポート番号を、使っていなさそうな番号に変えてみるとか。 ポート番号の確認と使用中かどうかのチェック | XAMPPの使い方 <https://www.adminweb.jp/xampp/ini/index1.html>
nerd

2017/06/20 06:54

m6u様 ありがとうございます。 パソコンにウィルス対策ソフトは入れていないです。 ポートのほうもチェックしても、重複は見当たらないです。 結果は変らずでした。
退会済みユーザー

退会済みユーザー

2017/06/20 07:04 編集

【備忘録】Windowsで「ポートが使用中です」と怒られたので、誰が使っているか調べてみた - Qiita <http://qiita.com/MYu/items/5d21684edd1bf789929d> などを参照して、うまく動いているときのポート使用状況、HY2002が出るようになってからのポート使用状況に変化がないかをチェックできますか。 椅子取りゲームのように、xampp側の何かが使っているポートを、何者かが落とすとか止めるような行為に出ている可能性を潰しておきたいですね。 それと、ウイルス対策ソフトを何も入れてないのも、どうだろう。microsoft safety scannerを一回動かして変な不安を潰すように。 それとyanbejpさん案を考慮して、db接続をcsv1万行くらいでやり直す、再接続するようにするならどうでしょうか。
nerd

2017/06/20 07:56

m6u様 細かいご指摘ありがとうございます。 ポートも踏まえて再度見直します。 それでもだめなら、ロジックをyanbejp様のご指摘のように変更かけてみます。 ウィルスソフトについては、過去に入れていたのですが、警告の出るサイト、メール等を不注意に開かなければ、何も問題ない印象でした。 入れていても許可をしてしまえば同じなので。。。。 WINのディフェンダーくらいで十分なのかなと、くだらない自論で恐縮ですw。 長々お付き合いいただきありがとうございました。 今少し調べて、ご報告させていただきます。
guest

0

メモリの問題かCSVが壊れているかちょっとわかりかねますが
ご利用の環境として15000件がボトルネックであれば
csv自体を1万件程度で分割するような仕組みをつくり
小分けに流し込めばよろしいのでは?
たとえばなんらかのプログラム言語で読み出しながらテンポラリに書き込み
同テンポラリファイルを順番に読み込むなど

投稿2017/06/19 07:20

yambejp

総合スコア114821

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nerd

2017/06/19 07:40

yambejp 様 ご教授ありがとうございます。 CSVのほうは何度も見たのですが、問題のある個所はございませんでした。 EC用の在庫情報になりますので、別日の在庫情報(システム出力)を試しても同様に15000件ほどで止まってしまいます。 今更書くなで恐縮ですが、 CSV 1行づつ、SQLを発行しDB登録しているため、これがメモリに引っかかるんでしょうか。。。 1万件ごとで分割のほうも試してみたいと思います。 迅速なご回答誠に有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問