• 締切済み

SQLのエラーの解決方法について

サーバが高負荷になると、まず、サイトにアクセスできなくなり最終的にはサーバが落ちてしまいます。 エラー内容を、検索サイトにて検索してもでてきません。 環境としましては、OSにCentOS6.2を使用し、OpenPNE3.6をApache経由で使用しています。 高負荷時には、CPU使用率は1~3%と低いです。 2GBある物理メモリの使用率は85%程度、SWAPの使用率は70%程度です。 Apacchのerror_logの中身はこのようになっていました。 どなたか対象方法がわかる方がいたら教えていただけませんか? よろしくお願いいたします。 2358 [Mon Mar 12 07:36:06 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2359 [Mon Mar 12 07:36:07 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2360 [Mon Mar 12 07:36:11 2012] [error] server reached MaxClients setting, consider raising the MaxClients setting$ 2361 [Mon Mar 12 07:36:20 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2362 [Mon Mar 12 07:36:10 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [1040] Too many connections$ 2363 [Mon Mar 12 07:36:48 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [1040] Too many connections$ 2364 [Mon Mar 12 07:36:52 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2365 [Mon Mar 12 07:36:26 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2366 [Mon Mar 12 07:38:07 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2367 [Mon Mar 12 07:37:17 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2368 [Mon Mar 12 07:38:24 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2369 [Mon Mar 12 07:38:37 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$

  • MySQL
  • 回答数2
  • ありがとう数1

みんなの回答

回答No.2

2358 [Mon Mar 12 07:36:06 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 2359 [Mon Mar 12 07:36:07 2012] [error] [client ...] PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'waiting for initia l communication packet', system error: 95$ 接続エラー SQLSTATE[HY000] [2013] 接続が落ちた。 MYSQLサーバーにて、接続パケット初期化中に システムエラー ってな意味かな?  上記内容から、メモリ関係とは思いますのすので以下の手順にて調査する必要がある と思います。  MYSQLのマニュアルのメモリ関係を見ると以下の記述がります。   メモリ使用量は、以下の計算式となっているので、下記計算式で概算を見積もる。若しくは設計書にて   以下の個所を確認し、自分でも再度計算を行ってみる。    グローバルでのメモリー割り当て量 + 各スレッドへのメモリー割当量 * 接続数     次に、グローバルでの割り当てで、代表的な変数なども見てみる。  (現在どのように設定しているかとか、各パラメータの意味はとか、他にどんなのがあってそれぞれの意味はとか   それが解ったら、mysqlが稼働しているマシンスペックと照らし合わせて、最適なのかどうか   とか検討して、その結果どうすべきなのか(メモリ増設? 利用sqlの改善?パラメータの調整?   など)       bdb_cache_size bdb_log_buffer_size innodb_additional_mem_pool_size innodb_buffer_pool_awe_mem_mb innodb_buffer_pool_size innodb_log_buffer_size key_buffer_size query_cache_size  各スレッドへの割り当て、変数  join_buffer_size read_buffer_size read_rnd_buffer_size sort_buffer_size  ※ などあるようですが、バージョンによっても違うようなので、このへんも調査したほうがいいと思います。  あと、これ以外にも利用しているdml分(sql文もかき集め、上記エラーがでたとき、どんなsqlが発行されていた  とかも調査したほうがいいですね!  以外と、sql誤りにより巨大なメモリを浪費してメモリを圧迫しているってなこともあるとか)    とま、地道な作業となりますが頑張ってください。  

Green_Tea_Love
質問者

お礼

そういうところの設定も必要なんですね! 解答ありがとうございます。 マニュアル見ながらいろいろやっていこうと考えてます ありがとうございました!!

回答No.1

接続が多すぎるからMax clientsの設定値を増やしてみたら? って言ってるようですけど。

Green_Tea_Love
質問者

補足

設定値を増やしてはみましたが、エラーが出続けます・・・ サーバのそもそものスペックが足りない気もします ありがとうございました・。

関連するQ&A

  • ODBC 5.1 Driverで接続できません

    「MySQL ODBC 5.1 Driver」でMySQLへの接続はできなくて困ってます。 ローカルデスクにあるMySQLには正常に接続できま、「Connection successful」と表示されます。 レンタルサーバーにあるMySQLに接続できなくて困っています。 問い合わせたところ、レンタルサーバーさんでは「接続できる設定だし、実際テストしたら問題なくできました」という回答でした。 ところが私のほうからやると、エラーになります。 エラー表示内容:Connection Failed:[08S01][MySQL][ODBC 5.1 Driver]Lost connection to MySQL server at 'reading authorization packet',system error:2 レンタルサーバーさんは、「私のほうの環境や設定の問題でしょう」ということで詳しい説明をしてくれません。 他のサーバーに置いてあるphpプログラムから正常にアクセスできますので、MySQL自体はなんら問題ないと思います。 「環境や設定の問題」って具体的に何をどう調べればいいのか分からず、困ってます、どなたか教えてください。

    • ベストアンサー
    • MySQL
  • PDO_MYSQLを利用したDB接続ができない

    閲覧ありがとうございます。 次のコードを実行してMYSQLへの接続をしようとすると以下のようなエラーになってしまいます。 エラー!: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) try { $dbh = new PDO('mysql:host=localhost;dbname=DB名', 'ユーザ名', 'パスワード'); } catch (PDOException $e) { print "エラー!: " . $e->getMessage() . "<br/>"; die(); } どなたか原因が分かる方はご教授いただければと思います。 ちなみにmysql_connect()でなら接続できます。 phpinfoを確認すると、確かにPDO、PDO_MYSQLは表示されています。

    • ベストアンサー
    • PHP
  • エラーの解決方法が分かりません。

    普段は正常に動いているMySQLからデータを参照するPHPプログラムがあるのですが、先ほど突然以下のようなエラー文が出ました。 Can't create/write to file '/var/tmp/#sql_11fe5_0.MYD' (Errcode: 17) MySQLのサイトを見ると、以下のような解説がありました。 ーー引用ーーーーーーーーーーーーーーーーー MySQL が、特定のテンポラリディレクトリに結果セット用のテンポラリファイルを作成できないことを示しています(上記のエラーは、Windows での典型的なエラーメッセージですが、Unix でのエラーメッセージもよく似たメッセージになります)。 解決するには、--tmpdir=path を指定して mysqld を起動するか、オプション設定ファイルに以下のコードを追加します。 [mysqld] tmpdir=C:/temp c:\\temp ディレクトリが存在していると仮定しています。 See 項4.1.2. 「my.cnf オプション設定ファイル」。 また perror で、取得するエラーコードを確認します。1つの原因としてディスクがいっぱいになっていることも考えられます。 shell> perror 28 Error code 28: No space left on device ーーーーーーーーーーーーーーーーーーー URL : http://dev.mysql.com/doc/refman/4.1/ja/cannot-create.html おそらくレンタルサーバのOSは、UNIXなのですが、その場合、「tmpdir=C:/temp」 のかわりに何と書けば良いのでしょうか? また、先ほどもういちどサイトを見たら、 Lost connection to MySQL server during query というエラーに変わっていました。 何故でしょうか? この上記2つのエラーは以前にも何回か起こったことがあり、MySQLを再起動すれば一応直るようなのですが、何度も起こるのでどうすればいいか困っています。 根本的な解決方法があれば教えて下さい。 よろしくお願いいたします。 MySQLのバージョンは、4.1です。

  • SQL Server 2005 Expressでbcpを行うとエラーになる

    お世話になります。 SQL Server 2005 Expressを使用しています。 ローカルにあるdbをbcpを使って、エクスポートしていますが、 エラーが表示されて、エクスポートできません。 どなたかお分かりになる方はいらっしゃらないでしょうか? よろしくお願いいたします。 試したことは、下記のエラーがあるように、 スタートから、[SQL Server 2005]→[構成ツール]→[SQL Server 構成マネージャ]を起動し、 その中で、SQL Server 2005 ネットワーク構成から、SQLEXPRESSのプロトコルを参照し、名前つきパイプとTCP/IPを"有効"に変更し、 サービスを再起動 →かわりなし [bcpの実行命令]コマンドプロンプトから実行 bcp db1.dbo.test out D:\work\test.txt -T [エラー] SQLState = 08001, NativeError = 2 Error = [Microsoft][SQL Native Client]名前付きパイプのプロバイダ:SQL Serverへの接続を開けませんでした[2]. SQLState = HYT00, NativeError = 0 Error = [Microsoft][SQL Native Client]ログイン タイムアウトが時間切れになりました SQLState = 08001, NativeError = 2 Error = [Microsoft][SQL Native Client]サーバーへの接続確立時にエラーが発生しました。接続先がSQL Server 2005である場合は、規定の設定ではSQL Serverがリモート接続を許可していないことが原因である可能性があります。

  • Lost connection to MySQL server dur

    Lost connection to MySQL server during queryと表示 サーバーの容量があまりにも少ないので、使われていなかったサーバーではない普通のPCにMySQLを入れ、mysql.userテーブルへ host=サーバーのドメイン名、password=パスワード といった感じで設定し、phpで作成したページからMySQLへアクセスするとLost connection to MySQL server during queryと表示されます。 やはり、サーバーではない普通のPCだからこのようなエラーが出るのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQLサーバー接続について

    DB初心者です。 ODBCからSQLサーバーへのアクセスを設定したく、奮闘しておりますが うまくいかず困っております。 先方から支給されたのは、 DB名、ID、パスワード、ホスト名、ポート番号、MySQLのバージョン5.0.90で、 その通り設定したつもりが、以下のようなエラーが出てソース作成できません。 --- 接続できませんでした。: SQLState: '01000' SQL Server エラー: 11001 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen(Connect()). 接続できませんでした。: SQLState: '08001' SQL Server エラー: 6 [Microsoft][ODBC SQL Server Driver][TCP/IPSockets]指定された SQL Server が見つかりません。 --- エラー番号で検索してみても原因がわからず・・・ 詳しい方いらっしゃいましたらお願いいたしますm(__)m

  • MySQLのリストアができない

    dumpは問題なくでき、リストアをしたときに ERROR 2013(HY000) at line 2873: Lost connection to MySQL server during query となり、MySQLサーバーから切断だけでなく、サービス自体が強制終了されてしまいます。 なにかやり方があるのでしょうか? やってみた対策を書きます。 •dumpファイルが100M程でデータが大きいことが原因かと思い set global max_allowed_packetにて500Mまで大きくしました。 (この値はとりあえず大きくしただけです。) ・sql文にinsert intoが多すぎのが問題かと思い dump時に--extended-insert=trueを指定しました。 リストア時はなにもオプションは指定しておりません。 バージョンは5.5 現在サーバーを使用せず個人パソコンでやっており、メモリは4Gなのですが リストア中に急に3.2Gほど使用している状態になり終了します。 メモリが問題なのでしょうか? それともホームサーバ等のサーバー特化機にすれば解決するのでしょうか? よろしくお願い申し上げます。

  • PHP disconnect()でエラー

    WAMP初級者です。 いままでPEAR::DBを使って書いていたサイトがあり、PDOを利用するように書き換えています。 画面が真っ白になる現象に陥り、他の投稿によりご指導いただき、画面にエラーが表示されるようになったものの、エラーの対処方法がわからず、どなたかご指導いただければと思います。 コードを一つずつコメントアウトして画面が真っ白になるポイントをさぐったところ、問題の箇所がみつかりました。(ここをコメントアウトすると画面がちゃんと表示され、コメントアウトしないとエラーのみの白い画面がでてしまいます。) ●問題の記述 $connection->disconnect(); ●表示されるエラー Fatal error: Call to undefined method PDO::disconnect() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test\test2.php on line 406 そもそもこの記述は必要ないのでしょうか? このページ自体は、あるDBからユーザーが検索をした結果が表示されるページになっていて、 まず、以下のように接続をしています。 // 接続 $connection = new PDO('mysql:host=127.0.0.1;dbname=test_db;charset=utf8','root','root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, ) ); そのあと、クエリをくみたて、prepareして、値をbindValueしてexecuteして、テーブルを表示させるようにしています。 不特定多数のユーザーが検索をするので、事が終えたらdisconnectしないとダメなんじゃないかな、と思ってつけてみたんですが。。特に不要なのでしょうか。 初歩的な質問ですみませんが、どなたお助けいただけますと幸いです。 環境はApache/2.2.4 (Win32) PHP/5.4.22です 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • さくらVPS+CakePHPがうまく動きません

    さくらのVPSにCakePHPを導入して試しています。 VPSの設定が一通り完了し、現行のサイト(さくらのレンタルサーバーに設置)を移行してみたところ、どうしてもうまくいきません。 html+phpのページは何の問題もなく表示されるため、データベース(Mysql)が原因なのは明らかなのですが、スキル不足の問題もあり問題が見つけられず困っています。 具体的には、Mysqlにアクセスするページを表示しようとすると、このようなエラーがCakePHPのログに残ります。 ------ Error: Fatal Error (1): Allowed memory size of 134217728 bytes exhausted (tried to allocate 17218517 bytes) in [/var/cake/lib/Cake/Utility/String.php, line 247] 2013-07-13 09:43:45 Error: [FatalErrorException] Allowed memory size of 134217728 bytes exhausted (tried to allocate 17218517 bytes) #0 /var/cake/lib/Cake/Error/ErrorHandler.php(161): ErrorHandler::handleFatalError(1, 'Allowed memory ...', '/var/cake/lib/C...', 247) #1 [internal function]: ErrorHandler::handleError(1, 'Allowed memory ...', '/var/cake/lib/C...', 247, Array) #2 /var/cake/lib/Cake/Core/App.php(926): call_user_func('ErrorHandler::h...', 1, 'Allowed memory ...', '/var/cake/lib/C...', 247, Array) #3 /var/cake/lib/Cake/Core/App.php(899): App::_checkFatalError() #4 [internal function]: App::shutdown() #5 {main} ------ メモリーサイズを上げると、今度はタイムアウトでエラーになります。 CakePHPの「database.php」には、 public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'hoge', 'password' => 'pass', 'database' => 'hoge', 'prefix' => '', 'encoding' => 'utf8', ); と設定していて、Mysqlにはユーザー「hoge」とテーブル「hoge」を用意しています。 たとえば、上の設定で「database」を存在しないテーブル「aaa」にすると、 Missing Database Connection Error: A Database connection using "Mysql" was missing or unable to connect. The database server returned this error: SQLSTATE[28000] [1045] Access denied for user 'aaa'@'localhost' (using password: YES) このように普通のエラーが表示されます。 また、「login」を存在しないユーザー名「bbb」にすると、 Missing Database Connection Error: A Database connection using "Mysql" was missing or unable to connect. The database server returned this error: SQLSTATE[42000] [1049] Unknown database 'bbb' こちらも普通のエラーが表示されます。 CakePHPのappディレクトリはvar直下に移動していますが、html直下に置いても結果は同じでした。 どういったことが原因なのか、解決方法や手がかりなどご教示いただければと思います。 ------------- さくらのVPS SSD 2G CentOS 6 x86_64 PHPのバージョン PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11) Mysqlのバージョン Ver 14.14 Distrib 5.1.69, for redhat-linux-gnu (x86_64) using readline 5.1 PDO PDO support => enabled PDO drivers => mysql, sqlite PDO Driver for MySQL, client library version => 5.1.69 PDO Driver for SQLite 3.x => enabled -------------

  • mysqlサーバーの接続エラーについて

    digikamでmysql接続テストするとエラーとなります。 mysqlのサービスは開始できています。 Database connection test was not successful. Error was: Unknown MySQL server host 'localhost ' (0) QMYSQL: 接続できません

    • ベストアンサー
    • MySQL