2011-12-07 6 views
2

私は共有サーバーにCS-CART eコマースをセットアップしました。最近では、いくつかの問題を抱えていたし、私はこれらのもののように、MySQLのエラーを取得しています:サーバ/ホスティングによってmysqlクエリエラーが発生する可能性がありますか?

PHP Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/mp/public_html/core/db/mysql.php on line 53 
PHP Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/mp/public_html/core/db/mysql.php on line 57 
PHP Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/mp/public_html/core/db/mysql.php on line 57 
PHP Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /home/mp/public_html/core/db/mysql.php on line 64 
PHP Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/mp/public_html/core/db/mysql.php on line 127 

奇妙なことは、私はランダムにランダムなページで、エラーが表示されるということです。特定のページに表示されるものでも、特定のことをした後に表示されるものでもありません。

物事をもっと複雑にするために、これは時々起こるだけです。これがサーバー/ mysqlプロセスによって引き起こされる可能性はありますか?

たとえば、ウェブサイトがすぐに読み込まれ、すべての機能が問題なく動作します。ほとんどの機能、ページをテストしましたが、エラーは表示されませんでした。数時間前にすべてが遅くロードされ、一部のページで上記のエラーが返されました。

すべての入力をいただければ幸いです。 ありがとうございます。

答えて

2

このようなエラーは、MySQLサーバーに到達できず、PHPエラー処理が実装されていない場合に発生する可能性があります。 mysql_connect()はデータベースサーバへのMySQLリソースポインタとして返しますが、接続が実際に動作している場合に限ります。もしそうでなければ、リソースポインタは空であり、あなたがそこに見ているものであると文句を言います。断続的にしか発生しない場合、これはMySQLサーバの過負荷の典型的な兆候です。

共有ホスティングサーバーを使用している場合は、別のテナントがすべてのリソースを使い果たしている可能性があるため、できることはほとんどありません。しかし、問題をさらに追跡するためにできることはいくつかあります。 phpMyAdminインターフェイスで[ステータス]タブにアクセスできる場合は、これを使用してMySQLサーバの状態を把握できます。

たとえば、実行するクエリの数と、それが許容する同時接続の数を確認します。最大接続数が使い尽くされているため、接続が拒否されることがあります(一部のホスティング環境ではこれを変更できます)。サーバーはまた、障害統計を追跡します。何が起きているかについての手がかりを与えるかもしれません。

ただし、統計情報にアクセスできない場合や、サーバー上の設定を変更できない場合、アプリがトラフィック過負荷を引き起こしていないことを十分に確認している場合は、ホスティングプロバイダ。

+0

これが理由だと思います。エラーはあまりにもランダムで、他のものからのものではありません。それはmysqlプロセスをハングする悪いSQLクエリですか?たとえば、クエリが実行されると、mysqlプロセスはオーバーロードされ、他のすべてのクエリは遅く実行され、エラーも返されます。 mysqlプロセスにタイムアウトなどがありますか? – ChrisNN

+0

はい、それは絶対に遅いクエリかもしれません。 [ステータス]ページには、実行速度の遅いクエリとその発生頻度も表示されます。ほとんどのPHP環境では要求ごとのタイムアウト(通常30〜60秒)がありますが、MySQLのクエリでは必要ありません。したがって、もともとそれらを呼び出すプロセスが長く死んでいるにもかかわらず、ゾンビのクエリを持つことは絶対に可能です。再び、共有ホスティング環境では、他の誰かの罪のためにここで苦しんでいる可能性があります。 – Udo

+0

他にも、これが - http://dev.mysql.com/doc/refman/5.0/en/gone-away.html - が問題であると述べました。どう思いますか? – ChrisNN

関連する問題