mysql chyba při čtení komunikačních paketů
<p>v protokolech chyb mysql vidím těchto docela málo upozornění, jako jsou tato:</p><pre><code>120611 16:12:30 [warning] aborted connection 2619503 to db: 'db\_name' user: 'user\_name' host: 'webapp\_hostname' (got an error reading communication packets) </code></pre><p>nezaznamenal jsem žádnou ztrátu dat jako takovou, takže jsem zvědavý, co toto varování znamená, nebo co to způsobuje, a zda, jak by někdo mohl řešit problém, který je způsobil. toto je na rhel 6.1 a mysql enterprise 5.5.</p>
<p>jedním z tichých zabijáků spojení mysql je paket mysql.</p><p>nejprve pojďme zjistit, co je mysql paket.</p><p>podle <a href="http://rads.stackoverflow.com/amzn/click/0596009577">strana 99 „porozumění interním mysql“ (isbn 0-596-00957-7)</a> jsou zde odstavce 1-3 vysvětlující mysql pakety:</p><blockquote> <p>mysql síťový komunikační kód byl napsán za předpokladu, že dotazy jsou vždy přiměřeně krátké, a proto je lze na server odesílat a zpracovávat v jednom bloku, který se v terminologii mysql nazývá <em> paket</em>. server přiděluje paměť dočasné vyrovnávací paměti pro uložení paketu a vyžaduje dost, aby se vešel úplně. tato architektura vyžaduje preventivní opatření, aby se zabránilo vyčerpání paměti serveru  omezení velikosti paketu, čehož tato možnost dosáhne.</p> <p>kód zájmu týkající se této možnosti je uveden v <strong> sql/net\_serv.cc </strong>. podívejte se na <strong> my\_net\_read () </strong>, poté následujte volání na <strong> my\_real\_read () </strong> a věnujte zvláštní pozornost <strong> net\_realloc () </strong>.</p> <p>tato proměnná také omezuje délku výsledku mnoha řetězcových funkcí. podrobnosti viz <strong> sql/field.cc </strong> a <strong> sql/intem\_strfunc.cc </strong>.</p> </blockquote><p>znalost této informace o paketech mysql umožňuje vývojářům/dba jejich velikost tak, aby pojala více blob uvnitř jednoho paketu, i když jsou nepříjemně velké. v takovém případě paket příliš malý způsobí problémy s otevřeným spojením.</p><p>podle <a href="http://dev.mysql.com/doc/refman/5.5/en/gone-away.html"><strong> dokumentace mysql </strong></a> </p><ul> <li> <p>tyto chyby můžete také získat, pokud odešlete dotaz na server, který je nesprávný nebo příliš velký. pokud mysqld obdrží paket, který je příliš velký nebo mimo provoz, předpokládá se, že se klientovi něco pokazilo a připojení se uzavře. pokud potřebujete velké dotazy (například pokud pracujete s velkými sloupci blob), můžete zvýšit limit dotazu nastavením proměnné max\_allowed\_packet serveru, která má výchozí hodnotu 1 mb. možná bude také nutné zvýšit maximální velikost paketu na konci klienta. další informace o nastavení velikosti paketu jsou uvedeny v <a href="http://dev.mysql.com/doc/refman/5.5/en/packet-too-large.html">oddíl c.5.2.10, „paket příliš velký“.</a> </p> </li> <li> <p>příkaz insert nebo replace, který vkládá mnoho řádků, může také způsobit tyto druhy chyb. jeden z těchto příkazů odešle serveru jeden požadavek bez ohledu na počet řádků, které mají být vloženy; proto se často můžete této chybě vyhnout snížením počtu řádků odeslaných na vložit nebo vyměnit.</p> </li> </ul><p><strong> doporučení [~ # ~] [~ # ~] </strong></p><p>zkuste zvýšit <a href="http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar\_max\_allowed\_packet"><strong> max\_allowed\_packet </strong></a> na mnohem větší číslo, protože výchozí hodnota je 1m. navrhoval bych asi 10krát největší pole text nebo blob, které máte ve svém aktuálním datovém souboru.</p><p>chcete-li nastavit max\_allowed\_packet na 256m, můžete jej přidat do /etc/my.cnf nebo my.ini</p><pre><code>[mysqld] max\_allowed\_packet=256m </code></pre><p>na pokrytí budoucích restartů mysqld. chcete-li nainstalovat hodnotu nyní na server, spusťte toto:</p><pre><code>set global max\_allowed\_packet = 1024 * 1024 * 256; </code></pre><p>pokusit se !!!</p>
Nastavení oznámení asi ho ma vypnuté. -zkontrolovat utilitou od výrobce  
-ověřit funkčnost připojení může se jedna o vadu komunikace Protože server je jinde a spojení mezi tebou a tím serverem to asi někde nezvládá. Instalovat jsi firewall nebo komplexní bezpečnostní systém?   
Pokud ano, nastav pro MCE výjimky.   
Další možností je chyba v NTFS. Kdy jsi napsoledy kontroloval/opravoval stav NTFS? Budete dělat NTLM / Kerberos / vyjednávání [SSPI výměny smyčku](http://msdn.microsoft.com/en-us/library/aa375403(VS.85).aspx) . Tam je aa plný vzorek na MSDN jak pro [klienta](http://msdn.microsoft.com/en-us/library/aa380536(VS.85).aspx) i [serveru](http://msdn.microsoft.com/en-us/library/aa380537(VS.85).aspx) . Aby bylo jasno: vy *ani* používat žádný druh přístupu LDAP explictily. Je LSA (Local Security Authority), který mluví s LDAP a určuje totožnost klienta. Pokud jste úspěšný v tom celý SSPI smyčky, ověření se podařilo už i identita klienta je *alread* ověřen proti LDAP. Pokud váš server potřebuje znát identitu klienta (např. Znát použití rname) je to načte z kontextu zabezpečení za následek SSPI smyčky pomocí [`QueryContextAttributes(..., SECPKG_ATTR_NAMES,...)`](http://msdn.microsoft.com/en-us/library/aa379328(VS.85).aspx)a načte uživatelské jméno ze [`SecPkgContext_Names`](http://msdn.microsoft.com/en-us/library/aa380089(VS.85).aspx)struktury. antena muze ztracet pakety ? nejaka novinka ne ? antena prijima a vysila,tot cele.prostymi pingy bez stahovani nezjistis nic,kdyz neni linka vytizena pingy vesmes sou dobre,bud je velke zaruseni v tvem okoli nebo pretizene AP providera,poskozeni anteny se taky neda vyloucit resp.napr vlhkost u - v konektoru vedouciho do anteny ne li dokonce do AP je li toto mozne.Zmer si ping kdyz stahujes...ale ne 10sec. aspon 5 minutMMike Často toto je provedeno pomocí [„Data Driven odběry“](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , ale tato funkce je k dispozici pouze v některých SQL vydáních: Enterprise a Business Intelligence, ale ne v normě.


Takže existuje celá řada kreativních řešení. Ale nemám rád žádné z nich, a všechny vyžadují spravedlivý trochu práce mimo SSRS.


Mezi řešení, které jsem viděl, patří: Vytvoření odběr a potom zakázání nebo povolení SQL úlohu, kterou odešle předplatné (identifikovatelné podle GUID).


Vytvořte si .NET obálky exe zvládnout odeslání e-mailu. Je možné spustit dotaz nejprve zjistit, kolik se vrací řádky, a pak v případě potřeby generovat zprávu a zahrnout do e-mailu. Připoj se kabelem, vstup do webové administrace routeru, Wlan > disable. Vestavěný, nic. Ale psát něco sám je snadné.


Zkuste má proces, který dotazuje svůj katalog zpráv pro ty, které jsou starší než půl hodiny (nebo tak nějak). Dalo by se dokonce připojit k ReportServerTempDB aby zjistili, zda mají stále aktivní relace (v takovém případě je budete ignorovat trochu déle).


Poté, co jste je našli, je to snadné chytit, které pomocí rozhraní webových služeb a jejich odstranění z katalogu.


Ale ... Já bych vlastně se podívat na lepší způsob, jak poskytnout vlastní filtr, pomocí kódu. Jistě byste mohli poskytnout filtr jako parametr, a použít kód VB v rámci zprávy převést to, co uživatel zadá do něčeho, který by mohl být vyhodnocen pro každý řádek.


Okrást Zkusil bych se podívat na nastavení DNS ve vlastnostech sítě, případně nastavení proxy (zda je vypnutá). Některé aplikace mají vlastní nastavení a to systémové ignorují, jiné jej přebírají.