Zabbix错误提示MySQL server has gone away解决_MySQL
Zabbix错误提示MySQL server has gone away解决
相信细心的同学在使用Zabbix的过程中,会遇到[Z3005] query failed: [2006] MySQL server has gone away 这个错误提示,虽然出现错误提示,但实际并不会影响Zabbix Server的正常使用。那么,这个问题能不能解决呢?本文将带你彻底解决此问题的出现。
1
错误现象
22773:20160108:172513.801 [Z3005] query failed: [2006] MySQL server has gone away [select hostid,key_,state,filter,error,lifetime from items where itemid=34993]
22968:20160108:172517.815 [Z3005] query failed: [2006] MySQL server has gone away [select hostid,key_,state,filter,error,lifetime from items where itemid=32057]
2
分析
如果你之前没有遇到这个问题,第一想到的应该是去网上搜索,MySQL出现 [2006] MySQL server has gone away,根据网络搜索的结果,会得出以下解决办法:
#vim /etc/my.cnf
max_allowed_packet=300M
wait_timeout=200000
interactive_timeout = 200000
然后重启MySQL,经过测试,该方法无果而终,问题依旧。
3
解决办法
继续寻找解决办法,在Zabbix的JIRA里面看到此问题为Zabbix Server的BUG,已在2.5中解决,但对于2.5以下版本,该bug没有修复。
解决办法如下
#vim src/libs/zbxdb/db.c
int zbx_db_connect(char *host, char *user, char *password, char *dbname, char *dbschema, char *dbsocket, int port)
{ int ret = ZBX_DB_OK, last_txn_error, last_txn_level;#if defined(HAVE_IBM_DB2) char *connect = NULL;#elif defined(HAVE_MYSQL) my_bool mysql_reconnect = 1; #elif defined(HAVE_ORACLE) char *connect = NULL; sword err = OCI_SUCCESS;
#elif defined(HAVE_MYSQL) conn = mysql_init(NULL); if (NULL == mysql_real_connect(conn, host, user, password, dbname, port, dbsocket, CLIENT_MULTI_STATEMENTS)) { zabbix_errlog(ERR_Z3001, dbname, mysql_errno(conn), mysql_error(conn)); ret = ZBX_DB_FAIL;
}
if (0 != mysql_options(conn, MYSQL_OPT_RECONNECT, &mysql_reconnect)) zabbix_log(LOG_LEVEL_WARNING, "Cannot set MySQL reconnect option."); if (ZBX_DB_OK == ret && 0 != mysql_select_db(conn, dbname)) { zabbix_errlog(ERR_Z3001, dbname, mysql_errno(conn), mysql_error(conn)); ret = ZBX_DB_FAIL;
}
注意红色字体的代码
./configure --host=x86_64-redhat-linux-gnu --build=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/sha
re --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-dependency-tracking --enable-server --enable-proxy --enable-java --enable-agent --enable-ipv6 --with-net-snmp --with-libcurl --with-openipmi --with-unixodbc --with-ldap --with-ssh2 --with-libcurl --with-libxml2 --sysconfdir=/etc/zabbix --datadir=/var/lib --enable-server --with-mysql
重新编译完成后,整个世界清静了,问题完美解决!
原文链接
http://mp.weixin.qq.com/s?__biz=MzA5NjgwNzM0OQ==&mid=401336090&idx=1&sn=ef5735cba4fb2ef0a9b8eab92cc473c0#rd

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









プリンターの使用中に、操作を完了できませんでした (エラー 0x00000771) などのエラー メッセージが表示された場合は、プリンターが切断されている可能性があります。この場合、以下の方法で問題を解決できます。この記事では、Windows 11/10 PC でこの問題を解決する方法について説明します。エラー メッセージ全体には、「操作を完了できませんでした (エラー 0x0000771)」が示されています。指定されたプリンターは削除されました。 Windows PC で 0x00000771 プリンター エラーを修正する プリンター エラーを修正するには、操作を完了できませんでした (エラー 0x0000771)。指定されたプリンターは Windows 11/10 PC で削除されています。次の解決策に従ってください: 印刷スプールを再起動します

HTTP ステータス コード 460 の復号化: このエラーはなぜ発生しますか?はじめに: 日常のネットワーク使用では、HTTP ステータス コードを含むさまざまなエラー プロンプトに遭遇することがよくあります。これらのステータス コードは、リクエストの処理を示すために HTTP プロトコルによって定義されたメカニズムです。これらのステータス コードの中には、比較的まれなエラー コード 460 があります。この記事では、このエラー コードを詳しく説明し、このエラーが発生する理由を説明します。 HTTP ステータス コード 460 の定義: まず、HTTP ステータス コードの基本を理解する必要があります。

