Blueboard a MySQL – [1040] Too many connections
- akmt
- Člen | 20
Zdravím,
poslední týdny řeším problém s MySQL na mém hostingu u Blueboard. S jejich podporou se mi nepovedlo odhalit zdroj problému.
Abych trochu nastínil situaci: Mám několik webů, které běží pod
jednou databází/jedním CMS. Každý web má svůj konfigurační soubor
načítaný v Bootstrap.php
na základě HTTP HOST
.
Pak je jeden společný konfigurační soubor pro databázi. Vše se zdá
funkční, ale na hostingu se mi pravidelně objevuje exception s chybou:
Nette\Database\ConnectionException #HY000
SQLSTATE[HY000] [1040] Too many connections
.../Container_1fce2ff855.php:1888 source Nette\Database\Connection->__construct
1878:
1879:
1880: public function createServiceContainer(): Container_1fce2ff855
1881: {
1882: return $this;
1883: }
1884:
1885:
1886: public function createServiceDatabase__default__connection(): Nette\Database\Connection
1887: {
1888: $service = new Nette\Database\Connection('mysql:host=localhost;dbname=XXX', 'XXX', 'XXX', []);
1889: $this->getService('tracy.blueScreen')->addPanel(['Nette\Bridges\DatabaseTracy\ConnectionPanel', 'renderException']);
1890: return $service;
1891: }
1892:
Podpora Blueboard mi napsala, že problém je v překračovaní souběžných připojení uživatelem k databázi.
Weby negenerují žádný extrémní traffic, proto mě zaráží, že
k takové chybě dochází. Nebyl jsem schopný vygooglovat jakýkoliv
relevantní návod s hledáním problému v mojí webové aplikaci (CMS) a zda
je možné mít špatně implementovaný přístup k databázi přes
Nette Database Explorer
a zda je možné toto nějak tracovat i na
lokálu.
Moc děkuji za jakékoliv nakopnutí v této věci.
- Kamil Valenta
- Člen | 820
Podíval bych se do logu od kdy to padá do 500 (Too many connections v logu
bude).
Pak bych se podíval do AccessLogu na výše uvedený čas, zda tam třeba nebyl
nějak DDoS nebo to prostě nevyžrali boti.