Sprendimas yra modifikuoti /etc/mysql/my.cnf ir pridėti šią eilutę: rinkinio kintamasis = max_connections=500
Arba pridėkite parametrą max_connections=500 prie paleisties komandos Tai yra pakeisti maksimalų ryšių skaičių ir iš naujo paleisti mysql. Numatytasis ryšių skaičius yra 100, o tai yra per mažai, todėl lengva gauti tą pačią klaidą. Štai mysql.com svetainės instrukcijos: Jei bandydami prisijungti prie mysqld serverio gaunate klaidą Per daug ryšių, tai reiškia, kad visus galimus ryšius naudoja kiti klientai.
Leidžiamų jungčių skaičių kontroliuoja max_connections sistemos kintamasis. Numatytoji jo vertė yra 100. Jei jums reikia palaikyti daugiau ryšių, turėtumėte iš naujo paleisti mysqld su didesne šio kintamojo reikšme.
MySQL iš tikrųjų leidžia prisijungti max_connections+1 klientams. Papildomas ryšys skirtas naudoti paskyroms, turinčioms SUPER privilegiją. Suteikdamas SUPER privilegiją administratoriams, o ne paprastiems vartotojams (kuriems jos neturėtų prireikti), administratorius gali prisijungti prie serverio ir naudoti SHOW PROCESSLIST problemoms diagnozuoti, net jei Prijungtas maksimalus neprivilegijuotų klientų skaičius. Žr. 13.5.4.19 skyrių "SHOW PROCESSLIST sintaksė".
Maksimalus MySQL palaikomų ryšių skaičius priklauso nuo tam tikros platformos gijų bibliotekos kokybės. "Linux" arba "Solaris" turėtų palaikyti 500–1000 vienu metu veikiančių ryšių, priklausomai nuo to, kiek RAM turite ir ką veikia jūsų klientai. MySQL AB teikiami statiniai Linux dvejetainiai failai gali palaikyti iki 4000 ryšių.
1. Tai gali būti problema dėl "MySQL" maksimalių ryšių nustatymų 2. Tai gali būti keli įterpimai, o atnaujinimo operacija neuždaro sesijos, todėl pavasarį turite sukonfigūruoti operacijų palaikymą. Nutarimas: 1. Pakeiskite sesijos laiką tomcat į 20, (neprivaloma) 2. Teikite operacijų palaikymą didelėms duomenų bazės įterpimo ar atnaujinimo operacijų apdorojimo apimtims.
=======================================
Štai sprendimas:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Per daug ryšių"
Priežastis: Nes jūsų mysql diegimo katalogasmy.iniSistemoje nustatytų vienalaikių ryšių skaičius yra per mažas arba sistema užimta, todėl jungčių skaičius yra pilnas Sprendimas: Atidarykite MYSQL diegimo katalogą ir atidarykite MY.INI raskite max_connections (maždaug 93 eilutėje) numatytasis yra 100 Paprastai tikslingiau nustatyti 500 ~ 1000, iš naujo paleisti mysql, kad 1040 klaida būtų išspręsta.
max_connections=1000
Būtinai iš naujo paleiskite MYSQL, kad jis įsigaliotų
CMD->
grynasis sustabdymas mysql
grynasis paleidimas mysql
Dėl klausimo, kad negalima paleisti mysql pakeitus innodb_log_file_size
innodb_buffer_pool_size=768M innodb_log_file_size=256M innodb_log_buffer_size=8M innodb_additional_mem_pool_size=4M innodb_flush_log_at_trx_commit=0 innodb_thread_concurrency=20 Aukščiau pateiktas preliminarus innodb variklio optimizavimas, buvo nustatyta, kad atnaujinant innodb_log_file_size=256M kilo problema, kol tai buvo pridėta, ji negalėjo paleisti.
Vėliau sužinojau, kad pirmiausia turėjau sustabdyti paslaugą, o tada ištrinti pradinį failą......... Atidarykite /MySQL Server 5.5/data
Naikinti ib_logfile0, ib_logfile1........ ib_logfilen Tada atidarykite parinktį ir sėkmingai paleiskite.
|