現在、LANネットワーク上の別のマシンに格納されているMySQLデータベースに接続するために必要なC++プロジェクトを開発中です。MySQLのエラー2006:MySQLサーバがなくなった(通信パケットを読み取る際にエラーが発生しました)
データベースに接続すると問題はありませんが、ループ内の同じポイントで(3回目の繰り返しで)データベース接続が終了し、エラーが表示されます。
:このサイトを検索するだけでなく、Googleは、多くの記事が複数のバッファと、タイムアウト変数を増やすことを提案した後Aborted connection to db <user details> (Got an error reading communication packets)
:私は見サーバーのログをチェックし
MySQL server has gone away.
この問題に
while(this->pRes->next()) // pRes is a pointer to a sql::ResultSet instance
{
...
が行われている他のいくつかを、しかし、彼らのために働いている解決策(複数可)私のために成功していない:
innodb_log_buffer_size = 32M
innodb_log_file_size = 2047M
innodb_fast_shutdown = 0
max_connections = 400
connect_timeout = 300
net_read_timeout = 6000
net_write_timeout = 6000
wait_timeout = 9999999999
interactive_timeout = 9999999999
max_allowed_packet = 500M
net_buffer_length = 500M
は、私はそうのような結果を反復処理しています。質問へのリンクはここにある:
ERROR 2006 (HY000): MySQL server has gone away
MySQL error 2006: mysql server has gone away
https://dba.stackexchange.com/questions/40899/mysql-error-reading-communication-packets
https://www.percona.com/blog/2016/05/16/mysql-got-an-error-reading-communication-packet-errors/
http://dev.mysql.com/doc/refman/5.7/en/communication-errors.html
注:
接続を閉じて、再度開こうとしても問題は解決しません。 sql :: Connection :: reconnectを呼び出すこともできません。
異なる投稿が異なる値を示唆するように、私は変数の値をいくつか試しましたが、試してみるために何か変更するたびに、私はサーバを再起動しました。
サーバーのバージョンが5.7である、とMySQLコネクタ/ C++のバージョンは1.1.7
ありの人が同じ問題を掲載している記事へのより多くのリンクがありますが、一般的に、彼らはただで同じことを示唆しているあります私が列挙した変数とは異なる値(すべて試してみましたが、何もしませんでした)。
サーバーをホストするマシンはWindows 10 Pro x64で、私が開発しているマシンはWindows 10 x64です。
私の開発環境は、ファイアウォールは、両方のマシンで無効になっていると、ルータ上の関連するTCPポートが場合、サーバー
を実行しているマシンに転送されてきた
コミュニティ
のVisual Studio 2015でありますあなたはより多くの情報を必要とし、コメントしてください。私はできることを提供します。