8

プログラムを数日以上実行すると、MySQLへの接続エラーが発生します。データベースへの接続中のMySQLエラーコードは2013です。MySQLサーバーとクライアントプログラムは両方とも同じマシン上にあります。OSとしてFC5を使用しており、MySQLのバージョンは5.0.18です。誰かがこれに光を当てることができますか?

呼び出し中にmysqlエラー2013が発生しますmysql_real_connect()...

どんな助けでも大歓迎です。

4

6 に答える 6

5

独自のIPの代わりにlocalhostを使用してみてください。理由はわかりませんが、すぐに問題が解決しました。

なぜこれがうまくいったのか、突然誰かが明らかにしてくれたらとてもありがたいです。

于 2011-09-06T06:57:41.020 に答える
4
  1. ファイアウォールの問題のように聞こえます。ファイアウォールを一時的に無効にしてみましたか?

  2. 別の可能な解決策は、ここで述べたようにスタートアップスクリプトを編集し、次の行をコメントアウトすることです。

    SKIP =skip-networking

  3. 3番目の可能な解決策はここに記載されています。ユーザーがInnoDBデータベースにアクセスしようとしましたが、MySQLサーバーのInnoDBサポートが誤って非アクティブ化されました。

  4. (新規)問題を解決するための多くのアプローチがあるこの公式のMySQL記事を見つけました。wait_timeoutシステム変数を変更しましたか?

于 2009-06-18T10:12:54.177 に答える
2

ここにあなたが期待しないかもしれない答えがあります。私は同じ問題に遭遇しました。MySQL エラー 2013。症状は次のとおりです。

  1. PHPMyAdmin は 2013 とエラー 95 を発生させました。

  2. MySQL モニターにシェルインすることはできましたが、起動するのに非常に長い時間がかかりました。コマンドラインユーティリティが開始されると、テーブルを表示でき、すべてが機能しました

  3. サーバーの停止と再起動に長い時間がかかりました。

  4. MySQL エラー ログにエラーはありません。

私は、netstat -tn をチェックした優れたシステム管理者と協力して、答えを得ました。

tcp        0      0 [my.srv.ip]:3306     184.73.87.215:59271     ESTABLISHED
tcp        0      1 [my.srv.ip]:38138    184.73.87.215:113       SYN_SENT

IP は Amazon Web Services に解決されます。ポート 80 以外はすべて許可のみですが、私の 3306 に何らかの刺し傷がありました。ファイアウォール ルールを確認するときが来ました。

新しいテーブルはありませんでしたし、mtop にはアクティビティが表示されませんでしたが、認証ログに大量のテーブルが見つかりました。

Apr 19 15:14:52 magic2 mysqld[18953]: refused connect from ec2-184-73-87-215.compute-1.amazonaws.com
Apr 19 15:18:02 magic2 mysqld[18953]: refused connect from ec2-184-73-87-215.compute-1.amazonaws.com

問題のある IP を iptables でブロックした後、問題は突然解消されました。卑劣なろくでなし。この話の教訓は次のとおりです。バグのように見えるものは、ハッカーかもしれません。

bz

于 2010-04-20T00:19:45.657 に答える
1

my.cnf を確認してください。bind-address をサーバーの IP アドレスに設定します。私のために問題を解決しました。誰もその答えを知らないようでした!

于 2010-04-06T23:29:16.393 に答える
0

ネットワークエラーが原因でTCP/IP接続が切断されたか、サーバーでwait_timeoutを超えた可能性があります。後者は実際には開いている接続の数を抑えるのに役立ちますが、アプリはエラーコード2013を正しく処理する必要があります!!

于 2009-06-18T10:20:34.927 に答える