Windows サンドボックスは、「Windows サンドボックスを開始できない、エラー 0x80070005、アクセスが拒否されました」というメッセージで終了しますか?一部のユーザーは、Windows サンドボックスを開けないと報告しました。このエラーが発生した場合も、このガイドに従って修正できます。 Windows サンドボックスの起動に失敗しました - アクセスが拒否されました Windows サンドボックスが「Windows サンドボックスを開始できません、エラー 0x80070005、アクセスが拒否されました」というメッセージで終了する場合は、管理者としてログインしていることを確認してください。このタイプのエラーは、通常、権限が不十分であることが原因で発生します。したがって、管理者としてログインして、問題が解決するかどうかを確認してください。問題が解決しない場合は、次の解決策を試すことができます。 管理者として Wi-Fi を実行します。

目次 解決策 1 解決策 21. Windows Update の一時ファイルを削除します。 2. 破損したシステム ファイルを修復します。 3. レジストリ エントリを表示および変更します。 4. ネットワーク カード IPv6 をオフにします。 5. WindowsUpdateTroubleshooter ツールを実行して修復します。 6. ファイアウォールをオフにします。およびその他の関連するウイルス対策ソフトウェア。 7. WidowsUpdate サービスを閉じます。解決策 3 解決策 4 Huawei コンピュータの Windows アップデート中に「0x8024401c」エラーが発生する 症状 問題 原因 解決策 まだ解決されませんか?最近、システムの脆弱性のため、Web サーバーを更新する必要があります。サーバーにログインすると、エラー コード 0x8024401c が表示されます。

多くの友人がブロードバンドに接続するためにコンピュータの電源を入れると、コンピュータでエラー 651 が表示されます。どのような状況ですか? 651 の発生は、ユーザーの端末コンピュータと中国網通の中央局装置の間の接続障害が原因で発生します。外部断線や機器の不具合が考えられますので、オペレーターに連絡して解決するか、機器を確認してください。具体的なチュートリアルを見てみましょう。コンピューターのブロードバンド接続 651 エラー 1: ネットワーク カード ドライバーの障害を解決するための詳細なチュートリアル方法 1. まず、ネットワーク カード ドライバーの問題を検討してください。この問題は比較的一般的です。次の図に示すように、デスクトップ コンピューターを右クリックして、[管理] を選択します。コンピューターのプロパティページの「デバイス管理」デバイス」を入力します。 3. [デバイス マネージャー] ページで、[ネットワーク アダプター] を見つけます。通常、有線と無線の 2 つのネットワーク カードがあります。[有線] をクリックします。

AutoCAD は最もよく使用されている図面設計ソフトウェアの 1 つですが、Win11 で使用したい場合、Win11 に AutoCAD をインストールするときにエラーが発生することがありますが、このときはレジストリを変更して解決することができます。 win11 に autocad をインストールするときにエラーが発生しました。最初のステップとして、キーボードの「win ロゴ + r」を押してファイル名を指定して実行を開きます。 2 番目の手順では、「regedit」と入力し、Enter キーを押してレジストリを開きます。 3. 「Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System」を上記のパスに貼り付けます。 4. 入力後、ダブルクリックします。

Hyper-V を使用して仮想マシンを作成または起動するときにエラー コード 0x80070003 が発生した場合は、権限の問題、ファイルの破損、または構成エラーが原因である可能性があります。解決策には、ファイルのアクセス許可の確認、破損したファイルの修復、正しい構成の確認などが含まれます。この問題は、さまざまな可能性を 1 つずつ除外することで解決できます。エラー メッセージ全体は次のようになります。 [仮想マシン名] の作成中にサーバーでエラーが発生しました。新しい仮想マシンを作成できません。構成ストアにアクセスできません: システムは指定されたパスを見つけることができません。 (0x80070003)。このエラーの考えられる原因は次のとおりです。 仮想マシン ファイルが破損しています。これは、マルウェア、ウイルス、またはアドウェアの攻撃によって発生する可能性があります。このようなことが起こる可能性は低いですが、完全にそうなることはできません。

Tomcat404 エラーを迅速に解決するための実用的なヒント Tomcat は、一般的に使用される JavaWeb アプリケーション サーバーであり、JavaWeb アプリケーションの開発およびデプロイ時によく使用されます。ただし、Tomcat から 404 エラーが発生する場合があります。これは、Tomcat が要求されたリソースを見つけられないことを意味します。このエラーは複数の要因によって発生する可能性がありますが、この記事では、Tomcat 404 エラーを迅速に解決するのに役立ついくつかの一般的な解決策とヒントについて説明します。 URLパスを確認する
