De laatste weken kan ik opeens mijn websites niet bereiken en ik krijg deze meldingen:
Het lijkt dat dit vrij random gebeurt. Soms in de avond en soms in de morgen.Code:Warning: mysql_connect() [function.mysql-connect]: Too many connections in /home/da*****/domains/*****.nl/public_html/lib/db_connect.php on line 17 Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/da*****/domains/*****.nl/public_html/lib/db_connect.php on line 20 Warning: mysql_query() [function.mysql-query]: Access denied for user 'apache'@'localhost' (using password: NO) in /home/da*****/domains/*****.nl/public_html/lib/functions.php on line 358 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/da*****/domains/*****.nl/public_html/lib/functions.php on line 358 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/da*****/domains/*****.nl/public_html/lib/functions.php on line 358 Warning: mysql_query() [function.mysql-query]: Access denied for user 'apache'@'localhost' (using password: NO) in /home/da*****/domains/*****.nl/public_html/lib/con_dbase.php on line 54den_mailen.php on line 23 Access denied for user 'apache'@'localhost' (using password: NO)
Weet iemand wat de oorzaak is en hoe ik dit op kan lossen.
- Sites down - Met volgende errors
-
02-07-2009, 12:23 #1
- Berichten
- 90
- Lid sinds
- 16 Jaar
Sites down - Met volgende errors
-
-
02-07-2009, 12:36 #2
- Berichten
- 349
- Lid sinds
- 17 Jaar
Het antwoord zou heel simpel kunnen zijn: MySQL is "overloaded", weigert de mysql_connect en dus kunnen de queries niet uitgevoerd worden (er is geen connectie, daarom staat er apache@localhost (using password: NO)).
MySQL restarten kan helpen, als dat het niet oplost toch eens goed db_connect.php nakijken.
Aanvullend bericht:
Waar je db_connect.php include kan het wellicht ook raadzaam zijn na je queries een mysql_close(); in te voegen. Ik weet echter niet of dat tegenwoordig nog steeds moet. Ik PHP te weinig tegenwoordig ;)Laatst aangepast door jhaagmans : 02-07-2009 om 12:39 Reden: Automatisch samengevoegd.
-
02-07-2009, 12:41 #3
- Berichten
- 756
- Lid sinds
- 18 Jaar
Je hebt teveel connecties naar de Mysql server.
Vraag aan je webhoster of ze het aantal connecties kunnen aanpassen voor je.
-
02-07-2009, 12:42 #4
- Berichten
- 206
- Lid sinds
- 19 Jaar
Er zijn simpelweg teveel connecties naar de MySQL server. Dit kan dus ook komen wanneer je een shared hosting hebt, dat andere "klanten" teveel connecties hebben waardoor jouw site dus ook down gaat.
Dit probleem kun je oplossen door het maximaal toegestane connecties op te schroeven en/of je script is goed na te kijken en overbodige queries weg te halen.
-
02-07-2009, 12:44 #5
- Berichten
- 349
- Lid sinds
- 17 Jaar
Het aantal queries doet er niet toe. Zorg er vooral voor dat er op elke pagina maar één mysql_connect(); wordt uitgevoerd en de pagina ook afgesloten wordt met een mysql_close();
-
02-07-2009, 12:54 #6
- Berichten
- 90
- Lid sinds
- 16 Jaar
Bedankt voor de antwoorden.
Wat ik vreemd vind is dat dit soms ook 's avonds laat gebeurd. Zou een (zoekmachine) bot dit ook kunnen veroorzaken?
-
02-07-2009, 12:55 #7
- Berichten
- 571
- Lid sinds
- 17 Jaar
Misschien is hij overhit :)
EDIT: daar zou je 's avonds toch geen last van moeten hebben ;)
-
02-07-2009, 12:57 #8
- Berichten
- 349
- Lid sinds
- 17 Jaar
Dat heb ik inderdaad ook wel eens gezien. Sommige bots roepen binnen een paar milliseconden een flinke hoeveelheid pagina's aan. Als je code niet zo netjes is kan het inderdaad tot zo'n foutmelding leiden.
-
02-07-2009, 12:59 #9
- Berichten
- 263
- Lid sinds
- 18 Jaar
Ik weet niet of dit van toepassing is op jouw website maar wat vaak een win-win situatie kan zijn als je content niet al te vaak geupdate wordt is om de HTML output te cachen.
Dit kan heel eenvoudig:
Gebruiker roept php aan.
PHP kijkt of een situatie A of B is (bv is de cache te oud?)
als cache te oud is: MySQL queries doen om content te refreshen, schrijf content weg in een static html file
als cache niet te oud is: Lees de static html in (en zodoende dus 0,0 queries gebruikt).
dit is echt een simpele maar effectieve oplossing die in sommige gevallen echt heel veel load van je mysql afhalen, wellicht een regel of 5 qua code (die zul je zelf moeten maken :)
Gr. Alex.
-
02-07-2009, 13:08 #10
- Berichten
- 206
- Lid sinds
- 19 Jaar
s'avonds zijn natuurlijk ook de meeste mensen op een website. Dus het kan ook dat zijn ipv een bot.
-
02-07-2009, 14:06 #11
- Berichten
- 263
- Lid sinds
- 18 Jaar
Trouwens schiet me na het cachen nog een goede win tip op... Apache komt met een paar preset settings doe leuk zijn voor kleine servers maar minderleuk voor drukke servers. Zoals KeepAlive. Dit zou ik bij grote websites uitzetten... kijk ook of je de Cache van MySQL kan uitbreiden.. dit staat standaard (uit mijn hoofd) op 32 MB... als je het kan missen (en dat kan vaak) kan het totaal geen kwaad om het naar 64 of hoger te zetten. Dit scheelt ook qua preformance
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic